diff --git a/resources/assets/tinker/textures/armor/leather_1.png b/resources/assets/tinker/textures/armor/leather_1.png new file mode 100644 index 00000000000..ee86359b168 Binary files /dev/null and b/resources/assets/tinker/textures/armor/leather_1.png differ diff --git a/resources/assets/tinker/textures/armor/leather_1_b.png b/resources/assets/tinker/textures/armor/leather_1_b.png new file mode 100644 index 00000000000..8324626679b Binary files /dev/null and b/resources/assets/tinker/textures/armor/leather_1_b.png differ diff --git a/resources/assets/tinker/textures/armor/leather_2.png b/resources/assets/tinker/textures/armor/leather_2.png new file mode 100644 index 00000000000..8d8bba6ccee Binary files /dev/null and b/resources/assets/tinker/textures/armor/leather_2.png differ diff --git a/resources/assets/tinker/textures/armor/leather_2_b.png b/resources/assets/tinker/textures/armor/leather_2_b.png new file mode 100644 index 00000000000..834d6d18fb7 Binary files /dev/null and b/resources/assets/tinker/textures/armor/leather_2_b.png differ diff --git a/resources/assets/tinker/textures/armor/travel_1.png b/resources/assets/tinker/textures/armor/travel_1.png new file mode 100644 index 00000000000..1198f74e428 Binary files /dev/null and b/resources/assets/tinker/textures/armor/travel_1.png differ diff --git a/resources/assets/tinker/textures/armor/travel_2.png b/resources/assets/tinker/textures/armor/travel_2.png new file mode 100644 index 00000000000..5ee504565f2 Binary files /dev/null and b/resources/assets/tinker/textures/armor/travel_2.png differ diff --git a/resources/assets/tinker/textures/armor/travel_wings.png b/resources/assets/tinker/textures/armor/travel_wings.png new file mode 100644 index 00000000000..7713450e0e7 Binary files /dev/null and b/resources/assets/tinker/textures/armor/travel_wings.png differ diff --git a/resources/assets/tinker/textures/items/armor/dirthand.png b/resources/assets/tinker/textures/items/armor/dirthand.png deleted file mode 100644 index 331ab5631bc..00000000000 Binary files a/resources/assets/tinker/textures/items/armor/dirthand.png and /dev/null differ diff --git a/resources/assets/tinker/textures/items/redstoneball.png b/resources/assets/tinker/textures/items/redstoneball.png deleted file mode 100644 index 8d5e1a67f59..00000000000 Binary files a/resources/assets/tinker/textures/items/redstoneball.png and /dev/null differ diff --git a/resources/assets/tinker/textures/items/travelgear/boots_doublejump.png b/resources/assets/tinker/textures/items/travelgear/boots_doublejump.png new file mode 100644 index 00000000000..fd53dd4a03d Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/boots_doublejump.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/boots_leadweight.png b/resources/assets/tinker/textures/items/travelgear/boots_leadweight.png new file mode 100644 index 00000000000..68051e11c61 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/boots_leadweight.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/boots_slimysole.png b/resources/assets/tinker/textures/items/travelgear/boots_slimysole.png new file mode 100644 index 00000000000..b0bf04daeb8 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/boots_slimysole.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/boots_waterwalk.png b/resources/assets/tinker/textures/items/travelgear/boots_waterwalk.png new file mode 100644 index 00000000000..d51f6f4c3ff Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/boots_waterwalk.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/glove_guard.png b/resources/assets/tinker/textures/items/travelgear/glove_guard.png new file mode 100644 index 00000000000..d69b88baecd Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/glove_guard.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/glove_speedaura.png b/resources/assets/tinker/textures/items/travelgear/glove_speedaura.png new file mode 100644 index 00000000000..ad87de4fd79 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/glove_speedaura.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/glove_spines.png b/resources/assets/tinker/textures/items/travelgear/glove_spines.png new file mode 100644 index 00000000000..f5c59ab8b07 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/glove_spines.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/glove_sticky.png b/resources/assets/tinker/textures/items/travelgear/glove_sticky.png new file mode 100644 index 00000000000..bc2aa0c990a Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/glove_sticky.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/goggles_nightvision.png b/resources/assets/tinker/textures/items/travelgear/goggles_nightvision.png new file mode 100644 index 00000000000..aca8b47f852 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/goggles_nightvision.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_belt.png b/resources/assets/tinker/textures/items/travelgear/travel_belt.png new file mode 100644 index 00000000000..ae6b1441e01 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_belt.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_boots.png b/resources/assets/tinker/textures/items/travelgear/travel_boots.png new file mode 100644 index 00000000000..da61eb59117 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_boots.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_glove.png b/resources/assets/tinker/textures/items/travelgear/travel_glove.png new file mode 100644 index 00000000000..af770d15e23 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_glove.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_gloves.png b/resources/assets/tinker/textures/items/travelgear/travel_gloves.png new file mode 100644 index 00000000000..a0f7d1850ed Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_gloves.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_goggles.png b/resources/assets/tinker/textures/items/travelgear/travel_goggles.png new file mode 100644 index 00000000000..cf8a679173b Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_goggles.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_vest.png b/resources/assets/tinker/textures/items/travelgear/travel_vest.png new file mode 100644 index 00000000000..24ad2477baf Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_vest.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_wings.png b/resources/assets/tinker/textures/items/travelgear/travel_wings.png new file mode 100644 index 00000000000..0d49f350b76 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_wings.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/travel_wings_slimewing.png b/resources/assets/tinker/textures/items/travelgear/travel_wings_slimewing.png new file mode 100644 index 00000000000..a419f018af0 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/travel_wings_slimewing.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/vest_dodge.png b/resources/assets/tinker/textures/items/travelgear/vest_dodge.png new file mode 100644 index 00000000000..6c2232307f0 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/vest_dodge.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/vest_stealth.png b/resources/assets/tinker/textures/items/travelgear/vest_stealth.png new file mode 100644 index 00000000000..c3b8a259b3a Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/vest_stealth.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/wings_doublejump.png b/resources/assets/tinker/textures/items/travelgear/wings_doublejump.png new file mode 100644 index 00000000000..50414ba1a28 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/wings_doublejump.png differ diff --git a/resources/assets/tinker/textures/items/travelgear/wings_featherfall.png b/resources/assets/tinker/textures/items/travelgear/wings_featherfall.png new file mode 100644 index 00000000000..6089f53a859 Binary files /dev/null and b/resources/assets/tinker/textures/items/travelgear/wings_featherfall.png differ diff --git a/src/main/java/tconstruct/library/armor/ArmorCore.java b/src/main/java/tconstruct/library/armor/ArmorCore.java index 27b5dca587a..ab16dfef2a8 100644 --- a/src/main/java/tconstruct/library/armor/ArmorCore.java +++ b/src/main/java/tconstruct/library/armor/ArmorCore.java @@ -54,17 +54,7 @@ public ItemStack onItemRightClick (ItemStack par1ItemStack, World par2World, Ent if (itemstack1 == null) { - par3EntityPlayer.setCurrentItemOrArmor(i + 1, par1ItemStack.copy()); // Forge: - // Vanilla - // bug - // fix - // associated - // with - // fixed - // setCurrentItemOrArmor - // indexs - // for - // players. + par3EntityPlayer.setCurrentItemOrArmor(i + 1, par1ItemStack.copy()); par1ItemStack.stackSize = 0; } diff --git a/src/main/java/tconstruct/library/crafting/FluidType.java b/src/main/java/tconstruct/library/crafting/FluidType.java index 99cd3f7408d..31c55fa0b41 100644 --- a/src/main/java/tconstruct/library/crafting/FluidType.java +++ b/src/main/java/tconstruct/library/crafting/FluidType.java @@ -1,102 +1,67 @@ package tconstruct.library.crafting; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + import net.minecraft.block.Block; -import net.minecraft.init.Blocks; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import tconstruct.smeltery.TinkerSmeltery; -import tconstruct.world.TinkerWorld; -public enum FluidType +public class FluidType { - /** Vanilla Water Smelting **/ - Water(Blocks.snow, 0, 20, FluidRegistry.getFluid("water"), false), - /** Iron Smelting **/ - Iron(Blocks.iron_block, 0, 600, TinkerSmeltery.moltenIronFluid, true), - /** Gold Smelting **/ - Gold(Blocks.gold_block, 0, 400, TinkerSmeltery.moltenGoldFluid, false), - /** Tin Smelting **/ - Tin(TinkerWorld.metalBlock, 5, 400, TinkerSmeltery.moltenTinFluid, false), - /** Copper Smelting **/ - Copper(TinkerWorld.metalBlock, 3, 550, TinkerSmeltery.moltenCopperFluid, true), - /** Aluminum Smelting **/ - Aluminum(TinkerWorld.metalBlock, 6, 350, TinkerSmeltery.moltenAluminumFluid, false), - /** Natural Aluminum Smelting **/ - NaturalAluminum(TinkerWorld.oreSlag, 6, 350, TinkerSmeltery.moltenAluminumFluid, false), - /** Cobalt Smelting **/ - Cobalt(TinkerWorld.metalBlock, 0, 650, TinkerSmeltery.moltenCobaltFluid, true), - /** Ardite Smelting **/ - Ardite(TinkerWorld.metalBlock, 1, 650, TinkerSmeltery.moltenArditeFluid, true), - /** AluminumBrass Smelting **/ - AluminumBrass(TinkerWorld.metalBlock, 7, 350, TinkerSmeltery.moltenAlubrassFluid, false), - /** Alumite Smelting **/ - Alumite(TinkerWorld.metalBlock, 8, 800, TinkerSmeltery.moltenAlumiteFluid, true), - /** Manyullyn Smelting **/ - Manyullyn(TinkerWorld.metalBlock, 2, 750, TinkerSmeltery.moltenManyullynFluid, true), - /** Bronze Smelting **/ - Bronze(TinkerWorld.metalBlock, 4, 500, TinkerSmeltery.moltenBronzeFluid, true), - /** Steel Smelting **/ - Steel(TinkerWorld.metalBlock, 9, 700, TinkerSmeltery.moltenSteelFluid, true), - /** Nickel Smelting **/ - Nickel(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenNickelFluid, false), - /** Lead Smelting **/ - Lead(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenLeadFluid, false), - /** Silver Smelting **/ - Silver(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenSilverFluid, false), - /** Platinum Smelting **/ - Platinum(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenShinyFluid, false), - /** Invar Smelting **/ - Invar(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenInvarFluid, false), - /** Electrum Smelting **/ - Electrum(TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenElectrumFluid, false), - /** Obsidian Smelting **/ - Obsidian(Blocks.obsidian, 0, 750, TinkerSmeltery.moltenObsidianFluid, true), - /** Ender Smelting **/ - Ender(TinkerWorld.metalBlock, 10, 500, TinkerSmeltery.moltenEnderFluid, false), - /** Glass Smelting **/ - Glass(Blocks.sand, 0, 625, TinkerSmeltery.moltenGlassFluid, false), - /** Stone Smelting **/ - Stone(Blocks.stone, 0, 800, TinkerSmeltery.moltenStoneFluid, true), - /** Emerald Smelting **/ - Emerald(Blocks.emerald_ore, 0, 575, TinkerSmeltery.moltenEmeraldFluid, false), - /** Slime Smelting **/ - Slime(TinkerWorld.slimeGel, 0, 250, TinkerWorld.blueSlimeFluid, false), - /** Pigiron Smelting **/ - PigIron(TinkerWorld.meatBlock, 0, 610, TinkerSmeltery.pigIronFluid, true), - /** Glue Smelting **/ - Glue(TinkerSmeltery.glueBlock, 0, 125, TinkerSmeltery.glueFluid, false); - public final Block renderBlock; public final int renderMeta; public final int baseTemperature; public final Fluid fluid; public final boolean isToolpart; + + public static HashMap fluidTypes = new HashMap(); - FluidType(Block b, int meta, int baseTemperature, Fluid fluid, boolean isToolpart) + public FluidType(Block block, int meta, int baseTemperature, Fluid fluid, boolean isToolpart) { - this.renderBlock = b; + this.renderBlock = block; this.renderMeta = meta; this.baseTemperature = baseTemperature; this.fluid = fluid; this.isToolpart = isToolpart; } + + public static void registerFluidType(String name, FluidType type) + { + fluidTypes.put(name, type); + } + + public static void registerFluidType(String name, Block block, int meta, int baseTemperature, Fluid fluid, boolean isToolpart) + { + FluidType type = new FluidType(block, meta, baseTemperature, fluid, isToolpart); + registerFluidType(name, type); + } + + public static FluidType getFluidType(String typeName) + { + return fluidTypes.get(typeName); + } public static FluidType getFluidType (Fluid searchedFluid) { - for (FluidType ft : values()) + Iterator iter = fluidTypes.entrySet().iterator(); + while (iter.hasNext()) { - if (ft.fluid == searchedFluid) - return ft; + Map.Entry pairs = (Map.Entry) iter.next(); + if (((FluidType)pairs.getValue()).fluid.equals(searchedFluid)) + return (FluidType) pairs.getValue(); } return null; } public static int getTemperatureByFluid (Fluid searchedFluid) { - for (FluidType ft : values()) + Iterator iter = fluidTypes.entrySet().iterator(); + while (iter.hasNext()) { - if (ft.fluid == searchedFluid) - return ft.baseTemperature; + Map.Entry pairs = (Map.Entry) iter.next(); + if (((FluidType)pairs.getValue()).fluid.equals(searchedFluid)) + return ((FluidType) pairs.getValue()).baseTemperature; } return 800; } diff --git a/src/main/java/tconstruct/library/crafting/Smeltery.java b/src/main/java/tconstruct/library/crafting/Smeltery.java index c7a0df07d3c..6918f9fe590 100644 --- a/src/main/java/tconstruct/library/crafting/Smeltery.java +++ b/src/main/java/tconstruct/library/crafting/Smeltery.java @@ -6,6 +6,7 @@ import java.util.List; import net.minecraft.block.Block; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; @@ -25,13 +26,9 @@ public class Smeltery * Smeltery.addMelting(Block.oreIron, 0, 600, new * FluidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); * - * @param stack - * The itemstack to liquify - * @param temperature - * How hot the block should be before liquifying. Max temp in the - * Smeltery is 800, other structures may vary - * @param output - * The result of the process in liquid form + * @param stack The itemstack to liquify + * @param temperature How hot the block should be before liquifying. Max temp in the Smeltery is 800, other structures may vary + * @param output The result of the process in liquid form */ public static void addMelting0 (ItemStack stack, int temperature, FluidStack output) { @@ -43,15 +40,10 @@ public static void addMelting0 (ItemStack stack, int temperature, FluidStack out * Smeltery.addMelting(Block.oreIron, 0, 600, new * FluidStack(liquidMetalStill.blockID, TConstruct.ingotLiquidValue * 2, 0)); * - * @param blockID - * The ID of the block to liquify and render - * @param metadata - * The metadata of the block to liquify and render - * @param temperature - * How hot the block should be before liquifying. Max temp in the - * Smeltery is 800, other structures may vary - * @param output - * The result of the process in liquid form + * @param blockID The ID of the block to liquify and render + * @param metadata The metadata of the block to liquify and render + * @param temperature How hot the block should be before liquifying. Max temp in the Smeltery is 800, other structures may vary + * @param output The result of the process in liquid form */ public static void addMelting (Block block, int metadata, int temperature, FluidStack output) { @@ -64,16 +56,11 @@ public static void addMelting (Block block, int metadata, int temperature, Fluid * 0, 600, new FluidStack(liquidMetalStill.blockID, * TConstruct.ingotLiquidValue * 2, 0)); * - * @param input - * The item to liquify - * @param blockID - * The ID of the block to render - * @param metadata - * The metadata of the block to render - * @param temperature - * How hot the block should be before liquifying - * @param liquid - * The result of the process + * @param input The item to liquify + * @param blockID The ID of the block to render + * @param metadata The metadata of the block to render + * @param temperature How hot the block should be before liquifying + * @param liquid The result of the process */ public static void addMelting (ItemStack input, Block blockID, int metadata, int temperature, FluidStack liquid) { @@ -88,11 +75,8 @@ public static void addMelting (ItemStack input, Block blockID, int metadata, int * FluidStack(tinID, 1, 0)); The example mixes 3 copper with 1 tin to make 2 * bronze * - * @param result - * The output of the combination of mixers. The quantity is used - * for amount of a successful mix - * @param mixers - * the liquids to be mixed. Quantities are used as ratios + * @param result The output of the combination of mixers. The quantity is used for amount of a successful mix + * @param mixers the liquids to be mixed. Quantities are used as ratios */ public static void addAlloyMixing (FluidStack result, FluidStack... mixers) { @@ -106,8 +90,7 @@ public static void addAlloyMixing (FluidStack result, FluidStack... mixers) /** * Used to get the resulting temperature from a source ItemStack * - * @param item - * The Source ItemStack + * @param item The Source ItemStack * @return The result temperature */ public static Integer getLiquifyTemperature (ItemStack item) @@ -125,8 +108,7 @@ public static Integer getLiquifyTemperature (ItemStack item) /** * Used to get the resulting temperature from a source Block * - * @param item - * The Source ItemStack + * @param item The Source ItemStack * @return The result ItemStack */ public static Integer getLiquifyTemperature (int blockID, int metadata) @@ -137,8 +119,7 @@ public static Integer getLiquifyTemperature (int blockID, int metadata) /** * Used to get the resulting ItemStack from a source ItemStack * - * @param item - * The Source ItemStack + * @param item The Source ItemStack * @return The result ItemStack */ public static FluidStack getSmelteryResult (ItemStack item) @@ -155,8 +136,7 @@ public static FluidStack getSmelteryResult (ItemStack item) /** * Used to get the resulting ItemStack from a source Block * - * @param item - * The Source ItemStack + * @param item The Source ItemStack * @return The result ItemStack */ public static FluidStack getSmelteryResult (int blockID, int metadata) @@ -209,14 +189,10 @@ public static ArrayList getAlloyList () * * @author samtrion * - * @param type - * Type of Fluid - * @param input - * The item to liquify - * @param temperatureDifference - * Difference between FluidType BaseTemperature - * @param fluidAmount - * Amount of Fluid + * @param type Type of Fluid + * @param input The item to liquify + * @param temperatureDifference Difference between FluidType BaseTemperature + * @param fluidAmount Amount of Fluid */ public static void addMelting (FluidType type, ItemStack input, int temperatureDifference, int fluidAmount) { @@ -224,7 +200,10 @@ public static void addMelting (FluidType type, ItemStack input, int temperatureD if (temp <= 20) temp = type.baseTemperature; - addMelting(input, type.renderBlock, type.renderMeta, type.baseTemperature + temperatureDifference, new FluidStack(type.fluid, fluidAmount)); + if (input.getItem() instanceof ItemBlock) + addMelting(input, ((ItemBlock) input.getItem()).field_150939_a, type.renderMeta, type.baseTemperature + temperatureDifference, new FluidStack(type.fluid, fluidAmount)); + else + addMelting(input, type.renderBlock, type.renderMeta, type.baseTemperature + temperatureDifference, new FluidStack(type.fluid, fluidAmount)); } /** @@ -232,14 +211,10 @@ public static void addMelting (FluidType type, ItemStack input, int temperatureD * * @author samtrion * - * @param oreName - * oreDictionary name e.g. oreIron - * @param type - * Type of Fluid - * @param temperatureDifference - * Difference between FluidType BaseTemperature - * @param fluidAmount - * Amount of Fluid + * @param oreName oreDictionary name e.g. oreIron + * @param type Type of Fluid + * @param temperatureDifference Difference between FluidType BaseTemperature + * @param fluidAmount Amount of Fluid */ public static void addDictionaryMelting (String oreName, FluidType type, int temperatureDifference, int fluidAmount) { diff --git a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java index 1bcaf2e8b1b..f3c81420b5d 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java @@ -2,7 +2,9 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Iterator; import java.util.List; +import java.util.Map; import mantle.blocks.BlockUtils; import mantle.blocks.abstracts.MultiServantLogic; @@ -77,11 +79,9 @@ import tconstruct.world.TinkerWorld; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; @@ -467,6 +467,34 @@ public void preInit (FMLPreInitializationEvent event) TinkerSmeltery.moltenObsidian, TinkerSmeltery.moltenSteel, TinkerSmeltery.moltenGlass, TinkerSmeltery.moltenStone, TinkerSmeltery.moltenEmerald, TinkerSmeltery.blood, TinkerSmeltery.moltenNickel, TinkerSmeltery.moltenLead, TinkerSmeltery.moltenSilver, TinkerSmeltery.moltenShiny, TinkerSmeltery.moltenInvar, TinkerSmeltery.moltenElectrum, TinkerSmeltery.moltenEnder, TinkerSmeltery.glueFluidBlock }; + + FluidType.registerFluidType("Water", Blocks.snow, 0, 20, FluidRegistry.getFluid("water"), false); //TODO: Too much reliance on World. + FluidType.registerFluidType("Iron", Blocks.iron_block, 0, 600, TinkerSmeltery.moltenIronFluid, true); + FluidType.registerFluidType("Gold", Blocks.gold_block, 0, 400, TinkerSmeltery.moltenGoldFluid, false); + FluidType.registerFluidType("Tin", TinkerWorld.metalBlock, 5, 400, TinkerSmeltery.moltenTinFluid, false); + FluidType.registerFluidType("Copper", TinkerWorld.metalBlock, 3, 550, TinkerSmeltery.moltenCopperFluid, true); + FluidType.registerFluidType("Aluminum", TinkerWorld.metalBlock, 6, 350, TinkerSmeltery.moltenAluminumFluid, false); + FluidType.registerFluidType("NaturalAluminum", TinkerWorld.oreSlag, 6, 350, TinkerSmeltery.moltenAluminumFluid, false); + FluidType.registerFluidType("Cobalt", TinkerWorld.metalBlock, 0, 650, TinkerSmeltery.moltenCobaltFluid, true); + FluidType.registerFluidType("Ardite", TinkerWorld.metalBlock, 1, 650, TinkerSmeltery.moltenArditeFluid, true); + FluidType.registerFluidType("AluminumBrass", TinkerWorld.metalBlock, 7, 350, TinkerSmeltery.moltenAlubrassFluid, false); + FluidType.registerFluidType("Alumite", TinkerWorld.metalBlock, 8, 800, TinkerSmeltery.moltenAlumiteFluid, true); + FluidType.registerFluidType("Manyullyn", TinkerWorld.metalBlock, 2, 750, TinkerSmeltery.moltenManyullynFluid, true); + FluidType.registerFluidType("Bronze", TinkerWorld.metalBlock, 4, 500, TinkerSmeltery.moltenBronzeFluid, true); + FluidType.registerFluidType("Steel", TinkerWorld.metalBlock, 9, 700, TinkerSmeltery.moltenSteelFluid, true); + FluidType.registerFluidType("Nickel", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenNickelFluid, false); + FluidType.registerFluidType("Lead", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenLeadFluid, false); + FluidType.registerFluidType("Silver", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenSilverFluid, false); + FluidType.registerFluidType("Platinum", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenShinyFluid, false); + FluidType.registerFluidType("Invar", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenInvarFluid, false); + FluidType.registerFluidType("Electrum", TinkerWorld.metalBlock, 0, 400, TinkerSmeltery.moltenElectrumFluid, false); + FluidType.registerFluidType("Obsidian", Blocks.obsidian, 0, 750, TinkerSmeltery.moltenObsidianFluid, true); + FluidType.registerFluidType("Ender", TinkerWorld.metalBlock, 10, 500, TinkerSmeltery.moltenEnderFluid, false); + FluidType.registerFluidType("Glass", Blocks.sand, 0, 625, TinkerSmeltery.moltenGlassFluid, false); + FluidType.registerFluidType("Stone", Blocks.stone, 0, 800, TinkerSmeltery.moltenStoneFluid, true); + FluidType.registerFluidType("Emerald", Blocks.emerald_block, 0, 575, TinkerSmeltery.moltenEmeraldFluid, false); + FluidType.registerFluidType("PigIron", TinkerWorld.meatBlock, 0, 610, TinkerSmeltery.pigIronFluid, true); + FluidType.registerFluidType("Glue", TinkerSmeltery.glueBlock, 0, 125, TinkerSmeltery.glueFluid, false); TinkerSmeltery.speedBlock = new SpeedBlock().setBlockName("SpeedBlock"); @@ -545,6 +573,7 @@ public void init (FMLInitializationEvent event) public void postInit (FMLPostInitializationEvent evt) { craftingTableRecipes(); + addRecipesForSmeltery(); addOreDictionarySmelteryRecipes(); addRecipesForTableCasting(); } @@ -621,73 +650,80 @@ private void craftingTableRecipes () public void addOreDictionarySmelteryRecipes () { - List exceptions = Arrays.asList(new FluidType[] { FluidType.Water, FluidType.Stone, FluidType.Ender, FluidType.Glass, FluidType.Slime, FluidType.Obsidian }); - for (FluidType ft : FluidType.values()) + List exceptions = Arrays.asList(new FluidType[] { FluidType.getFluidType("Water"), FluidType.getFluidType("Stone"), FluidType.getFluidType("Ender"), + FluidType.getFluidType("Glass"), FluidType.getFluidType("Slime"), FluidType.getFluidType("Obsidian") }); + Iterator iter = FluidType.fluidTypes.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry pairs = (Map.Entry) iter.next(); + FluidType ft = (FluidType) pairs.getValue(); if (exceptions.contains(ft)) continue; + String fluidTypeName = (String) pairs.getKey(); // Nuggets - Smeltery.addDictionaryMelting("nugget" + ft.toString(), ft, -100, TConstruct.nuggetLiquidValue); + Smeltery.addDictionaryMelting("nugget" + fluidTypeName, ft, -100, TConstruct.nuggetLiquidValue); // Ingots, Dust - registerIngotCasting(ft); - Smeltery.addDictionaryMelting("ingot" + ft.toString(), ft, -50, TConstruct.ingotLiquidValue); - Smeltery.addDictionaryMelting("dust" + ft.toString(), ft, -75, TConstruct.ingotLiquidValue); + registerIngotCasting(ft, fluidTypeName); + Smeltery.addDictionaryMelting("ingot" + fluidTypeName, ft, -50, TConstruct.ingotLiquidValue); + Smeltery.addDictionaryMelting("dust" + fluidTypeName, ft, -75, TConstruct.ingotLiquidValue); // Factorization support - Smeltery.addDictionaryMelting("crystalline" + ft.toString(), ft, -50, TConstruct.ingotLiquidValue); + Smeltery.addDictionaryMelting("crystalline" + fluidTypeName, ft, -50, TConstruct.ingotLiquidValue); // Ores - Smeltery.addDictionaryMelting("ore" + ft.toString(), ft, 0, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPerOre)); + Smeltery.addDictionaryMelting("ore" + fluidTypeName, ft, 0, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPerOre)); // NetherOres support - Smeltery.addDictionaryMelting("oreNether" + ft.toString(), ft, 75, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPerOre * 2)); + Smeltery.addDictionaryMelting("oreNether" + fluidTypeName, ft, 75, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPerOre * 2)); // Blocks - Smeltery.addDictionaryMelting("block" + ft.toString(), ft, 100, TConstruct.blockLiquidValue); + Smeltery.addDictionaryMelting("block" + fluidTypeName, ft, 100, TConstruct.blockLiquidValue); if (ft.isToolpart) { - TinkerTools.registerPatternMaterial("ingot" + ft.toString(), 2, ft.toString()); - TinkerTools.registerPatternMaterial("block" + ft.toString(), 18, ft.toString()); + TinkerTools.registerPatternMaterial("ingot" + fluidTypeName, 2, fluidTypeName); + TinkerTools.registerPatternMaterial("block" + fluidTypeName, 18, fluidTypeName); } } // Obsidian, different dust amount { - FluidType ft = FluidType.Obsidian; - Smeltery.addDictionaryMelting("nugget" + ft.toString(), ft, -100, TConstruct.nuggetLiquidValue); + FluidType ft = FluidType.getFluidType("Obsidian"); + System.out.println("Obsidian fluid? "+ft); + String fluidTypeName = "Obsidian"; + Smeltery.addDictionaryMelting("nugget" + fluidTypeName, ft, -100, TConstruct.nuggetLiquidValue); // Ingots, Dust - registerIngotCasting(ft); - Smeltery.addDictionaryMelting("ingot" + ft.toString(), ft, -50, TConstruct.ingotLiquidValue); - Smeltery.addDictionaryMelting("dust" + ft.toString(), ft, -75, TConstruct.ingotLiquidValue / 4); + registerIngotCasting(ft, fluidTypeName); + Smeltery.addDictionaryMelting("ingot" + fluidTypeName, ft, -50, TConstruct.ingotLiquidValue); + Smeltery.addDictionaryMelting("dust" + fluidTypeName, ft, -75, TConstruct.ingotLiquidValue / 4); // Factorization support - Smeltery.addDictionaryMelting("crystalline" + ft.toString(), ft, -50, TConstruct.ingotLiquidValue); + Smeltery.addDictionaryMelting("crystalline" + fluidTypeName, ft, -50, TConstruct.ingotLiquidValue); // Ores - Smeltery.addDictionaryMelting("ore" + ft.toString(), ft, 0, ((int) TConstruct.ingotLiquidValue * (int) PHConstruct.ingotsPerOre)); + Smeltery.addDictionaryMelting("ore" + fluidTypeName, ft, 0, ((int) TConstruct.ingotLiquidValue * (int) PHConstruct.ingotsPerOre)); // NetherOres support - Smeltery.addDictionaryMelting("oreNether" + ft.toString(), ft, 75, ((int) TConstruct.ingotLiquidValue * (int) PHConstruct.ingotsPerOre * 2)); + Smeltery.addDictionaryMelting("oreNether" + fluidTypeName, ft, 75, ((int) TConstruct.ingotLiquidValue * (int) PHConstruct.ingotsPerOre * 2)); // Blocks - Smeltery.addDictionaryMelting("block" + ft.toString(), ft, 100, TConstruct.blockLiquidValue); + Smeltery.addDictionaryMelting("block" + fluidTypeName, ft, 100, TConstruct.blockLiquidValue); if (ft.isToolpart) { - TinkerTools.registerPatternMaterial("ingot" + ft.toString(), 2, ft.toString()); - TinkerTools.registerPatternMaterial("block" + ft.toString(), 18, ft.toString()); + TinkerTools.registerPatternMaterial("ingot" + fluidTypeName, 2, fluidTypeName); + TinkerTools.registerPatternMaterial("block" + fluidTypeName, 18, fluidTypeName); } } // Compressed materials for (int i = 1; i <= 8; i++) { - Smeltery.addDictionaryMelting("compressedCobblestone" + i + "x", FluidType.Stone, 0, TConstruct.ingotLiquidValue / 18 * (9 ^ i)); + Smeltery.addDictionaryMelting("compressedCobblestone" + i + "x", FluidType.getFluidType("Stone"), 0, TConstruct.ingotLiquidValue / 18 * (9 ^ i)); } - Smeltery.addDictionaryMelting("compressedSand1x", FluidType.Glass, 175, FluidContainerRegistry.BUCKET_VOLUME * 9); + Smeltery.addDictionaryMelting("compressedSand1x", FluidType.getFluidType("Glass"), 175, FluidContainerRegistry.BUCKET_VOLUME * 9); } private void addRecipesForTableCasting () @@ -841,65 +877,70 @@ protected static void addRecipesForBasinCasting () protected static void addRecipesForSmeltery () { // Alloy Smelting - Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenBronzeFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsBronzeAlloy)), new FluidStack(TinkerSmeltery.moltenCopperFluid, - TConstruct.ingotLiquidValue * 3), new FluidStack(TinkerSmeltery.moltenTinFluid, TConstruct.ingotLiquidValue)); // Bronze - Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenAlubrassFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsAluminumBrassAlloy)), new FluidStack( - TinkerSmeltery.moltenAluminumFluid, TConstruct.ingotLiquidValue * 3), new FluidStack(TinkerSmeltery.moltenCopperFluid, TConstruct.ingotLiquidValue * 1)); // Aluminum Brass - Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenAlumiteFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsAlumiteAlloy)), new FluidStack( - TinkerSmeltery.moltenAluminumFluid, TConstruct.ingotLiquidValue * 5), new FluidStack(TinkerSmeltery.moltenIronFluid, TConstruct.ingotLiquidValue * 2), new FluidStack( - TinkerSmeltery.moltenObsidianFluid, TConstruct.ingotLiquidValue * 2)); // Alumite - Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenManyullynFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsManyullynAlloy)), new FluidStack( - TinkerSmeltery.moltenCobaltFluid, TConstruct.ingotLiquidValue), new FluidStack(TinkerSmeltery.moltenArditeFluid, TConstruct.ingotLiquidValue)); // Manyullyn - Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.pigIronFluid, (int) (TConstruct.ingotLiquidValue * PHConstruct.ingotsPigironAlloy)), new FluidStack(TinkerSmeltery.moltenIronFluid, - TConstruct.ingotLiquidValue), new FluidStack(TinkerSmeltery.moltenEmeraldFluid, 640), new FluidStack(TinkerSmeltery.bloodFluid, 80)); // Pigiron + Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenBronzeFluid, (int) (TConstruct.nuggetLiquidValue * PHConstruct.ingotsBronzeAlloy)), new FluidStack(TinkerSmeltery.moltenCopperFluid, + TConstruct.nuggetLiquidValue * 3), new FluidStack(TinkerSmeltery.moltenTinFluid, TConstruct.nuggetLiquidValue)); // Bronze + Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenAlubrassFluid, (int) (TConstruct.nuggetLiquidValue * PHConstruct.ingotsAluminumBrassAlloy)), new FluidStack( + TinkerSmeltery.moltenAluminumFluid, TConstruct.nuggetLiquidValue * 3), new FluidStack(TinkerSmeltery.moltenCopperFluid, TConstruct.nuggetLiquidValue * 1)); // Aluminum Brass + Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenAlumiteFluid, (int) (TConstruct.nuggetLiquidValue * PHConstruct.ingotsAlumiteAlloy)), new FluidStack( + TinkerSmeltery.moltenAluminumFluid, TConstruct.nuggetLiquidValue * 5), new FluidStack(TinkerSmeltery.moltenIronFluid, TConstruct.nuggetLiquidValue * 2), new FluidStack( + TinkerSmeltery.moltenObsidianFluid, TConstruct.nuggetLiquidValue * 2)); // Alumite + Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenManyullynFluid, (int) (TConstruct.nuggetLiquidValue * PHConstruct.ingotsManyullynAlloy)), new FluidStack( + TinkerSmeltery.moltenCobaltFluid, TConstruct.nuggetLiquidValue), new FluidStack(TinkerSmeltery.moltenArditeFluid, TConstruct.nuggetLiquidValue)); // Manyullyn + Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.pigIronFluid, (int) (TConstruct.nuggetLiquidValue * PHConstruct.ingotsPigironAlloy)), new FluidStack(TinkerSmeltery.moltenIronFluid, + TConstruct.nuggetLiquidValue), new FluidStack(TinkerSmeltery.moltenEmeraldFluid, 640), new FluidStack(TinkerSmeltery.bloodFluid, 80)); // Pigiron Smeltery.addAlloyMixing(new FluidStack(TinkerSmeltery.moltenObsidianFluid, TConstruct.oreLiquidValue), new FluidStack(FluidRegistry.LAVA, 1000), new FluidStack(FluidRegistry.WATER, 1000)); //Obsidian // Stone parts + FluidType stone = FluidType.getFluidType("Stone"); for (int sc = 0; sc < TinkerTools.patternOutputs.length; sc++) { if (TinkerTools.patternOutputs[sc] != null) { - Smeltery.addMelting(FluidType.Stone, new ItemStack(TinkerTools.patternOutputs[sc], 1, 1), 1, + Smeltery.addMelting(stone, new ItemStack(TinkerTools.patternOutputs[sc], 1, 1), 1, (8 * ((IPattern) TinkerTools.woodPattern).getPatternCost(new ItemStack(TinkerTools.woodPattern, 1, sc + 1))) / 2); } - } + } + FluidType iron = FluidType.getFluidType("Iron"); + FluidType gold = FluidType.getFluidType("Gold"); + FluidType steel = FluidType.getFluidType("Steel"); + // Chunks - Smeltery.addMelting(FluidType.Stone, new ItemStack(TinkerTools.toolShard, 1, 1), 0, 4); - Smeltery.addMelting(FluidType.Iron, new ItemStack(TinkerTools.toolShard, 1, 2), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Obsidian, new ItemStack(TinkerTools.toolShard, 1, 6), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Cobalt, new ItemStack(TinkerTools.toolShard, 1, 10), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Ardite, new ItemStack(TinkerTools.toolShard, 1, 11), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Manyullyn, new ItemStack(TinkerTools.toolShard, 1, 12), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Copper, new ItemStack(TinkerTools.toolShard, 1, 13), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Bronze, new ItemStack(TinkerTools.toolShard, 1, 14), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Alumite, new ItemStack(TinkerTools.toolShard, 1, 15), 0, TConstruct.chunkLiquidValue); - Smeltery.addMelting(FluidType.Steel, new ItemStack(TinkerTools.toolShard, 1, 16), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Stone"), new ItemStack(TinkerTools.toolShard, 1, 1), 0, 4); + Smeltery.addMelting(iron, new ItemStack(TinkerTools.toolShard, 1, 2), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Obsidian"), new ItemStack(TinkerTools.toolShard, 1, 6), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Cobalt"), new ItemStack(TinkerTools.toolShard, 1, 10), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Ardite"), new ItemStack(TinkerTools.toolShard, 1, 11), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Manyullyn"), new ItemStack(TinkerTools.toolShard, 1, 12), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Copper"), new ItemStack(TinkerTools.toolShard, 1, 13), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Bronze"), new ItemStack(TinkerTools.toolShard, 1, 14), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Alumite"), new ItemStack(TinkerTools.toolShard, 1, 15), 0, TConstruct.chunkLiquidValue); + Smeltery.addMelting(steel, new ItemStack(TinkerTools.toolShard, 1, 16), 0, TConstruct.chunkLiquidValue); // Items - - Smeltery.addMelting(FluidType.AluminumBrass, new ItemStack(TinkerTools.blankPattern, 4, 1), -50, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Gold, new ItemStack(TinkerTools.blankPattern, 4, 2), -50, TConstruct.ingotLiquidValue * 2); - Smeltery.addMelting(FluidType.Glue, new ItemStack(TinkerTools.materials, 1, 36), 0, TConstruct.ingotLiquidValue); - - Smeltery.addMelting(FluidType.Ender, new ItemStack(Items.ender_pearl, 4), 0, 250); - Smeltery.addMelting(TinkerWorld.metalBlock, 10, 50, new FluidStack(TinkerSmeltery.moltenEnderFluid, 1000)); - Smeltery.addMelting(FluidType.Water, new ItemStack(Items.snowball, 1, 0), 0, 125); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.flint_and_steel, 1, 0), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.compass, 1, 0), 0, TConstruct.ingotLiquidValue * 4); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.bucket), 0, TConstruct.ingotLiquidValue * 3); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.minecart), 0, TConstruct.ingotLiquidValue * 5); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.chest_minecart), 0, TConstruct.ingotLiquidValue * 5); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.hopper_minecart), 50, TConstruct.ingotLiquidValue * 10); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_door), 0, TConstruct.ingotLiquidValue * 6); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.cauldron), 0, TConstruct.ingotLiquidValue * 7); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.shears), 0, TConstruct.ingotLiquidValue * 2); - Smeltery.addMelting(FluidType.Emerald, new ItemStack(Items.emerald), -50, 640); - - Smeltery.addMelting(FluidType.Ardite, new ItemStack(TinkerTools.materials, 1, 38), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Cobalt, new ItemStack(TinkerTools.materials, 1, 39), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Aluminum, new ItemStack(TinkerTools.materials, 1, 40), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Manyullyn, new ItemStack(TinkerTools.materials, 1, 41), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.AluminumBrass, new ItemStack(TinkerTools.materials, 1, 42), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("AluminumBrass"), new ItemStack(TinkerTools.blankPattern, 4, 1), -50, TConstruct.ingotLiquidValue); + Smeltery.addMelting(gold, new ItemStack(TinkerTools.blankPattern, 4, 2), -50, TConstruct.ingotLiquidValue * 2); + Smeltery.addMelting(FluidType.getFluidType("Gold"), new ItemStack(TinkerTools.materials, 1, 36), 0, TConstruct.ingotLiquidValue); + + Smeltery.addMelting(FluidType.getFluidType("Ender"), new ItemStack(Items.ender_pearl, 4), 0, 250); + Smeltery.addMelting(TinkerWorld.metalBlock, 10, 50, new FluidStack(moltenEnderFluid, 1000)); + Smeltery.addMelting(FluidType.getFluidType("Water"), new ItemStack(Items.snowball, 1, 0), 0, 125); + Smeltery.addMelting(iron, new ItemStack(Items.flint_and_steel, 1, 0), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Items.compass, 1, 0), 0, TConstruct.ingotLiquidValue * 4); + Smeltery.addMelting(iron, new ItemStack(Items.bucket), 0, TConstruct.ingotLiquidValue * 3); + Smeltery.addMelting(iron, new ItemStack(Items.minecart), 0, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(iron, new ItemStack(Items.chest_minecart), 0, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(iron, new ItemStack(Items.furnace_minecart), 0, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(iron, new ItemStack(Items.hopper_minecart), 50, TConstruct.ingotLiquidValue * 10); + Smeltery.addMelting(iron, new ItemStack(Items.iron_door), 0, TConstruct.ingotLiquidValue * 6); + Smeltery.addMelting(iron, new ItemStack(Items.cauldron), 0, TConstruct.ingotLiquidValue * 7); + Smeltery.addMelting(iron, new ItemStack(Items.shears), 0, TConstruct.ingotLiquidValue * 2); + Smeltery.addMelting(FluidType.getFluidType("Emerald"), new ItemStack(Items.emerald), -50, 640); + + Smeltery.addMelting(FluidType.getFluidType("Ardite"), new ItemStack(TinkerTools.materials, 1, 38), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Cobalt"), new ItemStack(TinkerTools.materials, 1, 39), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Aluminum"), new ItemStack(TinkerTools.materials, 1, 40), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Manyullyn"), new ItemStack(TinkerTools.materials, 1, 41), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("AluminumBrass"), new ItemStack(TinkerTools.materials, 1, 42), 0, TConstruct.ingotLiquidValue); // Blocks melt as themselves! // Ore @@ -942,59 +983,59 @@ protected static void addRecipesForSmeltery () Smeltery.addMelting(TinkerTools.multiBrickFancy, 0, 800, new FluidStack(TinkerSmeltery.moltenObsidianFluid, TConstruct.ingotLiquidValue * 2)); // Vanilla blocks - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.iron_bars), 0, TConstruct.ingotLiquidValue * 6 / 16); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.heavy_weighted_pressure_plate), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Blocks.light_weighted_pressure_plate, 4), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.rail), 0, TConstruct.ingotLiquidValue * 6 / 16); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Blocks.golden_rail), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.detector_rail), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.activator_rail), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Obsidian, new ItemStack(Blocks.enchanting_table), 0, TConstruct.ingotLiquidValue * 4); - // Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.cauldron), + Smeltery.addMelting(iron, new ItemStack(Blocks.iron_bars), 0, TConstruct.ingotLiquidValue * 6 / 16); + Smeltery.addMelting(iron, new ItemStack(Blocks.heavy_weighted_pressure_plate), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(gold, new ItemStack(Blocks.light_weighted_pressure_plate, 4), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Blocks.rail), 0, TConstruct.ingotLiquidValue * 6 / 16); + Smeltery.addMelting(gold, new ItemStack(Blocks.golden_rail), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Blocks.detector_rail), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Blocks.activator_rail), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(FluidType.getFluidType("Obsidian"), new ItemStack(Blocks.enchanting_table), 0, TConstruct.ingotLiquidValue * 4); + // Smeltery.addMelting(iron, new ItemStack(Blocks.cauldron), // 0, TConstruct.ingotLiquidValue * 7); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.anvil, 1, 0), 200, TConstruct.ingotLiquidValue * 31); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.anvil, 1, 1), 200, TConstruct.ingotLiquidValue * 31); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.anvil, 1, 2), 200, TConstruct.ingotLiquidValue * 31); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Blocks.hopper), 0, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(iron, new ItemStack(Blocks.anvil, 1, 0), 200, TConstruct.ingotLiquidValue * 31); + Smeltery.addMelting(iron, new ItemStack(Blocks.anvil, 1, 1), 200, TConstruct.ingotLiquidValue * 31); + Smeltery.addMelting(iron, new ItemStack(Blocks.anvil, 1, 2), 200, TConstruct.ingotLiquidValue * 31); + Smeltery.addMelting(iron, new ItemStack(Blocks.hopper), 0, TConstruct.ingotLiquidValue * 5); // Vanilla Armor - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_helmet, 1, 0), 50, TConstruct.ingotLiquidValue * 5); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_chestplate, 1, 0), 50, TConstruct.ingotLiquidValue * 8); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_leggings, 1, 0), 50, TConstruct.ingotLiquidValue * 7); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_boots, 1, 0), 50, TConstruct.ingotLiquidValue * 4); + Smeltery.addMelting(iron, new ItemStack(Items.iron_helmet, 1, 0), 50, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(iron, new ItemStack(Items.iron_chestplate, 1, 0), 50, TConstruct.ingotLiquidValue * 8); + Smeltery.addMelting(iron, new ItemStack(Items.iron_leggings, 1, 0), 50, TConstruct.ingotLiquidValue * 7); + Smeltery.addMelting(iron, new ItemStack(Items.iron_boots, 1, 0), 50, TConstruct.ingotLiquidValue * 4); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_helmet, 1, 0), 50, TConstruct.ingotLiquidValue * 5); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_chestplate, 1, 0), 50, TConstruct.ingotLiquidValue * 8); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_leggings, 1, 0), 50, TConstruct.ingotLiquidValue * 7); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_boots, 1, 0), 50, TConstruct.ingotLiquidValue * 4); + Smeltery.addMelting(gold, new ItemStack(Items.golden_helmet, 1, 0), 50, TConstruct.ingotLiquidValue * 5); + Smeltery.addMelting(gold, new ItemStack(Items.golden_chestplate, 1, 0), 50, TConstruct.ingotLiquidValue * 8); + Smeltery.addMelting(gold, new ItemStack(Items.golden_leggings, 1, 0), 50, TConstruct.ingotLiquidValue * 7); + Smeltery.addMelting(gold, new ItemStack(Items.golden_boots, 1, 0), 50, TConstruct.ingotLiquidValue * 4); - Smeltery.addMelting(FluidType.Steel, new ItemStack(Items.chainmail_helmet, 1, 0), 25, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Steel, new ItemStack(Items.chainmail_chestplate, 1, 0), 50, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Steel, new ItemStack(Items.chainmail_leggings, 1, 0), 50, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Steel, new ItemStack(Items.chainmail_boots, 1, 0), 25, TConstruct.ingotLiquidValue); + Smeltery.addMelting(steel, new ItemStack(Items.chainmail_helmet, 1, 0), 25, TConstruct.ingotLiquidValue); + Smeltery.addMelting(steel, new ItemStack(Items.chainmail_chestplate, 1, 0), 50, TConstruct.oreLiquidValue); + Smeltery.addMelting(steel, new ItemStack(Items.chainmail_leggings, 1, 0), 50, TConstruct.oreLiquidValue); + Smeltery.addMelting(steel, new ItemStack(Items.chainmail_boots, 1, 0), 25, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_horse_armor, 1), 100, TConstruct.ingotLiquidValue * 8); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_horse_armor, 1), 100, TConstruct.ingotLiquidValue * 8); + Smeltery.addMelting(iron, new ItemStack(Items.iron_horse_armor, 1), 100, TConstruct.ingotLiquidValue * 8); + Smeltery.addMelting(gold, new ItemStack(Items.golden_horse_armor, 1), 100, TConstruct.ingotLiquidValue * 8); // Vanilla tools - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_hoe, 1, 0), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_sword, 1, 0), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_shovel, 1, 0), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_pickaxe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); - Smeltery.addMelting(FluidType.Iron, new ItemStack(Items.iron_axe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); - - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_hoe, 1, 0), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_sword, 1, 0), 0, TConstruct.oreLiquidValue); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_shovel, 1, 0), 0, TConstruct.ingotLiquidValue); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_pickaxe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); - Smeltery.addMelting(FluidType.Gold, new ItemStack(Items.golden_axe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); + Smeltery.addMelting(iron, new ItemStack(Items.iron_hoe, 1, 0), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Items.iron_sword, 1, 0), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Items.iron_shovel, 1, 0), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(iron, new ItemStack(Items.iron_pickaxe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); + Smeltery.addMelting(iron, new ItemStack(Items.iron_axe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); + + Smeltery.addMelting(gold, new ItemStack(Items.golden_hoe, 1, 0), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(gold, new ItemStack(Items.golden_sword, 1, 0), 0, TConstruct.oreLiquidValue); + Smeltery.addMelting(gold, new ItemStack(Items.golden_shovel, 1, 0), 0, TConstruct.ingotLiquidValue); + Smeltery.addMelting(gold, new ItemStack(Items.golden_pickaxe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); + Smeltery.addMelting(gold, new ItemStack(Items.golden_axe, 1, 0), 0, TConstruct.ingotLiquidValue * 3); } - private void registerIngotCasting (FluidType ft) + private void registerIngotCasting (FluidType ft, String name) { ItemStack pattern = new ItemStack(TinkerSmeltery.metalPattern, 1, 0); LiquidCasting tableCasting = TConstructRegistry.instance.getTableCasting(); - for (ItemStack ore : OreDictionary.getOres("ingot" + ft.toString())) + for (ItemStack ore : OreDictionary.getOres(name)) { tableCasting.addCastingRecipe(pattern, new FluidStack(TinkerSmeltery.moltenAlubrassFluid, TConstruct.ingotLiquidValue), new ItemStack(ore.getItem(), 1, ore.getItemDamage()), false, 50); tableCasting.addCastingRecipe(pattern, new FluidStack(TinkerSmeltery.moltenGoldFluid, TConstruct.oreLiquidValue), new ItemStack(ore.getItem(), 1, ore.getItemDamage()), false, 50); diff --git a/src/main/java/tconstruct/smeltery/logic/SmelteryLogic.java b/src/main/java/tconstruct/smeltery/logic/SmelteryLogic.java index 9eecc1f02e7..c1a55b5c28a 100644 --- a/src/main/java/tconstruct/smeltery/logic/SmelteryLogic.java +++ b/src/main/java/tconstruct/smeltery/logic/SmelteryLogic.java @@ -301,8 +301,7 @@ public void updateEntity () if (tick == 60) { tick = 0; - if (validStructure) - detectEntities(); + detectEntities(); } } diff --git a/src/main/java/tconstruct/world/TinkerWorld.java b/src/main/java/tconstruct/world/TinkerWorld.java index bbf277912ad..ca41b52994c 100644 --- a/src/main/java/tconstruct/world/TinkerWorld.java +++ b/src/main/java/tconstruct/world/TinkerWorld.java @@ -36,6 +36,7 @@ import tconstruct.client.StepSoundSlime; import tconstruct.common.itemblocks.MetadataItemBlock; import tconstruct.library.TConstructRegistry; +import tconstruct.library.crafting.FluidType; import tconstruct.smeltery.TinkerSmeltery; import tconstruct.smeltery.blocks.MetalOre; import tconstruct.smeltery.itemblocks.MetalItemBlock; @@ -281,6 +282,7 @@ public void preInit (FMLPreInitializationEvent event) TinkerWorld.metalBlock = new TMetalBlock(Material.iron, 10.0F).setBlockName("tconstruct.metalblock"); TinkerWorld.metalBlock.stepSound = Block.soundTypeMetal; GameRegistry.registerBlock(TinkerWorld.metalBlock, MetalItemBlock.class, "MetalBlock"); + FluidType.registerFluidType("Slime", TinkerWorld.slimeGel, 0, 250, TinkerWorld.blueSlimeFluid, false); } @EventHandler