summaryrefslogtreecommitdiff
path: root/java/darkknight/jewelrycraft/effects
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-21 21:31:16 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-21 21:31:16 +0000
commit420faddca46e70e3a70def168fb4e452ef193b0d (patch)
tree247e334012e4bf9e4fa6d42718bf601ce6bd42d9 /java/darkknight/jewelrycraft/effects
parent3f4c717de5ebc9b942d65ae45ac87c43bdf8a31b (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')
-rw-r--r--java/darkknight/jewelrycraft/effects/EffectBlazePowder.java86
-rw-r--r--java/darkknight/jewelrycraft/effects/EffectEnderEye.java53
-rw-r--r--java/darkknight/jewelrycraft/effects/EffectFeather.java69
-rw-r--r--java/darkknight/jewelrycraft/effects/EffectsList.java22
-rw-r--r--java/darkknight/jewelrycraft/effects/ModifierEffects.java82
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);
+}