From 91e18f54e4733c695ac023d87adfcef9e8dbbb4a Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 14 Sep 2016 01:10:02 +1000 Subject: Attempting to Rewrite the entire material system for future use (Also makes life easier if I do something similar in 1.10) --- .../gtPlusPlus/core/fluids/BlockFluidBase.java | 54 ++++++++++++++++++++++ .../core/fluids/FluidRegistryHandler.java | 51 ++++++++++++++++++++ src/Java/gtPlusPlus/core/fluids/GenericFluid.java | 40 ++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java create mode 100644 src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java create mode 100644 src/Java/gtPlusPlus/core/fluids/GenericFluid.java (limited to 'src/Java/gtPlusPlus/core/fluids') diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java new file mode 100644 index 0000000000..ad8d78edb1 --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -0,0 +1,54 @@ +package gtPlusPlus.core.fluids; + +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.lib.CORE; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockFluidBase extends BlockFluidClassic { + + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + protected int colour; + + public BlockFluidBase(Fluid fluid, Material material, int colour) { + super(fluid, material); + this.colour = colour; + setCreativeTab(AddToCreativeTab.tabMisc); + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); + flowingIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + +} diff --git a/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java new file mode 100644 index 0000000000..1df2b406b8 --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java @@ -0,0 +1,51 @@ +package gtPlusPlus.core.fluids; + +import static gtPlusPlus.core.block.ModBlocks.blockFluidJackDaniels; +import static gtPlusPlus.core.block.ModBlocks.fluidJackDaniels; +import gtPlusPlus.core.block.general.fluids.BlockFluidJackDaniels; +import gtPlusPlus.core.lib.CORE; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.FluidRegistry; +import cpw.mods.fml.common.registry.GameRegistry; + +public class FluidRegistryHandler { + + //Fluids + /** + * + * Luminosity .setLuminosity(luminosity) + How much light does the fluid emit. Default: 0, Lava uses 15 + Density .setDensity(density) + How dense is the fluid, the only effect is whether or not a fluid replaces another fluid when they flow into each other. Default: 1000, the density of water at 4 degrees Celsius in kg/m³ + Temperature .setTemperature(temp) + How hot, or cold is the fluid. Has currently no effect. Default: 295, the "normal" room temperature in degrees Kelvin, this is approximately 72°F or 22°C. + Viscosity .setViscosity(viscosity) + How thick the fluid is. Determines how fast it flows. Default: 1000 for water, lava uses 6000 + Is Gaseous .setGaseous(boolean) + Indicates if the fluid is gaseous. Used for rendering. Default: false + * + */ + + public static void registerFluids(){ + run(); + } + + private static void run(){ + fluidJackDaniels(); + } + + private static void fluidJackDaniels(){ + //testFluid + fluidJackDaniels.setLuminosity(12); + fluidJackDaniels.setDensity(1200); + fluidJackDaniels.setTemperature(420); + fluidJackDaniels.setViscosity(750); + fluidJackDaniels.setGaseous(true); + fluidJackDaniels.setUnlocalizedName("fluidJackDaniels"); + FluidRegistry.registerFluid(fluidJackDaniels); + blockFluidJackDaniels = new BlockFluidJackDaniels(fluidJackDaniels, Material.water).setBlockName("fluidBlockJackDaniels"); + GameRegistry.registerBlock(blockFluidJackDaniels, CORE.MODID + "_" + blockFluidJackDaniels.getUnlocalizedName().substring(5)); + fluidJackDaniels.setUnlocalizedName(blockFluidJackDaniels.getUnlocalizedName()); + } + +} diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java new file mode 100644 index 0000000000..f67fda744e --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java @@ -0,0 +1,40 @@ +package gtPlusPlus.core.fluids; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import cpw.mods.fml.common.registry.GameRegistry; + +public class GenericFluid extends Fluid{ + + protected String fluidName; + public Fluid fluidFactory; + public Block blockFactory; + public short[] rgba; + + public GenericFluid(String fluidName, int luminosity, int density, int temperature, int viscosity, boolean isGas, short[] rgba) { + super(fluidName); + fluidFactory = this; + this.rgba = rgba; + fluidFactory.setLuminosity(luminosity); + fluidFactory.setDensity(density); + fluidFactory.setTemperature(temperature); + fluidFactory.setViscosity(viscosity); + fluidFactory.setGaseous(isGas); + fluidFactory.setUnlocalizedName("fluid"+fluidName); + FluidRegistry.registerFluid(fluidFactory); + blockFactory = new BlockFluidBase(fluidFactory, Material.water, Utils.rgbtoHexValue(rgba[0], rgba[1], rgba[2])).setBlockName("fluidblock"+fluidName); + GameRegistry.registerBlock(blockFactory, CORE.MODID + "_" + blockFactory.getUnlocalizedName().substring(5)); + //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); + + } + + @Override + public int getColor() { + return Math.max(0, Math.min(255, this.rgba[0])) << 16 | Math.max(0, Math.min(255, this.rgba[1])) << 8 | Math.max(0, Math.min(255, this.rgba[2])); + } + +} -- cgit From f3823edeb80486988ff11e8bf77f6d61db1852e1 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 14 Sep 2016 05:58:58 +1000 Subject: Tweaked ItemBlocks for Fluids Tweaked names for Fluids Tweaked Textures and colouring for Fluids --- .../gtPlusPlus/core/fluids/BlockFluidBase.java | 57 ++++++++++++++++++++-- .../core/fluids/FluidRegistryHandler.java | 1 + src/Java/gtPlusPlus/core/fluids/GenericFluid.java | 42 +++++++++++----- .../gtPlusPlus/core/util/fluid/FluidUtils.java | 57 ++++++++++++++++++++-- src/Java/gtPlusPlus/core/util/item/UtilsItems.java | 2 +- 5 files changed, 138 insertions(+), 21 deletions(-) (limited to 'src/Java/gtPlusPlus/core/fluids') diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java index ad8d78edb1..1e76e5d5e1 100644 --- a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -2,13 +2,16 @@ package gtPlusPlus.core.fluids; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; -import net.minecraft.block.material.Material; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fluids.Fluid; +import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -20,11 +23,30 @@ public class BlockFluidBase extends BlockFluidClassic { protected IIcon flowingIcon; protected int colour; + protected Material fluidMaterial; + final String displayName; - public BlockFluidBase(Fluid fluid, Material material, int colour) { - super(fluid, material); - this.colour = colour; + @SuppressWarnings("deprecation") + public BlockFluidBase(Fluid fluid, Material material) { + super(fluid, net.minecraft.block.material.Material.water); + short[] tempColour = material.getRGBA(); + this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); + this.fluidMaterial = material; setCreativeTab(AddToCreativeTab.tabMisc); + this.displayName = material.getLocalizedName(); + LanguageRegistry.addName(this, "Molten "+displayName+" ["+MathUtils.celsiusToKelvin(fluidMaterial.getBoilingPoint_C())+"K]"); + this.setBlockName(GetProperName()); + } + + @SuppressWarnings("deprecation") + public BlockFluidBase(String fluidName, Fluid fluid, short[] colour) { + super(fluid, net.minecraft.block.material.Material.water); + short[] tempColour = colour; + this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); + setCreativeTab(AddToCreativeTab.tabMisc); + this.displayName = fluidName; + LanguageRegistry.addName(this, "Molten "+displayName); + this.setBlockName(GetProperName()); } @Override @@ -50,5 +72,32 @@ public class BlockFluidBase extends BlockFluidClassic { if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; return super.displaceIfPossible(world, x, y, z); } + + @Override + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4){ + + if (this.colour == 0){ + return MathUtils.generateSingularRandomHexValue(); + } + + return this.colour; + } + + @Override + public int getRenderColor(int aMeta) { + if (this.colour == 0){ + return MathUtils.generateSingularRandomHexValue(); + } + + return this.colour; + } + + public String GetProperName() { + String tempIngot; + + tempIngot = "Molten "+displayName; + + return tempIngot; + } } diff --git a/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java index 1df2b406b8..477d5da944 100644 --- a/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java +++ b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java @@ -30,6 +30,7 @@ public class FluidRegistryHandler { run(); } + @SuppressWarnings("unused") private static void run(){ fluidJackDaniels(); } diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java index f67fda744e..b0278fa0d2 100644 --- a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java +++ b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java @@ -1,24 +1,24 @@ package gtPlusPlus.core.fluids; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.item.base.itemblock.ItemBlockFluid; +import gtPlusPlus.core.material.Material; import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import cpw.mods.fml.common.registry.GameRegistry; public class GenericFluid extends Fluid{ - protected String fluidName; - public Fluid fluidFactory; - public Block blockFactory; - public short[] rgba; + protected final String fluidName; + protected final Fluid fluidFactory; + protected final Block blockFactory; + protected final short[] rgba; - public GenericFluid(String fluidName, int luminosity, int density, int temperature, int viscosity, boolean isGas, short[] rgba) { + public GenericFluid(String displayName, String fluidName, int luminosity, int density, int temperature, int viscosity, boolean isGas, short[] rgba) { super(fluidName); fluidFactory = this; this.rgba = rgba; + this.fluidName = fluidName; fluidFactory.setLuminosity(luminosity); fluidFactory.setDensity(density); fluidFactory.setTemperature(temperature); @@ -26,8 +26,28 @@ public class GenericFluid extends Fluid{ fluidFactory.setGaseous(isGas); fluidFactory.setUnlocalizedName("fluid"+fluidName); FluidRegistry.registerFluid(fluidFactory); - blockFactory = new BlockFluidBase(fluidFactory, Material.water, Utils.rgbtoHexValue(rgba[0], rgba[1], rgba[2])).setBlockName("fluidblock"+fluidName); - GameRegistry.registerBlock(blockFactory, CORE.MODID + "_" + blockFactory.getUnlocalizedName().substring(5)); + blockFactory = new BlockFluidBase(displayName, fluidFactory, rgba).setBlockName("fluidblock"+fluidName); + GameRegistry.registerBlock(blockFactory, ItemBlockFluid.class, blockFactory.getUnlocalizedName().substring(5)); + + //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); + + } + + public GenericFluid(Material fluidMaterial, int luminosity, int density, int temperature, int viscosity, boolean isGas) { + super(fluidMaterial.getUnlocalizedName()); + fluidFactory = this; + this.rgba = fluidMaterial.getRGBA(); + this.fluidName = fluidMaterial.getUnlocalizedName(); + fluidFactory.setLuminosity(luminosity); + fluidFactory.setDensity(density); + fluidFactory.setTemperature(temperature); + fluidFactory.setViscosity(viscosity); + fluidFactory.setGaseous(isGas); + fluidFactory.setUnlocalizedName("fluid"+fluidName); + FluidRegistry.registerFluid(fluidFactory); + blockFactory = new BlockFluidBase(fluidFactory, fluidMaterial).setBlockName("fluidblock"+fluidName); + GameRegistry.registerBlock(blockFactory, ItemBlockFluid.class, blockFactory.getUnlocalizedName().substring(5)); + //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); } @@ -35,6 +55,6 @@ public class GenericFluid extends Fluid{ @Override public int getColor() { return Math.max(0, Math.min(255, this.rgba[0])) << 16 | Math.max(0, Math.min(255, this.rgba[1])) << 8 | Math.max(0, Math.min(255, this.rgba[2])); - } + } } diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index fff0cbad71..e576eba8f5 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -5,6 +5,7 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.util.GT_LanguageManager; import gtPlusPlus.core.fluids.GenericFluid; +import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; @@ -52,25 +53,71 @@ public class FluidUtils { } - public static Fluid generateFluid(String fluidName, int tempK, short[] rgba ,byte aState){ + + /** + * @param String displayName + * @param String fluidName + * @param int meltingPointC Temp + * @param short[] rgba + * @param byte state + * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) + * + * @return short[] + */ + public static Fluid generateFluid(String displayName, String fluidName, int tempK, short[] rgba ,int aState){ + Fluid generatedFluid = null; + switch (aState) { + case 0: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); + break; + } + default: + case 1: + case 4: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); + break; + } + case 2: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); + break; + } + case 3: { + generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); + break; + } + } + return generatedFluid; + } + /** + * + * @param String fluidName + * @param int meltingPointC Temp + * @param short[] rgba + * @param byte state + * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) + * + * @return short[] + */ + public static Fluid generateFluid(Material material ,int aState){ + int tempK = material.getMeltingPoint_C(); Fluid generatedFluid = null; switch (aState) { case 0: { - generatedFluid = new GenericFluid(fluidName, 0, 100, tempK, 10000, false, rgba); + generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); break; } default: case 1: case 4: { - generatedFluid = new GenericFluid(fluidName, 0, 100, tempK, 1000, false, rgba); + generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); break; } case 2: { - generatedFluid = new GenericFluid(fluidName, 0, -100, tempK, 200, true, rgba); + generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); break; } case 3: { - generatedFluid = new GenericFluid(fluidName, 15, -10000, tempK, 10, true, rgba); + generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); break; } } diff --git a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java b/src/Java/gtPlusPlus/core/util/item/UtilsItems.java index 59a32d731d..877f75cea6 100644 --- a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java +++ b/src/Java/gtPlusPlus/core/util/item/UtilsItems.java @@ -320,7 +320,7 @@ public class UtilsItems { temp = new BaseItemGear("itemGear"+unlocalizedName, materialName, Colour, materialTier); } - FluidUtils.addAutogeneratedMoltenFluid(materialName, Utils.hex2RgbShort(Colour), 512); + FluidUtils.generateFluid(matInfo, sRadiation); } -- cgit From c430178cf2cc3590f8dd33a4e620369208e5412a Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 14 Sep 2016 19:13:00 +1000 Subject: $ Fixed Fluids properly and finally. $ Changed Alloy Boiling points. $ Rewrote the dust recipe handlers. --- .../gtPlusPlus/core/fluids/BlockFluidBase.java | 8 +- .../core/item/base/dusts/BaseItemDust.java | 147 ++++++++------------- src/Java/gtPlusPlus/core/material/ALLOY.java | 58 ++++---- src/Java/gtPlusPlus/core/material/Material.java | 8 ++ src/Java/gtPlusPlus/core/util/item/UtilsItems.java | 4 +- 5 files changed, 97 insertions(+), 128 deletions(-) (limited to 'src/Java/gtPlusPlus/core/fluids') diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java index 1e76e5d5e1..ebd84f9654 100644 --- a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -32,7 +32,7 @@ public class BlockFluidBase extends BlockFluidClassic { short[] tempColour = material.getRGBA(); this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); this.fluidMaterial = material; - setCreativeTab(AddToCreativeTab.tabMisc); + setCreativeTab(AddToCreativeTab.tabOther); this.displayName = material.getLocalizedName(); LanguageRegistry.addName(this, "Molten "+displayName+" ["+MathUtils.celsiusToKelvin(fluidMaterial.getBoilingPoint_C())+"K]"); this.setBlockName(GetProperName()); @@ -43,7 +43,7 @@ public class BlockFluidBase extends BlockFluidClassic { super(fluid, net.minecraft.block.material.Material.water); short[] tempColour = colour; this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); - setCreativeTab(AddToCreativeTab.tabMisc); + setCreativeTab(AddToCreativeTab.tabOther); this.displayName = fluidName; LanguageRegistry.addName(this, "Molten "+displayName); this.setBlockName(GetProperName()); @@ -100,4 +100,8 @@ public class BlockFluidBase extends BlockFluidClassic { return tempIngot; } + public Material getFluidMaterial(){ + return fluidMaterial; + } + } diff --git a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java index b94b7759da..0342f7f104 100644 --- a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java +++ b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java @@ -30,6 +30,7 @@ public class BaseItemDust extends Item{ String name = ""; private int mTier; private Material dustInfo; + private String oredictName; public BaseItemDust(String unlocalizedName, String materialName, Material matInfo, int colour, String pileSize, boolean blastFurnaceRequired, int tier, int sRadioactivity) { setUnlocalizedName(unlocalizedName); @@ -70,6 +71,7 @@ public class BaseItemDust extends Item{ Utils.LOG_WARNING("Generating OreDict Name: "+temp); } if (temp != null && temp != ""){ + oredictName = temp; GT_OreDictUnificator.registerOre(temp, UtilsItems.getSimpleStack(this)); } addMixerRecipe(); @@ -133,120 +135,75 @@ public class BaseItemDust extends Item{ private void addMixerRecipe(){ - ItemStack tempStack = UtilsItems.getSimpleStack(this); - ItemStack tempOutput = null; + + ItemStack thisItem; + ItemStack normalDust = dustInfo.getDust(1); + ItemStack smallDust = dustInfo.getSmallDust(1); + ItemStack tinyDust = dustInfo.getTinyDust(1); + ItemStack[] inputStacks = dustInfo.getMaterialComposites(); - ItemStack[] outputStacks = {dustInfo.getDust(10)}; - String temp = ""; - Utils.LOG_WARNING("Unlocalized name for OreDict nameGen: "+getUnlocalizedName()); - if (getUnlocalizedName().toLowerCase().contains("item.")){ - temp = getUnlocalizedName().replace("item.", ""); - Utils.LOG_WARNING("Generating OreDict Name: "+temp); - } - else { - temp = getUnlocalizedName(); - } - if (temp.toLowerCase().contains("dusttiny")){ - temp = temp.replace("itemDustTiny", "dust"); - Utils.LOG_WARNING("Generating OreDict Name: "+temp); + ItemStack outputStacks = dustInfo.getDust(10); + + if (oredictName.contains("dustTiny")){ + thisItem = tinyDust; + ItemStack normalStack = dustInfo.getDust(1); + ItemStack tinyStack = dustInfo.getTinyDust(9); + Utils.LOG_INFO("Generating a 9 Tiny dust to 1 Dust recipe for "+materialName); + UtilsRecipe.recipeBuilder( + thisItem, thisItem, thisItem, + thisItem, thisItem, thisItem, + thisItem, thisItem, thisItem, + normalStack); + + Utils.LOG_INFO("Generating a 9 Tiny dust from 1 Dust recipe for "+materialName); + UtilsRecipe.recipeBuilder( + normalStack, null, null, + null, null, null, + null, null, null, + tinyStack); + } - else if (temp.toLowerCase().contains("dustsmall")){ - temp = temp.replace("itemDustSmall", "dust"); - Utils.LOG_WARNING("Generating OreDict Name: "+temp); + else if (oredictName.contains("dustSmall")){ + thisItem = smallDust; + ItemStack normalStack = dustInfo.getDust(1); + ItemStack smallStack = dustInfo.getSmallDust(4); + + Utils.LOG_INFO("Generating a 4 Small dust to 1 Dust recipe for "+materialName); + UtilsRecipe.recipeBuilder( + thisItem, thisItem, null, + thisItem, thisItem, null, + null, null, null, + normalStack); + + Utils.LOG_INFO("Generating a 4 Small dust from 1 Dust recipe for "+materialName); + UtilsRecipe.recipeBuilder( + null, normalStack, null, + null, null, null, + null, null, null, + smallStack); + } else { - temp = temp.replace("itemD", "d"); - Utils.LOG_WARNING("Generating OreDict Name: "+temp); - } - if (temp != null && temp != "" && !temp.equals("")){ + thisItem = normalDust; + } - if (getUnlocalizedName().toLowerCase().contains("dusttiny") || getUnlocalizedName().toLowerCase().contains("dustsmall")){ - tempOutput = UtilsItems.getItemStackOfAmountFromOreDict(temp, 1); - } - else { - if (outputStacks[0] != null){ - Utils.LOG_WARNING("Getting output dusts for mixer recipe. Checking ENUM, got: "+outputStacks[0].toString()); - tempOutput = outputStacks[0]; - } - else { - Utils.LOG_WARNING("Getting output dusts for mixer recipe. Enum check failed, failback item is: "+temp); - tempOutput = UtilsItems.getItemStackOfAmountFromOreDict(temp, 1); - } - } - - } - - if (tempOutput == null){ - tempOutput = dustInfo.getDust(1); - } - - if (tempOutput != null){ - if (getUnlocalizedName().contains("DustTiny")){ - Utils.LOG_WARNING("Generating a 9 Tiny dust to 1 Dust recipe for "+materialName); - UtilsRecipe.addShapelessGregtechRecipe(tempOutput, - tempStack, tempStack, tempStack, - tempStack, tempStack, tempStack, - tempStack, tempStack, tempStack); - } - else if (getUnlocalizedName().contains("DustSmall")){ - Utils.LOG_WARNING("Generating a 4 Small dust to 1 Dust recipe for "+materialName); - UtilsRecipe.addShapelessGregtechRecipe(tempOutput, - tempStack, tempStack, null, - tempStack, tempStack, null, - null, null, null); - } - else { - Utils.LOG_WARNING("Generating a Dust recipe for "+materialName+" in the mixer."); - - - int i = 0; - if (inputStacks.length >= 2){ - for (ItemStack is : inputStacks){ - if (is != null){ - Utils.LOG_WARNING("Found "+is.getDisplayName()+" as an input for mixer recipe."); - if (is.getDisplayName().toLowerCase().contains("tell alkalus")){ - ItemStack tempStackForAName = inputStacks[i]; - String[] inputList = UtilsItems.getArrayStackNamesAsArray(dustInfo.getMaterialComposites()); - int[] inputSizes = dustInfo.getMaterialCompositeStackSizes(); - inputStacks[i] = UtilsItems.getItemStackOfAmountFromOreDict(inputList[i], 1); - Utils.LOG_WARNING("Swapping input slot "+i+" which contains "+tempStackForAName.getDisplayName()+" with "+inputStacks[i].getDisplayName()+"."); - } - - } - - else { - Utils.LOG_WARNING("Input "+i+" was null."); - } - - i++; - } - } + if (thisItem == normalDust){ + Utils.LOG_WARNING("Generating a Dust recipe for "+materialName+" in the mixer."); if (inputStacks.length != 0){ GT_Values.RA.addMixerRecipe( inputStacks[0], inputStacks[1], inputStacks[2], inputStacks[3], null, null, - tempOutput, + outputStacks, 8*mTier*20, 8*mTier*2); } else { return; } - - - - /*GT_Values.RA.addMixerRecipe( - GT_Utility.copyAmount(inputStacks[0].stackSize, new Object[]{inputStacks[0]}), GT_Utility.copyAmount(inputStacks[1].stackSize, new Object[]{inputStacks[1]}), - GT_Utility.copyAmount(inputStacks[2].stackSize, new Object[]{inputStacks[2]}), GT_Utility.copyAmount(inputStacks[3].stackSize, new Object[]{inputStacks[3]}), - null, null, - tempOutput, - 8*mTier*20, 8*mTier*2);*/ - } } - } private void addMacerationRecipe(){ Utils.LOG_WARNING("Adding recipe for "+materialName+" Dusts"); diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index b46c84d2ba..a4cdd77d59 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -29,7 +29,7 @@ public final class ALLOY { "Staballoy", //Material Name new short[]{68, 75, 66, 0}, //Material Colour 3450, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.URANIUM.getBoilingPoint_C()*9)+(ELEMENT.TITANIUM.getBoilingPoint_C()*1))/10, //Boiling Point in C ((ELEMENT.URANIUM.getProtons()*9)+ELEMENT.TITANIUM.getProtons())/10, //Protons ((ELEMENT.URANIUM.getNeutrons()*9)+ELEMENT.TITANIUM.getNeutrons())/10, //Neutrons true, //Uses Blast furnace? @@ -43,7 +43,7 @@ public final class ALLOY { "Tantalloy-60", //Material Name new short[]{66, 75, 166, 0}, //Material Colour 3025, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getBoilingPoint_C()*1)+(ELEMENT.TANTALUM.getBoilingPoint_C()*8)+(ELEMENT.TITANIUM.getBoilingPoint_C()*1))/10, //Boiling Point in C ((ELEMENT.TUNGSTEN.getProtons()*1)+(ELEMENT.TANTALUM.getProtons()*8)+(ELEMENT.TITANIUM.getProtons()*1))/10, //Protons ((ELEMENT.TUNGSTEN.getNeutrons()*1)+(ELEMENT.TANTALUM.getNeutrons()*8)+(ELEMENT.TITANIUM.getNeutrons()*1))/10, //Neutrons true, //Uses Blast furnace? @@ -58,7 +58,7 @@ public final class ALLOY { "Tantalloy-61", //Material Name new short[]{122, 135, 196, 0}, //Material Colour 3030, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getBoilingPoint_C()*1)+(ELEMENT.TANTALUM.getBoilingPoint_C()*7)+(ELEMENT.TITANIUM.getBoilingPoint_C()*1)+(ELEMENT.YTTRIUM.getBoilingPoint_C()*1))/10, //Boiling Point in C ((ELEMENT.TUNGSTEN.getProtons()*1)+(ELEMENT.TANTALUM.getProtons()*7)+(ELEMENT.TITANIUM.getProtons()*1)+(ELEMENT.YTTRIUM.getProtons()*1))/10, //Protons ((ELEMENT.TUNGSTEN.getNeutrons()*1)+(ELEMENT.TANTALUM.getNeutrons()*7)+(ELEMENT.TITANIUM.getNeutrons()*1)+(ELEMENT.YTTRIUM.getNeutrons()*1))/10, //Neutrons true, //Uses Blast furnace? @@ -85,7 +85,7 @@ public final class ALLOY { "Bronze", //Material Name new short[]{128, 128, 128, 0}, //Material Colour ((ELEMENT.TIN.getMeltingPoint_C()*1)+(ELEMENT.COPPER.getMeltingPoint_C()*3))/4, //Melting point in C - 0, //Boiling Point in C + ((ELEMENT.TIN.getBoilingPoint_C()*1)+(ELEMENT.COPPER.getBoilingPoint_C()*3))/4, //Boiling Point in C ((ELEMENT.TIN.getProtons()*1)+(ELEMENT.COPPER.getProtons()*3))/4, //Protons ((ELEMENT.TIN.getNeutrons()*1)+(ELEMENT.COPPER.getNeutrons()*3))/4, //Neutrons false, //Uses Blast furnace? @@ -99,7 +99,7 @@ public final class ALLOY { "Tumbaga", //Material Name new short[]{255,178,15, 0}, //Material Colour ((ELEMENT.GOLD.getMeltingPoint_C()*7)+(ELEMENT.COPPER.getMeltingPoint_C()*3))/10, //Melting point in C - 0, //Boiling Point in C + ((ELEMENT.GOLD.getBoilingPoint_C()*7)+(ELEMENT.COPPER.getBoilingPoint_C()*3))/10, //Boiling Point in C ((ELEMENT.GOLD.getProtons()*7)+(ELEMENT.COPPER.getProtons()*3))/10, //Protons ((ELEMENT.GOLD.getNeutrons()*7)+(ELEMENT.COPPER.getNeutrons()*3))/10, //Neutrons false, //Uses Blast furnace? @@ -113,7 +113,7 @@ public final class ALLOY { "Potin", //Material Name new short[]{201,151,129, 0}, //Material Colour ((ELEMENT.LEAD.getMeltingPoint_C()*4)+(ALLOY.BRONZE.getMeltingPoint_C()*4)+(ELEMENT.TIN.getMeltingPoint_C()*2))/10, //Melting point in C - 0, //Boiling Point in C + ((ELEMENT.LEAD.getBoilingPoint_C()*4)+(ALLOY.BRONZE.getBoilingPoint_C()*4)+(ELEMENT.TIN.getBoilingPoint_C()*2))/10, //Boiling Point in C ((ELEMENT.LEAD.getProtons()*4)+(ALLOY.BRONZE.getProtons()*4)+(ELEMENT.TIN.getProtons()*2))/10, //Protons ((ELEMENT.LEAD.getNeutrons()*4)+(ALLOY.BRONZE.getNeutrons()*4)+(ELEMENT.TIN.getNeutrons()*2))/10, //Neutrons false, //Uses Blast furnace? @@ -139,7 +139,7 @@ public final class ALLOY { "Inconel-625", //Material Name new short[]{128, 200, 128, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.NICKEL.getBoilingPoint_C()*6)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*2)+(ELEMENT.IRON.getBoilingPoint_C()*1)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*1))/10, //Boiling Point in C ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*2)+(ELEMENT.IRON.getProtons()*1)+(ELEMENT.MOLYBDENUM.getProtons()*1))/10, //Protons ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*2)+(ELEMENT.IRON.getNeutrons()*1)+(ELEMENT.MOLYBDENUM.getNeutrons()*1))/10, //Neutrons true, //Uses Blast furnace? @@ -155,7 +155,7 @@ public final class ALLOY { "Inconel-690", //Material Name new short[]{118, 220, 138, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.NICKEL.getBoilingPoint_C()*6)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*2)+(ELEMENT.NIOBIUM.getBoilingPoint_C()*1)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*1))/10, //Boiling Point in C ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*2)+(ELEMENT.NIOBIUM.getProtons()*1)+(ELEMENT.MOLYBDENUM.getProtons()*1))/10, //Protons ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*2)+(ELEMENT.NIOBIUM.getNeutrons()*1)+(ELEMENT.MOLYBDENUM.getNeutrons()*1))/10, //Neutrons true, //Uses Blast furnace? @@ -171,7 +171,7 @@ public final class ALLOY { "Inconel-792", //Material Name new short[]{108, 240, 118, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.NICKEL.getBoilingPoint_C()*6)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*1)+(ELEMENT.IRON.getBoilingPoint_C()*1)+(ELEMENT.ALUMINIUM.getBoilingPoint_C()*2))/10, //Boiling Point in C ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*1)+(ELEMENT.IRON.getProtons()*1)+(ELEMENT.ALUMINIUM.getProtons()*2))/10, //Protons ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*1)+(ELEMENT.IRON.getNeutrons()*1)+(ELEMENT.ALUMINIUM.getNeutrons()*2))/10, //Neutrons true, //Uses Blast furnace? @@ -187,7 +187,7 @@ public final class ALLOY { "Steel", //Material Name new short[]{180, 180, 20, 0}, //Material Colour ((ELEMENT.CARBON.getMeltingPoint_C()*5)+(ELEMENT.IRON.getMeltingPoint_C()*95))/100, //Melting point in C - 0, //Boiling Point in C + ((ELEMENT.CARBON.getBoilingPoint_C()*5)+(ELEMENT.IRON.getBoilingPoint_C()*95))/100, //Boiling Point in C ((ELEMENT.CARBON.getProtons()*5)+(ELEMENT.IRON.getProtons()*95))/100, //Protons ((ELEMENT.CARBON.getNeutrons()*5)+(ELEMENT.IRON.getNeutrons()*95))/100, //Neutrons true, //Uses Blast furnace? @@ -200,8 +200,8 @@ public final class ALLOY { public static final Material ZERON_100 = new Material( "Zeron-100", //Material Name new short[]{180, 180, 20, 0}, //Material Colour - (((ELEMENT.CHROMIUM.getMeltingPoint_C()*25)+(ELEMENT.NICKEL.getMeltingPoint_C()*6)+(ELEMENT.COBALT.getMeltingPoint_C()*9)+(ALLOY.STEEL.getMeltingPoint_C()*60))/100), //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.CHROMIUM.getMeltingPoint_C()*25)+(ELEMENT.NICKEL.getMeltingPoint_C()*6)+(ELEMENT.COBALT.getMeltingPoint_C()*9)+(ALLOY.STEEL.getMeltingPoint_C()*60))/100, //Melting Point in C + ((ELEMENT.CHROMIUM.getBoilingPoint_C()*25)+(ELEMENT.NICKEL.getBoilingPoint_C()*6)+(ELEMENT.COBALT.getBoilingPoint_C()*9)+(ALLOY.STEEL.getBoilingPoint_C()*60))/100, //Boiling Point in C ((ELEMENT.CHROMIUM.getProtons()*25)+(ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*60))/100, //Protons ((ELEMENT.CHROMIUM.getNeutrons()*25)+(ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*60))/100, //Neutrons true, //Uses Blast furnace? @@ -217,7 +217,7 @@ public final class ALLOY { "Maraging Steel 250", //Material Name new short[]{140, 140, 140, 0}, //Material Colour 1413, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getBoilingPoint_C()*5)+(ELEMENT.NICKEL.getBoilingPoint_C()*16)+(ELEMENT.COBALT.getBoilingPoint_C()*9)+(ALLOY.STEEL.getBoilingPoint_C()*70))/100, //Boiling Point in C ((ELEMENT.TITANIUM.getProtons()*5)+(ELEMENT.NICKEL.getProtons()*16)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*70))/100, //Protons ((ELEMENT.TITANIUM.getNeutrons()*5)+(ELEMENT.NICKEL.getNeutrons()*16)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*70))/100, //Neutrons true, //Uses Blast furnace? @@ -233,7 +233,7 @@ public final class ALLOY { "Maraging Steel 300", //Material Name new short[]{150, 150, 150, 0}, //Material Colour 1413, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getBoilingPoint_C()*10)+(ELEMENT.NICKEL.getBoilingPoint_C()*21)+(ELEMENT.COBALT.getBoilingPoint_C()*14)+(ALLOY.STEEL.getBoilingPoint_C()*55))/100, //Boiling Point in C ((ELEMENT.TITANIUM.getProtons()*10)+(ELEMENT.NICKEL.getProtons()*21)+(ELEMENT.COBALT.getProtons()*14)+(ALLOY.STEEL.getProtons()*55))/100, //Protons ((ELEMENT.TITANIUM.getNeutrons()*10)+(ELEMENT.NICKEL.getNeutrons()*21)+(ELEMENT.COBALT.getNeutrons()*14)+(ALLOY.STEEL.getNeutrons()*55))/100, //Neutrons true, //Uses Blast furnace? @@ -249,7 +249,7 @@ public final class ALLOY { "Maraging Steel 350", //Material Name new short[]{160, 160, 160, 0}, //Material Colour 1413, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getBoilingPoint_C()*15)+(ELEMENT.NICKEL.getBoilingPoint_C()*21)+(ELEMENT.COBALT.getBoilingPoint_C()*9)+(ALLOY.STEEL.getBoilingPoint_C()*55))/100, //Boiling Point in C ((ELEMENT.TITANIUM.getProtons()*15)+(ELEMENT.NICKEL.getProtons()*21)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*55))/100, //Protons ((ELEMENT.TITANIUM.getNeutrons()*15)+(ELEMENT.NICKEL.getNeutrons()*21)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*55))/100, //Neutrons true, //Uses Blast furnace? @@ -265,7 +265,7 @@ public final class ALLOY { "Stellite", //Material Name new short[]{129, 75, 120, 0}, //Material Colour 1310, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getBoilingPoint_C()*10)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*35)+(ELEMENT.COBALT.getBoilingPoint_C()*35)+(ELEMENT.MANGANESE.getBoilingPoint_C()*20))/100, //Boiling Point in C ((ELEMENT.TITANIUM.getProtons()*10)+(ELEMENT.CHROMIUM.getProtons()*35)+(ELEMENT.COBALT.getProtons()*35)+(ELEMENT.MANGANESE.getProtons()*20))/100, //Protons ((ELEMENT.TITANIUM.getNeutrons()*10)+(ELEMENT.CHROMIUM.getNeutrons()*35)+(ELEMENT.COBALT.getNeutrons()*35)+(ELEMENT.MANGANESE.getNeutrons()*20))/100, //Neutrons true, //Uses Blast furnace? @@ -281,7 +281,7 @@ public final class ALLOY { "Talonite", //Material Name new short[]{228, 75, 120, 0}, //Material Colour 1454, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.MOLYBDENUM.getBoilingPoint_C()*10)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*30)+(ELEMENT.COBALT.getBoilingPoint_C()*40)+(ELEMENT.PHOSPHORUS.getBoilingPoint_C()*20))/100, //Boiling Point in C ((ELEMENT.MOLYBDENUM.getProtons()*10)+(ELEMENT.CHROMIUM.getProtons()*30)+(ELEMENT.COBALT.getProtons()*40)+(ELEMENT.PHOSPHORUS.getProtons()*20))/100, //Protons ((ELEMENT.MOLYBDENUM.getNeutrons()*10)+(ELEMENT.CHROMIUM.getNeutrons()*30)+(ELEMENT.COBALT.getNeutrons()*40)+(ELEMENT.PHOSPHORUS.getNeutrons()*20))/100, //Neutrons false, //Uses Blast furnace? @@ -297,7 +297,7 @@ public final class ALLOY { "Hastelloy-W", //Material Name new short[]{218, 165, 32, 0}, //Material Colour 1350, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*6)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*24)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*5)+(ELEMENT.NICKEL.getBoilingPoint_C()*65))/100, //Boiling Point in C ((ELEMENT.IRON.getProtons()*6)+(ELEMENT.MOLYBDENUM.getProtons()*24)+(ELEMENT.CHROMIUM.getProtons()*5)+(ELEMENT.NICKEL.getProtons()*65))/100, //Protons ((ELEMENT.IRON.getNeutrons()*6)+(ELEMENT.MOLYBDENUM.getNeutrons()*24)+(ELEMENT.CHROMIUM.getNeutrons()*5)+(ELEMENT.NICKEL.getNeutrons()*65))/100, //Neutrons false, //Uses Blast furnace? @@ -313,7 +313,7 @@ public final class ALLOY { "Hastelloy-X", //Material Name new short[]{255, 193, 37, 0}, //Material Colour 1350, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*18)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*9)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*22)+(ELEMENT.NICKEL.getBoilingPoint_C()*51))/100, //Boiling Point in C ((ELEMENT.IRON.getProtons()*18)+(ELEMENT.MOLYBDENUM.getProtons()*9)+(ELEMENT.CHROMIUM.getProtons()*22)+(ELEMENT.NICKEL.getProtons()*51))/100, //Protons ((ELEMENT.IRON.getNeutrons()*18)+(ELEMENT.MOLYBDENUM.getNeutrons()*9)+(ELEMENT.CHROMIUM.getNeutrons()*22)+(ELEMENT.NICKEL.getNeutrons()*51))/100, //Neutrons false, //Uses Blast furnace? @@ -329,7 +329,7 @@ public final class ALLOY { "Hastelloy-N", //Material Name new short[]{236, 213, 48, 0}, //Material Colour 1350, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.YTTRIUM.getBoilingPoint_C()*5)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*16)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*7)+(ELEMENT.NICKEL.getBoilingPoint_C()*72))/100, //Boiling Point in C ((ELEMENT.YTTRIUM.getProtons()*5)+(ELEMENT.MOLYBDENUM.getProtons()*16)+(ELEMENT.CHROMIUM.getProtons()*7)+(ELEMENT.NICKEL.getProtons()*72))/100, //Protons ((ELEMENT.YTTRIUM.getNeutrons()*5)+(ELEMENT.MOLYBDENUM.getNeutrons()*16)+(ELEMENT.CHROMIUM.getNeutrons()*7)+(ELEMENT.NICKEL.getNeutrons()*72))/100, //Neutrons true, //Uses Blast furnace? @@ -345,7 +345,7 @@ public final class ALLOY { "Hastelloy-C276", //Material Name new short[]{238, 180, 34, 0}, //Material Colour 1350, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.COBALT.getBoilingPoint_C()*2)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*16)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*16)+(ELEMENT.NICKEL.getBoilingPoint_C()*66))/100, //Boiling Point in C ((ELEMENT.COBALT.getProtons()*2)+(ELEMENT.MOLYBDENUM.getProtons()*16)+(ELEMENT.CHROMIUM.getProtons()*16)+(ELEMENT.NICKEL.getProtons()*66))/100, //Protons ((ELEMENT.COBALT.getNeutrons()*2)+(ELEMENT.MOLYBDENUM.getNeutrons()*16)+(ELEMENT.CHROMIUM.getNeutrons()*16)+(ELEMENT.NICKEL.getNeutrons()*66))/100, //Neutrons true, //Uses Blast furnace? @@ -361,7 +361,7 @@ public final class ALLOY { "Incoloy-020", //Material Name new short[]{101, 81, 71, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*40)+(ELEMENT.COPPER.getBoilingPoint_C()*4)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*20)+(ELEMENT.NICKEL.getBoilingPoint_C()*36))/100, //Boiling Point in C ((ELEMENT.IRON.getProtons()*40)+(ELEMENT.COPPER.getProtons()*4)+(ELEMENT.CHROMIUM.getProtons()*20)+(ELEMENT.NICKEL.getProtons()*36))/100, //Protons ((ELEMENT.IRON.getNeutrons()*40)+(ELEMENT.COPPER.getNeutrons()*4)+(ELEMENT.CHROMIUM.getNeutrons()*20)+(ELEMENT.NICKEL.getNeutrons()*36))/100, //Neutrons false, //Uses Blast furnace? @@ -377,7 +377,7 @@ public final class ALLOY { "Incoloy-DS", //Material Name new short[]{71, 101, 81, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*46)+(ELEMENT.COBALT.getBoilingPoint_C()*18)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*18)+(ELEMENT.NICKEL.getBoilingPoint_C()*18))/100, //Boiling Point in C ((ELEMENT.IRON.getProtons()*46)+(ELEMENT.COBALT.getProtons()*18)+(ELEMENT.CHROMIUM.getProtons()*18)+(ELEMENT.NICKEL.getProtons()*18))/100, //Protons ((ELEMENT.IRON.getNeutrons()*46)+(ELEMENT.COBALT.getNeutrons()*18)+(ELEMENT.CHROMIUM.getNeutrons()*18)+(ELEMENT.NICKEL.getNeutrons()*18))/100, //Neutrons false, //Uses Blast furnace? @@ -393,7 +393,7 @@ public final class ALLOY { "Incoloy-MA956", //Material Name new short[]{81, 71, 101, 0}, //Material Colour 1425, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*75)+(ELEMENT.ALUMINIUM.getBoilingPoint_C()*4)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*20)+(ELEMENT.YTTRIUM.getBoilingPoint_C()*1))/100, //Boiling Point in C ((ELEMENT.IRON.getProtons()*75)+(ELEMENT.ALUMINIUM.getProtons()*4)+(ELEMENT.CHROMIUM.getProtons()*20)+(ELEMENT.YTTRIUM.getProtons()*1))/100, //Protons ((ELEMENT.IRON.getNeutrons()*75)+(ELEMENT.ALUMINIUM.getNeutrons()*4)+(ELEMENT.CHROMIUM.getNeutrons()*20)+(ELEMENT.YTTRIUM.getNeutrons()*1))/100, //Neutrons true, //Uses Blast furnace? @@ -409,7 +409,7 @@ public final class ALLOY { "Tungsten Carbide", //Material Name new short[]{44, 44, 44, 0}, //Material Colour 3422, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getBoilingPoint_C()*5)+(ELEMENT.CARBON.getBoilingPoint_C()*5))/10, //Boiling Point in C ((ELEMENT.TUNGSTEN.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons ((ELEMENT.TUNGSTEN.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons true, //Uses Blast furnace? @@ -423,7 +423,7 @@ public final class ALLOY { "Silicon Carbide", //Material Name new short[]{40, 48, 36, 0}, //Material Colour 1414, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.SILICON.getBoilingPoint_C()*5)+(ELEMENT.CARBON.getBoilingPoint_C()*5))/10, //Boiling Point in C ((ELEMENT.SILICON.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons ((ELEMENT.SILICON.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons false, //Uses Blast furnace? @@ -437,7 +437,7 @@ public final class ALLOY { "Tantalum Carbide", //Material Name new short[]{139, 136, 120, 0}, //Material Colour 2980, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.TANTALUM.getBoilingPoint_C()*5)+(ELEMENT.CARBON.getBoilingPoint_C()*5))/10, //Boiling Point in C ((ELEMENT.TANTALUM.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons ((ELEMENT.TANTALUM.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons true, //Uses Blast furnace? @@ -451,7 +451,7 @@ public final class ALLOY { "Zirconium Carbide", //Material Name new short[]{222, 202, 180, 0}, //Material Colour 1855, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.ZIRCONIUM.getBoilingPoint_C()*5)+(ELEMENT.CARBON.getBoilingPoint_C()*5))/10, //Boiling Point in C ((ELEMENT.ZIRCONIUM.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons ((ELEMENT.ZIRCONIUM.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons true, //Uses Blast furnace? @@ -465,7 +465,7 @@ public final class ALLOY { "Niobium Carbide", //Material Name new short[]{205, 197, 191, 0}, //Material Colour 2477, //Melting Point in C - 0, //Boiling Point in C + ((ELEMENT.NIOBIUM.getBoilingPoint_C()*5)+(ELEMENT.CARBON.getBoilingPoint_C()*5))/10, //Boiling Point in C ((ELEMENT.NIOBIUM.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons ((ELEMENT.NIOBIUM.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons true, //Uses Blast furnace? diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 857e403ada..2939016798 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -100,6 +100,14 @@ public class Material { public ItemStack getDust(int stacksize){ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); } + + public ItemStack getSmallDust(int stacksize){ + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+unlocalizedName, stacksize); + } + + public ItemStack getTinyDust(int stacksize){ + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+unlocalizedName, stacksize); + } public ItemStack[] getValidInputStacks(){ return UtilsItems.validItemsForOreDict(unlocalizedName); diff --git a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java b/src/Java/gtPlusPlus/core/util/item/UtilsItems.java index 877f75cea6..7a70b41f96 100644 --- a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java +++ b/src/Java/gtPlusPlus/core/util/item/UtilsItems.java @@ -256,7 +256,7 @@ public class UtilsItems { if (returnValue.getItem().getClass() != ModItems.AAA_Broken.getClass() || returnValue.getItem() != ModItems.AAA_Broken){ return returnValue; } - + Utils.LOG_INFO(oredictName+" was not valid."); return null; } @@ -320,7 +320,7 @@ public class UtilsItems { temp = new BaseItemGear("itemGear"+unlocalizedName, materialName, Colour, materialTier); } - FluidUtils.generateFluid(matInfo, sRadiation); + FluidUtils.generateFluid(matInfo, 1); } -- cgit From 2def9acccdf30a88947943673fcd695f1e59cb77 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Thu, 15 Sep 2016 14:12:33 +1000 Subject: $ Fixed the Skookum Choocher. $ Now it Renders properly and functions as a GT-esque type tool. - Removed static calls to excluded build classes. % Started changing things to final in all cases. (Apparently better Java practice) --- .classpath | 2 +- src/Java/gtPlusPlus/GTplusplus.java | 1 + .../gtPlusPlus/core/block/base/BasicBlock.java | 4 +- src/Java/gtPlusPlus/core/fluids/GenericFluid.java | 8 +- src/Java/gtPlusPlus/core/item/ModItems.java | 9 +- src/Java/gtPlusPlus/core/proxy/ClientProxy.java | 1 + src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java | 24 +- .../xmod/gregtech/api/items/Gregtech_MetaTool.java | 289 ++------------------- .../ProcessingSkookumChoocherToolRecipes.java | 7 +- .../common/items/MetaGeneratedGregtechTools.java | 11 +- .../gregtech/common/tools/TOOL_Gregtech_Base.java | 5 +- .../common/tools/TOOL_Gregtech_Choocher.java | 30 ++- .../loaders/ProcessingToolHeadChoocher.java | 55 ++-- 13 files changed, 124 insertions(+), 322 deletions(-) (limited to 'src/Java/gtPlusPlus/core/fluids') diff --git a/.classpath b/.classpath index 43fa82df64..19e9d78812 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 59f7c4e889..e08952b77c 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -120,6 +120,7 @@ implements ActionListener public void preInit(FMLPreInitializationEvent event) { Utils.LOG_INFO("Loading "+CORE.name+" V"+CORE.VERSION); + //Utils.LOG_INFO("Test String for Debug: "+TexturesGtTools.SKOOKUM_CHOOCHER.getTextureFile().getResourcePath()); Utils.LOG_INFO("Latest is V"+CORE.MASTER_VERSION+". Updated? "+Utils.isModUpToDate()); FirstCall(); FMLCommonHandler.instance().bus().register(new LoginEventHandler()); diff --git a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java index cd879167ba..c95f37d9c5 100644 --- a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java @@ -8,7 +8,7 @@ import net.minecraft.block.material.Material; public class BasicBlock extends Block { - public BasicBlock(String unlocalizedName, Material material) { + public BasicBlock(final String unlocalizedName, final Material material) { super(material); this.setBlockName(Utils.sanitizeString(unlocalizedName)); this.setBlockTextureName(CORE.MODID + ":" + unlocalizedName); @@ -28,7 +28,7 @@ public class BasicBlock extends Block { private String TEXTURE_NAME; private String HARVEST_TOOL; private SoundType soundOfBlock; - private BlockTypes (String textureName, String harvestTool, SoundType blockSound) + private BlockTypes (final String textureName, final String harvestTool, final SoundType blockSound) { this.TEXTURE_NAME = textureName; this.HARVEST_TOOL = harvestTool; diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java index b0278fa0d2..1780cb8577 100644 --- a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java +++ b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java @@ -34,7 +34,10 @@ public class GenericFluid extends Fluid{ } public GenericFluid(Material fluidMaterial, int luminosity, int density, int temperature, int viscosity, boolean isGas) { + super(fluidMaterial.getUnlocalizedName()); + //IC2_ItemFluidCell fullFluidCell = emptyCell.fill(emptyCell, FluidUtils.getFluidStack(getUnlocalizedName(), 1), true); + fluidFactory = this; this.rgba = fluidMaterial.getRGBA(); this.fluidName = fluidMaterial.getUnlocalizedName(); @@ -47,7 +50,10 @@ public class GenericFluid extends Fluid{ FluidRegistry.registerFluid(fluidFactory); blockFactory = new BlockFluidBase(fluidFactory, fluidMaterial).setBlockName("fluidblock"+fluidName); GameRegistry.registerBlock(blockFactory, ItemBlockFluid.class, blockFactory.getUnlocalizedName().substring(5)); - + //IC2_ItemFluidCell emptyCell = new IC2_ItemFluidCell(fluidName); + /*if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { + GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); + }*/ //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); } diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 5cfeb83425..0950a9a4c0 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -34,6 +34,7 @@ import gtPlusPlus.core.util.item.UtilsItems; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; import cpw.mods.fml.common.registry.GameRegistry; public final class ModItems { @@ -107,7 +108,9 @@ public final class ModItems { public static Item itemPersonalCloakingDeviceCharged; public static Item itemPersonalHealingDevice; - public static MultiPickaxeBase MP_GTMATERIAL; + public static MultiPickaxeBase MP_GTMATERIAL; + + public static ItemStack FluidCell; public static BaseItemBackpack backpack_Red; public static BaseItemBackpack backpack_Green; @@ -398,6 +401,10 @@ public final class ModItems { //GameRegistry.registerItem(FuelRod_Thorium, "itemFuelRod_Thorium"); //GameRegistry.registerItem(FuelRod_Uranium, "itemFuelRod_Uranium"); //GameRegistry.registerItem(FuelRod_Plutonium, "itemFuelRod_Plutonium"); + + //FluidCell = new ItemStack(new IC2_ItemFluidCell("itemGT++FluidCell")); + + } else { Utils.LOG_WARNING("IndustrialCraft2 not Found - Skipping Resources."); diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java index 3019a71266..3b3c257ffa 100644 --- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java +++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java @@ -33,6 +33,7 @@ public class ClientProxy extends CommonProxy{ @Override public void registerRenderThings(){ + //MinecraftForgeClient.registerItemRenderer(ModItems.FluidCell.getItem(), new RenderLiquidCell()); //RenderingRegistry.registerEntityRenderingHandler(EntityBloodSteelMob.class, new RenderBloodSteelMob(new ModelBloodSteelMob(), 0)); //RenderingRegistry.registerEntityRenderingHandler(EntityBloodSteelHostileMob.class, new RenderBloodSteelMobHostile(new ModelBloodSteelMob(), 0)); //RenderingRegistry.registerEntityRenderingHandler(EntityGrenade.class, new RenderSnowball(ModItems.tutGrenade)); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java index 4dafe394b8..0808eab6b3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java @@ -4,37 +4,39 @@ import gregtech.api.util.GT_Config; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.common.blocks.fluid.GregtechFluidHandler; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems; +import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; +import gtPlusPlus.xmod.gregtech.loaders.ProcessingToolHeadChoocher; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits; public class HANDLER_GT { - + public static GT_Config mMaterialProperties = null; public static void preInit(){ new MetaGeneratedGregtechItems(); if (mMaterialProperties != null){ GT_Materials.init(mMaterialProperties); - GregtechFluidHandler.run(); - //new Processing_Ingot1(); - //new Processing_Plate1(); - //new Processing_Block(); } + GregtechFluidHandler.run(); + //new Processing_Ingot1(); + //new Processing_Plate1(); + //new Processing_Block(); //new Processing_HotIngots(); } - + public static void init(){ - + //Add Custom Pipes, Wires and Cables. GregtechConduits.run(); - //new ProcessingToolHeadChoocher(); - //new MetaGeneratedGregtechTools(); + new MetaGeneratedGregtechTools(); + new ProcessingToolHeadChoocher().run(); /*if (Meta_GT_Proxy.mSortToTheEnd) { new GT_ItemIterator().run(); Meta_GT_Proxy.registerUnificationEntries(); new GT_FuelLoader().run(); }*/ } - + public static void postInit(){ /*Meta_GT_Proxy.activateOreDictHandler(); if (Meta_GT_Proxy.mSortToTheEnd) { @@ -45,5 +47,5 @@ public class HANDLER_GT { new GT_FuelLoader().run(); }*/ } - + } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java b/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java index 20163eecb4..646d7314f5 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java @@ -1,28 +1,22 @@ package gtPlusPlus.xmod.gregtech.api.items; import static gregtech.api.enums.GT_Values.MOD_ID_RC; -import gregtech.api.GregTech_API; import gregtech.api.enchants.Enchantment_Radioactivity; import gregtech.api.enums.Materials; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IDamagableItem; -import gregtech.api.util.GT_LanguageManager; +import gregtech.api.interfaces.IToolStats; +import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.xmod.gregtech.api.interfaces.internal.Interface_ToolStats; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; -import java.util.Random; import mods.railcraft.api.core.items.IToolCrowbar; import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; @@ -30,29 +24,24 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.stats.AchievementList; import net.minecraft.stats.StatList; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; import buildcraft.api.tools.IToolWrench; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; /** * This is an example on how you can create a Tool ItemStack, in this case a Bismuth Wrench: * GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(16, 1, Materials.Bismuth, Materials.Bismuth, null); */ @Optional.InterfaceList(value = {@Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = MOD_ID_RC), @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft")}) -public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implements IDamagableItem, IToolCrowbar, IToolWrench { +public abstract class Gregtech_MetaTool extends GT_MetaGenerated_Tool implements IDamagableItem, IToolCrowbar, IToolWrench { /** * All instances of this Item Class are listed here. * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. @@ -63,7 +52,7 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement /* ---------- CONSTRUCTOR AND MEMBER VARIABLES ---------- */ - public final HashMap mToolStats = new HashMap(); + public final HashMap mToolStats = new HashMap(); /** * Creates the Item using these Parameters. @@ -78,140 +67,19 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement sInstances.put(getUnlocalizedName(), this); } - /* ---------- FOR ADDING CUSTOM ITEMS INTO THE REMAINING 766 RANGE ---------- */ - - public static final Materials getPrimaryMaterial(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("PrimaryMaterial")); - } - return Materials._NULL; - } - - public static final Materials getSecondaryMaterial(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("SecondaryMaterial")); - } - return Materials._NULL; - } - - /* ---------- INTERNAL OVERRIDES ---------- */ - - public static final long getToolMaxDamage(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return aNBT.getLong("MaxDamage"); - } - return 0; - } - - public static final long getToolDamage(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return aNBT.getLong("Damage"); - } - return 0; - } - - public static final boolean setToolDamage(ItemStack aStack, long aDamage) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) { - aNBT.setLong("Damage", aDamage); - return true; - } - } - return false; - } - - /** - * This adds a Custom Item to the ending Range. - * - * @param aID The Id of the assigned Tool Class [0 - 32765] (only even Numbers allowed! Uneven ID's are empty electric Items) - * @param aEnglish The Default Localized Name of the created Item - * @param aToolTip The Default ToolTip of the created Item, you can also insert null for having no ToolTip - * @param aToolStats The Food Value of this Item. Can be null as well. - * @param aOreDictNamesAndAspects The OreDict Names you want to give the Item. Also used to assign Thaumcraft Aspects. - * @return An ItemStack containing the newly created Item, but without specific Stats. - */ - public final ItemStack addTool(int aID, String aEnglish, String aToolTip, Interface_ToolStats aToolStats, Object... aOreDictNamesAndAspects) { - if (aToolTip == null) aToolTip = ""; - if (aID >= 0 && aID < 32766 && aID % 2 == 0) { - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".name", aEnglish); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".tooltip", aToolTip); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID + 1) + ".name", aEnglish + " (Empty)"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID + 1) + ".tooltip", "You need to recharge it"); - mToolStats.put((short) aID, aToolStats); - mToolStats.put((short) (aID + 1), aToolStats); - aToolStats.onStatsAddedToTool(this, aID); - ItemStack rStack = new ItemStack(this, 1, aID); - List tAspects = new ArrayList(); - for (Object tOreDictNameOrAspect : aOreDictNamesAndAspects) { - if (tOreDictNameOrAspect instanceof TC_AspectStack) - ((TC_AspectStack) tOreDictNameOrAspect).addToAspectList(tAspects); - else - GT_OreDictUnificator.registerOre(tOreDictNameOrAspect, rStack); - } - if (GregTech_API.sThaumcraftCompat != null) - GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false); - return rStack; - } - return null; - } - - /** - * This Function gets an ItemStack Version of this Tool - * - * @param aToolID the ID of the Tool Class - * @param aAmount Amount of Items (well normally you only need 1) - * @param aPrimaryMaterial Primary Material of this Tool - * @param aSecondaryMaterial Secondary (Rod/Handle) Material of this Tool - * @param aElectricArray The Electric Stats of this Tool (or null if not electric) - */ - public final ItemStack getToolWithStats(int aToolID, int aAmount, Materials aPrimaryMaterial, Materials aSecondaryMaterial, long[] aElectricArray) { - ItemStack rStack = new ItemStack(this, aAmount, aToolID); - Interface_ToolStats tToolStats = getToolStats(rStack); - if (tToolStats != null) { - NBTTagCompound tMainNBT = new NBTTagCompound(), tToolNBT = new NBTTagCompound(); - if (aPrimaryMaterial != null) { - tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.toString()); - tToolNBT.setLong("MaxDamage", 100L * (long) (aPrimaryMaterial.mDurability * tToolStats.getMaxDurabilityMultiplier())); - } - if (aSecondaryMaterial != null) tToolNBT.setString("SecondaryMaterial", aSecondaryMaterial.toString()); - - if (aElectricArray != null) { - tToolNBT.setBoolean("Electric", true); - tToolNBT.setLong("MaxCharge", aElectricArray[0]); - tToolNBT.setLong("Voltage", aElectricArray[1]); - tToolNBT.setLong("Tier", aElectricArray[2]); - tToolNBT.setLong("SpecialData", aElectricArray[3]); - } - - tMainNBT.setTag("GT.ToolStats", tToolNBT); - rStack.setTagCompound(tMainNBT); - } - isItemStackUsable(rStack); - return rStack; - } - /** * Called by the Block Harvesting Event within the GT_Proxy */ + @Override public void onHarvestBlockEvent(ArrayList aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (isItemStackUsable(aStack) && getDigSpeed(aStack, aBlock, aMetaData) > 0.0F) doDamage(aStack, tStats.convertBlockDrops(aDrops, aStack, aPlayer, aBlock, aX, aY, aZ, aMetaData, aFortune, aSilkTouch, aEvent) * tStats.getToolDamagePerDropConversion()); } @Override public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats == null || !isItemStackUsable(aStack)) return true; GT_Utility.doSoundAtClient(tStats.getEntityHitSound(), 1, 1.0F); if (super.onLeftClickEntity(aStack, aPlayer, aEntity)) return true; @@ -252,50 +120,16 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement @Override public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats != null && tStats.canBlock()) aPlayer.setItemInUse(aStack, 72000); return super.onItemRightClick(aStack, aWorld, aPlayer); } - @Override - public final int getMaxItemUseDuration(ItemStack aStack) { - return 72000; - } - - @Override - public final EnumAction getItemUseAction(ItemStack aStack) { - Interface_ToolStats tStats = getToolStats(aStack); - if (tStats != null && tStats.canBlock()) return EnumAction.block; - return EnumAction.none; - } - - @Override - @SideOnly(Side.CLIENT) - public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < 32766; i += 2) - if (getToolStats(new ItemStack(this, 1, i)) != null) { - ItemStack tStack = new ItemStack(this, 1, i); - isItemStackUsable(tStack); - aList.add(tStack); - } - } - - @Override - @SideOnly(Side.CLIENT) - public final void registerIcons(IIconRegister aIconRegister) { - // - } - - @Override - public final IIcon getIconFromDamage(int aMetaData) { - return null; - } - @Override public void addAdditionalToolTips(List aList, ItemStack aStack) { long tMaxDamage = getToolMaxDamage(aStack); Materials tMaterial = getPrimaryMaterial(aStack); - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); int tOffset = getElectricStats(aStack) != null ? 2 : 1; if (tStats != null) { String name = aStack.getUnlocalizedName(); @@ -332,93 +166,35 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement return null; } + @Override public float getToolCombatDamage(ItemStack aStack) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats == null) return 0; return tStats.getBaseDamage() + getPrimaryMaterial(aStack).mToolQuality; } - @Override - public final boolean doDamageToItem(ItemStack aStack, int aVanillaDamage) { - return doDamage(aStack, aVanillaDamage * 100); - } - - public final boolean doDamage(ItemStack aStack, long aAmount) { - if (!isItemStackUsable(aStack)) return false; - Long[] tElectric = getElectricStats(aStack); - if (tElectric == null) { - long tNewDamage = getToolDamage(aStack) + aAmount; - setToolDamage(aStack, tNewDamage); - if (tNewDamage >= getToolMaxDamage(aStack)) { - Interface_ToolStats tStats = getToolStats(aStack); - if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { - if (tStats != null) /*GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F);*/ - if (aStack.stackSize > 0) aStack.stackSize--; - - } - } - return true; - } - if (use(aStack, (int) aAmount, null)) { - if (new Random().nextInt(25) == 0) { - long tNewDamage = getToolDamage(aStack) + aAmount; - setToolDamage(aStack, tNewDamage); - if (tNewDamage >= getToolMaxDamage(aStack)) { - Interface_ToolStats tStats = getToolStats(aStack); - if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { - if (tStats != null) /*GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F);*/ - if (aStack.stackSize > 0) aStack.stackSize--; - } - } - } - return true; - } - return false; - } - @Override public float getDigSpeed(ItemStack aStack, Block aBlock, int aMetaData) { if (!isItemStackUsable(aStack)) return 0.0F; - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats == null || Math.max(0, getHarvestLevel(aStack, "")) < aBlock.getHarvestLevel(aMetaData)) return 0.0F; return tStats.isMinableBlock(aBlock, (byte) aMetaData) ? Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) : 0.0F; } - @Override - public final boolean canHarvestBlock(Block aBlock, ItemStack aStack) { - return getDigSpeed(aStack, aBlock, (byte) 0) > 0.0F; - } - - @Override - public final int getHarvestLevel(ItemStack aStack, String aToolClass) { - Interface_ToolStats tStats = getToolStats(aStack); - return tStats == null ? -1 : tStats.getBaseQuality() + getPrimaryMaterial(aStack).mToolQuality; - } - @Override public boolean onBlockDestroyed(ItemStack aStack, World aWorld, Block aBlock, int aX, int aY, int aZ, EntityLivingBase aPlayer) { if (!isItemStackUsable(aStack)) return false; - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats == null) return false; GT_Utility.doSoundAtClient(tStats.getMiningSound(), 1, 1.0F); doDamage(aStack, (int) Math.max(1, aBlock.getBlockHardness(aWorld, aX, aY, aZ) * tStats.getToolDamagePerBlockBreak())); return getDigSpeed(aStack, aBlock, aWorld.getBlockMetadata(aX, aY, aZ)) > 0.0F; } - @Override - public final ItemStack getContainerItem(ItemStack aStack) { - return getContainerItem(aStack, true); - } - - @Override - public final boolean hasContainerItem(ItemStack aStack) { - return getContainerItem(aStack, false) != null; - } - private ItemStack getContainerItem(ItemStack aStack, boolean playSound) { if (!isItemStackUsable(aStack)) return null; aStack = GT_Utility.copyAmount(1, aStack); - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats == null) return null; doDamage(aStack, tStats.getToolDamagePerContainerCraft()); aStack = aStack.stackSize > 0 ? aStack : null; @@ -429,35 +205,36 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement return aStack; } - public Interface_ToolStats getToolStats(ItemStack aStack) { + @Override + public IToolStats getToolStats(ItemStack aStack) { isItemStackUsable(aStack); return getToolStatsInternal(aStack); } - private Interface_ToolStats getToolStatsInternal(ItemStack aStack) { + private IToolStats getToolStatsInternal(ItemStack aStack) { return aStack == null ? null : mToolStats.get((short) aStack.getItemDamage()); } @Override public boolean canWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { if (!isItemStackUsable(aStack)) return false; - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); return tStats != null && tStats.isCrowbar(); } @Override public void onWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); } @Override public boolean canWrench(EntityPlayer player, int x, int y, int z) { - System.out.println("canWrench"); + //System.out.println("canWrench"); if(player==null)return false; if(player.getCurrentEquippedItem()==null)return false; if (!isItemStackUsable(player.getCurrentEquippedItem())) return false; - Interface_ToolStats tStats = getToolStats(player.getCurrentEquippedItem()); + IToolStats tStats = getToolStats(player.getCurrentEquippedItem()); return tStats != null && tStats.isWrench(); } @@ -465,53 +242,43 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement public void wrenchUsed(EntityPlayer player, int x, int y, int z) { if(player==null)return; if(player.getCurrentEquippedItem()==null)return; - Interface_ToolStats tStats = getToolStats(player.getCurrentEquippedItem()); + IToolStats tStats = getToolStats(player.getCurrentEquippedItem()); if (tStats != null) doDamage(player.getCurrentEquippedItem(), tStats.getToolDamagePerEntityAttack()); } @Override public boolean canLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { if (!isItemStackUsable(aStack)) return false; - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); return tStats != null && tStats.isCrowbar(); } @Override public void onLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); } @Override public boolean canBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { if (!isItemStackUsable(aStack)) return false; - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); return tStats != null && tStats.isCrowbar(); } @Override public void onBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); } @Override public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - Interface_ToolStats tStats = getToolStats(aStack); + IToolStats tStats = getToolStats(aStack); if (tStats != null && aPlayer != null) tStats.onToolCrafted(aStack, aPlayer); super.onCreated(aStack, aWorld, aPlayer); } - @Override - public final boolean doesContainerItemLeaveCraftingGrid(ItemStack aStack) { - return false; - } - - @Override - public final int getItemStackLimit(ItemStack aStack) { - return 1; - } - @Override public boolean isFull3D() { return true; @@ -519,7 +286,7 @@ public abstract class Gregtech_MetaTool extends Gregtech_MetaItem_Base implement @Override public boolean isItemStackUsable(ItemStack aStack) { - Interface_ToolStats tStats = getToolStatsInternal(aStack); + IToolStats tStats = getToolStatsInternal(aStack); if (aStack.getItemDamage() % 2 == 1 || tStats == null) { NBTTagCompound aNBT = aStack.getTagCompound(); if (aNBT != null) aNBT.removeTag("ench"); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/recipe/ProcessingSkookumChoocherToolRecipes.java b/src/Java/gtPlusPlus/xmod/gregtech/api/recipe/ProcessingSkookumChoocherToolRecipes.java index f6c74ad12b..8f4fe09dbe 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/recipe/ProcessingSkookumChoocherToolRecipes.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/recipe/ProcessingSkookumChoocherToolRecipes.java @@ -3,17 +3,18 @@ package gtPlusPlus.xmod.gregtech.api.recipe; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.ToolDictNames; +import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.util.GT_ModHandler; -import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; import net.minecraft.item.ItemStack; -public class ProcessingSkookumChoocherToolRecipes implements gregtech.api.interfaces.IOreRecipeRegistrator { +public class ProcessingSkookumChoocherToolRecipes implements IOreRecipeRegistrator { public ProcessingSkookumChoocherToolRecipes() { //GregtechOrePrefixes.toolSkookumChoocher.add(this); } @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, aMaterial, aMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver}); + GT_ModHandler.addShapelessCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(7734, 1, aMaterial, aMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver}); } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java index 2ee00f99d4..b63ea674ad 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java @@ -3,11 +3,12 @@ package gtPlusPlus.xmod.gregtech.common.items; import gregtech.api.GregTech_API; import gregtech.api.enums.TC_Aspects; import gregtech.api.enums.ToolDictNames; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.common.items.GT_MetaGenerated_Tool_01; import gtPlusPlus.xmod.gregtech.api.enums.GregtechToolDictNames; -import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool; import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_Choocher; -public class MetaGeneratedGregtechTools extends Gregtech_MetaTool { +public class MetaGeneratedGregtechTools extends GT_MetaGenerated_Tool { public static final short TURBINE_SMALL = 10; public static final short TURBINE = 12; @@ -19,11 +20,11 @@ public class MetaGeneratedGregtechTools extends Gregtech_MetaTool { public static final short SOFTHAMMER = 22; public static final short WRENCH = 24; - public static MetaGeneratedGregtechTools INSTANCE; + public static GT_MetaGenerated_Tool_01 INSTANCE; public MetaGeneratedGregtechTools() { - super("MU-metaitem.02"); - INSTANCE = this; + super("GT++_metatool"); + INSTANCE = GT_MetaGenerated_Tool_01.INSTANCE; GregTech_API.registerTool(addTool(7734, "Skookum Choocher", "Can Really Chooch. Does a Skookum job at Hammering and Wrenching stuff.", new TOOL_Gregtech_Choocher(), new Object[]{GregtechToolDictNames.craftingToolSkookumChoocher, ToolDictNames.craftingToolHardHammer, ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Base.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Base.java index 11e8a6b240..d46e777f47 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Base.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Base.java @@ -2,7 +2,7 @@ package gtPlusPlus.xmod.gregtech.common.tools; import gregtech.api.GregTech_API; import gregtech.api.damagesources.GT_DamageSources; -import gtPlusPlus.xmod.gregtech.api.interfaces.internal.Interface_ToolStats; +import gregtech.api.interfaces.IToolStats; import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool; import java.util.List; @@ -20,7 +20,7 @@ import net.minecraft.util.IChatComponent; import net.minecraftforge.event.world.BlockEvent; public abstract class TOOL_Gregtech_Base -implements Interface_ToolStats { +implements IToolStats { public static final Enchantment[] FORTUNE_ENCHANTMENT = {Enchantment.fortune}; public static final Enchantment[] LOOTING_ENCHANTMENT = {Enchantment.looting}; public static final Enchantment[] ZERO_ENCHANTMENTS = new Enchantment[0]; @@ -152,7 +152,6 @@ implements Interface_ToolStats { aPlayer.triggerAchievement(AchievementList.buildWorkBench); } - @Override public void onStatsAddedToTool(Gregtech_MetaTool aItem, int aID) { } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Choocher.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Choocher.java index 42d8750f24..ce652bdda8 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Choocher.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_Choocher.java @@ -2,14 +2,14 @@ package gtPlusPlus.xmod.gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IIconContainer; +import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import gtPlusPlus.xmod.gregtech.api.enums.CustomGtTextures; +import gregtech.common.items.behaviors.Behaviour_Prospecting; +import gregtech.common.items.behaviors.Behaviour_Wrench; import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool; -import gtPlusPlus.xmod.gregtech.api.items.types.ToolType_HardHammer; -import gtPlusPlus.xmod.gregtech.api.items.types.ToolType_Wrench; +import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools; import java.util.Arrays; import java.util.List; @@ -157,8 +157,10 @@ public class TOOL_Gregtech_Choocher return null; } - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { - return aIsToolHead ? CustomGtTextures.ItemIcons.SKOOKUMCHOOCHER : Gregtech_MetaTool.getSecondaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.stick.mTextureIndex]; + @Override + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + //Utils.LOG_INFO("Texture: "+TexturesGtTools.SKOOKUM_CHOOCHER.getTextureFile()); + return TexturesGtTools.SKOOKUM_CHOOCHER; } /* @Override @@ -176,13 +178,13 @@ public class TOOL_Gregtech_Choocher @Override public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { - return aIsToolHead ? Gregtech_MetaTool.getPrimaryMaterial(aStack).mRGBa : null; + return GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa; } @Override public void onStatsAddedToTool(Gregtech_MetaTool aItem, int aID) { - aItem.addItemBehavior(aID, new ToolType_Wrench(150)); - aItem.addItemBehavior(aID, new ToolType_HardHammer(1, 1250)); + aItem.addItemBehavior(aID, new Behaviour_Wrench(150)); + aItem.addItemBehavior(aID, new Behaviour_Prospecting(1, 1250)); } @Override @@ -200,4 +202,14 @@ public class TOOL_Gregtech_Choocher public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been Choochered by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } + + @Override + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + + } + + @Override + public boolean isGrafter() { + return false; + } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/ProcessingToolHeadChoocher.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/ProcessingToolHeadChoocher.java index b569f2a310..5b4d7be601 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/ProcessingToolHeadChoocher.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/ProcessingToolHeadChoocher.java @@ -1,19 +1,17 @@ package gtPlusPlus.xmod.gregtech.loaders; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.api.interfaces.internal.Interface_OreRecipeRegistrator; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrator { +public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrator, Runnable { public ProcessingToolHeadChoocher() { GregtechOrePrefixes.toolSkookumChoocher.add(this); } @@ -21,30 +19,10 @@ public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrato @Override public void registerOre(GregtechOrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { - GT_ModHandler.addShapelessCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.ingot.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.gem.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); if (aMaterial != Materials.Rubber) - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(44, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xRR", " SR", "S f", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) && (!aMaterial.contains(SubTag.NO_SMASHING))) { GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(16, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"IhI", "III", " I ", Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(20, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"hDS", "DSD", "SDf", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('D'), Dyes.dyeBlue}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(22, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" fS", " Sh", "W ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(26, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PfP", "hPd", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(28, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SWS", "SSS", "xSh", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), new ItemStack(Blocks.wool, 1, 32767)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(30, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PfP", "PdP", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(34, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"fPh", " S ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(36, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPf", "PP ", "Sh ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(160, 1, aMaterial, Materials.Rubber, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', OrePrefixes.plate.get(Materials.Rubber), 'S', OrePrefixes.stick.get(Materials.Iron), 'L', ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); - -// GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L,OrePrefixes.turbineBlade.get(aMaterial)), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "B", "B", "B", 'S', OrePrefixes.screw.get(aMaterial), 'B', OrePrefixes.plate.get(aMaterial) }); - - - //GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Magnalium, 1L), MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(170, 1, aMaterial, aMaterial, null), 160, 100); - //GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 8L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Titanium, 1L), MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(172, 1, aMaterial, aMaterial, null), 320, 400); - //GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 12L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 1L), MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(174, 1, aMaterial, aMaterial, null), 640, 1600); - //GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 16L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Americium, 1L), MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(176, 1, aMaterial, aMaterial, null), 1280, 6400); - } + } } } @@ -55,4 +33,31 @@ public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrato // TODO Auto-generated method stub } + + public void materialsLoops(){ + Materials[] i = Materials.values(); + int size = i.length; + Materials aMaterial = null; + for (int r=0;r