diff options
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java')
| -rw-r--r-- | src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java new file mode 100644 index 0000000..2144179 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java @@ -0,0 +1,125 @@ +package darkknight.jewelrycraft.affixes; + +import darkknight.jewelrycraft.api.ModifierEffect; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDropsEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.Clone; + +public class ComboAffix extends ModifierEffect { + private ModifierEffect[] effects; + + public ComboAffix(ModifierEffect... effects) { + super(null); + + this.effects = effects; + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) { + for (ModifierEffect eff : effects) { + eff.action(item, player, jewelry); + } + } + + @Override + public boolean onEntityAttackedCancellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, + LivingAttackEvent event) { + boolean ret = false; + + for (ModifierEffect eff : effects) { + ret = eff.onEntityAttackedCancellable(item, player, target, jewelry, event); + + if (ret) + return ret; + } + + return ret; + } + + @Override + public boolean onPlayerAttackedCancellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, + float amount) { + boolean ret = false; + + for (ModifierEffect eff : effects) { + ret = eff.onPlayerAttackedCancellable(item, player, source, jewelry, amount); + + if (ret) + return ret; + } + + return ret; + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, + LivingAttackEvent event) { + for (ModifierEffect eff : effects) { + eff.onEntityAttacked(item, player, target, jewelry, event); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) { + for (ModifierEffect eff : effects) { + eff.onPlayerAttacked(item, player, source, jewelry, amount); + } + } + + @Override + public void onPlayerDead(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry) { + for (ModifierEffect eff : effects) { + eff.onPlayerDead(item, player, source, jewelry); + } + } + + @Override + public void onPlayerRespawn(ItemStack item, Clone event, Item jewelry) { + for (ModifierEffect eff : effects) { + eff.onPlayerRespawn(item, event, jewelry); + } + } + + @Override + public void onJewelryEquipped(ItemStack item, Item jewelry, EntityPlayer player) { + for (ModifierEffect eff : effects) { + eff.onJewelryEquipped(item, jewelry, player); + } + } + + @Override + public void onJewelryUnequipped(ItemStack item, Item jewelry, EntityPlayer player) { + for (ModifierEffect eff : effects) { + eff.onJewelryUnequipped(item, jewelry, player); + } + } + + @Override + public void onLivingDropItems(ItemStack item, EntityPlayer player, LivingDropsEvent event, + ItemBaseJewelry jewelry) { + for (ModifierEffect eff : effects) { + eff.onLivingDropItems(item, player, event, jewelry); + } + } + + @Override + public void onPlayerHurt(ItemStack item, EntityPlayer player, LivingHurtEvent event, ItemBaseJewelry jewelry) { + for (ModifierEffect eff : effects) { + eff.onPlayerHurt(item, player, event, jewelry); + } + } + + @Override + public void onEntityHurt(ItemStack item, EntityPlayer player, LivingHurtEvent event, ItemBaseJewelry jewelry) { + for (ModifierEffect eff : effects) { + eff.onEntityHurt(item, player, event, jewelry); + } + } +}
\ No newline at end of file |
