diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-02-21 21:31:16 +0000 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-02-21 21:31:16 +0000 |
| commit | 420faddca46e70e3a70def168fb4e452ef193b0d (patch) | |
| tree | 247e334012e4bf9e4fa6d42718bf601ce6bd42d9 /java/darkknight/jewelrycraft/effects | |
| parent | 3f4c717de5ebc9b942d65ae45ac87c43bdf8a31b (diff) | |
Added just a butt ton of stuff, also thanks to pau101 for helping me with the Hand Pedestal animation :)
Diffstat (limited to 'java/darkknight/jewelrycraft/effects')
5 files changed, 312 insertions, 0 deletions
diff --git a/java/darkknight/jewelrycraft/effects/EffectBlazePowder.java b/java/darkknight/jewelrycraft/effects/EffectBlazePowder.java new file mode 100644 index 0000000..efec29b --- /dev/null +++ b/java/darkknight/jewelrycraft/effects/EffectBlazePowder.java @@ -0,0 +1,86 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && pos != -1){ + //Positive for necklace + player.extinguish(); + + //Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f); + } + //Negative for bracelet + if (jewelry instanceof ItemBracelet && pos != -1) if(player.isInWater()) player.fallDistance *= 0.8F; + + //Negative for earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + + } + + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + //Balanced for ring + if (jewelry instanceof ItemRing && pos != -1 && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && pos != -1 && player.worldObj.rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + //Positive for earrings + int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + player.heal((float)(0.05 * stackSize)); + return true; + } + //Positive for bracelet + if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + } + + @Override + public boolean onPlayerFall(ItemStack item, EntityPlayer player, Item jewelry) + { + return false; + } +} diff --git a/java/darkknight/jewelrycraft/effects/EffectEnderEye.java b/java/darkknight/jewelrycraft/effects/EffectEnderEye.java new file mode 100644 index 0000000..886b18d --- /dev/null +++ b/java/darkknight/jewelrycraft/effects/EffectEnderEye.java @@ -0,0 +1,53 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && pos != -1) ; + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + return false; + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + } + + @Override + public boolean onPlayerFall(ItemStack item, EntityPlayer player, Item jewelry) + { + return false; + } +} diff --git a/java/darkknight/jewelrycraft/effects/EffectFeather.java b/java/darkknight/jewelrycraft/effects/EffectFeather.java new file mode 100644 index 0000000..b331044 --- /dev/null +++ b/java/darkknight/jewelrycraft/effects/EffectFeather.java @@ -0,0 +1,69 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Positive necklace + if (jewelry instanceof ItemNecklace && pos != -1 && !player.onGround){ + player.motionY = -10D; + System.out.println(player.motionY); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemNecklace && pos != -1) player.fallDistance *= 0.5F; + if (jewelry instanceof ItemBracelet && pos != -1) return true; + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Positive bracelet + if (jewelry instanceof ItemBracelet && pos != -1) return true; + return true; + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && pos != -1 && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } + + @Override + public boolean onPlayerFall(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + return false; + } +} diff --git a/java/darkknight/jewelrycraft/effects/EffectsList.java b/java/darkknight/jewelrycraft/effects/EffectsList.java new file mode 100644 index 0000000..13abc48 --- /dev/null +++ b/java/darkknight/jewelrycraft/effects/EffectsList.java @@ -0,0 +1,22 @@ +package darkknight.jewelrycraft.effects; + +import cpw.mods.fml.common.event.FMLPostInitializationEvent; + +public class EffectsList +{ + private static ModifierEffects blazePowder, enderEye, feather; + private static boolean isInitialized = false; + + /** + * @param e + */ + public static void postInit(FMLPostInitializationEvent e) + { + if (!isInitialized){ + blazePowder = new EffectBlazePowder(); + enderEye = new EffectEnderEye(); + feather = new EffectFeather(); + isInitialized = true; + } + } +} diff --git a/java/darkknight/jewelrycraft/effects/ModifierEffects.java b/java/darkknight/jewelrycraft/effects/ModifierEffects.java new file mode 100644 index 0000000..2d62639 --- /dev/null +++ b/java/darkknight/jewelrycraft/effects/ModifierEffects.java @@ -0,0 +1,82 @@ +package darkknight.jewelrycraft.effects; + +import java.util.ArrayList; +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; + +public abstract class ModifierEffects +{ + protected ItemStack modifier; + protected static ArrayList<ModifierEffects> effects = new ArrayList<ModifierEffects>(); + + /** + * @param modifier + */ + public ModifierEffects(ItemStack modifier) + { + this.modifier = modifier; + effects.add(this); + } + + /** + * @return + */ + public static ArrayList<ModifierEffects> getEffects() + { + return effects; + } + + /** + * @param item + * @param player + * @param jewelry + */ + public abstract void action(ItemStack item, EntityPlayer player, Item jewelry); + + /** + * @param item + * @param player + * @param target + * @param jewelry + * @return + */ + public abstract boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount); + + /** + * @param item + * @param player + * @param source + * @param jewelry + * @return + */ + public abstract boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount); + /** + * @param item + * @param player + * @param target + * @param jewelry + * @return + */ + public abstract void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount); + + /** + * @param item + * @param player + * @param source + * @param jewelry + * @return + */ + public abstract void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount); + + /** + * @param item + * @param player + * @param source + * @param jewelry + * @return + */ + public abstract boolean onPlayerFall(ItemStack item, EntityPlayer player, Item jewelry); +} |
