001    package org.bukkit.material;
002    
003    import org.bukkit.CropState;
004    import org.bukkit.Material;
005    
006    /**
007     * Represents the different types of crops.
008     */
009    public class Crops extends MaterialData {
010        public Crops() {
011            super(Material.CROPS);
012        }
013    
014        public Crops(CropState state) {
015            this();
016            setState(state);
017        }
018    
019        /**
020         *
021         * @deprecated Magic value
022         */
023        @Deprecated
024        public Crops(final int type) {
025            super(type);
026        }
027    
028        public Crops(final Material type) {
029            super(type);
030        }
031    
032        /**
033         *
034         * @deprecated Magic value
035         */
036        @Deprecated
037        public Crops(final int type, final byte data) {
038            super(type, data);
039        }
040    
041        /**
042         *
043         * @deprecated Magic value
044         */
045        @Deprecated
046        public Crops(final Material type, final byte data) {
047            super(type, data);
048        }
049    
050        /**
051         * Gets the current growth state of this crop
052         *
053         * @return CropState of this crop
054         */
055        public CropState getState() {
056            return CropState.getByData(getData());
057        }
058    
059        /**
060         * Sets the growth state of this crop
061         *
062         * @param state New growth state of this crop
063         */
064        public void setState(CropState state) {
065            setData(state.getData());
066        }
067    
068        @Override
069        public String toString() {
070            return getState() + " " + super.toString();
071        }
072    
073        @Override
074        public Crops clone() {
075            return (Crops) super.clone();
076        }
077    }