001    package org.bukkit.material;
002    
003    import org.bukkit.Material;
004    
005    /**
006     * Represents the tripwire
007     */
008    public class Tripwire extends MaterialData {
009        
010        public Tripwire() {
011            super(Material.TRIPWIRE);
012        }
013    
014        /**
015         *
016         * @deprecated Magic value
017         */
018        @Deprecated
019        public Tripwire(final int type) {
020            super(type);
021        }
022    
023        /**
024         *
025         * @deprecated Magic value
026         */
027        @Deprecated
028        public Tripwire(final int type, final byte data) {
029            super(type, data);
030        }
031    
032        /**
033         * Test if tripwire is currently activated
034         *
035         * @return true if activated, false if not
036         */
037        public boolean isActivated() {
038            return (getData() & 0x4) != 0;
039        }
040        
041        /**
042         * Set tripwire activated state
043         *
044         * @param act - true if activated, false if not
045         */
046        public void setActivated(boolean act) {
047            int dat = getData() & (0x8 | 0x3);
048            if (act) {
049                dat |= 0x4;
050            }
051            setData((byte) dat);
052        }    
053        
054        /**
055         * Test if object triggering this tripwire directly
056         *
057         * @return true if object activating tripwire, false if not
058         */
059        public boolean isObjectTriggering() {
060            return (getData() & 0x1) != 0;
061        }
062    
063        /**
064         * Set object triggering state for this tripwire
065         *
066         * @param trig - true if object activating tripwire, false if not
067         */
068        public void setObjectTriggering(boolean trig) {
069            int dat = getData() & 0xE;
070            if (trig) {
071                dat |= 0x1;
072            }
073            setData((byte) dat);
074        }
075    
076        @Override
077        public Tripwire clone() {
078            return (Tripwire) super.clone();
079        }
080    
081        @Override
082        public String toString() {
083            return super.toString() + (isActivated()?" Activated":"") + (isObjectTriggering()?" Triggered":"");
084        }
085    }