summaryrefslogtreecommitdiff
path: root/src/main/java/gmail
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gmail')
-rw-r--r--src/main/java/gmail/Lance5057/TinkersDefense.java68
-rw-r--r--src/main/java/gmail/Lance5057/items/TD_Patterns.java47
2 files changed, 115 insertions, 0 deletions
diff --git a/src/main/java/gmail/Lance5057/TinkersDefense.java b/src/main/java/gmail/Lance5057/TinkersDefense.java
index 5541e07..49b947a 100644
--- a/src/main/java/gmail/Lance5057/TinkersDefense.java
+++ b/src/main/java/gmail/Lance5057/TinkersDefense.java
@@ -18,6 +18,7 @@ import gmail.Lance5057.items.Item_Glowthread;
import gmail.Lance5057.items.Item_Thread;
import gmail.Lance5057.items.QueensGoldIngot;
import gmail.Lance5057.items.RoundShield;
+import gmail.Lance5057.items.TD_Patterns;
import gmail.Lance5057.liquids.moltenAeonsteelFluid;
import gmail.Lance5057.liquids.moltenDogbeariumFluid;
import gmail.Lance5057.liquids.moltenQueensGoldFluid;
@@ -41,11 +42,17 @@ import tconstruct.TConstruct;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.client.TConstructClientRegistry;
import tconstruct.library.client.ToolGuiElement;
+import tconstruct.library.crafting.FluidType;
+import tconstruct.library.crafting.LiquidCasting;
import tconstruct.library.crafting.PatternBuilder;
import tconstruct.library.crafting.Smeltery;
+import tconstruct.library.crafting.StencilBuilder;
+import tconstruct.library.tools.DynamicToolPart;
import tconstruct.library.tools.ToolCore;
+import tconstruct.library.util.IPattern;
import tconstruct.smeltery.TinkerSmeltery;
import tconstruct.tools.TinkerTools;
+import tconstruct.tools.items.Pattern;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
@@ -109,6 +116,12 @@ public static Item item_thread;
public static Item item_glowthread;
public static Item item_cloth;
+public static Item rivets;
+public static Item clasp;
+
+public static Pattern woodPattern;
+public static Pattern metalPattern;
+
@SidedProxy(clientSide = "gmail.Lance5057.proxy.ClientProxy", serverSide = "gmail.Lance5057.proxy.CommonProxy")
public static CommonProxy proxy;
@@ -271,6 +284,30 @@ public void preInit(FMLPreInitializationEvent e)
GameRegistry.registerItem(item_thread = new Item_Thread(), "thread");
GameRegistry.registerItem(item_glowthread = new Item_Glowthread(), "glowthread");
GameRegistry.registerItem(item_cloth = new Item_Cloth(), "cloth");
+
+ woodPattern = new TD_Patterns("pattern_", "Pattern");
+ metalPattern = new TD_Patterns("cast_", "MetalPattern");
+
+ GameRegistry.registerItem(woodPattern, "woodPattern");
+ TConstructRegistry.addItemToDirectory("woodPattern", woodPattern);
+
+ rivets = new DynamicToolPart("_rivets", "rivets");
+
+ clasp = new DynamicToolPart("_clasp", "clasp");
+
+ GameRegistry.registerItem(rivets, "rivets");
+ TConstructRegistry.addItemToDirectory("rivets",rivets);
+
+ GameRegistry.registerItem(clasp, "clasp");
+ TConstructRegistry.addItemToDirectory("clasp",clasp);
+
+ TConstructRegistry.addItemStackToDirectory("rivets Pattern", new ItemStack(woodPattern, 1, 0));
+ TConstructRegistry.addItemStackToDirectory("clasp Pattern", new ItemStack(woodPattern, 1, 1));
+
+ //ItemStack metalCast = new ItemStack(patternOutputs[i], 1, liquidDamage[iterTwo]);
+ tableCasting.addCastingRecipe(metalCast, new FluidStack(fs, fluidAmount), cast, 50);
+ Smeltery.addMelting(FluidType.getFluidType(fs), metalCast, 0, 1000);
+
//Renderers
proxy.registerRenderers();
@@ -354,6 +391,14 @@ public void init(FMLInitializationEvent e)
TConstructRegistry.addToolRecipe(tool_heaterShield, TinkerTools.largePlate, TinkerTools.toughRod, TinkerTools.largePlate, TinkerTools.toughBinding);
+ StencilBuilder.registerStencil(50, woodPattern, 0); // rivets
+ StencilBuilder.registerStencil(51, woodPattern, 1); // spike
+
+ PatternBuilder.instance.addToolPattern(woodPattern);
+
+ buildParts(rivets, 0);
+ buildParts(clasp, 1);
+
}
@EventHandler
@@ -394,4 +439,27 @@ public void castMolten(Fluid fluid, int ID)
}
+
+public void buildParts(Item item, int meta)
+{
+ int[] nonMetals = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 17 };
+ int[] liquidDamage = new int[] { 2, 13, 10, 11, 12, 14, 15, 6, 16, 18 };
+
+ for (int mat = 0; mat < nonMetals.length; mat++)
+ {
+ TConstructRegistry.addPartMapping(woodPattern, meta, mat, new ItemStack(item, 1, mat));
+ }
+
+ LiquidCasting tableCasting = TConstructRegistry.getTableCasting();
+
+ for (int iterTwo = 0; iterTwo < TinkerSmeltery.liquids.length; iterTwo++) {
+ Fluid fs = TinkerSmeltery.liquids[iterTwo].getFluid();
+ int fluidAmount = metalPattern.getPatternCost(cast) * TConstruct.ingotLiquidValue / 2;
+ ItemStack metalCast = new ItemStack(patternOutputs[i], 1, liquidDamage[iterTwo]);
+ tableCasting.addCastingRecipe(metalCast, new FluidStack(fs, fluidAmount), cast, 50);
+ Smeltery.addMelting(FluidType.getFluidType(fs), metalCast, 0, fluidAmount);
+ }
+}
+
+
} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/TD_Patterns.java b/src/main/java/gmail/Lance5057/items/TD_Patterns.java
new file mode 100644
index 0000000..ba31190
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/TD_Patterns.java
@@ -0,0 +1,47 @@
+package gmail.Lance5057.items;
+
+import java.util.List;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import tconstruct.tools.items.Pattern;
+import tconstruct.util.Reference;
+
+public class TD_Patterns extends Pattern {
+ private static final String[] patternName = new String[] {"rivets","clasp"};
+
+ public TD_Patterns(String patternType, String name) {
+ super(patternName, getPatternNames(patternName, patternType), "patterns/");
+
+ this.setUnlocalizedName(Reference.prefix(name));
+ }
+
+ public static String[] getPatternNames (String[] patternName, String partType)
+ {
+ String[] names = new String[patternName.length];
+ for (int i = 0; i < patternName.length; i++)
+ names[i] = partType + patternName[i];
+ return names;
+ }
+
+ @Override
+ public void getSubItems (Item b, CreativeTabs tab, List list)
+ {
+ for (int i = 0; i < patternName.length; i++)
+ {
+ // if (i != 23)
+ list.add(new ItemStack(b, 1, i));
+ }
+ }
+
+ @Override
+ public int getPatternCost(ItemStack pattern) {
+ switch(pattern.getItemDamage())
+ {
+ case 0: return 1; //rivets
+ case 1: return 2; //clasp
+ }
+ return 0;
+ }
+}