summaryrefslogtreecommitdiff
path: root/src/main/java/lance5057/tDefense/baubles
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/lance5057/tDefense/baubles')
-rw-r--r--src/main/java/lance5057/tDefense/baubles/BaublesBase.java32
-rw-r--r--src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java91
-rw-r--r--src/main/java/lance5057/tDefense/baubles/BaublesItems.java25
-rw-r--r--src/main/java/lance5057/tDefense/baubles/blocks/JewelersBench.java57
-rw-r--r--src/main/java/lance5057/tDefense/baubles/models/ModelJewelersBench.java104
-rw-r--r--src/main/java/lance5057/tDefense/baubles/models/Renderer_JewelersBench.java43
-rw-r--r--src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java108
-rw-r--r--src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java128
-rw-r--r--src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java152
-rw-r--r--src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java48
-rw-r--r--src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java99
11 files changed, 682 insertions, 205 deletions
diff --git a/src/main/java/lance5057/tDefense/baubles/BaublesBase.java b/src/main/java/lance5057/tDefense/baubles/BaublesBase.java
index 7152104..b2af546 100644
--- a/src/main/java/lance5057/tDefense/baubles/BaublesBase.java
+++ b/src/main/java/lance5057/tDefense/baubles/BaublesBase.java
@@ -1,8 +1,40 @@
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
new file mode 100644
index 0000000..d5603ff
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/BaublesClientProxy.java
@@ -0,0 +1,91 @@
+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<String, RenderPlayer> 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
index 729654a..69323bb 100644
--- a/src/main/java/lance5057/tDefense/baubles/BaublesItems.java
+++ b/src/main/java/lance5057/tDefense/baubles/BaublesItems.java
@@ -1,5 +1,28 @@
package lance5057.tDefense.baubles;
-public class BaublesItems {
+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/blocks/JewelersBench.java b/src/main/java/lance5057/tDefense/baubles/blocks/JewelersBench.java
deleted file mode 100644
index e7f54fb..0000000
--- a/src/main/java/lance5057/tDefense/baubles/blocks/JewelersBench.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package lance5057.tDefense.baubles.blocks;
-
-import lance5057.tDefense.baubles.tileentities.TileEntity_JewelersBench;
-import net.minecraft.block.Block;
-import net.minecraft.block.ITileEntityProvider;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-public class JewelersBench extends Block implements ITileEntityProvider
-{
-
- public JewelersBench()
- {
- super(Material.iron);
- }
-
- //You don't want the normal render type, or it wont render properly.
- @Override
- public int getRenderType()
- {
- return -1;
- }
-
- //It's not an opaque cube, so you need this.
- @Override
- public boolean isOpaqueCube()
- {
- return false;
- }
-
- //It's not a normal block, so you need this too.
- @Override
- public boolean renderAsNormalBlock()
- {
- return false;
- }
-
- //This is the icon to use for showing the block in your hand.
- @SideOnly(Side.CLIENT)
- @Override
- public void registerBlockIcons(IIconRegister icon)
- {
- blockIcon = icon.registerIcon("tinkersdefense:WIP");
- }
-
- @Override
- public TileEntity createNewTileEntity(World w, int md)
- {
- final TileEntity_JewelersBench te = new TileEntity_JewelersBench();
- return te;
- }
-
-}
diff --git a/src/main/java/lance5057/tDefense/baubles/models/ModelJewelersBench.java b/src/main/java/lance5057/tDefense/baubles/models/ModelJewelersBench.java
deleted file mode 100644
index 164c522..0000000
--- a/src/main/java/lance5057/tDefense/baubles/models/ModelJewelersBench.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package lance5057.tDefense.baubles.models;
-
-import net.minecraft.client.model.ModelBase;
-import net.minecraft.client.model.ModelRenderer;
-import net.minecraft.entity.Entity;
-
-/**
- * JewelersBench - lance5057
- * Created using Tabula 4.1.1
- */
-public class ModelJewelersBench extends ModelBase
-{
- public ModelRenderer TableSide2;
- public ModelRenderer SawBlock1;
- public ModelRenderer SawBlock2;
- public ModelRenderer SawBlock3;
- public ModelRenderer SawBlockClamp;
- public ModelRenderer Leg1;
- public ModelRenderer Leg2;
- public ModelRenderer Leg3;
- public ModelRenderer Leg4;
- public ModelRenderer TableTop;
- public ModelRenderer TableBack;
- public ModelRenderer TableSide1;
- public ModelRenderer Drawer;
- public ModelRenderer Handle;
-
- public ModelJewelersBench()
- {
- textureWidth = 64;
- textureHeight = 64;
- SawBlock1 = new ModelRenderer(this, 0, 0);
- SawBlock1.setRotationPoint(2.0F, 8.2F, -12.0F);
- SawBlock1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 4, 0.0F);
- Leg4 = new ModelRenderer(this, 0, 0);
- Leg4.setRotationPoint(6.0F, 10.0F, 6.0F);
- Leg4.addBox(0.0F, 0.0F, 0.0F, 2, 14, 2, 0.0F);
- Drawer = new ModelRenderer(this, 0, 46);
- Drawer.setRotationPoint(-6.0F, 11.5F, -8.0F);
- Drawer.addBox(0.0F, 0.0F, 0.0F, 12, 2, 16, 0.0F);
- TableSide2 = new ModelRenderer(this, 0, 0);
- TableSide2.setRotationPoint(-8.0F, 7.0F, -7.0F);
- TableSide2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 14, 0.0F);
- Leg2 = new ModelRenderer(this, 0, 0);
- Leg2.setRotationPoint(6.0F, 10.0F, -8.0F);
- Leg2.addBox(0.0F, 0.0F, 0.0F, 2, 14, 2, 0.0F);
- TableSide1 = new ModelRenderer(this, 0, 0);
- TableSide1.setRotationPoint(7.0F, 7.0F, -7.0F);
- TableSide1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 14, 0.0F);
- SawBlock3 = new ModelRenderer(this, 0, 0);
- SawBlock3.setRotationPoint(3.0F, 8.2F, -11.0F);
- SawBlock3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F);
- Handle = new ModelRenderer(this, 55, 0);
- Handle.setRotationPoint(-2.0F, 12.0F, -9.0F);
- Handle.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F);
- Leg1 = new ModelRenderer(this, 0, 0);
- Leg1.setRotationPoint(-8.0F, 10.0F, -8.0F);
- Leg1.addBox(0.0F, 0.0F, 0.0F, 2, 14, 2, 0.0F);
- TableTop = new ModelRenderer(this, 0, 28);
- TableTop.setRotationPoint(-8.0F, 8.0F, -8.0F);
- TableTop.addBox(0.0F, 0.0F, 0.0F, 16, 2, 16, 0.0F);
- TableBack = new ModelRenderer(this, 0, 0);
- TableBack.setRotationPoint(-8.0F, 7.0F, 7.0F);
- TableBack.addBox(0.0F, 0.0F, 0.0F, 16, 1, 1, 0.0F);
- SawBlockClamp = new ModelRenderer(this, 54, 0);
- SawBlockClamp.setRotationPoint(1.5F, 8.0F, -9.0F);
- SawBlockClamp.addBox(0.0F, 0.0F, 0.0F, 4, 2, 1, 0.0F);
- Leg3 = new ModelRenderer(this, 0, 0);
- Leg3.setRotationPoint(-8.0F, 10.0F, 6.0F);
- Leg3.addBox(0.0F, 0.0F, 0.0F, 2, 14, 2, 0.0F);
- SawBlock2 = new ModelRenderer(this, 0, 0);
- SawBlock2.setRotationPoint(4.0F, 8.2F, -12.0F);
- SawBlock2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 4, 0.0F);
- }
-
- @Override
- public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
- {
- SawBlock1.render(f5);
- Leg4.render(f5);
- Drawer.render(f5);
- TableSide2.render(f5);
- Leg2.render(f5);
- TableSide1.render(f5);
- SawBlock3.render(f5);
- Handle.render(f5);
- Leg1.render(f5);
- TableTop.render(f5);
- TableBack.render(f5);
- SawBlockClamp.render(f5);
- Leg3.render(f5);
- SawBlock2.render(f5);
- }
-
- /**
- * 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/models/Renderer_JewelersBench.java b/src/main/java/lance5057/tDefense/baubles/models/Renderer_JewelersBench.java
deleted file mode 100644
index 8f5608c..0000000
--- a/src/main/java/lance5057/tDefense/baubles/models/Renderer_JewelersBench.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package lance5057.tDefense.baubles.models;
-
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
-import net.minecraft.entity.Entity;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.ResourceLocation;
-
-import org.lwjgl.opengl.GL11;
-
-public class Renderer_JewelersBench extends TileEntitySpecialRenderer
-{
- private final ModelJewelersBench model;
-
- public Renderer_JewelersBench()
- {
- model = new ModelJewelersBench();
- }
-
- @Override
- public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
- {
- GL11.glPushMatrix();
- GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
-
- final ResourceLocation textures = (new ResourceLocation(
- "tinkersdefense:textures/blocks/jewelersbench.png"));
-
- Minecraft.getMinecraft().renderEngine.bindTexture(textures);
-
- GL11.glPushMatrix();
-
- te.getBlockMetadata();
-
- GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
-
- model.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
- GL11.glPopMatrix();
- GL11.glPopMatrix();
-
- }
-
-}
diff --git a/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java b/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java
new file mode 100644
index 0000000..8c6aec3
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/renderers/BaubleRenderer.java
@@ -0,0 +1,108 @@
+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<EntityPlayer> {
+
+ @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
new file mode 100644
index 0000000..88177ef
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/renderers/SheatheModel.java
@@ -0,0 +1,128 @@
+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/tools/BaubleTool.java b/src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java
new file mode 100644
index 0000000..b393100
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/tools/BaubleTool.java
@@ -0,0 +1,152 @@
+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<ItemStack> 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<slimeknights.tconstruct.library.materials.Material> 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
new file mode 100644
index 0000000..f9c62cc
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/tools/Sheathe.java
@@ -0,0 +1,48 @@
+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
new file mode 100644
index 0000000..f06a217
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/baubles/tools/TDBaubles.java
@@ -0,0 +1,99 @@
+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<ToolCore> tools = Lists.newLinkedList(); // contains all tools registered in this pulse
+// static List<ToolPart> toolparts = Lists.newLinkedList(); // ^ all toolparts
+// static List<IModifier> 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