001/*
002 * Trident - A Multithreaded Server Alternative
003 * Copyright 2014 The TridentSDK Team
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *    http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package net.tridentsdk.effect.entity;
018
019/**
020 * Enum of all possible entity effects
021 *
022 * @author The TridentSDK Team
023 * @since 0.4-alpha
024 */
025public enum EntityStatusEffectType {
026    /**
027     * When an entity gets hurt
028     */
029    HURT((byte) 2),
030
031    /**
032     * When an Entity dies
033     *
034     * This can cause de-sync and client glitches!
035     */
036    DEATH((byte) 3),
037
038    /**
039     * The smoke when taming a Wolf/Ocelot/Horse fails
040     *
041     * The effect will not apply unless the entity is a Wolf/Ocelot/Horse
042     */
043    PET_SMOKE((byte) 6),
044
045    /**
046     * The hearts when taming a Wolf/Ocelot/Horse succeeds
047     *
048     * The effect will not apply unless the entity is a Wolf/Ocelot/Horse
049     */
050    PET_HEARTS((byte) 7),
051
052    /**
053     * When a Wolf shakes after being wet
054     *
055     * The effect will not apply unless the entity is a Wolf/Ocelot/Horse
056     */
057    WOLF_SHAKE((byte) 8),
058
059    /**
060     * When a Sheep eats a long grass block.
061     */
062    SHEEP_EAT((byte) 10),
063
064    /**
065     * When an Iron Golem gives a rose
066     *
067     * The effect will not apply unless the entity is an Iron Golem
068     */
069    IRON_GOLEM_ROSE((byte) 11),
070
071    /**
072     * Hearts from a Villager when he is in "Love Mode"
073     *
074     * The effect will not apply unless the entity is a Villager
075     */
076    VILLAGER_HEART((byte) 12),
077
078    /**
079     * Storm Cloud from a Villager when he is Angry
080     *
081     * The effect will not apply unless the entity is a Villager
082     */
083    VILLAGER_ANGRY((byte) 13),
084
085    /**
086     * Green Star particles from a villager when he is Happy
087     *
088     * The effect will not apply unless the entity is a Villager
089     */
090    VILLAGER_HAPPY((byte) 14),
091
092    /**
093     * Magic particles from a witch.
094     *
095     * The effect will not apply unless the entity is a Witch
096     */
097    WITCH_MAGIC((byte) 15),
098
099    /**
100     * When a Zombie transforms into a villager by shaking violently
101     *
102     * The effect will not apply unless the entity is a Zombie
103     */
104    ZOMBIE_TRANSFORM((byte) 16),
105
106    /**
107     * When a Firework explodes.
108     *
109     * The effect will not apply unless the entity is a Firework
110     */
111    FIREWORK_EXPLODE((byte) 17),
112
113    /**
114     * Love Particles when an Animal is in love.
115     *
116     * The effect will not apply unless the entity is an Animal
117     */
118    ANIMAL_LOVE((byte) 18),
119
120    /**
121     * Reset the squid rotation
122     *
123     * The effect will not apply unless the entity is a Squid
124     */
125    RESET_SQUID((byte) 19),
126
127    /**
128     * Just an explosion
129     *
130     * The effect only works on some entities
131     */
132    EXPLOSION((byte) 20),
133
134    /**
135     * The guardian sound
136     */
137    GUARDIAN((byte) 21),
138
139    /**
140     * Reduce the players debug by hiding the location information
141     *
142     * The effect will not apply unless the entity is a Player
143     */
144    REDUCE_DEBUG((byte) 22),
145
146    /**
147     * Reset the players debug by showing the location information
148     *
149     * The effect will not apply unless the entity is a Player
150     */
151    RESET_DEBUG((byte) 23);
152
153    private final byte id;
154
155    EntityStatusEffectType(byte id) {
156        this.id = id;
157    }
158
159    /**
160     * Get the id value of the effect
161     *
162     * @return The id value of the effect
163     */
164    public byte id(){
165        return id;
166    }
167}