From 08f88daf103c955b92eb29409cddca7647bfbfdb Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Thu, 4 Jun 2015 08:17:23 -0500 Subject: Added Event handler, crest modifiers, sheath --- src/main/java/gmail/Lance5057/TinkersDefense.java | 55 ++- .../java/gmail/Lance5057/armor/items/Sheath.java | 49 +++ .../gmail/Lance5057/armor/items/TinkerArmor.java | 77 ++++ .../Lance5057/armor/renderers/ModelSheath.java | 50 +++ .../armor/renderers/ModelTinkerArmor.java | 109 ++++++ .../gmail/Lance5057/events/TDEventHandler.java | 64 ++++ .../gmail/Lance5057/items/ModelTinkerArmor.java | 109 ------ .../java/gmail/Lance5057/items/TinkerArmor.java | 74 ---- .../gmail/Lance5057/items/tools/ArmorCore.java | 26 ++ .../java/gmail/Lance5057/items/tools/Shield.java | 403 +++++++++++---------- .../Lance5057/modifiers/TDefenseActiveToolMod.java | 24 ++ .../modifiers/shields/modifierCrestofFeathers.java | 87 +++++ .../modifiers/shields/modifierCrestofMirrors.java | 87 +++++ .../java/gmail/Lance5057/proxy/ClientProxy.java | 7 +- .../items/heatershield/triangles_shield_effect.png | Bin 0 -> 396 bytes .../broadsword/daze_sword_effect.png | Bin 211 -> 0 bytes .../tinkersdefense/textures/armor/Sheath.png | Bin 0 -> 962 bytes .../textures/broadsword/daze_sword_effect.png | Bin 211 -> 0 bytes .../assets/tinkersdefense/textures/items/Icon.png | Bin 0 -> 432 bytes 19 files changed, 831 insertions(+), 390 deletions(-) create mode 100644 src/main/java/gmail/Lance5057/armor/items/Sheath.java create mode 100644 src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java create mode 100644 src/main/java/gmail/Lance5057/armor/renderers/ModelSheath.java create mode 100644 src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java create mode 100644 src/main/java/gmail/Lance5057/events/TDEventHandler.java delete mode 100644 src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java delete mode 100644 src/main/java/gmail/Lance5057/items/TinkerArmor.java create mode 100644 src/main/java/gmail/Lance5057/items/tools/ArmorCore.java create mode 100644 src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofFeathers.java create mode 100644 src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java create mode 100644 src/main/resources/assets/tinker/textures/items/heatershield/triangles_shield_effect.png delete mode 100644 src/main/resources/assets/tinkersdefense/broadsword/daze_sword_effect.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/armor/Sheath.png delete mode 100644 src/main/resources/assets/tinkersdefense/textures/broadsword/daze_sword_effect.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/Icon.png (limited to 'src') 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/armor/renderers/ModelTinkerArmor.java b/src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java new file mode 100644 index 0000000..d97d7fb --- /dev/null +++ b/src/main/java/gmail/Lance5057/armor/renderers/ModelTinkerArmor.java @@ -0,0 +1,109 @@ +// Date: 1/19/2015 11:08:25 PM +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package gmail.Lance5057.armor.renderers; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelTinkerArmor extends ModelBiped +{ + //fields + ModelRenderer BackPlate; + ModelRenderer BreastPlate; + ModelRenderer Plackart; + ModelRenderer PauldronL; + ModelRenderer ArmL; + ModelRenderer PauldronR; + ModelRenderer ArmR; + + public ModelTinkerArmor(float f) + { + super(f, 0, 64,64); + textureWidth = 64; + textureHeight = 64; + + BackPlate = new ModelRenderer(this, 0, 56); + BackPlate.addBox(-4F, 0F, 1F, 8, 5, 3); + BackPlate.setRotationPoint(0F, 0F, 0F); + BackPlate.setTextureSize(64, 32); + BackPlate.mirror = true; + setRotation(BackPlate, -0.0872665F, 0F, 0F); + this.bipedBody.addChild(BackPlate); + + BreastPlate = new ModelRenderer(this, 0, 32); + BreastPlate.addBox(-4F, -1F, -5F, 8, 6, 4); + BreastPlate.setRotationPoint(0F, 0F, 0F); + BreastPlate.setTextureSize(64, 32); + BreastPlate.mirror = true; + setRotation(BreastPlate, 0.4363323F, 0F, 0F); + this.bipedBody.addChild(BreastPlate); + + Plackart = new ModelRenderer(this, 0, 42); + Plackart.addBox(-4F, 5F, -3F, 8, 7, 6); + Plackart.setRotationPoint(0F, 0F, 0F); + Plackart.setTextureSize(64, 32); + Plackart.mirror = true; + setRotation(Plackart, 0F, 0F, 0F); + this.bipedBody.addChild(Plackart); + + PauldronL = new ModelRenderer(this, 28, 32); + PauldronL.addBox(1F, -2F, -3.5F, 5, 5, 7); + PauldronL.setRotationPoint(0F, 0F, 0F); + PauldronL.setTextureSize(64, 32); + PauldronL.mirror = true; + setRotation(PauldronL, 0F, 0F, -0.7853982F); + this.bipedLeftArm.addChild(PauldronL); + + ArmL = new ModelRenderer(this, 28, 44); + ArmL.addBox(-1F, -2F, -3F, 5, 10, 6); + ArmL.setRotationPoint(0F, 0F, 0F); + ArmL.setTextureSize(64, 32); + ArmL.mirror = true; + setRotation(ArmL, 0F, 0F, 0F); + this.bipedLeftArm.addChild(ArmL); + + PauldronR = new ModelRenderer(this, 28, 32); + PauldronR.mirror = true; + PauldronR.addBox(-6F, -2F, -3.5F, 5, 5, 7); + PauldronR.setRotationPoint(0F, 0F, 0F); + PauldronR.setTextureSize(64, 32); + PauldronR.mirror = true; + setRotation(PauldronR, 0F, 0F, 0.7853982F); + PauldronR.mirror = false; + this.bipedRightArm.addChild(PauldronR); + + ArmR = new ModelRenderer(this, 28, 44); + ArmR.mirror = true; + ArmR.addBox(-4F, -2F, -3F, 5, 10, 6); + ArmR.setRotationPoint(0F, 0F, 0F); + ArmR.setTextureSize(64, 32); + ArmR.mirror = true; + setRotation(ArmR, 0F, 0F, 0F); + ArmR.mirror = false; + this.bipedRightArm.addChild(ArmR); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + +} 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/ModelTinkerArmor.java b/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java deleted file mode 100644 index c205c98..0000000 --- a/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java +++ /dev/null @@ -1,109 +0,0 @@ -// Date: 1/19/2015 11:08:25 PM -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package gmail.Lance5057.items; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTinkerArmor extends ModelBiped -{ - //fields - ModelRenderer BackPlate; - ModelRenderer BreastPlate; - ModelRenderer Plackart; - ModelRenderer PauldronL; - ModelRenderer ArmL; - ModelRenderer PauldronR; - ModelRenderer ArmR; - - public ModelTinkerArmor(float f) - { - super(f, 0, 64,64); - textureWidth = 64; - textureHeight = 64; - - BackPlate = new ModelRenderer(this, 0, 56); - BackPlate.addBox(-4F, 0F, 1F, 8, 5, 3); - BackPlate.setRotationPoint(0F, 0F, 0F); - BackPlate.setTextureSize(64, 32); - BackPlate.mirror = true; - setRotation(BackPlate, -0.0872665F, 0F, 0F); - this.bipedBody.addChild(BackPlate); - - BreastPlate = new ModelRenderer(this, 0, 32); - BreastPlate.addBox(-4F, -1F, -5F, 8, 6, 4); - BreastPlate.setRotationPoint(0F, 0F, 0F); - BreastPlate.setTextureSize(64, 32); - BreastPlate.mirror = true; - setRotation(BreastPlate, 0.4363323F, 0F, 0F); - this.bipedBody.addChild(BreastPlate); - - Plackart = new ModelRenderer(this, 0, 42); - Plackart.addBox(-4F, 5F, -3F, 8, 7, 6); - Plackart.setRotationPoint(0F, 0F, 0F); - Plackart.setTextureSize(64, 32); - Plackart.mirror = true; - setRotation(Plackart, 0F, 0F, 0F); - this.bipedBody.addChild(Plackart); - - PauldronL = new ModelRenderer(this, 28, 32); - PauldronL.addBox(1F, -2F, -3.5F, 5, 5, 7); - PauldronL.setRotationPoint(0F, 0F, 0F); - PauldronL.setTextureSize(64, 32); - PauldronL.mirror = true; - setRotation(PauldronL, 0F, 0F, -0.7853982F); - this.bipedLeftArm.addChild(PauldronL); - - ArmL = new ModelRenderer(this, 28, 44); - ArmL.addBox(-1F, -2F, -3F, 5, 10, 6); - ArmL.setRotationPoint(0F, 0F, 0F); - ArmL.setTextureSize(64, 32); - ArmL.mirror = true; - setRotation(ArmL, 0F, 0F, 0F); - this.bipedLeftArm.addChild(ArmL); - - PauldronR = new ModelRenderer(this, 28, 32); - PauldronR.mirror = true; - PauldronR.addBox(-6F, -2F, -3.5F, 5, 5, 7); - PauldronR.setRotationPoint(0F, 0F, 0F); - PauldronR.setTextureSize(64, 32); - PauldronR.mirror = true; - setRotation(PauldronR, 0F, 0F, 0.7853982F); - PauldronR.mirror = false; - this.bipedRightArm.addChild(PauldronR); - - ArmR = new ModelRenderer(this, 28, 44); - ArmR.mirror = true; - ArmR.addBox(-4F, -2F, -3F, 5, 10, 6); - ArmR.setRotationPoint(0F, 0F, 0F); - ArmR.setTextureSize(64, 32); - ArmR.mirror = true; - setRotation(ArmR, 0F, 0F, 0F); - ArmR.mirror = false; - this.bipedRightArm.addChild(ArmR); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} 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() { diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/triangles_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/triangles_shield_effect.png new file mode 100644 index 0000000..cd14f6a Binary files /dev/null and b/src/main/resources/assets/tinker/textures/items/heatershield/triangles_shield_effect.png differ diff --git a/src/main/resources/assets/tinkersdefense/broadsword/daze_sword_effect.png b/src/main/resources/assets/tinkersdefense/broadsword/daze_sword_effect.png deleted file mode 100644 index 2368f14..0000000 Binary files a/src/main/resources/assets/tinkersdefense/broadsword/daze_sword_effect.png and /dev/null differ diff --git a/src/main/resources/assets/tinkersdefense/textures/armor/Sheath.png b/src/main/resources/assets/tinkersdefense/textures/armor/Sheath.png new file mode 100644 index 0000000..c0c4ab5 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/armor/Sheath.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/broadsword/daze_sword_effect.png b/src/main/resources/assets/tinkersdefense/textures/broadsword/daze_sword_effect.png deleted file mode 100644 index 2368f14..0000000 Binary files a/src/main/resources/assets/tinkersdefense/textures/broadsword/daze_sword_effect.png and /dev/null differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/Icon.png b/src/main/resources/assets/tinkersdefense/textures/items/Icon.png new file mode 100644 index 0000000..fb2fe5c Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/Icon.png differ -- cgit v1.2.3