From 6af565ab07a802518345df7f06772df56f6e205f Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Tue, 22 Aug 2017 01:35:44 -0500 Subject: 1.4.1.1a update --- src/main/java/lance5057/tDefense/Reference.java | 2 +- .../java/lance5057/tDefense/TinkersDefense.java | 7 +- .../armor/items/straps/StrapsContainer.java | 11 +- .../tDefense/armor/items/straps/StrapsGui.java | 3 +- .../lance5057/tDefense/baubles/BaublesBase.java | 40 --- .../tDefense/baubles/BaublesClientProxy.java | 91 ----- .../lance5057/tDefense/baubles/BaublesItems.java | 28 -- .../tDefense/baubles/renderers/BaubleRenderer.java | 108 ------ .../tDefense/baubles/renderers/SheatheModel.java | 128 ------- .../tileentities/TileEntity_JewelersBench.java | 8 - .../tDefense/baubles/tools/BaubleTool.java | 152 -------- .../lance5057/tDefense/baubles/tools/Sheathe.java | 48 --- .../tDefense/baubles/tools/TDBaubles.java | 99 ------ .../tDefense/baubles/tools/TinkersGauntlets.java | 131 ------- .../java/lance5057/tDefense/core/CoreItems.java | 9 - .../tDefense/core/materials/TDMaterials.java | 388 +++++++++++++-------- .../core/materials/traits/TraitBarbed.java | 23 ++ .../core/materials/traits/TraitDogToy.java | 77 ++++ .../lance5057/tDefense/core/parts/TDParts.java | 7 + .../tDefense/core/renderers/BaubleRenderer.java | 108 ++++++ .../tDefense/core/renderers/SheatheModel.java | 128 +++++++ .../tileentities/TileEntity_JewelersBench.java | 8 + .../lance5057/tDefense/core/tools/FishingRod.java | 45 --- .../tDefense/core/tools/HeaterShield.java | 141 -------- .../lance5057/tDefense/core/tools/RoundShield.java | 42 --- .../java/lance5057/tDefense/core/tools/Shears.java | 146 -------- .../java/lance5057/tDefense/core/tools/Shield.java | 147 -------- .../tDefense/core/tools/TDToolEvents.java | 1 + .../lance5057/tDefense/core/tools/TDTools.java | 26 ++ .../lance5057/tDefense/core/tools/Zweihander.java | 96 ----- .../tDefense/core/tools/bases/BaubleTool.java | 152 ++++++++ .../tDefense/core/tools/bases/Shield.java | 147 ++++++++ .../tDefense/core/tools/basic/FishingRod.java | 45 +++ .../tDefense/core/tools/basic/HeaterShield.java | 142 ++++++++ .../tDefense/core/tools/basic/RoundShield.java | 43 +++ .../tDefense/core/tools/basic/Shears.java | 146 ++++++++ .../tDefense/core/tools/basic/Zweihander.java | 96 +++++ .../tDefense/core/tools/baubles/Amulet.java | 31 ++ .../tDefense/core/tools/baubles/Ring.java | 31 ++ .../tDefense/core/tools/baubles/Sheathe.java | 47 +++ .../core/tools/baubles/TinkersGauntlets.java | 131 +++++++ .../java/lance5057/tDefense/proxy/ClientProxy.java | 137 +++++--- .../models/item/parts/armor_plate.tmat.json | 5 + .../models/item/parts/chainmail.tmat.json | 5 + .../models/item/parts/clasp.tmat.json | 5 + .../models/item/parts/cloth.tmat.json | 5 + .../models/item/parts/filigree.tmat.json | 5 + .../models/item/parts/ringshank.tmat.json | 5 + .../models/item/parts/rivets.tmat.json | 5 + .../models/item/parts/setting.tmat.json | 5 + .../models/item/parts/wire.tmat.json | 5 + .../models/item/tools/amulet.tcon.json | 8 + .../models/item/tools/ring.tcon.json | 8 + .../tinkersdefense/textures/gui/straps_helm.png | Bin 0 -> 1079 bytes .../tinkersdefense/textures/items/_armorplate.png | Bin 0 -> 287 bytes .../tinkersdefense/textures/items/_chainmaille.png | Bin 0 -> 562 bytes .../tinkersdefense/textures/items/_clasp.png | Bin 0 -> 426 bytes .../tinkersdefense/textures/items/_cloth.png | Bin 0 -> 767 bytes .../tinkersdefense/textures/items/_filigree.png | Bin 0 -> 311 bytes .../tinkersdefense/textures/items/_ringshank.png | Bin 0 -> 429 bytes .../tinkersdefense/textures/items/_rivets.png | Bin 0 -> 269 bytes .../tinkersdefense/textures/items/_setting.png | Bin 0 -> 354 bytes .../assets/tinkersdefense/textures/items/_wire.png | Bin 0 -> 375 bytes .../textures/items/baubles/amulet/_broken.png | Bin 0 -> 121 bytes .../textures/items/baubles/amulet/_chain.png | Bin 0 -> 170 bytes .../textures/items/baubles/amulet/_clasp.png | Bin 0 -> 100 bytes .../textures/items/baubles/amulet/_setting.png | Bin 0 -> 132 bytes .../textures/items/baubles/ring/_band.png | Bin 0 -> 331 bytes .../textures/items/baubles/ring/_broken.png | Bin 0 -> 325 bytes .../textures/items/baubles/ring/_filigree.png | Bin 0 -> 117 bytes .../textures/items/baubles/ring/_setting.png | Bin 0 -> 105 bytes src/main/resources/mcmod.info | 2 +- 72 files changed, 1781 insertions(+), 1678 deletions(-) delete mode 100644 src/main/java/lance5057/tDefense/baubles/BaublesBase.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/BaublesItems.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/tileentities/TileEntity_JewelersBench.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java delete mode 100644 src/main/java/lance5057/tDefense/baubles/tools/TinkersGauntlets.java create mode 100644 src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java create mode 100644 src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java create mode 100644 src/main/java/lance5057/tDefense/core/renderers/BaubleRenderer.java create mode 100644 src/main/java/lance5057/tDefense/core/renderers/SheatheModel.java create mode 100644 src/main/java/lance5057/tDefense/core/tileentities/TileEntity_JewelersBench.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/FishingRod.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/HeaterShield.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/RoundShield.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/Shears.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/Shield.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/Zweihander.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/bases/BaubleTool.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/bases/Shield.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/basic/FishingRod.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/basic/HeaterShield.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/basic/RoundShield.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/basic/Shears.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/baubles/Amulet.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/baubles/Ring.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/baubles/Sheathe.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/baubles/TinkersGauntlets.java create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/armor_plate.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/chainmail.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/clasp.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/cloth.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/filigree.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/ringshank.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/rivets.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/setting.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/parts/wire.tmat.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/tools/amulet.tcon.json create mode 100644 src/main/resources/assets/tinkersdefense/models/item/tools/ring.tcon.json create mode 100644 src/main/resources/assets/tinkersdefense/textures/gui/straps_helm.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_armorplate.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_chainmaille.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_clasp.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_cloth.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_filigree.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_ringshank.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_rivets.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_setting.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/_wire.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_broken.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_chain.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_clasp.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_setting.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_band.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_broken.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_filigree.png create mode 100644 src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_setting.png (limited to 'src') diff --git a/src/main/java/lance5057/tDefense/Reference.java b/src/main/java/lance5057/tDefense/Reference.java index 61a1aec..f10db99 100644 --- a/src/main/java/lance5057/tDefense/Reference.java +++ b/src/main/java/lance5057/tDefense/Reference.java @@ -4,7 +4,7 @@ public class Reference { public static final String MOD_ID = "tinkersdefense"; - public static final String VERSION = "1.4.0.8a"; + public static final String VERSION = "1.4.1.1a"; public static final String MOD_NAME = "Tinkers' Defense"; } diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java index bcd385e..1aae6a1 100644 --- a/src/main/java/lance5057/tDefense/TinkersDefense.java +++ b/src/main/java/lance5057/tDefense/TinkersDefense.java @@ -3,7 +3,6 @@ package lance5057.tDefense; import java.util.Iterator; import java.util.List; -import lance5057.tDefense.baubles.BaublesBase; import lance5057.tDefense.core.CoreBase; import lance5057.tDefense.core.materials.TDMaterials; import lance5057.tDefense.core.parts.TDParts; @@ -42,7 +41,6 @@ public class TinkersDefense { HolidayBase holiday; ModuleBase core; - ModuleBase baubles; //ModuleBase armor; // public static TDEventHandler TDevents; @@ -126,7 +124,6 @@ public class TinkersDefense { core = new CoreBase(); holiday = new HolidayBase(); - baubles = new BaublesBase(); //armor = new ArmorBase(); mats = new TDMaterials(); @@ -334,8 +331,9 @@ public class TinkersDefense { mats.preInit(e); parts.preInit(e); tools.preInit(e); - baubles.preInit(e); proxy.preInit(); + + mats.integrate(mats.materials, mats.materialIntegrations, mats.deferredMaterials); } @EventHandler @@ -355,7 +353,6 @@ public class TinkersDefense { mats.init(e); parts.init(e); tools.init(e); - baubles.init(e); proxy.init(); phandler.init(); diff --git a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java index 7d5b408..96a2aed 100644 --- a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java +++ b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java @@ -33,16 +33,7 @@ public class StrapsContainer extends Container // ITEM INVENTORY - you'll need to adjust the slot locations to match your texture file // I have them set vertically in columns of 4 to the right of the player model - for (i = 0; i < ItemStrapsInv.INVSIZE; ++i) - { - // You can make a custom Slot if you need different behavior, - // such as only certain item types can be put into this slot - // We made a custom slot to prevent our inventory-storing item - // from being stored within itself, but if you want to allow that and - // you followed my advice at the end of the above step, then you - // could get away with using the vanilla Slot class - this.addSlotToContainer(new Slot(this.inventory, i, 80 + (18 * (int)(i/4)), 8 + (18*(i%4)))); - } + this.addSlotToContainer(new Slot(this.inventory, 0, 80, 8+23)); // If you want, you can add ARMOR SLOTS here as well, but you need to // make a public version of SlotArmor. I won't be doing that in this tutorial. diff --git a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsGui.java b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsGui.java index acd6868..5cd229e 100644 --- a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsGui.java +++ b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsGui.java @@ -3,6 +3,7 @@ package lance5057.tDefense.armor.items.straps; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import lance5057.tDefense.Reference; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; @@ -24,7 +25,7 @@ public class StrapsGui extends GuiContainer * I have provided a sample texture file that works with this tutorial. Download it * from Forge_Tutorials/textures/gui/ */ - private static final ResourceLocation iconLocation = new ResourceLocation("inventoryitemmod", "textures/gui/inventoryitem.png"); + private static final ResourceLocation iconLocation = new ResourceLocation(Reference.MOD_ID, "textures/gui/straps_helm.png"); /** The inventory to render on screen */ private final ItemStrapsInv inventory; diff --git a/src/main/java/lance5057/tDefense/baubles/BaublesBase.java b/src/main/java/lance5057/tDefense/baubles/BaublesBase.java deleted file mode 100644 index b2af546..0000000 --- a/src/main/java/lance5057/tDefense/baubles/BaublesBase.java +++ /dev/null @@ -1,40 +0,0 @@ -package lance5057.tDefense.baubles; - -import lance5057.tDefense.baubles.tools.TDBaubles; -import lance5057.tDefense.util.ModuleBase; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; - -public class BaublesBase extends ModuleBase -{ - public static BaublesBase instance = new BaublesBase(); - - - public static BaublesItems items; - public static TDBaubles tools; - - @Override - public void preInit(FMLPreInitializationEvent e) - { - items = new BaublesItems(); - tools = new TDBaubles(); - - items.preInit(e); - tools.preInit(e); - } - - @Override - public void init(FMLInitializationEvent e) { - // TODO Auto-generated method stub - items.init(e); - tools.init(e); - } - - @Override - public void postInit(FMLPostInitializationEvent e) { - // TODO Auto-generated method stub - items.postInit(e); - tools.postInit(e); - } -} diff --git a/src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java b/src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java deleted file mode 100644 index d5603ff..0000000 --- a/src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java +++ /dev/null @@ -1,91 +0,0 @@ -package lance5057.tDefense.baubles; - -import java.util.Map; - -import lance5057.tDefense.Reference; -import lance5057.tDefense.baubles.renderers.BaubleRenderer; -import lance5057.tDefense.baubles.renderers.SheatheModel; -import lance5057.tDefense.baubles.tools.TDBaubles; -import lance5057.tDefense.core.tools.TDTools; -import lance5057.tDefense.util.ModuleBase; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.client.renderer.entity.RenderPlayer; -import net.minecraft.item.Item; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import slimeknights.tconstruct.common.ModelRegisterUtil; -import slimeknights.tconstruct.library.TinkerRegistryClient; -import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; - -public class BaublesClientProxy { - - public SheatheModel sheathe; - - ToolBuildGuiInfo sheatheGUI; - - public void preInit() { - // TODO Auto-generated method stub - - reloadRenderers(); - } - - public void init() { - // TODO Auto-generated method stub - Map skinMap = Minecraft.getMinecraft().getRenderManager().getSkinMap(); - RenderPlayer render; - render = skinMap.get("default"); - render.addLayer(new BaubleRenderer()); - - render = skinMap.get("slim"); - render.addLayer(new BaubleRenderer()); - - createToolGuis(); - setupToolGuis(); - registerToolGuis(); - } - - public void postInit() - { - } - - public void registerToolRenderers() - { - ModelRegisterUtil.registerToolModel(TDBaubles.sheathe); - } - - public void createToolGuis() - { - sheatheGUI = new ToolBuildGuiInfo(TDBaubles.sheathe); - } - - public void setupToolGuis() - { - sheatheGUI.addSlotPosition(34, 15+8); - sheatheGUI.addSlotPosition(34, 33+8); - sheatheGUI.addSlotPosition(34, 51+8); - } - - public void registerToolGuis() - { - TinkerRegistryClient.addToolBuilding(sheatheGUI); - } - - public void reloadRenderers() - { - sheathe = new SheatheModel(); - registerToolRenderers(); - } - - public void setToolGuis() - { - sheatheGUI.positions.clear(); - sheatheGUI.addSlotPosition(34, 15); - sheatheGUI.addSlotPosition(34, 33); - sheatheGUI.addSlotPosition(34, 51); - } - -} diff --git a/src/main/java/lance5057/tDefense/baubles/BaublesItems.java b/src/main/java/lance5057/tDefense/baubles/BaublesItems.java deleted file mode 100644 index 69323bb..0000000 --- a/src/main/java/lance5057/tDefense/baubles/BaublesItems.java +++ /dev/null @@ -1,28 +0,0 @@ -package lance5057.tDefense.baubles; - -import lance5057.tDefense.util.ItemsBase; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; - -public class BaublesItems extends ItemsBase -{ - - @Override - public void preInit(FMLPreInitializationEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void init(FMLInitializationEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void postInit(FMLPostInitializationEvent e) { - // TODO Auto-generated method stub - - } -} diff --git a/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java b/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java deleted file mode 100644 index 8c6aec3..0000000 --- a/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java +++ /dev/null @@ -1,108 +0,0 @@ -package lance5057.tDefense.baubles.renderers; - -import lance5057.tDefense.core.tools.Shield; -import lance5057.tDefense.core.tools.Zweihander; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemShield; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemSword; -import net.minecraft.util.EnumHand; -import slimeknights.tconstruct.library.tools.ToolCore; -import slimeknights.tconstruct.tools.melee.item.Cleaver; - -public class BaubleRenderer implements LayerRenderer { - - @Override - public void doRenderLayer(EntityPlayer entitylivingbaseIn, float limbSwing, float limbSwingAmount, - float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) { - -// ItemStack stack = entitylivingbaseIn.inventory.getStackInSlot(0); -// ItemStack stackShield = entitylivingbaseIn.inventory.getStackInSlot(1); -// -// ItemStack stackTest = entitylivingbaseIn.getHeldItem(EnumHand.MAIN_HAND); -// -// if (stack != null -// && (stack.getItem() instanceof ToolCore || stack.getItem() instanceof ItemSword) -// && !(stack.getItem() instanceof Shield) -// && stack != stackTest) { -// GlStateManager.pushMatrix(); -// Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); -//// Helper.rotateIfSneaking(player); -//// boolean armor = !player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); -// //GlStateManager.rotate(90, 0, 1, 0); -// GlStateManager.rotate(20, 0, 0, 1); -// GlStateManager.translate(-0.125, 0.1, 0.25); -// //GlStateManager.scale(0.55, 0.55, 0.55); -// -//// if (renderedOne) -//// GlStateManager.translate(0F, 0F, armor ? 0.55F : 0.5F); -//// else -//// GlStateManager.translate(0F, 0F, armor ? -0.55F : -0.5F); -// -// if(stack.getItem() instanceof Zweihander || stack.getItem() instanceof Cleaver) -// { -// GlStateManager.scale(1.5F, 1.5F, 0.75F); -// GlStateManager.translate(0.1, 0.1, 0); -// } -// else -// GlStateManager.scale(0.75F, 0.75F, 0.75F); -// -// GlStateManager.color(1F, 1F, 1F); -// int light = 15728880; -// int lightmapX = light % 65536; -// int lightmapY = light / 65536; -// OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY); -// Minecraft.getMinecraft().getRenderItem().renderItem(stack, ItemCameraTransforms.TransformType.NONE); -// GlStateManager.popMatrix(); -// } -// -// //Shield -// if (stackShield != null -// && (stackShield.getItem() instanceof Shield || stackShield.getItem() instanceof ItemShield) -// && stackShield != stackTest) { -// GlStateManager.pushMatrix(); -// Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); -//// Helper.rotateIfSneaking(player); -//// boolean armor = !player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); -// //GlStateManager.rotate(90, 0, 1, 0); -// GlStateManager.rotate(160, 0, 0, 1); -// GlStateManager.translate(0.125, -0.3, 0.3); -// //GlStateManager.scale(0.55, 0.55, 0.55); -// -//// if (renderedOne) -//// GlStateManager.translate(0F, 0F, armor ? 0.55F : 0.5F); -//// else -//// GlStateManager.translate(0F, 0F, armor ? -0.55F : -0.5F); -// -// if(stackShield.getItem() instanceof ItemShield) -// { -// //GlStateManager.scale(1.5F, 1.5F, 0.75F); -// GlStateManager.translate(0.5, 0.5, 0.5); -// } -//// else -// //GlStateManager.scale(0.75F, 0.75F, 0.75F); -// -// GlStateManager.color(1F, 1F, 1F); -// int light = 15728880; -// int lightmapX = light % 65536; -// int lightmapY = light / 65536; -// OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY); -// Minecraft.getMinecraft().getRenderItem().renderItem(stackShield, ItemCameraTransforms.TransformType.NONE); -// GlStateManager.popMatrix(); -// } - } - - @Override - public boolean shouldCombineTextures() { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java b/src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java deleted file mode 100644 index 88177ef..0000000 --- a/src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java +++ /dev/null @@ -1,128 +0,0 @@ -package lance5057.tDefense.baubles.renderers; - -import lance5057.tDefense.core.tools.Shield; -import lance5057.tDefense.core.tools.Zweihander; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.item.ItemShield; -import net.minecraft.item.ItemStack; -import slimeknights.tconstruct.tools.melee.item.Cleaver; - -/** - * Sheathe - Lance5057 Created using Tabula 4.1.1 - */ -public class SheatheModel extends ModelBiped { - public ModelRenderer Sheathe; - public ModelRenderer FrontCap; - public ModelRenderer WaistBelt; - public ModelRenderer BackCap; - public ModelRenderer ShoulderBelt; - - public SheatheModel() { - - // rSword = new RenderItem(Minecraft.getMinecraft().getTextureManager(), - // null, null); - - this.textureWidth = 64; - this.textureHeight = 64; - - this.WaistBelt = new ModelRenderer(this, 0, 32); - this.WaistBelt.setRotationPoint(0.0F, 0.0F, 0.0F); - this.WaistBelt.addBox(-4.5F, 4.5F, -2.5F, 9, 2, 5, -0.3F); - // this.bipedBody.addChild(WaistBelt); - - this.ShoulderBelt = new ModelRenderer(this, 0, 32); - this.ShoulderBelt.setRotationPoint(0.0F, 0.0F, 0.0F); - this.ShoulderBelt.addBox(-3.0F, 1.0F, -2.5F, 9, 2, 5, -0.3F); - this.setRotateAngle(ShoulderBelt, 0.0F, 0.0F, 0.7853981633974483F); - // this.bipedBody.addChild(ShoulderBelt); - - this.BackCap = new ModelRenderer(this, 0, 39); - this.BackCap.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BackCap.addBox(-2.2F, 3.6F, -2.8F, 3, 3, 2, -0.4F); - this.setRotateAngle(BackCap, 0.0F, 0.0F, -0.4363323129985824F); - // this.bipedBody.addChild(BackCap); - - this.FrontCap = new ModelRenderer(this, 0, 39); - this.FrontCap.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontCap.addBox(-2.2F, 3.6F, 0.7F, 3, 3, 2, -0.4F); - this.setRotateAngle(FrontCap, 0.0F, 0.0F, -0.4363323129985824F); - // this.bipedBody.addChild(FrontCap); - - this.Sheathe = new ModelRenderer(this, 28, 32); - this.Sheathe.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Sheathe.addBox(-1.1F, 1.0F, 3.5F, 11, 3, 1, 0.2F); - this.setRotateAngle(Sheathe, 0.0F, 0.0F, 1.1344640137963142F); - // this.bipedBody.addChild(Sheathe); - } - - public void render(float f5, ItemStack weapon, ItemStack shield, ItemStack active, ItemStack offhand) { - - WaistBelt.render(f5); - ShoulderBelt.render(f5); - BackCap.render(f5); - FrontCap.render(f5); - Sheathe.render(f5); - - - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - if (weapon != null && active != weapon) { - GlStateManager.pushMatrix(); - - GlStateManager.rotate(20, 0, 0, 1); - float s = 13f; - GlStateManager.scale(s, s, s); - GlStateManager.translate(-0.1F, 0.175f, 0.3f); - - if(weapon.getItem() instanceof Zweihander || weapon.getItem() instanceof Cleaver) - { - GlStateManager.scale(2f, 2f, 1f); - } - - Minecraft.getMinecraft().getRenderItem().renderItem(weapon, ItemCameraTransforms.TransformType.NONE); - - GlStateManager.popMatrix(); - } - - if (shield != null && shield != active - && (shield.getItem() instanceof ItemShield || shield.getItem() instanceof Shield)) { - GlStateManager.pushMatrix(); - - GlStateManager.rotate(20, 0, 0, 1); - float s = 13f; - GlStateManager.scale(s, s, s); - GlStateManager.translate(-0.1F, 0.175f, 0.3f); - - if (shield.getItem() instanceof Shield) { - - GlStateManager.rotate(180 - 45, 0, 0, 1); - GlStateManager.translate(-0.0F, -0.3f, 0.1f); - GlStateManager.scale(1.35, 1.35, 1.35); - } else { - GlStateManager.rotate(180 - 45, 0, 0, 1); - GlStateManager.translate(0.7F, 0.2f, 0.7f); - GlStateManager.scale(1.35, 1.35, 1.35); - } - - Minecraft.getMinecraft().getRenderItem().renderItem(shield, ItemCameraTransforms.TransformType.NONE); - - GlStateManager.popMatrix(); - } - - - } - - /** - * 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/lance5057/tDefense/baubles/tileentities/TileEntity_JewelersBench.java b/src/main/java/lance5057/tDefense/baubles/tileentities/TileEntity_JewelersBench.java deleted file mode 100644 index 5d6e187..0000000 --- a/src/main/java/lance5057/tDefense/baubles/tileentities/TileEntity_JewelersBench.java +++ /dev/null @@ -1,8 +0,0 @@ -package lance5057.tDefense.baubles.tileentities; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntity_JewelersBench extends TileEntity -{ - -} diff --git a/src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java b/src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java deleted file mode 100644 index b393100..0000000 --- a/src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java +++ /dev/null @@ -1,152 +0,0 @@ -package lance5057.tDefense.baubles.tools; - -import java.util.List; - -import javax.annotation.Nullable; - -import baubles.api.BaubleType; -import baubles.api.IBauble; -import baubles.api.render.IRenderBauble; -import lance5057.tDefense.core.materials.ShieldMaterialStats; -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.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.EnumAction; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ActionResult; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.Optional; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import slimeknights.tconstruct.library.client.model.ToolModelLoader; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.library.tools.ToolCore; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.tools.TinkerTools; - -//@Optional.InterfaceList({@Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.ISheathed"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowCatcher"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowDisplay"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IShield")}) -public abstract class BaubleTool extends ToolCore implements IBauble, IRenderBauble -{ - //protected static PartMaterialType ShieldMat = new PartMaterialType(TinkerTools.largePlate, ShieldMaterialStats.TYPE); - - public BaubleTool(PartMaterialType... requiredComponents) - { - super(requiredComponents); - -// this.addPropertyOverride(new ResourceLocation("block"), new IItemPropertyGetter() -// { -// @SideOnly(Side.CLIENT) -// public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) -// { -// float i = entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F; -// return i; -// } -// }); - } - - 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) -// { -// return 0.0f; -// } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ -// @Override -// public EnumAction getItemUseAction(ItemStack par1ItemStack) -// { -// return EnumAction.BLOCK; -// } - -// public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) -// { -// playerIn.setActiveHand(hand); -// return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); -// } -// -// public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) -// { -// return super.onItemUse(stack, playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); -// } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack par1ItemStack) - { - return 72000; - } - - @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) -// { -// final EntityPlayerSP player = (EntityPlayerSP) entity; -// final ItemStack usingItem = player.getActiveItemStack(); -// if(usingItem != null && usingItem.getItem() == this) -// { -// player.movementInput.moveForward *= 2.5F; -// player.movementInput.moveStrafe *= 2.5F; -// } -// } - } - - protected String getHarvestType() - { - return null; - } - - @Override - public float damagePotential() { - // TODO Auto-generated method stub - return 0.1f; - } - - @Override - public double attackSpeed() { - // TODO Auto-generated method stub - return 4; - } - - @Override - public NBTTagCompound buildTag( - List materials) { - ToolNBT data = buildDefaultTag(materials); - return data.get(); - } -} diff --git a/src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java b/src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java deleted file mode 100644 index f9c62cc..0000000 --- a/src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java +++ /dev/null @@ -1,48 +0,0 @@ -package lance5057.tDefense.baubles.tools; - -import baubles.api.BaubleType; -import lance5057.tDefense.Reference; -import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.baubles.BaublesBase; -import lance5057.tDefense.proxy.ClientProxy; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.tools.TinkerTools; - -public class Sheathe extends BaubleTool { - private static final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/model/sheathe.png"); - - public Sheathe(PartMaterialType... requiredComponents) { - super(PartMaterialType.head(TinkerTools.largePlate), PartMaterialType.handle(TinkerTools.toolRod), - PartMaterialType.extra(TinkerTools.bowString)); - - } - - @Override - public BaubleType getBaubleType(ItemStack itemstack) { - // TODO Auto-generated method stub - return BaubleType.BODY; - } - - @Override - public void onPlayerBaubleRender(ItemStack stack, EntityPlayer player, RenderType type, float partialTicks) { - // TODO Auto-generated method stub - - if (type == RenderType.BODY) { - float s = 1F / 16F; - GlStateManager.scale(s, s, s); - - GlStateManager.enableLighting(); - GlStateManager.enableRescaleNormal(); - - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - - ClientProxy.baubles.sheathe.render(1f, player.inventory.getStackInSlot(0), player.inventory.getStackInSlot(1), player.getHeldItemMainhand(), player.getHeldItemOffhand()); - } - } - -} diff --git a/src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java b/src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java deleted file mode 100644 index f06a217..0000000 --- a/src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java +++ /dev/null @@ -1,99 +0,0 @@ -package lance5057.tDefense.baubles.tools; - -import com.google.common.eventbus.Subscribe; - -import lance5057.tDefense.core.tools.HeaterShield; -import lance5057.tDefense.core.tools.RoundShield; -import lance5057.tDefense.core.tools.TDToolEvents; -import lance5057.tDefense.core.tools.Zweihander; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; -import slimeknights.tconstruct.library.TinkerRegistry; -import slimeknights.tconstruct.library.tools.ToolCore; - -public class TDBaubles -{ - - TDToolEvents events = new TDToolEvents(); - - // Tools - public static ToolCore sheathe = new Sheathe(); - - // Tool Parts - - // Modifiers - - // Helper stuff -// static List tools = Lists.newLinkedList(); // contains all tools registered in this pulse -// static List toolparts = Lists.newLinkedList(); // ^ all toolparts -// static List modifiers = Lists.newLinkedList(); // ^ all modifiers - - // PRE-INITIALIZATION - @Subscribe - public void preInit(FMLPreInitializationEvent event) { - // register items - MinecraftForge.EVENT_BUS.register(events); - - regToolParts(); - regTools(); - registerModifiers(); - - // register blocks - - // register entities - - //proxy.preInit(); - } - - private void regToolParts() { - // The order the items are registered in represents the order in the stencil table GUI too - - } - - private void regTools() { - - regTool(sheathe, "sheathe"); - - TinkerRegistry.registerToolStationCrafting(sheathe); - } - - private void regTool(ToolCore tool, String name) - { - tool.setRegistryName(new ResourceLocation("tinkersdefense:" + name)); - TinkerRegistry.registerTool(tool); - GameRegistry.register(tool); - } - - private void registerModifiers() { - - } - - // INITIALIZATION - @Subscribe - public void init(FMLInitializationEvent event) { - regToolBuilding(); - regRecipies(); - - //proxy.init(); - } - - private void regToolBuilding() { - TinkerRegistry.registerToolCrafting(sheathe); - } - - private void regRecipies() { - - } - - // POST-INITIALIZATION - @Subscribe - public void postInit(FMLPostInitializationEvent event) { - //proxy.postInit(); - } - - -} \ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/baubles/tools/TinkersGauntlets.java b/src/main/java/lance5057/tDefense/baubles/tools/TinkersGauntlets.java deleted file mode 100644 index 688aaa7..0000000 --- a/src/main/java/lance5057/tDefense/baubles/tools/TinkersGauntlets.java +++ /dev/null @@ -1,131 +0,0 @@ -package lance5057.tDefense.baubles.tools; -//package lance5057.tDefense.armor.items; -// -//import lance5057.tDefense.TinkersDefense; -//import lance5057.tDefense.armor.ArmorCore; -//import lance5057.tDefense.armor.renderers.ArmorRenderer; -//import lance5057.tDefense.proxy.ClientProxy; -//import net.minecraft.entity.Entity; -//import net.minecraft.item.Item; -//import net.minecraft.item.ItemStack; -//import tconstruct.library.accessory.IAccessory; -//import tconstruct.tools.TinkerTools; -// -//public class TinkersGauntlets extends ArmorCore implements IAccessory -//{ -// public TinkersGauntlets() -// { -// super(0, -1); -// setUnlocalizedName("tinkersgauntlets"); -// } -// -// @Override -// public boolean canEquipAccessory(ItemStack item, int slot) -// { -// return slot == 1; -// } -// -// @Override -// public Item getHeadItem() -// { -// return TinkersDefense.partArmorplate; -// } -// -// @Override -// public Item getHandleItem() -// { -// return TinkerTools.toughRod; -// } -// -// @Override -// public Item getAccessoryItem() -// { -// return TinkersDefense.partRivet; -// } -// -// @Override -// public int durabilityTypeAccessory() -// { -// return 2; -// } -// -// @Override -// public float getRepairCost() -// { -// return 1.0f; -// } -// -// @Override -// public float getDurabilityModifier() -// { -// return 2.5f; -// } -// -// @Override -// public float getDamageModifier() -// { -// return 0f; -// } -// -// @Override -// public int getPartAmount() -// { -// return 3; -// } -// -// @Override -// public String getIconSuffix(int partType) -// { -// switch(partType) -// { -// case 0: -// return "_gauntlet_plate"; -// case 1: -// return "_gauntlet_plate_broken"; -// case 2: -// return "_gauntlet_trim"; -// case 3: -// return "_gauntlet_rivet"; -// default: -// return ""; -// } -// } -// -// @Override -// public String getEffectSuffix() -// { -// return "_gauntlet_effect"; -// } -// -// @Override -// public String getDefaultFolder() -// { -// return "armor/gauntlets"; -// } -// -// // @Override -// // public void onUpdate(ItemStack stack, World world, Entity entity, int -// // par4, -// // boolean par5) { -// // super.onUpdate(stack, world, entity, par4, par5); -// // -// // } -// -// @Override -// public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) -// { -// return "tinkersdefense:textures/armor/Tinkersgauntlet.png"; -// } -// -// @Override -// public String[] getTraits() -// { -// return new String[] {"hands", "gauntlet"}; -// } -// -// @Override -// public ArmorRenderer getRenderer() -// { -// return ClientProxy.gauntlets; -// } -//} diff --git a/src/main/java/lance5057/tDefense/core/CoreItems.java b/src/main/java/lance5057/tDefense/core/CoreItems.java index aa5dede..8b525b1 100644 --- a/src/main/java/lance5057/tDefense/core/CoreItems.java +++ b/src/main/java/lance5057/tDefense/core/CoreItems.java @@ -11,12 +11,6 @@ import net.minecraftforge.fml.common.registry.GameRegistry; public class CoreItems extends ItemsBase { - - - public static Item item_aeonsteelIngot; - public static Item item_queensgoldIngot; - public static Item item_dogbeariumIngot; - public static Item item_straps; public CoreItems() @@ -32,9 +26,6 @@ public class CoreItems extends ItemsBase @Override public void init(FMLInitializationEvent e) { - item_aeonsteelIngot = register("aeonsteelingot", 64, CoreBase.tab); - item_queensgoldIngot = register("queensgoldingot", 64, CoreBase.tab); - item_dogbeariumIngot = register("dogbeariumingot", 64, CoreBase.tab); item_straps = new ItemStraps().setMaxStackSize(1).setUnlocalizedName("straps").setRegistryName(Reference.MOD_ID, "straps"); GameRegistry.register(item_straps); diff --git a/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java b/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java index ac23b79..8121edb 100644 --- a/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java +++ b/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java @@ -1,25 +1,29 @@ package lance5057.tDefense.core.materials; import java.util.Collection; -import java.util.List; +import java.util.Map; import org.apache.commons.lang3.StringUtils; -import com.google.common.collect.Lists; import com.google.common.eventbus.Subscribe; +import gnu.trove.map.hash.THashMap; +import gnu.trove.set.hash.THashSet; import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.materials.MaterialCloth; -import lance5057.tDefense.core.blocks.fluid.TDFluid; +import lance5057.tDefense.core.CoreBase; import lance5057.tDefense.core.blocks.fluid.VibrantFluid; import lance5057.tDefense.core.blocks.fluid.VileFluid; import lance5057.tDefense.core.items.TDOreDictItem; import lance5057.tDefense.core.materials.traits.TraitAxeLover; +import lance5057.tDefense.core.materials.traits.TraitBarbed; +import lance5057.tDefense.core.materials.traits.TraitDogToy; import lance5057.tDefense.core.materials.traits.TraitDulling; import lance5057.tDefense.core.materials.traits.TraitFirestarter; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -31,6 +35,7 @@ import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; import slimeknights.tconstruct.library.MaterialIntegration; import slimeknights.tconstruct.library.TinkerRegistry; +import slimeknights.tconstruct.library.fluid.FluidMolten; import slimeknights.tconstruct.library.materials.BowMaterialStats; import slimeknights.tconstruct.library.materials.ExtraMaterialStats; import slimeknights.tconstruct.library.materials.HandleMaterialStats; @@ -40,18 +45,23 @@ import slimeknights.tconstruct.library.materials.Material; import slimeknights.tconstruct.library.materials.MaterialTypes; import slimeknights.tconstruct.library.traits.AbstractTrait; import slimeknights.tconstruct.library.utils.HarvestLevels; +import slimeknights.tconstruct.shared.TinkerFluids; import slimeknights.tconstruct.smeltery.block.BlockMolten; import slimeknights.tconstruct.tools.TinkerMaterials; public class TDMaterials { - public static final List materials = Lists.newArrayList(); + // public static final List materials = Lists.newArrayList(); String SHIELD = ShieldMaterialStats.TYPE; -// public static final Material aeonsteel = mat("aeonsteel", 0xd200d1); -// public static final Material queensgold = mat("queensgold", 0xdede00); -// public static final Material dogbearium = mat("dogbearium", 0x604933); + public static final Map materials = new THashMap<>(); + public static final Map materialIntegrations = new THashMap<>(); + public static final Collection deferredMaterials = new THashSet<>(); + + // public static final Material aeonsteel = mat("aeonsteel", 0xd200d1); + // public static final Material queensgold = mat("queensgold", 0xdede00); + // public static final Material dogbearium = mat("dogbearium", 0x604933); public static Material black; public static Material red; @@ -70,70 +80,72 @@ public class TDMaterials { public static Material orange; public static Material white; - public static TDFluid fluidAeonsteel = new TDFluid("aeonsteel_fluid", 0xa470e0, 1300, 15, 3000, 6000); - public static TDFluid fluidQueensGold = new TDFluid("queensgold_fluid", 0xdcff00, 1300, 15, 3000, 6000); - public static TDFluid fluidDogbearium = new TDFluid("dogbearium_fluid", 0x6d3300, 1300, 15, 3000, 6000); - public static TDFluid fluidRedCandy = new TDFluid("redcandy_fluid", 0xff0000, 1300, 15, 3000, 6000); - public static TDFluid fluidGreenCandy = new TDFluid("greencandy_fluid", 0x00ff00, 1300, 15, 3000, 6000); - public static TDFluid fluidVile = new TDFluid("vile_fluid", 0x111111, 1300, 0, 6000, 600); - public static TDFluid fluidSinisterium = new TDFluid("sinisterium_fluid", 0x210000, 1300, 0, 3000, 600); - public static TDFluid fluidNihilite = new TDFluid("nihilite_fluid", 0x000021, 1300, 0, 3000, 600); - public static TDFluid fluidVibrant = new TDFluid("vibrant_fluid", 0x76ff00, 1300, 15, 6000, 6000); - public static TDFluid fluidOrichalcum = new TDFluid("orichalcum_fluid", 0xffc700, 1300, 15, 3000, 6000); - public static TDFluid fluidPandorium = new TDFluid("pandorium_fluid", 0x7f6a00, 1300, 15, 3000, 6000); - public static TDFluid fluidChorusJuice = new TDFluid("chorusjuice_fluid", 0xd982ff, 0, 0, 3000, 6000); - public static TDFluid fluidDragonsBreath = new TDFluid("dragonsbreath_fluid", 0x7f00b7, 0, 8, 3000, 6000); - public static TDFluid fluidRoseGold = new TDFluid("rosegold_fluid", 0xff9b84, 1300, 15, 3000, 6000); - public static TDFluid fluidPlatinum = new TDFluid("platinum_fluid", 0xe8e8e8, 1300, 15, 3000, 6000); - public static TDFluid fluidBrass = new TDFluid("brass_fluid", 0xdbb332, 1300, 15, 3000, 6000); - public static TDFluid fluidSilver = new TDFluid("silver_fluid", 0x9e9e9e, 1300, 15, 3000, 6000); - public static TDFluid fluidCheese = new TDFluid("cheese_fluid", 0xffe731, 300, 0, 12000, 9000); - - public static TDOreDictItem ingotAeonsteel; - public static TDOreDictItem ingotQueensGold; - public static TDOreDictItem ingotDogbearium; - public static TDOreDictItem ingotRedCandy; - public static TDOreDictItem ingotGreenCandy; - public static TDOreDictItem ingotSinisterium; - public static TDOreDictItem ingotNihilite; - public static TDOreDictItem ingotOrichalcum; - public static TDOreDictItem ingotPandorium; - public static TDOreDictItem ingotRoseGold; - public static TDOreDictItem ingotPlatinum; - public static TDOreDictItem ingotBrass; - public static TDOreDictItem ingotSilver; - public static TDOreDictItem ingotCheese; - - public static TDOreDictItem nuggetAeonsteel; - public static TDOreDictItem nuggetQueensGold; - public static TDOreDictItem nuggetDogbearium; - public static TDOreDictItem nuggetRedCandy; - public static TDOreDictItem nuggetGreenCandy; - public static TDOreDictItem nuggetSinisterium; - public static TDOreDictItem nuggetNihilite; - public static TDOreDictItem nuggetOrichalcum; - public static TDOreDictItem nuggetPandorium; - public static TDOreDictItem nuggetRoseGold; - public static TDOreDictItem nuggetPlatinum; - public static TDOreDictItem nuggetBrass; - public static TDOreDictItem nuggetSilver; - public static TDOreDictItem nuggetCheese; - - public static TDOreDictItem dustAeonsteel; - public static TDOreDictItem dustQueensGold; - public static TDOreDictItem dustDogbearium; - public static TDOreDictItem dustRedCandy; - public static TDOreDictItem dustGreenCandy; - public static TDOreDictItem dustSinisterium; - public static TDOreDictItem dustNihilite; - public static TDOreDictItem dustOrichalcum; - public static TDOreDictItem dustPandorium; - public static TDOreDictItem dustRoseGold; - public static TDOreDictItem dustPlatinum; - public static TDOreDictItem dustBrass; - public static TDOreDictItem dustSilver; - public static TDOreDictItem dustCheese; - + public static FluidMolten fluidAeonsteel = new FluidMolten("aeonsteel", 0xa470e0); + public static FluidMolten fluidQueensGold = new FluidMolten("queensgold", 0xdcff00); + public static FluidMolten fluidDogbearium = new FluidMolten("dogbearium", 0x6d3300); + public static FluidMolten fluidRedCandy = new FluidMolten("redcandy", 0xff0000); + public static FluidMolten fluidGreenCandy = new FluidMolten("greencandy", 0x00ff00); + public static FluidMolten fluidVile = new FluidMolten("vile", 0x111111); + public static FluidMolten fluidSinisterium = new FluidMolten("sinisterium", 0x210000); + //public static FluidMolten fluidNihilite = new FluidMolten("nihilite", 0x000021); + public static FluidMolten fluidVibrant = new FluidMolten("vibrant", 0x76ff00); + public static FluidMolten fluidOrichalcum = new FluidMolten("orichalcum", 0xffc700); + public static FluidMolten fluidPandorium = new FluidMolten("pandorium", 0x7f6a00); + public static FluidMolten fluidChorusJuice = new FluidMolten("chorusjuice", 0xd982ff); + public static FluidMolten fluidDragonsBreath = new FluidMolten("dragonsbreath", 0x7f00b7); + public static FluidMolten fluidRoseGold = new FluidMolten("rosegold", 0xff9b84); + public static FluidMolten fluidPlatinum = new FluidMolten("platinum", 0xe8e8e8); + public static FluidMolten fluidBrass = new FluidMolten("brass", 0xdbb332); + public static FluidMolten fluidSilver = new FluidMolten("silver", 0x9e9e9e); + public static FluidMolten fluidCheese = new FluidMolten("cheese", 0xffe731); + // public static FluidMolten fluidGold = new FluidMolten("gold", 0xffe330); + + public static TDOreDictItem ingotAeonsteel = new TDOreDictItem("ingot", "aeonsteel"); + public static TDOreDictItem ingotQueensGold = new TDOreDictItem("ingot", "queensgold"); + public static TDOreDictItem ingotDogbearium = new TDOreDictItem("ingot", "dogbearium"); + public static TDOreDictItem ingotRedCandy = new TDOreDictItem("ingot", "redcandy"); + public static TDOreDictItem ingotGreenCandy = new TDOreDictItem("ingot", "greencandy"); + public static TDOreDictItem ingotSinisterium = new TDOreDictItem("ingot", "sinisterium"); + public static TDOreDictItem ingotNihilite = new TDOreDictItem("ingot", "nihilite"); + public static TDOreDictItem ingotOrichalcum = new TDOreDictItem("ingot", "orichalcum"); + public static TDOreDictItem ingotPandorium = new TDOreDictItem("ingot", "pandorium"); + public static TDOreDictItem ingotRoseGold = new TDOreDictItem("ingot", "rosegold"); + public static TDOreDictItem ingotPlatinum = new TDOreDictItem("ingot", "platinum"); + public static TDOreDictItem ingotBrass = new TDOreDictItem("ingot", "brass"); + public static TDOreDictItem ingotSilver = new TDOreDictItem("ingot", "silver"); + public static TDOreDictItem ingotCheese = new TDOreDictItem("ingot", "cheese"); + + public static TDOreDictItem nuggetAeonsteel = new TDOreDictItem("nugget", "aeonsteel"); + public static TDOreDictItem nuggetQueensGold = new TDOreDictItem("nugget", "queensgold"); + public static TDOreDictItem nuggetDogbearium = new TDOreDictItem("nugget", "dogbearium"); + public static TDOreDictItem nuggetRedCandy = new TDOreDictItem("nugget", "redcandy"); + public static TDOreDictItem nuggetGreenCandy = new TDOreDictItem("nugget", "greencandy"); + public static TDOreDictItem nuggetSinisterium = new TDOreDictItem("nugget", "sinisterium"); + public static TDOreDictItem nuggetNihilite = new TDOreDictItem("nugget", "nihilite"); + public static TDOreDictItem nuggetOrichalcum = new TDOreDictItem("nugget", "orichalcum"); + public static TDOreDictItem nuggetPandorium = new TDOreDictItem("nugget", "pandorium"); + public static TDOreDictItem nuggetRoseGold = new TDOreDictItem("nugget", "rosegold"); + public static TDOreDictItem nuggetPlatinum = new TDOreDictItem("nugget", "platinum"); + public static TDOreDictItem nuggetBrass = new TDOreDictItem("nugget", "brass"); + public static TDOreDictItem nuggetSilver = new TDOreDictItem("nugget", "silver"); + public static TDOreDictItem nuggetCheese = new TDOreDictItem("nugget", "cheese"); + + public static TDOreDictItem dustAeonsteel = new TDOreDictItem("dust", "aeonsteel"); + public static TDOreDictItem dustQueensGold = new TDOreDictItem("dust", "queensgold"); + public static TDOreDictItem dustDogbearium = new TDOreDictItem("dust", "dogbearium"); + public static TDOreDictItem dustRedCandy = new TDOreDictItem("dust", "redcandy"); + public static TDOreDictItem dustGreenCandy = new TDOreDictItem("dust", "greencandy"); + public static TDOreDictItem dustSinisterium = new TDOreDictItem("dust", "sinisterium"); + public static TDOreDictItem dustNihilite = new TDOreDictItem("dust", "nihilite"); + public static TDOreDictItem dustOrichalcum = new TDOreDictItem("dust", "orichalcum"); + public static TDOreDictItem dustPandorium = new TDOreDictItem("dust", "pandorium"); + public static TDOreDictItem dustRoseGold = new TDOreDictItem("dust", "rosegold"); + public static TDOreDictItem dustPlatinum = new TDOreDictItem("dust", "platinum"); + public static TDOreDictItem dustBrass = new TDOreDictItem("dust", "brass"); + public static TDOreDictItem dustSilver = new TDOreDictItem("dust", "silver"); + public static TDOreDictItem dustCheese = new TDOreDictItem("dust", "cheese"); + public static TDOreDictItem dustGold = new TDOreDictItem("dust", "gold"); + public static Material matAeonsteel = new Material("aeonsteel", 0xa470e0); public static Material matQueensGold = new Material("queensgold", 0xdcff00); public static Material matDogbearium = new Material("dogbearium", 0x6d3300); @@ -149,54 +161,22 @@ public class TDMaterials { public static Material matBrass = new Material("brass", 0xdbb332); public static Material matSilver = new Material("silver", 0x9e9e9e); public static Material matCheese = new Material("cheese", 0xffe731); + public static Material matGold = new Material("gold", 0xffe330); public static final AbstractTrait axelover = new TraitAxeLover(); public static final AbstractTrait dulling = new TraitDulling(); public static final AbstractTrait firestarter = new TraitFirestarter(); + public static final AbstractTrait barbed = new TraitBarbed(); + public static final AbstractTrait dogtoy = new TraitDogToy(); private static Material mat(String name, int color) { Material mat = new Material(name, color); - materials.add(mat); + // materials.add(mat); return mat; } @Subscribe public void preInit(FMLPreInitializationEvent event) { - - addMat("aeonsteel", fluidAeonsteel, nuggetAeonsteel, ingotAeonsteel, dustAeonsteel); - addMat("queensgold", fluidQueensGold, nuggetQueensGold, ingotQueensGold, dustQueensGold); - addMat("dogbearium", fluidDogbearium, nuggetDogbearium, ingotDogbearium, dustDogbearium); - addMat("redcandy", fluidRedCandy, nuggetRedCandy, ingotRedCandy, dustRedCandy); - addMat("greencandy", fluidGreenCandy, nuggetGreenCandy, ingotGreenCandy, dustGreenCandy); - - addMat("sinisterium", fluidSinisterium, nuggetSinisterium, ingotSinisterium, dustSinisterium); - addMat("nihilite", fluidNihilite, nuggetNihilite, ingotNihilite, dustNihilite); - - addMat("orichalcum", fluidOrichalcum, nuggetOrichalcum, ingotOrichalcum, dustOrichalcum); - addMat("pandorium", fluidPandorium, nuggetPandorium, ingotPandorium, dustPandorium); - - addMat("rosegold", fluidRoseGold, nuggetRoseGold, ingotRoseGold, dustRoseGold); - addMat("platinum", fluidPlatinum, nuggetPlatinum, ingotPlatinum, dustPlatinum); - addMat("brass", fluidBrass, nuggetBrass, ingotBrass, dustBrass); - addMat("silver", fluidSilver, nuggetSilver, ingotSilver, dustSilver); - addMat("cheese", fluidCheese, nuggetCheese, ingotCheese, dustCheese); - - addMat("chorusjuice", fluidChorusJuice); - addMat("dragonsbreath", fluidDragonsBreath); - - FluidRegistry.registerFluid(fluidVibrant); - FluidRegistry.addBucketForFluid(fluidVibrant); - addMat("vibrantfluid", fluidVibrant, new VibrantFluid(fluidVibrant)); - - FluidRegistry.registerFluid(fluidVile); - FluidRegistry.addBucketForFluid(fluidVile); - addMat("vilefluid", fluidVile, new VileFluid(fluidVile)); - - - } - - @Subscribe - public void init(FMLInitializationEvent event) { Material.UNKNOWN.addStats(new ShieldMaterialStats(35, 33)); // TinkerRegistry.addMaterialStats(Material.UNKNOWN, @@ -216,7 +196,11 @@ public class TDMaterials { TinkerRegistry.addMaterialTrait(TinkerMaterials.flint, firestarter, SHIELD); TinkerRegistry.addMaterialStats(TinkerMaterials.cactus, new ShieldMaterialStats(210, 33)); + TinkerRegistry.addMaterialTrait(TinkerMaterials.cactus, barbed, SHIELD); + TinkerRegistry.addMaterialStats(TinkerMaterials.bone, new ShieldMaterialStats(200, 33)); + TinkerRegistry.addMaterialTrait(TinkerMaterials.bone, dogtoy, SHIELD); + TinkerRegistry.addMaterialStats(TinkerMaterials.obsidian, new ShieldMaterialStats(139, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.prismarine, new ShieldMaterialStats(430, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.endstone, new ShieldMaterialStats(420, 33)); @@ -252,11 +236,54 @@ public class TDMaterials { TinkerRegistry.addMaterialStats(TinkerMaterials.electrum, new ShieldMaterialStats(50, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.steel, new ShieldMaterialStats(540, 33)); + + //TinkerRegistry.addMaterialStats(matAeonsteel, new ShieldMaterialStats(540, 33)); registerClothMaterials(); + + addMat("aeonsteel", fluidAeonsteel, nuggetAeonsteel, ingotAeonsteel, dustAeonsteel); + addMat("queensgold", fluidQueensGold, nuggetQueensGold, ingotQueensGold, dustQueensGold); + addMat("dogbearium", fluidDogbearium, nuggetDogbearium, ingotDogbearium, dustDogbearium); + addMat("redcandy", fluidRedCandy, nuggetRedCandy, ingotRedCandy, dustRedCandy); + addMat("greencandy", fluidGreenCandy, nuggetGreenCandy, ingotGreenCandy, dustGreenCandy); + + addMat("sinisterium", fluidSinisterium, nuggetSinisterium, ingotSinisterium, dustSinisterium); + //addMat("nihilite", fluidNihilite, nuggetNihilite, ingotNihilite, dustNihilite); + + addMat("orichalcum", fluidOrichalcum, nuggetOrichalcum, ingotOrichalcum, dustOrichalcum); + addMat("pandorium", fluidPandorium, nuggetPandorium, ingotPandorium, dustPandorium); + + addMat("rosegold", fluidRoseGold, nuggetRoseGold, ingotRoseGold, dustRoseGold); + addMat("platinum", fluidPlatinum, nuggetPlatinum, ingotPlatinum, dustPlatinum); + addMat("brass", fluidBrass, nuggetBrass, ingotBrass, dustBrass); + addMat("silver", fluidSilver, nuggetSilver, ingotSilver, dustSilver); + + addMat("cheese", fluidCheese, nuggetCheese, ingotCheese, dustCheese); + + addMat("chorusjuice", fluidChorusJuice); + addMat("dragonsbreath", fluidDragonsBreath); + + FluidRegistry.registerFluid(fluidVibrant); + FluidRegistry.addBucketForFluid(fluidVibrant); + addMat("vibrantfluid", fluidVibrant, new VibrantFluid(fluidVibrant)); + + FluidRegistry.registerFluid(fluidVile); + FluidRegistry.addBucketForFluid(fluidVile); + addMat("vilefluid", fluidVile, new VileFluid(fluidVile)); + registerMaterials(); -// TinkerRegistry.addMaterialStats(aeonsteel, new HeadMaterialStats(1000, 4.0f, 3.00f, COBALT), -// new HandleMaterialStats(1.10f, 200), new ExtraMaterialStats(500)); + + //integrate(materials, materialIntegrations, deferredMaterials); + + } + + @Subscribe + public void init(FMLInitializationEvent event) { + + // registerMaterials(); + // TinkerRegistry.addMaterialStats(aeonsteel, new + // HeadMaterialStats(1000, 4.0f, 3.00f, COBALT), + // new HandleMaterialStats(1.10f, 200), new ExtraMaterialStats(500)); // iron.addItemIngot("ingotIron"); // iron.setRepresentativeItem(Items.field_151042_j); // iron.addTrait(magnetic2, HEAD); @@ -277,14 +304,14 @@ public class TDMaterials { } } - void addMat(String name, TDFluid fluid) { + void addMat(String name, FluidMolten fluid) { FluidRegistry.registerFluid(fluid); FluidRegistry.addBucketForFluid(fluid); createFluid(name, fluid); } - void addMat(String name, TDFluid fluid, TDOreDictItem nugget, TDOreDictItem ingot, TDOreDictItem dust) { + void addMat(String name, FluidMolten fluid, Item nugget, Item ingot, Item dust) { FluidRegistry.registerFluid(fluid); FluidRegistry.addBucketForFluid(fluid); @@ -292,19 +319,18 @@ public class TDMaterials { createItems(name, nugget, ingot, dust); } - void addMat(String name, TDFluid fluid, Block fluidBlock) { + void addMat(String name, FluidMolten fluid, Block fluidBlock) { createFluid(name, fluid, fluidBlock); } - void addMat(String name, TDFluid fluid, Block fluidBlock, TDOreDictItem nugget, TDOreDictItem ingot, - TDOreDictItem dust) { + void addMat(String name, FluidMolten fluid, Block fluidBlock, Item nugget, Item ingot, Item dust) { createFluid(name, fluid, fluidBlock); createItems(name, nugget, ingot, dust); } - void createFluid(String name, TDFluid fluid) { + void createFluid(String name, FluidMolten fluid) { BlockMolten block = new BlockMolten(fluid); // Sets names block.setUnlocalizedName("molten_" + fluid.getName()); @@ -317,7 +343,7 @@ public class TDMaterials { TinkersDefense.proxy.registerFluidModels(fluid); } - void createFluid(String name, TDFluid fluid, Block fluidBlock) { + void createFluid(String name, FluidMolten fluid, Block fluidBlock) { fluidBlock.setUnlocalizedName("molten_" + fluid.getName()); fluidBlock.setRegistryName(Reference.MOD_ID, "molten_" + fluid.getName()); // Registers the fluid in its block form and its corresponding item @@ -328,35 +354,44 @@ public class TDMaterials { TinkersDefense.proxy.registerFluidModels(fluid); } - void createItems(String name, TDOreDictItem nugget, TDOreDictItem ingot, TDOreDictItem dust) { - nugget = new TDOreDictItem("nugget", name); - ingot = new TDOreDictItem("ingot", name); - dust = new TDOreDictItem("dust", name); + void createItems(String name, Item nugget, Item ingot, Item dust) { + nugget.setCreativeTab(CoreBase.tab); + ingot.setCreativeTab(CoreBase.tab); + dust.setCreativeTab(CoreBase.tab); GameRegistry.register(nugget); GameRegistry.register(ingot); GameRegistry.register(dust); - OreDictionary.registerOre(nugget.getOreDictPrefix() + StringUtils.capitalize(name), nugget); - OreDictionary.registerOre(ingot.getOreDictPrefix() + StringUtils.capitalize(name), ingot); - OreDictionary.registerOre(dust.getOreDictPrefix() + StringUtils.capitalize(name), dust); + if (nugget instanceof TDOreDictItem) + OreDictionary.registerOre(((TDOreDictItem) nugget).getOreDictPrefix() + StringUtils.capitalize(name), + nugget); + if (ingot instanceof TDOreDictItem) + OreDictionary.registerOre(((TDOreDictItem) ingot).getOreDictPrefix() + StringUtils.capitalize(name), ingot); + if (dust instanceof TDOreDictItem) + OreDictionary.registerOre(((TDOreDictItem) dust).getOreDictPrefix() + StringUtils.capitalize(name), dust); } - void createMaterial(String name, Material mat, Fluid fluid, Item item, HeadMaterialStats headstat, HandleMaterialStats handlestat, - ExtraMaterialStats extrastat, BowMaterialStats bowstat, boolean craftable, + void createMaterial(String name, Material mat, Fluid fluid, Item item, HeadMaterialStats headstat, + HandleMaterialStats handlestat, ExtraMaterialStats extrastat, BowMaterialStats bowstat, boolean craftable, boolean castable) { - TinkerRegistry.addMaterial(mat); - mat.setFluid(fluid).setCraftable(craftable).setCastable(castable); + + mat.setFluid(fluid); + mat.setCraftable(craftable).setCastable(castable); mat.addItem(item, 1, Material.VALUE_Ingot); mat.setRepresentativeItem(item); - + TinkerRegistry.addMaterialStats(mat, headstat); TinkerRegistry.addMaterialStats(mat, handlestat); TinkerRegistry.addMaterialStats(mat, extrastat); TinkerRegistry.addMaterialStats(mat, bowstat); - - MaterialIntegration integration = new MaterialIntegration(mat, fluid, name); - integration.integrate(); + TinkerRegistry.addMaterialStats(mat, new ShieldMaterialStats(0, 0)); + + materials.put(name, mat); + + // MaterialIntegration integration = new MaterialIntegration(mat, fluid, + // name); + // integration.integrate(); } private void registerClothMaterials() { @@ -446,30 +481,73 @@ public class TDMaterials { TinkerRegistry.addMaterialStats(orange, new MaterialCloth(100)); TinkerRegistry.addMaterialStats(white, new MaterialCloth(100)); } - - private void registerMaterials() - { - createMaterial("aeonsteel", matAeonsteel, fluidAeonsteel, ingotAeonsteel, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("queensgold", matQueensGold, fluidQueensGold, ingotQueensGold, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("dogbearium", matDogbearium, fluidDogbearium, ingotDogbearium, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("redcandy", matRedCandy, fluidRedCandy, ingotRedCandy, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("greencandy", matGreenCandy, fluidGreenCandy, ingotGreenCandy, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - - createMaterial("sinisterium", matSinisterium, fluidSinisterium, ingotSinisterium, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("nihilite", matNihilite, fluidNihilite, ingotNihilite, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("orichalcum", matOrichalcum, fluidOrichalcum, ingotOrichalcum, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("pandorium", matPandorium, fluidPandorium, ingotPandorium, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - - createMaterial("rosegold", matRoseGold, fluidRoseGold, ingotRoseGold, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("platinum", matPlatinum, fluidPlatinum, ingotPlatinum, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("brass", matBrass, fluidBrass, ingotBrass, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("cheese", matCheese, fluidCheese, ingotCheese, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - -// public static TDOreDictItem ingotRoseGold; -// public static TDOreDictItem ingotPlatinum; -// public static TDOreDictItem ingotBrass; -// public static TDOreDictItem ingotSilver; -// public static TDOreDictItem ingotCheese; + private void registerMaterials() { + createMaterial("aeonsteel", matAeonsteel, fluidAeonsteel, ingotAeonsteel, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("queensgold", matQueensGold, fluidQueensGold, ingotQueensGold, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("dogbearium", matDogbearium, fluidDogbearium, ingotDogbearium, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("redcandy", matRedCandy, fluidRedCandy, ingotRedCandy, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("greencandy", matGreenCandy, fluidGreenCandy, ingotGreenCandy, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + + createMaterial("sinisterium", matSinisterium, fluidSinisterium, ingotSinisterium, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); +// createMaterial("nihilite", matNihilite, fluidNihilite, ingotNihilite, +// new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), +// new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("orichalcum", matOrichalcum, fluidOrichalcum, ingotOrichalcum, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("pandorium", matPandorium, fluidPandorium, ingotPandorium, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + + createMaterial("rosegold", matRoseGold, fluidRoseGold, ingotRoseGold, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("platinum", matPlatinum, fluidPlatinum, ingotPlatinum, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("brass", matBrass, fluidBrass, ingotBrass, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), + new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("cheese", matCheese, fluidCheese, ingotCheese, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + createMaterial("gold", matGold, TinkerFluids.gold, Items.GOLD_INGOT, + new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), + new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); + } + + //PlusTIC to the rescue + public static void integrate(Map materials, + Map materialIntegrations, Collection excludedMaterials) { + materials.forEach((k, v) -> { + if (!materialIntegrations.containsKey(k) && !excludedMaterials.contains(k)) { + MaterialIntegration mi; + if (v.getFluid() != null && v.getFluid() != TinkerFluids.emerald) { + mi = new MaterialIntegration(v, v.getFluid(), StringUtils.capitalize(k)).toolforge(); + } else { + mi = new MaterialIntegration(v); + } + mi.integrate(); + mi.integrateRecipes(); + materialIntegrations.put(k, mi); + } + }); + + // Utils.displace(TinkerMaterials.wood.getIdentifier()); // so that + // natura + // woods are + // prioritized } } diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java new file mode 100644 index 0000000..1da3ab0 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java @@ -0,0 +1,23 @@ +package lance5057.tDefense.core.materials.traits; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.tconstruct.library.traits.AbstractTrait; + +public class TraitBarbed extends AbstractTrait { + + public TraitBarbed() { + super("barbed", TextFormatting.GREEN); + } + + @Override + public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { + if (event.getSource() != DamageSource.generic) { + player.attackEntityFrom(DamageSource.generic, 1); + event.getSource().getSourceOfDamage().attackEntityFrom(DamageSource.generic, 1); + } + } +} diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java new file mode 100644 index 0000000..da56768 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java @@ -0,0 +1,77 @@ +package lance5057.tDefense.core.materials.traits; + +import net.minecraft.block.BlockFence; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumDyeColor; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.tconstruct.library.traits.AbstractTrait; + +public class TraitDogToy extends AbstractTrait { + + public TraitDogToy() { + super("dogtoy", TextFormatting.WHITE); + // TODO Auto-generated constructor stub + } + + @Override + public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { + + if (event.getSource().getSourceOfDamage() instanceof EntityLiving || event.getSource().getEntity() instanceof EntityLiving ) { + BlockPos pos = new BlockPos(player.posX + player.world.rand.nextInt(10) - 5, player.posY, + player.posZ + player.world.rand.nextInt(10) - 5); + IBlockState iblockstate = player.world.getBlockState(pos); + + EnumFacing facing = player.getHorizontalFacing(); + pos = pos.offset(facing); + double d0 = 0.0D; + + if (facing == EnumFacing.UP && iblockstate.getBlock() instanceof BlockFence) // Forge: + // Fix + // Vanilla + // bug + // comparing + // state + // instead + // of + // block + { + d0 = 0.5D; + } + + EntityWolf entWolf = new EntityWolf(player.world); + entWolf.setLocationAndAngles(pos.getX() + 0.5D, (double) pos.getY() + d0, (double) pos.getZ() + 0.5D, + MathHelper.wrapDegrees(player.world.rand.nextFloat() * 360.0F), 0.0F); + entWolf.rotationYawHead = entWolf.rotationYaw; + entWolf.renderYawOffset = entWolf.rotationYaw; + entWolf.onInitialSpawn(player.world.getDifficultyForLocation(new BlockPos(entWolf)), + (IEntityLivingData) null); + + if(event.getSource().getSourceOfDamage() instanceof EntityLiving) + entWolf.setAttackTarget((EntityLivingBase) event.getSource().getSourceOfDamage()); + else + entWolf.setAttackTarget((EntityLivingBase) event.getSource().getEntity()); + + entWolf.setAngry(true); + entWolf.setCollarColor(EnumDyeColor.BLACK); + entWolf.setTamed(true); + player.world.spawnEntity(entWolf); + entWolf.playLivingSound(); + + entWolf.setCustomNameTag("Guard Dog"); + entWolf.setDropItemsWhenDead(false); + + // applyItemEntityDataToEntity(player.world, player, null, entity); + } + } +} diff --git a/src/main/java/lance5057/tDefense/core/parts/TDParts.java b/src/main/java/lance5057/tDefense/core/parts/TDParts.java index ade6805..bccabff 100644 --- a/src/main/java/lance5057/tDefense/core/parts/TDParts.java +++ b/src/main/java/lance5057/tDefense/core/parts/TDParts.java @@ -43,6 +43,12 @@ public class TDParts extends ModuleBase @Override public void preInit(FMLPreInitializationEvent e) { armorPlate = regToolPart(Material.VALUE_Ingot * 4, "armor_plate"); +// armorPlate = new ToolPart(Material.VALUE_Ingot * 4); +// armorPlate.setUnlocalizedName("armor_plate").setRegistryName("tinkersdefense:armor_plate"); +// GameRegistry.register(armorPlate); +// +// TinkerRegistry.registerStencilTableCrafting(Pattern.setTagForPart(new ItemStack(TinkerTools.pattern), armorPlate)); +// chainmail = regToolPart(Material.VALUE_Ingot * 3, "chainmail"); cloth = regToolPart(Material.VALUE_Ingot * 3, "cloth"); rivets = regToolPart(Material.VALUE_Ingot * 1, "rivets"); @@ -79,6 +85,7 @@ public class TDParts extends ModuleBase part.setUnlocalizedName(name).setRegistryName("tinkersdefense:"+name); GameRegistry.register(part); TinkerRegistry.registerStencilTableCrafting(Pattern.setTagForPart(new ItemStack(TinkerTools.pattern), part)); + //TinkerRegistry.registerTableCasting(output, cast, fluid, amount); return part; } diff --git a/src/main/java/lance5057/tDefense/core/renderers/BaubleRenderer.java b/src/main/java/lance5057/tDefense/core/renderers/BaubleRenderer.java new file mode 100644 index 0000000..7f69ff3 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/renderers/BaubleRenderer.java @@ -0,0 +1,108 @@ +package lance5057.tDefense.core.renderers; + +import lance5057.tDefense.core.tools.bases.Shield; +import lance5057.tDefense.core.tools.basic.Zweihander; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.entity.layers.LayerRenderer; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemShield; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.util.EnumHand; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.tools.melee.item.Cleaver; + +public class BaubleRenderer implements LayerRenderer { + + @Override + public void doRenderLayer(EntityPlayer entitylivingbaseIn, float limbSwing, float limbSwingAmount, + float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) { + +// ItemStack stack = entitylivingbaseIn.inventory.getStackInSlot(0); +// ItemStack stackShield = entitylivingbaseIn.inventory.getStackInSlot(1); +// +// ItemStack stackTest = entitylivingbaseIn.getHeldItem(EnumHand.MAIN_HAND); +// +// if (stack != null +// && (stack.getItem() instanceof ToolCore || stack.getItem() instanceof ItemSword) +// && !(stack.getItem() instanceof Shield) +// && stack != stackTest) { +// GlStateManager.pushMatrix(); +// Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); +//// Helper.rotateIfSneaking(player); +//// boolean armor = !player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); +// //GlStateManager.rotate(90, 0, 1, 0); +// GlStateManager.rotate(20, 0, 0, 1); +// GlStateManager.translate(-0.125, 0.1, 0.25); +// //GlStateManager.scale(0.55, 0.55, 0.55); +// +//// if (renderedOne) +//// GlStateManager.translate(0F, 0F, armor ? 0.55F : 0.5F); +//// else +//// GlStateManager.translate(0F, 0F, armor ? -0.55F : -0.5F); +// +// if(stack.getItem() instanceof Zweihander || stack.getItem() instanceof Cleaver) +// { +// GlStateManager.scale(1.5F, 1.5F, 0.75F); +// GlStateManager.translate(0.1, 0.1, 0); +// } +// else +// GlStateManager.scale(0.75F, 0.75F, 0.75F); +// +// GlStateManager.color(1F, 1F, 1F); +// int light = 15728880; +// int lightmapX = light % 65536; +// int lightmapY = light / 65536; +// OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY); +// Minecraft.getMinecraft().getRenderItem().renderItem(stack, ItemCameraTransforms.TransformType.NONE); +// GlStateManager.popMatrix(); +// } +// +// //Shield +// if (stackShield != null +// && (stackShield.getItem() instanceof Shield || stackShield.getItem() instanceof ItemShield) +// && stackShield != stackTest) { +// GlStateManager.pushMatrix(); +// Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); +//// Helper.rotateIfSneaking(player); +//// boolean armor = !player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).isEmpty(); +// //GlStateManager.rotate(90, 0, 1, 0); +// GlStateManager.rotate(160, 0, 0, 1); +// GlStateManager.translate(0.125, -0.3, 0.3); +// //GlStateManager.scale(0.55, 0.55, 0.55); +// +//// if (renderedOne) +//// GlStateManager.translate(0F, 0F, armor ? 0.55F : 0.5F); +//// else +//// GlStateManager.translate(0F, 0F, armor ? -0.55F : -0.5F); +// +// if(stackShield.getItem() instanceof ItemShield) +// { +// //GlStateManager.scale(1.5F, 1.5F, 0.75F); +// GlStateManager.translate(0.5, 0.5, 0.5); +// } +//// else +// //GlStateManager.scale(0.75F, 0.75F, 0.75F); +// +// GlStateManager.color(1F, 1F, 1F); +// int light = 15728880; +// int lightmapX = light % 65536; +// int lightmapY = light / 65536; +// OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY); +// Minecraft.getMinecraft().getRenderItem().renderItem(stackShield, ItemCameraTransforms.TransformType.NONE); +// GlStateManager.popMatrix(); +// } + } + + @Override + public boolean shouldCombineTextures() { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/src/main/java/lance5057/tDefense/core/renderers/SheatheModel.java b/src/main/java/lance5057/tDefense/core/renderers/SheatheModel.java new file mode 100644 index 0000000..b2df647 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/renderers/SheatheModel.java @@ -0,0 +1,128 @@ +package lance5057.tDefense.core.renderers; + +import lance5057.tDefense.core.tools.bases.Shield; +import lance5057.tDefense.core.tools.basic.Zweihander; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.ItemShield; +import net.minecraft.item.ItemStack; +import slimeknights.tconstruct.tools.melee.item.Cleaver; + +/** + * Sheathe - Lance5057 Created using Tabula 4.1.1 + */ +public class SheatheModel extends ModelBiped { + public ModelRenderer Sheathe; + public ModelRenderer FrontCap; + public ModelRenderer WaistBelt; + public ModelRenderer BackCap; + public ModelRenderer ShoulderBelt; + + public SheatheModel() { + + // rSword = new RenderItem(Minecraft.getMinecraft().getTextureManager(), + // null, null); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.WaistBelt = new ModelRenderer(this, 0, 32); + this.WaistBelt.setRotationPoint(0.0F, 0.0F, 0.0F); + this.WaistBelt.addBox(-4.5F, 4.5F, -2.5F, 9, 2, 5, -0.3F); + // this.bipedBody.addChild(WaistBelt); + + this.ShoulderBelt = new ModelRenderer(this, 0, 32); + this.ShoulderBelt.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShoulderBelt.addBox(-3.0F, 1.0F, -2.5F, 9, 2, 5, -0.3F); + this.setRotateAngle(ShoulderBelt, 0.0F, 0.0F, 0.7853981633974483F); + // this.bipedBody.addChild(ShoulderBelt); + + this.BackCap = new ModelRenderer(this, 0, 39); + this.BackCap.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BackCap.addBox(-2.2F, 3.6F, -2.8F, 3, 3, 2, -0.4F); + this.setRotateAngle(BackCap, 0.0F, 0.0F, -0.4363323129985824F); + // this.bipedBody.addChild(BackCap); + + this.FrontCap = new ModelRenderer(this, 0, 39); + this.FrontCap.setRotationPoint(0.0F, 0.0F, 0.0F); + this.FrontCap.addBox(-2.2F, 3.6F, 0.7F, 3, 3, 2, -0.4F); + this.setRotateAngle(FrontCap, 0.0F, 0.0F, -0.4363323129985824F); + // this.bipedBody.addChild(FrontCap); + + this.Sheathe = new ModelRenderer(this, 28, 32); + this.Sheathe.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Sheathe.addBox(-1.1F, 1.0F, 3.5F, 11, 3, 1, 0.2F); + this.setRotateAngle(Sheathe, 0.0F, 0.0F, 1.1344640137963142F); + // this.bipedBody.addChild(Sheathe); + } + + public void render(float f5, ItemStack weapon, ItemStack shield, ItemStack active, ItemStack offhand) { + + WaistBelt.render(f5); + ShoulderBelt.render(f5); + BackCap.render(f5); + FrontCap.render(f5); + Sheathe.render(f5); + + + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + + if (weapon != null && active != weapon) { + GlStateManager.pushMatrix(); + + GlStateManager.rotate(20, 0, 0, 1); + float s = 13f; + GlStateManager.scale(s, s, s); + GlStateManager.translate(-0.1F, 0.175f, 0.3f); + + if(weapon.getItem() instanceof Zweihander || weapon.getItem() instanceof Cleaver) + { + GlStateManager.scale(2f, 2f, 1f); + } + + Minecraft.getMinecraft().getRenderItem().renderItem(weapon, ItemCameraTransforms.TransformType.NONE); + + GlStateManager.popMatrix(); + } + + if (shield != null && shield != active + && (shield.getItem() instanceof ItemShield || shield.getItem() instanceof Shield)) { + GlStateManager.pushMatrix(); + + GlStateManager.rotate(20, 0, 0, 1); + float s = 13f; + GlStateManager.scale(s, s, s); + GlStateManager.translate(-0.1F, 0.175f, 0.3f); + + if (shield.getItem() instanceof Shield) { + + GlStateManager.rotate(180 - 45, 0, 0, 1); + GlStateManager.translate(-0.0F, -0.3f, 0.1f); + GlStateManager.scale(1.35, 1.35, 1.35); + } else { + GlStateManager.rotate(180 - 45, 0, 0, 1); + GlStateManager.translate(0.7F, 0.2f, 0.7f); + GlStateManager.scale(1.35, 1.35, 1.35); + } + + Minecraft.getMinecraft().getRenderItem().renderItem(shield, ItemCameraTransforms.TransformType.NONE); + + GlStateManager.popMatrix(); + } + + + } + + /** + * 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/lance5057/tDefense/core/tileentities/TileEntity_JewelersBench.java b/src/main/java/lance5057/tDefense/core/tileentities/TileEntity_JewelersBench.java new file mode 100644 index 0000000..1441513 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tileentities/TileEntity_JewelersBench.java @@ -0,0 +1,8 @@ +package lance5057.tDefense.core.tileentities; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntity_JewelersBench extends TileEntity +{ + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/FishingRod.java b/src/main/java/lance5057/tDefense/core/tools/FishingRod.java deleted file mode 100644 index 3159b3c..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/FishingRod.java +++ /dev/null @@ -1,45 +0,0 @@ -package lance5057.tDefense.core.tools; - -import java.util.List; - -import lance5057.tDefense.core.parts.TDParts; -import net.minecraft.nbt.NBTTagCompound; -import slimeknights.tconstruct.library.materials.Material; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.library.tools.ToolCore; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.tools.TinkerTools; - -public class FishingRod extends ToolCore { - - public static final float DURABILITY_MODIFIER = 1.0f; - - public FishingRod() { - super(PartMaterialType.head(TinkerTools.toughToolRod), PartMaterialType.bowstring(TinkerTools.bowString), - PartMaterialType.handle(TDParts.rivets)); - - setUnlocalizedName("fishingRod"); - } - - @Override - public float damagePotential() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public double attackSpeed() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public NBTTagCompound buildTag(List materials) { - ToolNBT data = buildDefaultTag(materials); - // 2 base damage, like vanilla swords - data.attack += 1f; - data.durability *= DURABILITY_MODIFIER; - return data.get(); - } - -} diff --git a/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java b/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java deleted file mode 100644 index 827aaf0..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java +++ /dev/null @@ -1,141 +0,0 @@ -package lance5057.tDefense.core.tools; - -import lance5057.tDefense.core.parts.TDParts; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.tools.TinkerTools; - -public class HeaterShield extends Shield -{ - int induceDamage = 0; - - public HeaterShield() - { - super(PartMaterialType.handle(TinkerTools.toughToolRod), - TDParts.ShieldMat, - TDParts.ShieldMat, - TDParts.RivetMat); - setUnlocalizedName("heatershield"); - } - -// @Override -// public Item getHeadItem() -// { -// return TinkersDefense.partArmorplate; -// } -// -// @Override -// public Item getHandleItem() -// { -// return TinkerTools.toughRod; -// } -// -// @Override -// public Item getAccessoryItem() -// { -// return TinkersDefense.partArmorplate; -// } -// -// @Override -// public Item getExtraItem() -// { -// return TinkersDefense.partRivet; -// } -// -// @Override -// public int durabilityTypeAccessory() -// { -// return 2; -// } -// -// @Override -// public float getRepairCost() -// { -// return 4.0f; -// } -// -// @Override -// public float getDurabilityModifier() -// { -// return 2.5f; -// } -// -// @Override -// public float breakSpeedModifier() -// { -// return 0.4f; -// } -// -// @Override -// public float getDamageModifier() -// { -// return 1.4f; -// } -// -// @Override -// public int getPartAmount() -// { -// return 4; -// } -// -// @Override -// public String getIconSuffix(int partType) -// { -// switch(partType) -// { -// case 0: -// return "_shield_plate"; -// case 1: -// return "_shield_plate_broken"; -// case 2: -// return "_shield_edge"; -// case 3: -// return "_shield_face"; -// case 4: -// return "_shield_binding"; -// default: -// return ""; -// } -// } -// -// @Override -// public String getEffectSuffix() -// { -// return "_shield_effect"; -// } -// -// @Override -// public String getDefaultFolder() -// { -// return "heatershield"; -// } -// -// // /* tool_TinkerShield specific */ -// // @Override -// // public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, -// // Entity entity) { -// // if (AbilityHelper.onLeftClickEntity(stack, player, entity, this)) { -// // entity.hurtResistantTime += 7; -// // /* -// // * if (entity instanceof EntityLiving) { EntityLiving living = -// // * (EntityLiving) entity; if (living.getHealth() <= 0) { -// // * -// // * } } -// // */ -// // // if (entity.getHealth() <= 0) -// // } -// // return true; -// // } -// -// @Override -// public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) -// { -// super.onUpdate(stack, world, entity, par4, par5); -// -// } -// -// @Override -// protected String getHarvestType() -// { -// return "shield"; -// } -} diff --git a/src/main/java/lance5057/tDefense/core/tools/RoundShield.java b/src/main/java/lance5057/tDefense/core/tools/RoundShield.java deleted file mode 100644 index 94720b1..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/RoundShield.java +++ /dev/null @@ -1,42 +0,0 @@ -package lance5057.tDefense.core.tools; - -import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.core.parts.TDParts; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.tools.TinkerTools; - -public class RoundShield extends Shield -{ - int induceDamage = 0; - - public RoundShield() - { - super(PartMaterialType.handle(TinkerTools.toolRod), - TDParts.ShieldMat, - PartMaterialType.head(TinkerTools.panHead)); - setUnlocalizedName("roundshield"); - } - - @Override - public float breakSpeedModifier() - { - return 0.4f; - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) - { - super.onUpdate(stack, world, entity, par4, par5); - - } - - @Override - protected String getHarvestType() - { - return "shield"; - } -} diff --git a/src/main/java/lance5057/tDefense/core/tools/Shears.java b/src/main/java/lance5057/tDefense/core/tools/Shears.java deleted file mode 100644 index cda9f1b..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/Shears.java +++ /dev/null @@ -1,146 +0,0 @@ -package lance5057.tDefense.core.tools; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import slimeknights.tconstruct.library.materials.Material; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.library.tools.ToolCore; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.tools.TinkerTools; - -public class Shears extends ToolCore { - - public static final float DURABILITY_MODIFIER = 1.0f; - - public Shears() { - super(PartMaterialType.head(TinkerTools.knifeBlade), PartMaterialType.head(TinkerTools.knifeBlade), - PartMaterialType.handle(TinkerTools.binding)); - - setUnlocalizedName("shears"); - } - - @Override - public float damagePotential() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public double attackSpeed() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public NBTTagCompound buildTag(List materials) { - ToolNBT data = buildDefaultTag(materials); - // 2 base damage, like vanilla swords - data.attack += 1f; - data.durability *= DURABILITY_MODIFIER; - return data.get(); - } - - /** - * Called when a Block is destroyed using this Item. Return true to trigger the "Use Item" statistic. - */ - public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - stack.damageItem(1, entityLiving); - Block block = state.getBlock(); - return state.getMaterial() != net.minecraft.block.material.Material.LEAVES && block != Blocks.WEB && block != Blocks.TALLGRASS && block != Blocks.VINE && block != Blocks.TRIPWIRE && block != Blocks.WOOL && !(state instanceof net.minecraftforge.common.IShearable) ? super.onBlockDestroyed(stack, worldIn, state, pos, entityLiving) : true; - } - - /** - * Check whether this Item can harvest the given Block - */ - public boolean canHarvestBlock(IBlockState blockIn) - { - Block block = blockIn.getBlock(); - return block == Blocks.WEB || block == Blocks.REDSTONE_WIRE || block == Blocks.TRIPWIRE; - } - - public float getStrVsBlock(ItemStack stack, IBlockState state) - { - Block block = state.getBlock(); - return block != Blocks.WEB && state.getMaterial() != net.minecraft.block.material.Material.LEAVES ? (block == Blocks.WOOL ? 5.0F : super.getStrVsBlock(stack, state)) : 15.0F; - } - - - /** - * Returns true if the item can be used on the given entity, e.g. shears on sheep. - */ - @Override - public boolean itemInteractionForEntity(ItemStack itemstack, net.minecraft.entity.player.EntityPlayer player, EntityLivingBase entity, net.minecraft.util.EnumHand hand) - { - if (entity.world.isRemote) - { - return false; - } - if (entity instanceof net.minecraftforge.common.IShearable) - { - net.minecraftforge.common.IShearable target = (net.minecraftforge.common.IShearable)entity; - BlockPos pos = new BlockPos(entity.posX, entity.posY, entity.posZ); - if (target.isShearable(itemstack, entity.world, pos)) - { - java.util.List drops = target.onSheared(itemstack, entity.world, pos, - net.minecraft.enchantment.EnchantmentHelper.getEnchantmentLevel(net.minecraft.init.Enchantments.FORTUNE, itemstack)); - - java.util.Random rand = new java.util.Random(); - for(ItemStack stack : drops) - { - net.minecraft.entity.item.EntityItem ent = entity.entityDropItem(stack, 1.0F); - ent.motionY += rand.nextFloat() * 0.05F; - ent.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; - ent.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; - } - itemstack.damageItem(1, entity); - } - return true; - } - return false; - } - - @Override - public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, net.minecraft.entity.player.EntityPlayer player) - { - if (player.world.isRemote || player.capabilities.isCreativeMode) - { - return false; - } - Block block = player.world.getBlockState(pos).getBlock(); - if (block instanceof net.minecraftforge.common.IShearable) - { - net.minecraftforge.common.IShearable target = (net.minecraftforge.common.IShearable)block; - if (target.isShearable(itemstack, player.world, pos)) - { - java.util.List drops = target.onSheared(itemstack, player.world, pos, - net.minecraft.enchantment.EnchantmentHelper.getEnchantmentLevel(net.minecraft.init.Enchantments.FORTUNE, itemstack)); - java.util.Random rand = new java.util.Random(); - - for(ItemStack stack : drops) - { - float f = 0.7F; - double d = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; - double d1 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; - double d2 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; - net.minecraft.entity.item.EntityItem entityitem = new net.minecraft.entity.item.EntityItem(player.world, (double)pos.getX() + d, (double)pos.getY() + d1, (double)pos.getZ() + d2, stack); - entityitem.setDefaultPickupDelay(); - player.world.spawnEntity(entityitem); - } - - itemstack.damageItem(1, player); - player.addStat(net.minecraft.stats.StatList.getBlockStats(block)); - } - } - return false; - } - -} diff --git a/src/main/java/lance5057/tDefense/core/tools/Shield.java b/src/main/java/lance5057/tDefense/core/tools/Shield.java deleted file mode 100644 index 2bc8987..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/Shield.java +++ /dev/null @@ -1,147 +0,0 @@ -package lance5057.tDefense.core.tools; - -import java.util.List; - -import javax.annotation.Nullable; - -import lance5057.tDefense.core.materials.ShieldMaterialStats; -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.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.EnumAction; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ActionResult; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.Optional; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import slimeknights.tconstruct.library.client.model.ToolModelLoader; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.library.tools.ToolCore; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.tools.TinkerTools; - -//@Optional.InterfaceList({@Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.ISheathed"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowCatcher"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowDisplay"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IShield")}) -public class Shield extends ToolCore //implements IShield, ISheathed, IArrowCatcher, IArrowDisplay -{ - public Shield(PartMaterialType... requiredComponents) - { - super(requiredComponents); - - this.addPropertyOverride(new ResourceLocation("block"), new IItemPropertyGetter() - { - @SideOnly(Side.CLIENT) - public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { - float i = entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F; - return i; - } - }); - } - - 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) -// { -// return 0.0f; -// } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) - { - return EnumAction.BLOCK; - } - - public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) - { - playerIn.setActiveHand(hand); - return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); - } - - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - return super.onItemUse(stack, playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack par1ItemStack) - { - return 72000; - } - - @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) - { - final EntityPlayerSP player = (EntityPlayerSP) entity; - final ItemStack usingItem = player.getActiveItemStack(); - if(usingItem != null && usingItem.getItem() == this) - { - player.movementInput.moveForward *= 2.5F; - player.movementInput.moveStrafe *= 2.5F; - } - } - } - - protected String getHarvestType() - { - return null; - } - - @Override - public float damagePotential() { - // TODO Auto-generated method stub - return 0.1f; - } - - @Override - public double attackSpeed() { - // TODO Auto-generated method stub - return 4; - } - - @Override - public NBTTagCompound buildTag( - List materials) { - ToolNBT data = buildDefaultTag(materials); - return data.get(); - } -} diff --git a/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java b/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java index 69f5c04..8747d1a 100644 --- a/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java +++ b/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java @@ -1,5 +1,6 @@ package lance5057.tDefense.core.tools; +import lance5057.tDefense.core.tools.bases.Shield; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; diff --git a/src/main/java/lance5057/tDefense/core/tools/TDTools.java b/src/main/java/lance5057/tDefense/core/tools/TDTools.java index ae8a47f..c846f97 100644 --- a/src/main/java/lance5057/tDefense/core/tools/TDTools.java +++ b/src/main/java/lance5057/tDefense/core/tools/TDTools.java @@ -6,6 +6,14 @@ import lance5057.tDefense.armor.items.cloth.TinkersHood; import lance5057.tDefense.armor.items.cloth.TinkersRobe; import lance5057.tDefense.armor.items.cloth.TinkersShawl; import lance5057.tDefense.armor.items.cloth.TinkersShoes; +import lance5057.tDefense.core.tools.basic.FishingRod; +import lance5057.tDefense.core.tools.basic.HeaterShield; +import lance5057.tDefense.core.tools.basic.RoundShield; +import lance5057.tDefense.core.tools.basic.Shears; +import lance5057.tDefense.core.tools.basic.Zweihander; +import lance5057.tDefense.core.tools.baubles.Amulet; +import lance5057.tDefense.core.tools.baubles.Ring; +import lance5057.tDefense.core.tools.baubles.Sheathe; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -27,6 +35,7 @@ public class TDTools { public static ToolCore shears; public static ToolCore fishingRod; + //armor public static ToolCore hood; public static ToolCore shawl; public static ToolCore robe; @@ -41,6 +50,11 @@ public class TDTools { public static ToolCore breastplate; public static ToolCore grieves; public static ToolCore sabatons; + + //baubles + public static ToolCore sheathe; + public static ToolCore ring; + public static ToolCore amulet; // Tool Parts @@ -68,6 +82,10 @@ public class TDTools { shawl = new TinkersShawl(); robe = new TinkersRobe(); shoes = new TinkersShoes(); + + sheathe = new Sheathe(); + ring = new Ring(); + amulet = new Amulet(); MinecraftForge.EVENT_BUS.register(events); @@ -93,6 +111,10 @@ public class TDTools { regTool(shawl, "shawl"); regTool(robe, "robe"); regTool(shoes, "shoes"); + + regTool(sheathe, "sheathe"); + regTool(ring, "ring"); + regTool(amulet, "amulet"); // TinkerRegistry.registerToolStationCrafting(roundshield); // TinkerRegistry.registerToolForgeCrafting(heatershield); @@ -129,6 +151,10 @@ public class TDTools { TinkerRegistry.registerToolCrafting(shawl); TinkerRegistry.registerToolCrafting(robe); TinkerRegistry.registerToolCrafting(shoes); + + TinkerRegistry.registerToolCrafting(sheathe); + TinkerRegistry.registerToolCrafting(ring); + TinkerRegistry.registerToolCrafting(amulet); } private void regRecipies() { diff --git a/src/main/java/lance5057/tDefense/core/tools/Zweihander.java b/src/main/java/lance5057/tDefense/core/tools/Zweihander.java deleted file mode 100644 index 76b3050..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/Zweihander.java +++ /dev/null @@ -1,96 +0,0 @@ -package lance5057.tDefense.core.tools; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.MathHelper; -import slimeknights.tconstruct.library.materials.Material; -import slimeknights.tconstruct.library.tinkering.Category; -import slimeknights.tconstruct.library.tinkering.PartMaterialType; -import slimeknights.tconstruct.library.tools.SwordCore; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.library.utils.ToolHelper; -import slimeknights.tconstruct.tools.TinkerTools; - -public class Zweihander extends SwordCore { - - public static final float DURABILITY_MODIFIER = 1.1f; - - public Zweihander() { - super(PartMaterialType.head(TinkerTools.largeSwordBlade), PartMaterialType.head(TinkerTools.swordBlade), - PartMaterialType.handle(TinkerTools.toughToolRod), PartMaterialType.extra(TinkerTools.toughBinding)); - - setUnlocalizedName("zweihander"); - addCategory(Category.WEAPON); - } - - @Override - public float damagePotential() { - return 1.0f; - } - - @Override - public double attackSpeed() { - return 1.0d; - } - - // sword sweep attack - @Override - public boolean dealDamage(ItemStack stack, EntityLivingBase player, Entity entity, float damage) { - // deal damage first - boolean hit = super.dealDamage(stack, player, entity, damage); - // and then sweep - if (hit && !ToolHelper.isBroken(stack)) { - // sweep code from EntityPlayer#attackTargetEntityWithCurrentItem() - // basically: no crit, no sprinting and has to stand on the ground - // for sweep. Also has to move regularly slowly - double d0 = (double) (player.distanceWalkedModified - player.prevDistanceWalkedModified); - boolean flag = true; - if (player instanceof EntityPlayer) { - flag = ((EntityPlayer) player).getCooledAttackStrength(0.5F) > 0.9f; - } - boolean flag2 = player.fallDistance > 0.0F && !player.onGround && !player.isOnLadder() - && !player.isInWater() && !player.isPotionActive(MobEffects.BLINDNESS) && !player.isRiding(); - if (flag && !player.isSprinting() && !flag2 && player.onGround && d0 < (double) player.getAIMoveSpeed()) { - for (EntityLivingBase entitylivingbase : player.getEntityWorld().getEntitiesWithinAABB( - EntityLivingBase.class, entity.getEntityBoundingBox().expand(2.0D, 0.25D, 2.0D))) { - if (entitylivingbase != player && entitylivingbase != entity - && !player.isOnSameTeam(entitylivingbase) - && player.getDistanceSqToEntity(entitylivingbase) < 9.0D) { - entitylivingbase.knockBack(player, 0.4F, - (double) MathHelper.sin(player.rotationYaw * 0.017453292F), - (double) (-MathHelper.cos(player.rotationYaw * 0.017453292F))); - super.dealDamage(stack, player, entitylivingbase, damage/2); - } - } - - player.getEntityWorld().playSound(null, player.posX, player.posY, player.posZ, - SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, player.getSoundCategory(), 1.0F, 1.0F); - if (player instanceof EntityPlayer) { - ((EntityPlayer) player).spawnSweepParticles(); - } - } - } - - return hit; - } - - @Override - public float getRepairModifierForPart(int index) { - return DURABILITY_MODIFIER; - } - - @Override - public ToolNBT buildTagData(List materials) { - ToolNBT data = buildDefaultTag(materials); - // 2 base damage, like vanilla swords - data.attack += 1f; - data.durability *= DURABILITY_MODIFIER; - return data; - } -} diff --git a/src/main/java/lance5057/tDefense/core/tools/bases/BaubleTool.java b/src/main/java/lance5057/tDefense/core/tools/bases/BaubleTool.java new file mode 100644 index 0000000..d421dea --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/bases/BaubleTool.java @@ -0,0 +1,152 @@ +package lance5057.tDefense.core.tools.bases; + +import java.util.List; + +import javax.annotation.Nullable; + +import baubles.api.BaubleType; +import baubles.api.IBauble; +import baubles.api.render.IRenderBauble; +import lance5057.tDefense.core.materials.ShieldMaterialStats; +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.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.EnumAction; +import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ActionResult; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import slimeknights.tconstruct.library.client.model.ToolModelLoader; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.tools.TinkerTools; + +//@Optional.InterfaceList({@Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.ISheathed"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowCatcher"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowDisplay"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IShield")}) +public abstract class BaubleTool extends ToolCore implements IBauble, IRenderBauble +{ + //protected static PartMaterialType ShieldMat = new PartMaterialType(TinkerTools.largePlate, ShieldMaterialStats.TYPE); + + public BaubleTool(PartMaterialType... requiredComponents) + { + super(requiredComponents); + +// this.addPropertyOverride(new ResourceLocation("block"), new IItemPropertyGetter() +// { +// @SideOnly(Side.CLIENT) +// public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) +// { +// float i = entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F; +// return i; +// } +// }); + } + + 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) +// { +// return 0.0f; +// } + + /** + * returns the action that specifies what animation to play when the items + * is being used + */ +// @Override +// public EnumAction getItemUseAction(ItemStack par1ItemStack) +// { +// return EnumAction.BLOCK; +// } + +// public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) +// { +// playerIn.setActiveHand(hand); +// return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); +// } +// +// public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) +// { +// return super.onItemUse(stack, playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); +// } + + /** + * How long it takes to use or consume an item + */ + @Override + public int getMaxItemUseDuration(ItemStack par1ItemStack) + { + return 72000; + } + + @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) +// { +// final EntityPlayerSP player = (EntityPlayerSP) entity; +// final ItemStack usingItem = player.getActiveItemStack(); +// if(usingItem != null && usingItem.getItem() == this) +// { +// player.movementInput.moveForward *= 2.5F; +// player.movementInput.moveStrafe *= 2.5F; +// } +// } + } + + protected String getHarvestType() + { + return null; + } + + @Override + public float damagePotential() { + // TODO Auto-generated method stub + return 0.1f; + } + + @Override + public double attackSpeed() { + // TODO Auto-generated method stub + return 4; + } + + @Override + public NBTTagCompound buildTag( + List materials) { + ToolNBT data = buildDefaultTag(materials); + return data.get(); + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java b/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java new file mode 100644 index 0000000..53722b1 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java @@ -0,0 +1,147 @@ +package lance5057.tDefense.core.tools.bases; + +import java.util.List; + +import javax.annotation.Nullable; + +import lance5057.tDefense.core.materials.ShieldMaterialStats; +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.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.EnumAction; +import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ActionResult; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import slimeknights.tconstruct.library.client.model.ToolModelLoader; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.tools.TinkerTools; + +//@Optional.InterfaceList({@Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.ISheathed"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowCatcher"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowDisplay"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IShield")}) +public class Shield extends ToolCore //implements IShield, ISheathed, IArrowCatcher, IArrowDisplay +{ + public Shield(PartMaterialType... requiredComponents) + { + super(requiredComponents); + + this.addPropertyOverride(new ResourceLocation("block"), new IItemPropertyGetter() + { + @SideOnly(Side.CLIENT) + public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) + { + float i = entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F; + return i; + } + }); + } + + 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) +// { +// return 0.0f; +// } + + /** + * returns the action that specifies what animation to play when the items + * is being used + */ + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) + { + return EnumAction.BLOCK; + } + + public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) + { + playerIn.setActiveHand(hand); + return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); + } + + public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) + { + return super.onItemUse(stack, playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); + } + + /** + * How long it takes to use or consume an item + */ + @Override + public int getMaxItemUseDuration(ItemStack par1ItemStack) + { + return 72000; + } + + @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) + { + final EntityPlayerSP player = (EntityPlayerSP) entity; + final ItemStack usingItem = player.getActiveItemStack(); + if(usingItem != null && usingItem.getItem() == this) + { + player.movementInput.moveForward *= 2.5F; + player.movementInput.moveStrafe *= 2.5F; + } + } + } + + protected String getHarvestType() + { + return null; + } + + @Override + public float damagePotential() { + // TODO Auto-generated method stub + return 0.1f; + } + + @Override + public double attackSpeed() { + // TODO Auto-generated method stub + return 4; + } + + @Override + public NBTTagCompound buildTag( + List materials) { + ToolNBT data = buildDefaultTag(materials); + return data.get(); + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/FishingRod.java b/src/main/java/lance5057/tDefense/core/tools/basic/FishingRod.java new file mode 100644 index 0000000..70212c8 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/basic/FishingRod.java @@ -0,0 +1,45 @@ +package lance5057.tDefense.core.tools.basic; + +import java.util.List; + +import lance5057.tDefense.core.parts.TDParts; +import net.minecraft.nbt.NBTTagCompound; +import slimeknights.tconstruct.library.materials.Material; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.tools.TinkerTools; + +public class FishingRod extends ToolCore { + + public static final float DURABILITY_MODIFIER = 1.0f; + + public FishingRod() { + super(PartMaterialType.head(TinkerTools.toughToolRod), PartMaterialType.bowstring(TinkerTools.bowString), + PartMaterialType.handle(TDParts.rivets)); + + setUnlocalizedName("fishingRod"); + } + + @Override + public float damagePotential() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public double attackSpeed() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public NBTTagCompound buildTag(List materials) { + ToolNBT data = buildDefaultTag(materials); + // 2 base damage, like vanilla swords + data.attack += 1f; + data.durability *= DURABILITY_MODIFIER; + return data.get(); + } + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/HeaterShield.java b/src/main/java/lance5057/tDefense/core/tools/basic/HeaterShield.java new file mode 100644 index 0000000..8893616 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/basic/HeaterShield.java @@ -0,0 +1,142 @@ +package lance5057.tDefense.core.tools.basic; + +import lance5057.tDefense.core.parts.TDParts; +import lance5057.tDefense.core.tools.bases.Shield; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.tools.TinkerTools; + +public class HeaterShield extends Shield +{ + int induceDamage = 0; + + public HeaterShield() + { + super(PartMaterialType.handle(TinkerTools.toughToolRod), + TDParts.ShieldMat, + TDParts.ShieldMat, + TDParts.RivetMat); + setUnlocalizedName("heatershield"); + } + +// @Override +// public Item getHeadItem() +// { +// return TinkersDefense.partArmorplate; +// } +// +// @Override +// public Item getHandleItem() +// { +// return TinkerTools.toughRod; +// } +// +// @Override +// public Item getAccessoryItem() +// { +// return TinkersDefense.partArmorplate; +// } +// +// @Override +// public Item getExtraItem() +// { +// return TinkersDefense.partRivet; +// } +// +// @Override +// public int durabilityTypeAccessory() +// { +// return 2; +// } +// +// @Override +// public float getRepairCost() +// { +// return 4.0f; +// } +// +// @Override +// public float getDurabilityModifier() +// { +// return 2.5f; +// } +// +// @Override +// public float breakSpeedModifier() +// { +// return 0.4f; +// } +// +// @Override +// public float getDamageModifier() +// { +// return 1.4f; +// } +// +// @Override +// public int getPartAmount() +// { +// return 4; +// } +// +// @Override +// public String getIconSuffix(int partType) +// { +// switch(partType) +// { +// case 0: +// return "_shield_plate"; +// case 1: +// return "_shield_plate_broken"; +// case 2: +// return "_shield_edge"; +// case 3: +// return "_shield_face"; +// case 4: +// return "_shield_binding"; +// default: +// return ""; +// } +// } +// +// @Override +// public String getEffectSuffix() +// { +// return "_shield_effect"; +// } +// +// @Override +// public String getDefaultFolder() +// { +// return "heatershield"; +// } +// +// // /* tool_TinkerShield specific */ +// // @Override +// // public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, +// // Entity entity) { +// // if (AbilityHelper.onLeftClickEntity(stack, player, entity, this)) { +// // entity.hurtResistantTime += 7; +// // /* +// // * if (entity instanceof EntityLiving) { EntityLiving living = +// // * (EntityLiving) entity; if (living.getHealth() <= 0) { +// // * +// // * } } +// // */ +// // // if (entity.getHealth() <= 0) +// // } +// // return true; +// // } +// +// @Override +// public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) +// { +// super.onUpdate(stack, world, entity, par4, par5); +// +// } +// +// @Override +// protected String getHarvestType() +// { +// return "shield"; +// } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/RoundShield.java b/src/main/java/lance5057/tDefense/core/tools/basic/RoundShield.java new file mode 100644 index 0000000..544eb02 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/basic/RoundShield.java @@ -0,0 +1,43 @@ +package lance5057.tDefense.core.tools.basic; + +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.core.parts.TDParts; +import lance5057.tDefense.core.tools.bases.Shield; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.tools.TinkerTools; + +public class RoundShield extends Shield +{ + int induceDamage = 0; + + public RoundShield() + { + super(PartMaterialType.handle(TinkerTools.toolRod), + TDParts.ShieldMat, + PartMaterialType.head(TinkerTools.panHead)); + setUnlocalizedName("roundshield"); + } + + @Override + public float breakSpeedModifier() + { + return 0.4f; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) + { + super.onUpdate(stack, world, entity, par4, par5); + + } + + @Override + protected String getHarvestType() + { + return "shield"; + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java b/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java new file mode 100644 index 0000000..16ef196 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java @@ -0,0 +1,146 @@ +package lance5057.tDefense.core.tools.basic; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import slimeknights.tconstruct.library.materials.Material; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.tools.TinkerTools; + +public class Shears extends ToolCore { + + public static final float DURABILITY_MODIFIER = 1.0f; + + public Shears() { + super(PartMaterialType.head(TinkerTools.knifeBlade), PartMaterialType.head(TinkerTools.knifeBlade), + PartMaterialType.handle(TinkerTools.binding)); + + setUnlocalizedName("shears"); + } + + @Override + public float damagePotential() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public double attackSpeed() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public NBTTagCompound buildTag(List materials) { + ToolNBT data = buildDefaultTag(materials); + // 2 base damage, like vanilla swords + data.attack += 1f; + data.durability *= DURABILITY_MODIFIER; + return data.get(); + } + + /** + * Called when a Block is destroyed using this Item. Return true to trigger the "Use Item" statistic. + */ + public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) + { + stack.damageItem(1, entityLiving); + Block block = state.getBlock(); + return state.getMaterial() != net.minecraft.block.material.Material.LEAVES && block != Blocks.WEB && block != Blocks.TALLGRASS && block != Blocks.VINE && block != Blocks.TRIPWIRE && block != Blocks.WOOL && !(state instanceof net.minecraftforge.common.IShearable) ? super.onBlockDestroyed(stack, worldIn, state, pos, entityLiving) : true; + } + + /** + * Check whether this Item can harvest the given Block + */ + public boolean canHarvestBlock(IBlockState blockIn) + { + Block block = blockIn.getBlock(); + return block == Blocks.WEB || block == Blocks.REDSTONE_WIRE || block == Blocks.TRIPWIRE; + } + + public float getStrVsBlock(ItemStack stack, IBlockState state) + { + Block block = state.getBlock(); + return block != Blocks.WEB && state.getMaterial() != net.minecraft.block.material.Material.LEAVES ? (block == Blocks.WOOL ? 5.0F : super.getStrVsBlock(stack, state)) : 15.0F; + } + + + /** + * Returns true if the item can be used on the given entity, e.g. shears on sheep. + */ + @Override + public boolean itemInteractionForEntity(ItemStack itemstack, net.minecraft.entity.player.EntityPlayer player, EntityLivingBase entity, net.minecraft.util.EnumHand hand) + { + if (entity.world.isRemote) + { + return false; + } + if (entity instanceof net.minecraftforge.common.IShearable) + { + net.minecraftforge.common.IShearable target = (net.minecraftforge.common.IShearable)entity; + BlockPos pos = new BlockPos(entity.posX, entity.posY, entity.posZ); + if (target.isShearable(itemstack, entity.world, pos)) + { + java.util.List drops = target.onSheared(itemstack, entity.world, pos, + net.minecraft.enchantment.EnchantmentHelper.getEnchantmentLevel(net.minecraft.init.Enchantments.FORTUNE, itemstack)); + + java.util.Random rand = new java.util.Random(); + for(ItemStack stack : drops) + { + net.minecraft.entity.item.EntityItem ent = entity.entityDropItem(stack, 1.0F); + ent.motionY += rand.nextFloat() * 0.05F; + ent.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; + ent.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; + } + itemstack.damageItem(1, entity); + } + return true; + } + return false; + } + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, net.minecraft.entity.player.EntityPlayer player) + { + if (player.world.isRemote || player.capabilities.isCreativeMode) + { + return false; + } + Block block = player.world.getBlockState(pos).getBlock(); + if (block instanceof net.minecraftforge.common.IShearable) + { + net.minecraftforge.common.IShearable target = (net.minecraftforge.common.IShearable)block; + if (target.isShearable(itemstack, player.world, pos)) + { + java.util.List drops = target.onSheared(itemstack, player.world, pos, + net.minecraft.enchantment.EnchantmentHelper.getEnchantmentLevel(net.minecraft.init.Enchantments.FORTUNE, itemstack)); + java.util.Random rand = new java.util.Random(); + + for(ItemStack stack : drops) + { + float f = 0.7F; + double d = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + double d1 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + double d2 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + net.minecraft.entity.item.EntityItem entityitem = new net.minecraft.entity.item.EntityItem(player.world, (double)pos.getX() + d, (double)pos.getY() + d1, (double)pos.getZ() + d2, stack); + entityitem.setDefaultPickupDelay(); + player.world.spawnEntity(entityitem); + } + + itemstack.damageItem(1, player); + player.addStat(net.minecraft.stats.StatList.getBlockStats(block)); + } + } + return false; + } + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java b/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java new file mode 100644 index 0000000..19934db --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java @@ -0,0 +1,96 @@ +package lance5057.tDefense.core.tools.basic; + +import java.util.List; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.MobEffects; +import net.minecraft.init.SoundEvents; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.MathHelper; +import slimeknights.tconstruct.library.materials.Material; +import slimeknights.tconstruct.library.tinkering.Category; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tools.SwordCore; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.library.utils.ToolHelper; +import slimeknights.tconstruct.tools.TinkerTools; + +public class Zweihander extends SwordCore { + + public static final float DURABILITY_MODIFIER = 1.1f; + + public Zweihander() { + super(PartMaterialType.head(TinkerTools.largeSwordBlade), PartMaterialType.head(TinkerTools.swordBlade), + PartMaterialType.handle(TinkerTools.toughToolRod), PartMaterialType.extra(TinkerTools.toughBinding)); + + setUnlocalizedName("zweihander"); + addCategory(Category.WEAPON); + } + + @Override + public float damagePotential() { + return 1.0f; + } + + @Override + public double attackSpeed() { + return 1.0d; + } + + // sword sweep attack + @Override + public boolean dealDamage(ItemStack stack, EntityLivingBase player, Entity entity, float damage) { + // deal damage first + boolean hit = super.dealDamage(stack, player, entity, damage); + // and then sweep + if (hit && !ToolHelper.isBroken(stack)) { + // sweep code from EntityPlayer#attackTargetEntityWithCurrentItem() + // basically: no crit, no sprinting and has to stand on the ground + // for sweep. Also has to move regularly slowly + double d0 = (double) (player.distanceWalkedModified - player.prevDistanceWalkedModified); + boolean flag = true; + if (player instanceof EntityPlayer) { + flag = ((EntityPlayer) player).getCooledAttackStrength(0.5F) > 0.9f; + } + boolean flag2 = player.fallDistance > 0.0F && !player.onGround && !player.isOnLadder() + && !player.isInWater() && !player.isPotionActive(MobEffects.BLINDNESS) && !player.isRiding(); + if (flag && !player.isSprinting() && !flag2 && player.onGround && d0 < (double) player.getAIMoveSpeed()) { + for (EntityLivingBase entitylivingbase : player.getEntityWorld().getEntitiesWithinAABB( + EntityLivingBase.class, entity.getEntityBoundingBox().expand(2.0D, 0.25D, 2.0D))) { + if (entitylivingbase != player && entitylivingbase != entity + && !player.isOnSameTeam(entitylivingbase) + && player.getDistanceSqToEntity(entitylivingbase) < 9.0D) { + entitylivingbase.knockBack(player, 0.4F, + (double) MathHelper.sin(player.rotationYaw * 0.017453292F), + (double) (-MathHelper.cos(player.rotationYaw * 0.017453292F))); + super.dealDamage(stack, player, entitylivingbase, damage/2); + } + } + + player.getEntityWorld().playSound(null, player.posX, player.posY, player.posZ, + SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, player.getSoundCategory(), 1.0F, 1.0F); + if (player instanceof EntityPlayer) { + ((EntityPlayer) player).spawnSweepParticles(); + } + } + } + + return hit; + } + + @Override + public float getRepairModifierForPart(int index) { + return DURABILITY_MODIFIER; + } + + @Override + public ToolNBT buildTagData(List materials) { + ToolNBT data = buildDefaultTag(materials); + // 2 base damage, like vanilla swords + data.attack += 1f; + data.durability *= DURABILITY_MODIFIER; + return data; + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/baubles/Amulet.java b/src/main/java/lance5057/tDefense/core/tools/baubles/Amulet.java new file mode 100644 index 0000000..77c90c4 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/baubles/Amulet.java @@ -0,0 +1,31 @@ +package lance5057.tDefense.core.tools.baubles; + +import baubles.api.BaubleType; +import lance5057.tDefense.core.parts.TDParts; +import lance5057.tDefense.core.tools.bases.BaubleTool; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.tools.TinkerTools; + +public class Amulet extends BaubleTool +{ + public Amulet() + { + super(PartMaterialType.head(TDParts.setting), PartMaterialType.handle(TDParts.chainmail), + PartMaterialType.extra(TDParts.clasp)); + } + + @Override + public BaubleType getBaubleType(ItemStack itemstack) { + // TODO Auto-generated method stub + return BaubleType.RING; + } + + @Override + public void onPlayerBaubleRender(ItemStack stack, EntityPlayer player, RenderType type, float partialTicks) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/baubles/Ring.java b/src/main/java/lance5057/tDefense/core/tools/baubles/Ring.java new file mode 100644 index 0000000..08ffa69 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/baubles/Ring.java @@ -0,0 +1,31 @@ +package lance5057.tDefense.core.tools.baubles; + +import baubles.api.BaubleType; +import lance5057.tDefense.core.parts.TDParts; +import lance5057.tDefense.core.tools.bases.BaubleTool; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.tools.TinkerTools; + +public class Ring extends BaubleTool +{ + public Ring() + { + super(PartMaterialType.head(TDParts.ringShank), PartMaterialType.handle(TDParts.filigree), + PartMaterialType.extra(TDParts.setting)); + } + + @Override + public BaubleType getBaubleType(ItemStack itemstack) { + // TODO Auto-generated method stub + return BaubleType.RING; + } + + @Override + public void onPlayerBaubleRender(ItemStack stack, EntityPlayer player, RenderType type, float partialTicks) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/baubles/Sheathe.java b/src/main/java/lance5057/tDefense/core/tools/baubles/Sheathe.java new file mode 100644 index 0000000..f6f2c3b --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/baubles/Sheathe.java @@ -0,0 +1,47 @@ +package lance5057.tDefense.core.tools.baubles; + +import baubles.api.BaubleType; +import lance5057.tDefense.Reference; +import lance5057.tDefense.core.tools.bases.BaubleTool; +import lance5057.tDefense.proxy.ClientProxy; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.tools.TinkerTools; + +public class Sheathe extends BaubleTool { + private static final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/model/sheathe.png"); + + public Sheathe(PartMaterialType... requiredComponents) { + super(PartMaterialType.head(TinkerTools.largePlate), PartMaterialType.handle(TinkerTools.toolRod), + PartMaterialType.bowstring(TinkerTools.bowString)); + + } + + @Override + public BaubleType getBaubleType(ItemStack itemstack) { + // TODO Auto-generated method stub + return BaubleType.BODY; + } + + @Override + public void onPlayerBaubleRender(ItemStack stack, EntityPlayer player, RenderType type, float partialTicks) { + // TODO Auto-generated method stub + + if (type == RenderType.BODY) { + float s = 1F / 16F; + GlStateManager.scale(s, s, s); + + GlStateManager.enableLighting(); + GlStateManager.enableRescaleNormal(); + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + + ClientProxy.sheathe.render(1f, player.inventory.getStackInSlot(0), player.inventory.getStackInSlot(1), player.getHeldItemMainhand(), player.getHeldItemOffhand()); + } + } + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/baubles/TinkersGauntlets.java b/src/main/java/lance5057/tDefense/core/tools/baubles/TinkersGauntlets.java new file mode 100644 index 0000000..8e2db9b --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/baubles/TinkersGauntlets.java @@ -0,0 +1,131 @@ +package lance5057.tDefense.core.tools.baubles; +//package lance5057.tDefense.armor.items; +// +//import lance5057.tDefense.TinkersDefense; +//import lance5057.tDefense.armor.ArmorCore; +//import lance5057.tDefense.armor.renderers.ArmorRenderer; +//import lance5057.tDefense.proxy.ClientProxy; +//import net.minecraft.entity.Entity; +//import net.minecraft.item.Item; +//import net.minecraft.item.ItemStack; +//import tconstruct.library.accessory.IAccessory; +//import tconstruct.tools.TinkerTools; +// +//public class TinkersGauntlets extends ArmorCore implements IAccessory +//{ +// public TinkersGauntlets() +// { +// super(0, -1); +// setUnlocalizedName("tinkersgauntlets"); +// } +// +// @Override +// public boolean canEquipAccessory(ItemStack item, int slot) +// { +// return slot == 1; +// } +// +// @Override +// public Item getHeadItem() +// { +// return TinkersDefense.partArmorplate; +// } +// +// @Override +// public Item getHandleItem() +// { +// return TinkerTools.toughRod; +// } +// +// @Override +// public Item getAccessoryItem() +// { +// return TinkersDefense.partRivet; +// } +// +// @Override +// public int durabilityTypeAccessory() +// { +// return 2; +// } +// +// @Override +// public float getRepairCost() +// { +// return 1.0f; +// } +// +// @Override +// public float getDurabilityModifier() +// { +// return 2.5f; +// } +// +// @Override +// public float getDamageModifier() +// { +// return 0f; +// } +// +// @Override +// public int getPartAmount() +// { +// return 3; +// } +// +// @Override +// public String getIconSuffix(int partType) +// { +// switch(partType) +// { +// case 0: +// return "_gauntlet_plate"; +// case 1: +// return "_gauntlet_plate_broken"; +// case 2: +// return "_gauntlet_trim"; +// case 3: +// return "_gauntlet_rivet"; +// default: +// return ""; +// } +// } +// +// @Override +// public String getEffectSuffix() +// { +// return "_gauntlet_effect"; +// } +// +// @Override +// public String getDefaultFolder() +// { +// return "armor/gauntlets"; +// } +// +// // @Override +// // public void onUpdate(ItemStack stack, World world, Entity entity, int +// // par4, +// // boolean par5) { +// // super.onUpdate(stack, world, entity, par4, par5); +// // +// // } +// +// @Override +// public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) +// { +// return "tinkersdefense:textures/armor/Tinkersgauntlet.png"; +// } +// +// @Override +// public String[] getTraits() +// { +// return new String[] {"hands", "gauntlet"}; +// } +// +// @Override +// public ArmorRenderer getRenderer() +// { +// return ClientProxy.gauntlets; +// } +//} diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java index 9443435..af0a175 100644 --- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java @@ -1,14 +1,15 @@ package lance5057.tDefense.proxy; +import java.util.Map; + import javax.annotation.Nonnull; import lance5057.tDefense.Reference; import lance5057.tDefense.TD_Commands; -import lance5057.tDefense.baubles.BaublesClientProxy; -import lance5057.tDefense.core.CoreBlocks; import lance5057.tDefense.core.CoreClientProxy; -import lance5057.tDefense.core.CoreItems; -import lance5057.tDefense.core.blocks.TDMetalBlock; +import lance5057.tDefense.core.parts.TDParts; +import lance5057.tDefense.core.renderers.BaubleRenderer; +import lance5057.tDefense.core.renderers.SheatheModel; import lance5057.tDefense.core.tools.TDTools; import lance5057.tDefense.holiday.HolidayClientProxy; import net.minecraft.block.Block; @@ -17,6 +18,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.StateMapperBase; +import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -24,6 +26,7 @@ import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fluids.Fluid; import slimeknights.tconstruct.common.ModelRegisterUtil; +import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.TinkerRegistryClient; import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; @@ -36,8 +39,6 @@ public class ClientProxy extends CommonProxy { // public static ModelTinkersTabard sheath; - public static BaublesClientProxy baubles = new BaublesClientProxy(); - ToolBuildGuiInfo roundshieldGUI; ToolBuildGuiInfo heatershieldGUI; @@ -60,6 +61,12 @@ public class ClientProxy extends CommonProxy { ToolBuildGuiInfo grievesGUI; ToolBuildGuiInfo sabatonsGUI; + ToolBuildGuiInfo sheatheGUI; + ToolBuildGuiInfo ringGUI; + ToolBuildGuiInfo amuletGUI; + + public static SheatheModel sheathe; + public static CoreClientProxy coreProxy = new CoreClientProxy(); public static HolidayClientProxy holiProxy = new HolidayClientProxy(); // public static ArmorClientProxy armorProxy = new ArmorClientProxy(); @@ -68,35 +75,29 @@ public class ClientProxy extends CommonProxy { public void preInit() { ClientCommandHandler.instance.registerCommand(new TD_Commands()); registerToolRenderers(); + registerPartModels(); coreProxy.preInit(); - // armorProxy.preInit(); - baubles.preInit(); } @Override public void init() { - // Minecraft.getMinecraft().getRenderItem().getItemModelMesher() - // .register(TDTools.heatershield, 0, new - // ModelResourceLocation("modid:itemname", "inventory")); - // + Map skinMap = Minecraft.getMinecraft().getRenderManager().getSkinMap(); + RenderPlayer render; + render = skinMap.get("default"); + render.addLayer(new BaubleRenderer()); + + render = skinMap.get("slim"); + render.addLayer(new BaubleRenderer()); createToolGuis(); setToolGuis(); registerToolGuis(); - - registerItemRenderer(CoreBlocks.metalItemBlock, TDMetalBlock.EnumMetal.AEONSTEEL.getID(), "aeonsteelblock"); - registerItemRenderer(CoreBlocks.metalItemBlock, TDMetalBlock.EnumMetal.QUEENSGOLD.getID(), "queensgoldblock"); - registerItemRenderer(CoreBlocks.metalItemBlock, TDMetalBlock.EnumMetal.DOGBEARIUM.getID(), "dogbeariumblock"); - - registerItemRenderer(CoreItems.item_aeonsteelIngot, 0, CoreItems.item_aeonsteelIngot.getUnlocalizedName()); - registerItemRenderer(CoreItems.item_dogbeariumIngot, 0, CoreItems.item_dogbeariumIngot.getUnlocalizedName()); - registerItemRenderer(CoreItems.item_queensgoldIngot, 0, CoreItems.item_queensgoldIngot.getUnlocalizedName()); + createToolModels(); coreProxy.init(); // armorProxy.init(); holiProxy.Init(); - baubles.init(); } public void registerToolRenderers() { @@ -111,6 +112,9 @@ public class ClientProxy extends CommonProxy { ModelRegisterUtil.registerToolModel(TDTools.robe); ModelRegisterUtil.registerToolModel(TDTools.shoes); + ModelRegisterUtil.registerToolModel(TDTools.sheathe); + ModelRegisterUtil.registerToolModel(TDTools.ring); + ModelRegisterUtil.registerToolModel(TDTools.amulet); } public void createToolGuis() { @@ -124,6 +128,11 @@ public class ClientProxy extends CommonProxy { shawlGUI = new ToolBuildGuiInfo(TDTools.shawl); robeGUI = new ToolBuildGuiInfo(TDTools.robe); shoesGUI = new ToolBuildGuiInfo(TDTools.shoes); + + sheatheGUI = new ToolBuildGuiInfo(TDTools.sheathe); + ringGUI = new ToolBuildGuiInfo(TDTools.ring); + amuletGUI = new ToolBuildGuiInfo(TDTools.amulet); + } public void setupToolGuis() { @@ -160,6 +169,10 @@ public class ClientProxy extends CommonProxy { shearsGUI.addSlotPosition(34, 15 + 8); shearsGUI.addSlotPosition(43, 33 + 8); shearsGUI.addSlotPosition(34, 51 + 8); + + ringGUI.addSlotPosition(34, 15 + 8); + ringGUI.addSlotPosition(43, 33 + 8); + ringGUI.addSlotPosition(34, 51 + 8); } public void registerToolGuis() { @@ -174,13 +187,26 @@ public class ClientProxy extends CommonProxy { TinkerRegistryClient.addToolBuilding(robeGUI); TinkerRegistryClient.addToolBuilding(shoesGUI); + TinkerRegistryClient.addToolBuilding(sheatheGUI); + TinkerRegistryClient.addToolBuilding(ringGUI); + TinkerRegistryClient.addToolBuilding(amuletGUI); + } + + public void registerPartModels() { + ModelRegisterUtil.registerPartModel(TDParts.armorPlate); + ModelRegisterUtil.registerPartModel(TDParts.chainmail); + ModelRegisterUtil.registerPartModel(TDParts.clasp); + ModelRegisterUtil.registerPartModel(TDParts.cloth); + ModelRegisterUtil.registerPartModel(TDParts.filigree); + ModelRegisterUtil.registerPartModel(TDParts.ringShank); + ModelRegisterUtil.registerPartModel(TDParts.rivets); + ModelRegisterUtil.registerPartModel(TDParts.setting); + ModelRegisterUtil.registerPartModel(TDParts.wire); } @Override public void reloadRenderers() { setToolGuis(); - - baubles.reloadRenderers(); } public void setToolGuis() { @@ -230,6 +256,25 @@ public class ClientProxy extends CommonProxy { fishingRodGUI.addSlotPosition(34, 15 + 8); fishingRodGUI.addSlotPosition(43, 33 + 8); fishingRodGUI.addSlotPosition(34, 51 + 8); + + sheatheGUI.positions.clear(); + sheatheGUI.addSlotPosition(34, 15); + sheatheGUI.addSlotPosition(34, 33); + sheatheGUI.addSlotPosition(34, 51); + + ringGUI.positions.clear(); + ringGUI.addSlotPosition(34, 15); + ringGUI.addSlotPosition(34, 33); + ringGUI.addSlotPosition(34, 51); + + amuletGUI.positions.clear(); + amuletGUI.addSlotPosition(34, 15); + amuletGUI.addSlotPosition(34, 33); + amuletGUI.addSlotPosition(34, 51); + } + + void createToolModels() { + sheathe = new SheatheModel(); } @Override @@ -258,36 +303,36 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomStateMapper(block, mapper); } } - + @Override public void registerItemBlockRenderer(Block block, int meta, String file) { - Minecraft.getMinecraft().getRenderItem().getItemModelMesher() - .register(Item.getItemFromBlock(block), meta, new ModelResourceLocation(Reference.MOD_ID + ":" + file, "inventory")); + Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), meta, + new ModelResourceLocation(Reference.MOD_ID + ":" + file, "inventory")); } - - public static class FluidStateMapper extends StateMapperBase implements ItemMeshDefinition { + public static class FluidStateMapper extends StateMapperBase implements ItemMeshDefinition { - public final Fluid fluid; - public final ModelResourceLocation location; + public final Fluid fluid; + public final ModelResourceLocation location; - public FluidStateMapper(Fluid fluid) { - this.fluid = fluid; + public FluidStateMapper(Fluid fluid) { + this.fluid = fluid; - // have each block hold its fluid per nbt? hm - this.location = new ModelResourceLocation(new ResourceLocation(Reference.MOD_ID, "fluid_block"), fluid.getName()); - } + // have each block hold its fluid per nbt? hm + this.location = new ModelResourceLocation(new ResourceLocation(Reference.MOD_ID, "fluid_block"), + fluid.getName()); + } - @Nonnull - @Override - protected ModelResourceLocation getModelResourceLocation(@Nonnull IBlockState state) { - return location; - } + @Nonnull + @Override + protected ModelResourceLocation getModelResourceLocation(@Nonnull IBlockState state) { + return location; + } - @Nonnull - @Override - public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) { - return location; - } -} + @Nonnull + @Override + public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) { + return location; + } + } } diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/armor_plate.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/armor_plate.tmat.json new file mode 100644 index 0000000..68cbc91 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/armor_plate.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_armorplate" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/chainmail.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/chainmail.tmat.json new file mode 100644 index 0000000..635fd15 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/chainmail.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_chainmail" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/clasp.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/clasp.tmat.json new file mode 100644 index 0000000..43a7e56 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/clasp.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_clasp" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/cloth.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/cloth.tmat.json new file mode 100644 index 0000000..2482927 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/cloth.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_cloth" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/filigree.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/filigree.tmat.json new file mode 100644 index 0000000..4fef267 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/filigree.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_filigree" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/ringshank.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/ringshank.tmat.json new file mode 100644 index 0000000..a4f5e94 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/ringshank.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_ringshank" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/rivets.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/rivets.tmat.json new file mode 100644 index 0000000..9f924c1 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/rivets.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_rivets" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/setting.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/setting.tmat.json new file mode 100644 index 0000000..9267712 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/setting.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_setting" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/parts/wire.tmat.json b/src/main/resources/assets/tinkersdefense/models/item/parts/wire.tmat.json new file mode 100644 index 0000000..34ba698 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/parts/wire.tmat.json @@ -0,0 +1,5 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/_wire" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/tools/amulet.tcon.json b/src/main/resources/assets/tinkersdefense/models/item/tools/amulet.tcon.json new file mode 100644 index 0000000..9a3c781 --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/tools/amulet.tcon.json @@ -0,0 +1,8 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/baubles/amulet/_setting", + "layer1": "tinkersdefense:items/baubles/amulet/_chain", + "layer2": "tinkersdefense:items/baubles/amulet/_clasp", + "broken1": "tinkersdefense:items/baubles/amulet/_broken" + } +} diff --git a/src/main/resources/assets/tinkersdefense/models/item/tools/ring.tcon.json b/src/main/resources/assets/tinkersdefense/models/item/tools/ring.tcon.json new file mode 100644 index 0000000..309352c --- /dev/null +++ b/src/main/resources/assets/tinkersdefense/models/item/tools/ring.tcon.json @@ -0,0 +1,8 @@ +{ + "textures": { + "layer0": "tinkersdefense:items/baubles/ring/_band", + "layer1": "tinkersdefense:items/baubles/ring/_filigree", + "layer2": "tinkersdefense:items/baubles/ring/_setting", + "broken1": "tinkersdefense:items/baubles/ring/_broken" + } +} diff --git a/src/main/resources/assets/tinkersdefense/textures/gui/straps_helm.png b/src/main/resources/assets/tinkersdefense/textures/gui/straps_helm.png new file mode 100644 index 0000000..40f0768 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/gui/straps_helm.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_armorplate.png b/src/main/resources/assets/tinkersdefense/textures/items/_armorplate.png new file mode 100644 index 0000000..dc3ed27 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_armorplate.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_chainmaille.png b/src/main/resources/assets/tinkersdefense/textures/items/_chainmaille.png new file mode 100644 index 0000000..403e542 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_chainmaille.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_clasp.png b/src/main/resources/assets/tinkersdefense/textures/items/_clasp.png new file mode 100644 index 0000000..20ab87f Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_clasp.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_cloth.png b/src/main/resources/assets/tinkersdefense/textures/items/_cloth.png new file mode 100644 index 0000000..2e0f570 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_cloth.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_filigree.png b/src/main/resources/assets/tinkersdefense/textures/items/_filigree.png new file mode 100644 index 0000000..8fdc1e9 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_filigree.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_ringshank.png b/src/main/resources/assets/tinkersdefense/textures/items/_ringshank.png new file mode 100644 index 0000000..cad310e Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_ringshank.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_rivets.png b/src/main/resources/assets/tinkersdefense/textures/items/_rivets.png new file mode 100644 index 0000000..2791f93 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_rivets.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_setting.png b/src/main/resources/assets/tinkersdefense/textures/items/_setting.png new file mode 100644 index 0000000..44cf52f Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_setting.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/_wire.png b/src/main/resources/assets/tinkersdefense/textures/items/_wire.png new file mode 100644 index 0000000..de3db86 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/_wire.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_broken.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_broken.png new file mode 100644 index 0000000..ed68a34 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_broken.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_chain.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_chain.png new file mode 100644 index 0000000..6600445 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_chain.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_clasp.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_clasp.png new file mode 100644 index 0000000..10d458e Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_clasp.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_setting.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_setting.png new file mode 100644 index 0000000..26c229a Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/amulet/_setting.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_band.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_band.png new file mode 100644 index 0000000..abbefee Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_band.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_broken.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_broken.png new file mode 100644 index 0000000..8ac9892 Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_broken.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_filigree.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_filigree.png new file mode 100644 index 0000000..baf551b Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_filigree.png differ diff --git a/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_setting.png b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_setting.png new file mode 100644 index 0000000..9cb179c Binary files /dev/null and b/src/main/resources/assets/tinkersdefense/textures/items/baubles/ring/_setting.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 6707487..5b87739 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "tinkersdefense", "name": "Tinkers' Defense", "description": "A defense related expansion for TConstruct", - "version": "1.4.0.6a", + "version": "1.4.1.0a", "mcversion": "1.10.2", "url": "", "authorList": ["Sir Lance"], -- cgit v1.2.3