summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gmail/Lance5057/TinkersDefense.java55
-rw-r--r--src/main/java/gmail/Lance5057/armor/items/Sheath.java49
-rw-r--r--src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java77
-rw-r--r--src/main/java/gmail/Lance5057/armor/renderers/ModelSheath.java50
-rw-r--r--src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java (renamed from src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java)2
-rw-r--r--src/main/java/gmail/Lance5057/events/TDEventHandler.java64
-rw-r--r--src/main/java/gmail/Lance5057/items/TinkerArmor.java74
-rw-r--r--src/main/java/gmail/Lance5057/items/tools/ArmorCore.java26
-rw-r--r--src/main/java/gmail/Lance5057/items/tools/Shield.java403
-rw-r--r--src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java24
-rw-r--r--src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofFeathers.java87
-rw-r--r--src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java87
-rw-r--r--src/main/java/gmail/Lance5057/proxy/ClientProxy.java7
13 files changed, 723 insertions, 282 deletions
diff --git a/src/main/java/gmail/Lance5057/TinkersDefense.java b/src/main/java/gmail/Lance5057/TinkersDefense.java
index 03c44be..030f8d9 100644
--- a/src/main/java/gmail/Lance5057/TinkersDefense.java
+++ b/src/main/java/gmail/Lance5057/TinkersDefense.java
@@ -4,6 +4,8 @@ import static net.minecraft.util.EnumChatFormatting.DARK_RED;
import static net.minecraft.util.EnumChatFormatting.GOLD;
import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE;
import gmail.Lance5057.armor.blocks.ArmorAnvil;
+import gmail.Lance5057.armor.items.Sheath;
+import gmail.Lance5057.armor.items.TinkerArmor;
import gmail.Lance5057.armor.tools.Item_Cloth;
import gmail.Lance5057.armor.tools.Item_Glowthread;
import gmail.Lance5057.armor.tools.Item_Thread;
@@ -12,6 +14,7 @@ import gmail.Lance5057.blocks.CrestMount;
import gmail.Lance5057.blocks.DogbeariumBlock;
import gmail.Lance5057.blocks.JewelersBench;
import gmail.Lance5057.blocks.QueensGoldBlock;
+import gmail.Lance5057.events.TDEventHandler;
import gmail.Lance5057.items.AeonSteelIngot;
import gmail.Lance5057.items.DogbeariumIngot;
import gmail.Lance5057.items.QueensGoldIngot;
@@ -24,18 +27,20 @@ import gmail.Lance5057.liquids.moltenDogbeariumFluid;
import gmail.Lance5057.liquids.moltenQueensGoldFluid;
import gmail.Lance5057.modifiers.TDefenseActiveToolMod;
import gmail.Lance5057.modifiers.modifierDaze;
+import gmail.Lance5057.modifiers.shields.modifierCrestofFeathers;
+import gmail.Lance5057.modifiers.shields.modifierCrestofMirrors;
import gmail.Lance5057.network.PacketHandler;
import gmail.Lance5057.proxy.CommonProxy;
import gmail.Lance5057.tileentities.TileEntity_ArmorAnvil;
import gmail.Lance5057.tileentities.TileEntity_CrestMount;
import gmail.Lance5057.tileentities.TileEntity_JewelersBench;
-import mantle.lib.client.MantleClientRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.MinecraftForge;
@@ -52,7 +57,6 @@ import tconstruct.library.crafting.ModifyBuilder;
import tconstruct.library.crafting.PatternBuilder;
import tconstruct.library.crafting.Smeltery;
import tconstruct.library.crafting.StencilBuilder;
-import tconstruct.library.crafting.ToolBuilder;
import tconstruct.library.tools.DynamicToolPart;
import tconstruct.library.tools.ToolCore;
import tconstruct.smeltery.TinkerSmeltery;
@@ -81,14 +85,18 @@ public class TinkersDefense {
public static CreativeTabs tabName = new CreativeTabs("tabName") {
public Item getTabIconItem() {
- return Items.arrow;
+ return TinkersDefense.tabIcon;
}
};
+
+ public static TDEventHandler TDevents;
public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE
.newSimpleChannel(Reference.MOD_ID);
+ public static Item tabIcon;
+
public static Item item_AeonSteelIngot;
public static Block block_AeonSteelBlock;
@@ -116,6 +124,8 @@ public class TinkersDefense {
public static Block block_JewelersBench;
public static Item item_TinkerArmor;
+ public static Item item_Sheath;
+
public static Item item_Crest_Feathers;
public static Item item_Crest_Blades;
@@ -135,9 +145,10 @@ public class TinkersDefense {
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
PacketHandler.init();
+ TDevents = new TDEventHandler();
block_CrestMount = new CrestMount().setHardness(4.0F)
- .setStepSound(Block.soundTypeMetal).setBlockName("CrestMount")
+ .setStepSound(Block.soundTypeStone).setBlockName("CrestMount")
.setCreativeTab(tabName);
GameRegistry.registerBlock(block_CrestMount, "Block_CrestMount");
@@ -168,7 +179,9 @@ public class TinkersDefense {
NetworkRegistry.INSTANCE.registerGuiHandler(TinkersDefense.instance,
new CommonProxy());
MinecraftForge.EVENT_BUS.register(this);
-
+
+ tabIcon = new Item().setMaxStackSize(1).setCreativeTab(tabName).setUnlocalizedName("tabIcon").setTextureName(Reference.MOD_ID + ":Icon");
+ GameRegistry.registerItem(tabIcon, "tabIcon");
// AeonSteel
item_AeonSteelIngot = new AeonSteelIngot().setCreativeTab(tabName)
.setMaxStackSize(64).setUnlocalizedName("AeonSteelIngot")
@@ -311,9 +324,12 @@ public class TinkersDefense {
// Renderers
proxy.registerRenderers();
- // item_TinkerArmor = new TinkerArmor(ArmorMaterial.IRON, 4,
- // 1).setUnlocalizedName("Tinker_Armor");
- // GameRegistry.registerItem(item_TinkerArmor,"Tinker Armor");
+ item_TinkerArmor = new TinkerArmor(ArmorMaterial.IRON, 4,
+ 1).setUnlocalizedName("Tinker_Armor");
+ GameRegistry.registerItem(item_TinkerArmor,"Tinker Armor");
+
+ item_Sheath = new Sheath().setUnlocalizedName("Sheath");
+ GameRegistry.registerItem(item_Sheath, "Sheath");
// network.registerMessage(messageHandler, requestMessageType,
// discriminator, side);
@@ -322,16 +338,33 @@ public class TinkersDefense {
@EventHandler
public void init(FMLInitializationEvent e) {
System.out.print(Reference.MOD_ID);
+
+
PatternBuilder pb = PatternBuilder.instance;
- ModifyBuilder.registerModifier(new modifierDaze("Daze", 5, new ItemStack[] { new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem,1,8202)},
+ ModifyBuilder.registerModifier(new modifierDaze("Daze", 18, new ItemStack[] { new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem,1,8202)},
new int[] {1,0}));
+
+ ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", 19, new ItemStack[] { new ItemStack(item_Crest_Feathers)},
+ new int[] {1}));
+
+ ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", 20, new ItemStack[] { new ItemStack(Blocks.glass_pane)},
+ new int[] {1}));
TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod());
for (ToolCore tool : TConstructRegistry.getToolMapping())
{
- TConstructClientRegistry.addEffectRenderMapping(tool, 19, "tinkersdefense", "daze", false);
- System.out.println("test");
+ TConstructClientRegistry.addEffectRenderMapping(tool, 18, "tinkersdefense", "daze", true);
+ }
+ //TODO clean this mess up
+ for (ToolCore tool : TConstructRegistry.getToolMapping())
+ {
+ TConstructClientRegistry.addEffectRenderMapping(tool, 19, "tinkersdefense", "crest_feather", true);
+ }
+
+ for (ToolCore tool : TConstructRegistry.getToolMapping())
+ {
+ TConstructClientRegistry.addEffectRenderMapping(tool, 20, "tinkersdefense", "crest_mirrors", true);
}
TConstructClientRegistry.toolButtons
diff --git a/src/main/java/gmail/Lance5057/armor/items/Sheath.java b/src/main/java/gmail/Lance5057/armor/items/Sheath.java
new file mode 100644
index 0000000..c3563f1
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/armor/items/Sheath.java
@@ -0,0 +1,49 @@
+package gmail.Lance5057.armor.items;
+
+import gmail.Lance5057.proxy.ClientProxy;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import tconstruct.library.accessory.AccessoryCore;
+import tconstruct.library.accessory.IAccessoryModel;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public class Sheath extends AccessoryCore implements IAccessoryModel
+{
+
+ public Sheath() {
+ super("tinkersdefense:textures/armor/Sheath");
+ }
+
+ @Override
+ public boolean canEquipAccessory(ItemStack item, int slot)
+ {
+ return slot == 3;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public ModelBiped getArmorModel (EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot)
+ {
+ return ClientProxy.sheath;
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot,
+ String type) {
+ return "tinkersdefense:textures/armor/Sheath.png";
+ }
+
+ ResourceLocation texture = new ResourceLocation("tinkersdefense", "textures/armor/Sheath.png");
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public ResourceLocation getWearbleTexture (Entity entity, ItemStack stack, int slot)
+ {
+ return texture;
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java b/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java
new file mode 100644
index 0000000..ba0fc1b
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java
@@ -0,0 +1,77 @@
+package gmail.Lance5057.armor.items;
+
+import gmail.Lance5057.TinkersDefense;
+import gmail.Lance5057.proxy.ClientProxy;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public class TinkerArmor extends ItemArmor {
+ public TinkerArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
+ super(par2EnumArmorMaterial, par3, par4);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ String itemName = "tinkersdefense:textures/armor/Sheath";
+ this.itemIcon = par1IconRegister.registerIcon(itemName);
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot,
+ String type) {
+ return "tinkersdefense:textures/armor/Sheath.png";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public ModelBiped getArmorModel(EntityLivingBase entityLiving,
+ ItemStack itemStack, int armorSlot) {
+
+ return ClientProxy.sheath;
+// ModelBiped armorModel = null;
+// if (itemStack != null) {
+// if (itemStack.getItem() instanceof TinkerArmor) {
+// int type = ((ItemArmor) itemStack.getItem()).armorType;
+// if (type == 1 || type == 3) {
+// armorModel = TinkersDefense.proxy.getArmorModel(0);
+// } else {
+// armorModel = TinkersDefense.proxy.getArmorModel(1);
+// }
+//
+// }
+// if (armorModel != null) {
+// armorModel.bipedHead.showModel = armorSlot == 0;
+// armorModel.bipedHeadwear.showModel = armorSlot == 0;
+// armorModel.bipedBody.showModel = armorSlot == 1
+// || armorSlot == 2;
+// armorModel.bipedRightArm.showModel = armorSlot == 1;
+// armorModel.bipedLeftArm.showModel = armorSlot == 1;
+// armorModel.bipedRightLeg.showModel = armorSlot == 2
+// || armorSlot == 3;
+// armorModel.bipedLeftLeg.showModel = armorSlot == 2
+// || armorSlot == 3;
+// armorModel.isSneak = entityLiving.isSneaking();
+// armorModel.isRiding = entityLiving.isRiding();
+// armorModel.isChild = entityLiving.isChild();
+// armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1
+// : 0;
+//
+// if (entityLiving instanceof EntityPlayer) {
+// armorModel.aimedBow = ((EntityPlayer) entityLiving)
+// .getItemInUseDuration() > 2;
+// }
+// return armorModel;
+// }
+// }
+// return armorModel;
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/armor/renderers/ModelSheath.java b/src/main/java/gmail/Lance5057/armor/renderers/ModelSheath.java
new file mode 100644
index 0000000..3ca4395
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/armor/renderers/ModelSheath.java
@@ -0,0 +1,50 @@
+package gmail.Lance5057.armor.renderers;
+
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * ModelBiped - Either Mojang or a mod author
+ * Created using Tabula 4.1.1
+ */
+public class ModelSheath extends ModelBiped {
+ public ModelRenderer shape9;
+ public ModelRenderer shape10;
+
+ public ModelSheath() {
+ this.textureWidth = 32;
+ this.textureHeight = 32;
+ this.shape10 = new ModelRenderer(this, 16, 0);
+ this.shape10.setRotationPoint(-4.5F, 0.0F, 0.5F);
+ this.shape10.addBox(0.0F, 0.0F, -3.0F, 1, 12, 5, 0.0F);
+ this.setRotateAngle(shape10, 0.0F, 0.0F, -0.7853981633974483F);
+ this.shape9 = new ModelRenderer(this, 0, 0);
+ this.shape9.setRotationPoint(-0.3F, 3.5F, 2.0F);
+ this.shape9.addBox(-3.0F, 0.0F, 0.0F, 6, 24, 2, 0.0F);
+ this.setRotateAngle(shape9, 0.0F, 0.0F, -0.45F);
+ }
+
+ @Override
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
+ this.shape10.render(f5);
+ GL11.glPushMatrix();
+ GL11.glTranslatef(this.shape9.offsetX, this.shape9.offsetY, this.shape9.offsetZ);
+ GL11.glTranslatef(this.shape9.rotationPointX * f5, this.shape9.rotationPointY * f5, this.shape9.rotationPointZ * f5);
+ GL11.glScaled(0.65D, 0.65D, 0.5D);
+ GL11.glTranslatef(-this.shape9.offsetX, -this.shape9.offsetY, -this.shape9.offsetZ);
+ GL11.glTranslatef(-this.shape9.rotationPointX * f5, -this.shape9.rotationPointY * f5, -this.shape9.rotationPointZ * f5);
+ this.shape9.render(f5);
+ GL11.glPopMatrix();
+ }
+
+ /**
+ * This is a helper function from Tabula to set the rotation of model parts
+ */
+ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) {
+ modelRenderer.rotateAngleX = x;
+ modelRenderer.rotateAngleY = y;
+ modelRenderer.rotateAngleZ = z;
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java b/src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java
index c205c98..d97d7fb 100644
--- a/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java
+++ b/src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java
@@ -4,7 +4,7 @@
// Keep in mind that you still need to fill in some blanks
// - ZeuX
-package gmail.Lance5057.items;
+package gmail.Lance5057.armor.renderers;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
diff --git a/src/main/java/gmail/Lance5057/events/TDEventHandler.java b/src/main/java/gmail/Lance5057/events/TDEventHandler.java
new file mode 100644
index 0000000..bd87df2
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/events/TDEventHandler.java
@@ -0,0 +1,64 @@
+package gmail.Lance5057.events;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityFireball;
+import net.minecraft.entity.projectile.EntityLargeFireball;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.Vec3;
+import net.minecraftforge.common.MinecraftForge;
+import mods.battlegear2.api.PlayerEventChild.ShieldBlockEvent;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+
+public class TDEventHandler {
+
+ public TDEventHandler() {
+ MinecraftForge.EVENT_BUS.register(this);
+ }
+
+ @SubscribeEvent
+ public void TD_ShieldBlock(ShieldBlockEvent event)
+ {
+ NBTTagCompound tags = event.shield.getTagCompound().getCompoundTag("InfiTool");
+
+ if (!tags.getBoolean("Broken"))
+ {
+ event.getPlayer().addChatComponentMessage(new ChatComponentText("Pow!"));
+
+ if(tags.hasKey("Crest of Mirrors"))
+ {
+ Entity test = event.source.getSourceOfDamage();
+
+
+ if(event.source.getSourceOfDamage() instanceof EntityLargeFireball ||
+ event.source.getSourceOfDamage() instanceof EntityFireball )
+ {
+ EntityFireball ent = (EntityFireball) event.source.getSourceOfDamage();
+ //EntityFireball newEnt = new EntityFireball();
+// Vec3 playerlook = event.getPlayer().getLookVec();
+
+ ent.attackEntityFrom(DamageSource.generic, 1);
+
+//
+// //ent.setBeenAttacked();
+//
+// ent.motionX = playerlook.xCoord;
+// ent.motionY = playerlook.yCoord;
+// ent.motionZ = playerlook.zCoord;
+// ent.accelerationX = ent.motionX * 0.1D;
+// ent.accelerationY = ent.motionY * 0.1D;
+// ent.accelerationZ = ent.motionZ * 0.1D;
+//
+// ent.shootingEntity = event.getPlayer();
+
+ //ent.setDead();
+
+ event.getPlayer().addChatComponentMessage(new ChatComponentText("Nom"));
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/TinkerArmor.java b/src/main/java/gmail/Lance5057/items/TinkerArmor.java
deleted file mode 100644
index b4be050..0000000
--- a/src/main/java/gmail/Lance5057/items/TinkerArmor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package gmail.Lance5057.items;
-
-import gmail.Lance5057.TinkersDefense;
-import net.minecraft.client.model.ModelBiped;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemArmor;
-import net.minecraft.item.ItemStack;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-public class TinkerArmor extends ItemArmor {
- public TinkerArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
- super(par2EnumArmorMaterial, par3, par4);
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister par1IconRegister) {
- String itemName = "tinkersdefense:textures/armor/TinkerArmor";
- this.itemIcon = par1IconRegister.registerIcon(itemName);
- }
-
- @Override
- public String getArmorTexture(ItemStack stack, Entity entity, int slot,
- String type) {
- return "tinkersdefense:textures/armor/TinkerArmor.png";
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public ModelBiped getArmorModel(EntityLivingBase entityLiving,
- ItemStack itemStack, int armorSlot) {
- ModelBiped armorModel = null;
- if (itemStack != null) {
- if (itemStack.getItem() instanceof TinkerArmor) {
- int type = ((ItemArmor) itemStack.getItem()).armorType;
- if (type == 1 || type == 3) {
- armorModel = TinkersDefense.proxy.getArmorModel(0);
- } else {
- armorModel = TinkersDefense.proxy.getArmorModel(1);
- }
-
- }
- if (armorModel != null) {
- armorModel.bipedHead.showModel = armorSlot == 0;
- armorModel.bipedHeadwear.showModel = armorSlot == 0;
- armorModel.bipedBody.showModel = armorSlot == 1
- || armorSlot == 2;
- armorModel.bipedRightArm.showModel = armorSlot == 1;
- armorModel.bipedLeftArm.showModel = armorSlot == 1;
- armorModel.bipedRightLeg.showModel = armorSlot == 2
- || armorSlot == 3;
- armorModel.bipedLeftLeg.showModel = armorSlot == 2
- || armorSlot == 3;
- armorModel.isSneak = entityLiving.isSneaking();
- armorModel.isRiding = entityLiving.isRiding();
- armorModel.isChild = entityLiving.isChild();
- armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1
- : 0;
-
- if (entityLiving instanceof EntityPlayer) {
- armorModel.aimedBow = ((EntityPlayer) entityLiving)
- .getItemInUseDuration() > 2;
- }
- return armorModel;
- }
- }
- return armorModel;
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/tools/ArmorCore.java b/src/main/java/gmail/Lance5057/items/tools/ArmorCore.java
new file mode 100644
index 0000000..d834a53
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/tools/ArmorCore.java
@@ -0,0 +1,26 @@
+package gmail.Lance5057.items.tools;
+
+import tconstruct.library.tools.ToolCore;
+import cpw.mods.fml.relauncher.*;
+import mods.battlegear2.api.IEnchantable;
+import mods.battlegear2.api.ISheathed;
+import mods.battlegear2.api.shield.IArrowCatcher;
+import mods.battlegear2.api.shield.IArrowDisplay;
+import mods.battlegear2.api.shield.IShield;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.*;
+import net.minecraft.item.ItemArmor.ArmorMaterial;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+
+public abstract class ArmorCore extends ItemArmor
+{
+ public ArmorCore(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
+ super(par2EnumArmorMaterial, par3, par4);
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/tools/Shield.java b/src/main/java/gmail/Lance5057/items/tools/Shield.java
index 479c28c..af33f84 100644
--- a/src/main/java/gmail/Lance5057/items/tools/Shield.java
+++ b/src/main/java/gmail/Lance5057/items/tools/Shield.java
@@ -17,198 +17,217 @@ import net.minecraft.item.*;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
-public class Shield extends ToolCore implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
-{
-public Shield(int baseDamage)
-{
-super(baseDamage);
-}
-protected float baseSpeed ()
-{
-return 1.5f;
-}
-protected float effectiveSpeed ()
-{
-return 15f;
-}
-public float breakSpeedModifier ()
-{
-return 1.0f;
-}
-@Override
-public float getDigSpeed (ItemStack stack, Block block, int meta)
-{
-if (stack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken"))
-return 0.1f;
-for (int i = 0; i < web.length; i++)
-{
-if (web[i] == block.getMaterial())
-{
-return effectiveSpeed();
-}
-}
-return baseSpeed();
-}
-/**
-* returns the action that specifies what animation to play when the items
-* is being used
-*/
-@Override
-public EnumAction getItemUseAction (ItemStack par1ItemStack)
-{
-return EnumAction.block;
-}
-/**
-* How long it takes to use or consume an item
-*/
-@Override
-public int getMaxItemUseDuration (ItemStack par1ItemStack)
-{
-return 72000;
-}
-/**
-* Called whenever this item is equipped and the right mouse button is
-* pressed. Args: itemStack, world, entityPlayer
-*/
-@Override
-public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
-{
-player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
-return stack;
-}
-@Override
-public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ)
-{
-return false;
-}
-/**
-* Returns if the item (tool) can harvest results from the block type.
-*/
-@Override
-public boolean canHarvestBlock (Block block, ItemStack is)
-{
-for (int i = 0; i < web.length; i++)
-{
-if (block.getMaterial() == web[i])
-return true;
-}
-return super.canHarvestBlock(block, is);
-}
-protected Material[] getEffectiveMaterials ()
-{
-return web;
-}
-@Override
-@SideOnly(Side.CLIENT)
-public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
-{
- super.onUpdate(stack, world, entity, par4, par5);
- if (entity instanceof EntityPlayerSP)
- {
- EntityPlayerSP player = (EntityPlayerSP) entity;
- ItemStack usingItem = player.getItemInUse();
- if (usingItem != null && usingItem.getItem() == this)
- {
- player.movementInput.moveForward *= 2.5F;
- player.movementInput.moveStrafe *= 2.5F;
+public class Shield extends ToolCore implements IShield, ISheathed,
+ IArrowCatcher, IArrowDisplay {
+ public Shield(int baseDamage) {
+ super(baseDamage);
+ }
+
+ protected float baseSpeed() {
+ return 1.5f;
+ }
+
+ protected float effectiveSpeed() {
+ return 15f;
+ }
+
+ public float breakSpeedModifier() {
+ return 1.0f;
+ }
+
+ @Override
+ public float getDigSpeed(ItemStack stack, Block block, int meta) {
+ if (stack.getTagCompound().getCompoundTag("InfiTool")
+ .getBoolean("Broken"))
+ return 0.1f;
+ for (int i = 0; i < web.length; i++) {
+ if (web[i] == block.getMaterial()) {
+ return effectiveSpeed();
+ }
}
+ return baseSpeed();
+ }
+
+ /**
+ * returns the action that specifies what animation to play when the items
+ * is being used
+ */
+ @Override
+ public EnumAction getItemUseAction(ItemStack par1ItemStack) {
+ return EnumAction.block;
+ }
+
+ /**
+ * How long it takes to use or consume an item
+ */
+ @Override
+ public int getMaxItemUseDuration(ItemStack par1ItemStack) {
+ return 72000;
+ }
+
+ /**
+ * Called whenever this item is equipped and the right mouse button is
+ * pressed. Args: itemStack, world, entityPlayer
+ */
+ @Override
+ public ItemStack onItemRightClick(ItemStack stack, World world,
+ EntityPlayer player) {
+ player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
+ return stack;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world,
+ int x, int y, int z, int side, float clickX, float clickY,
+ float clickZ) {
+ return false;
+ }
+
+ /**
+ * Returns if the item (tool) can harvest results from the block type.
+ */
+ @Override
+ public boolean canHarvestBlock(Block block, ItemStack is) {
+ for (int i = 0; i < web.length; i++) {
+ if (block.getMaterial() == web[i])
+ return true;
+ }
+ return super.canHarvestBlock(block, is);
+ }
+
+ protected Material[] getEffectiveMaterials() {
+ return web;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void onUpdate(ItemStack stack, World world, Entity entity, int par4,
+ boolean par5) {
+ super.onUpdate(stack, world, entity, par4, par5);
+ if (entity instanceof EntityPlayerSP) {
+ EntityPlayerSP player = (EntityPlayerSP) entity;
+ ItemStack usingItem = player.getItemInUse();
+ if (usingItem != null && usingItem.getItem() == this) {
+ player.movementInput.moveForward *= 2.5F;
+ player.movementInput.moveStrafe *= 2.5F;
+ }
+ }
+ }
+
+ @Override
+ public String[] getTraits() {
+ return new String[] { "shield", "melee" };
+ }
+
+ public static Material[] web = new Material[] { Material.web,
+ Material.cloth, Material.coral, Material.cake };
+ public static Material[] none = new Material[0];
+
+ protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getArrowCount(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void setArrowCount(ItemStack arg0, int arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean catchArrow(ItemStack arg0, EntityPlayer arg1,
+ IProjectile arg2) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean sheatheOnBack(ItemStack item) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void blockAnimation(EntityPlayer arg0, float arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean canBlock(ItemStack arg0, DamageSource arg1) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getBashTimer(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getBlockAngle(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getDamageDecayRate(ItemStack arg0, float arg1) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getDecayRate(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getRecoveryRate(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Item getAccessoryItem() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDefaultFolder() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getEffectSuffix() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Item getHeadItem() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getIconSuffix(int arg0) {
+ // TODO Auto-generated method stub
+ return null;
}
-}
-@Override
-public String[] getTraits ()
-{
-return new String[] { "shield", "melee" };
-}
-public static Material[] web = new Material[] { Material.web, Material.cloth, Material.coral, Material.cake };
-public static Material[] none = new Material[0];
-
-protected String getHarvestType() {
- // TODO Auto-generated method stub
- return null;
-}
-@Override
-public int getArrowCount(ItemStack arg0) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public void setArrowCount(ItemStack arg0, int arg1) {
- // TODO Auto-generated method stub
-
-}
-@Override
-public boolean catchArrow(ItemStack arg0, EntityPlayer arg1, IProjectile arg2) {
- // TODO Auto-generated method stub
- return false;
-}
-@Override
-public boolean sheatheOnBack(ItemStack item) {
- // TODO Auto-generated method stub
- return false;
-}
-@Override
-public void blockAnimation(EntityPlayer arg0, float arg1) {
- // TODO Auto-generated method stub
-
-}
-@Override
-public boolean canBlock(ItemStack arg0, DamageSource arg1) {
- // TODO Auto-generated method stub
- return false;
-}
-@Override
-public int getBashTimer(ItemStack arg0) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public float getBlockAngle(ItemStack arg0) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public float getDamageDecayRate(ItemStack arg0, float arg1) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public float getDecayRate(ItemStack arg0) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public float getRecoveryRate(ItemStack arg0) {
- // TODO Auto-generated method stub
- return 0;
-}
-@Override
-public Item getAccessoryItem() {
- // TODO Auto-generated method stub
- return null;
-}
-@Override
-public String getDefaultFolder() {
- // TODO Auto-generated method stub
- return null;
-}
-@Override
-public String getEffectSuffix() {
- // TODO Auto-generated method stub
- return null;
-}
-@Override
-public Item getHeadItem() {
- // TODO Auto-generated method stub
- return null;
-}
-@Override
-public String getIconSuffix(int arg0) {
- // TODO Auto-generated method stub
- return null;
-}
} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java b/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java
index d03779b..a6ea354 100644
--- a/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java
+++ b/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java
@@ -2,16 +2,40 @@ package gmail.Lance5057.modifiers;
import java.util.Random;
+import mods.battlegear2.api.PlayerEventChild;
+import mods.battlegear2.api.core.IBattlePlayer;
+import mods.battlegear2.api.core.InventoryPlayerBattle;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityFireball;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerEvent;
import tconstruct.library.ActiveToolMod;
import tconstruct.library.tools.ToolCore;
public class TDefenseActiveToolMod extends ActiveToolMod {
@Override
+ public void updateTool(ToolCore tool, ItemStack stack, World world, Entity entity)
+ {
+// NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
+//
+// if (!tags.hasKey("Broken")) {
+// if(((IBattlePlayer)entity).isBlockingWithShield())
+// {
+// if(ShieldEvent.source.getEntity() instanceof EntityFireball)
+// {
+//
+// }
+// }
+// }
+ }
+
+ @Override
+
public int baseAttackDamage(int earlyModDamage, int damage, ToolCore tool,
NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack,
EntityLivingBase player, Entity entity) {
diff --git a/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofFeathers.java b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofFeathers.java
new file mode 100644
index 0000000..53fdbed
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofFeathers.java
@@ -0,0 +1,87 @@
+package gmail.Lance5057.modifiers.shields;
+
+import tconstruct.modifiers.tools.ItemModTypeFilter;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class modifierCrestofFeathers extends ItemModTypeFilter
+{
+ String tooltipName;
+ int max = 5;
+ String guiType;
+
+ public modifierCrestofFeathers(String type, int effect, ItemStack[] items, int[] values)
+ {
+ super(effect, "Crest of Feathers", items, values);
+ tooltipName = "\u00A7fCrest of Feathers";
+ guiType = type;
+ }
+
+ @Override
+ protected boolean canModify (ItemStack tool, ItemStack[] input)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ if (!tags.hasKey(key))
+ return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max;
+
+ if (matchingAmount(input) > max)
+ return false;
+
+ int keyPair[] = tags.getIntArray(key);
+ if (keyPair[0] + matchingAmount(input) <= keyPair[1])
+ return true;
+
+ else if (keyPair[0] == keyPair[1])
+ return tags.getInteger("Modifiers") > 0;
+
+ else
+ return false;
+ }
+
+ @Override
+ public void modify (ItemStack[] input, ItemStack tool)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ int increase = matchingAmount(input);
+ if (tags.hasKey(key))
+ {
+ int[] keyPair = tags.getIntArray(key);
+
+ if (keyPair[0] % max == 0)
+ {
+ keyPair[0] += increase;
+ keyPair[1] += max;
+ tags.setIntArray(key, keyPair);
+
+ int modifiers = tags.getInteger("Modifiers");
+ modifiers -= 1;
+ tags.setInteger("Modifiers", modifiers);
+ }
+ else
+ {
+ keyPair[0] += increase;
+ tags.setIntArray(key, keyPair);
+ }
+ updateModTag(tool, keyPair);
+
+ }
+ else
+ {
+ int modifiers = tags.getInteger("Modifiers");
+ modifiers -= 1;
+ tags.setInteger("Modifiers", modifiers);
+ String modName = "\u00A76" + guiType + " (" + increase + "/" + max + ")";
+ int tooltipIndex = addToolTip(tool, tooltipName, modName);
+ int[] keyPair = new int[] { increase, max, tooltipIndex };
+ tags.setIntArray(key, keyPair);
+ }
+ }
+
+ void updateModTag (ItemStack tool, int[] keys)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ String tip = "ModifierTip" + keys[2];
+ String modName = "\u00A76" + guiType + " (" + keys[0] + "/" + keys[1] + ")";
+ tags.setString(tip, modName);
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java
new file mode 100644
index 0000000..22d053f
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java
@@ -0,0 +1,87 @@
+package gmail.Lance5057.modifiers.shields;
+
+import tconstruct.modifiers.tools.ItemModTypeFilter;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class modifierCrestofMirrors extends ItemModTypeFilter
+{
+ String tooltipName;
+ int max = 5;
+ String guiType;
+
+ public modifierCrestofMirrors(String type, int effect, ItemStack[] items, int[] values)
+ {
+ super(effect, "Crest of Mirrors", items, values);
+ tooltipName = "\u00A7bCrest of Mirrors";
+ guiType = type;
+ }
+
+ @Override
+ protected boolean canModify (ItemStack tool, ItemStack[] input)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ if (!tags.hasKey(key))
+ return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max;
+
+ if (matchingAmount(input) > max)
+ return false;
+
+ int keyPair[] = tags.getIntArray(key);
+ if (keyPair[0] + matchingAmount(input) <= keyPair[1])
+ return true;
+
+ else if (keyPair[0] == keyPair[1])
+ return tags.getInteger("Modifiers") > 0;
+
+ else
+ return false;
+ }
+
+ @Override
+ public void modify (ItemStack[] input, ItemStack tool)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ int increase = matchingAmount(input);
+ if (tags.hasKey(key))
+ {
+ int[] keyPair = tags.getIntArray(key);
+
+ if (keyPair[0] % max == 0)
+ {
+ keyPair[0] += increase;
+ keyPair[1] += max;
+ tags.setIntArray(key, keyPair);
+
+ int modifiers = tags.getInteger("Modifiers");
+ modifiers -= 1;
+ tags.setInteger("Modifiers", modifiers);
+ }
+ else
+ {
+ keyPair[0] += increase;
+ tags.setIntArray(key, keyPair);
+ }
+ updateModTag(tool, keyPair);
+
+ }
+ else
+ {
+ int modifiers = tags.getInteger("Modifiers");
+ modifiers -= 1;
+ tags.setInteger("Modifiers", modifiers);
+ String modName = "\u00A76" + guiType + " (" + increase + "/" + max + ")";
+ int tooltipIndex = addToolTip(tool, tooltipName, modName);
+ int[] keyPair = new int[] { increase, max, tooltipIndex };
+ tags.setIntArray(key, keyPair);
+ }
+ }
+
+ void updateModTag (ItemStack tool, int[] keys)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ String tip = "ModifierTip" + keys[2];
+ String modName = "\u00A76" + guiType + " (" + keys[0] + "/" + keys[1] + ")";
+ tags.setString(tip, modName);
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
index d827b92..b295671 100644
--- a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
+++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
@@ -1,7 +1,8 @@
package gmail.Lance5057.proxy;
import gmail.Lance5057.TinkersDefense;
-import gmail.Lance5057.items.ModelTinkerArmor;
+import gmail.Lance5057.armor.renderers.ModelSheath;
+import gmail.Lance5057.armor.renderers.ModelTinkerArmor;
import gmail.Lance5057.models.Renderer_ArmorAnvil;
import gmail.Lance5057.models.Renderer_CrestMount;
import gmail.Lance5057.models.Renderer_JewelersBench;
@@ -11,13 +12,11 @@ import gmail.Lance5057.tileentities.TileEntity_JewelersBench;
import net.minecraft.client.model.ModelBiped;
import net.minecraftforge.client.MinecraftForgeClient;
import tconstruct.client.FlexibleToolRenderer;
-import tconstruct.library.TConstructRegistry;
-import tconstruct.library.client.TConstructClientRegistry;
-import tconstruct.library.tools.ToolCore;
import cpw.mods.fml.client.registry.ClientRegistry;
public class ClientProxy extends CommonProxy {
private static final ModelTinkerArmor tutChest = new ModelTinkerArmor(1.0f);
+ public static final ModelSheath sheath = new ModelSheath();
@Override
public void registerRenderers() {