diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-26 03:51:47 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-26 03:51:47 +1000 |
commit | 5d1438bc9b2fb8802224add8d74aedefd1dcc8b3 (patch) | |
tree | 5b2d0df800b14f675a2be3fa4b98c10c97782909 /src/Java/gtPlusPlus | |
parent | f2a89339d7f6f875d34d4a7bb1868a1d4a3cf644 (diff) | |
download | GT5-Unofficial-5d1438bc9b2fb8802224add8d74aedefd1dcc8b3.tar.gz GT5-Unofficial-5d1438bc9b2fb8802224add8d74aedefd1dcc8b3.tar.bz2 GT5-Unofficial-5d1438bc9b2fb8802224add8d74aedefd1dcc8b3.zip |
+ Added cells for all my molten materials. (This also regenerates all the molten fluids)
+ Added most recipes for my alloys to the Blast Smelter. (overlaps which will need to be adjusted again. (Zeron, Hastelloy X/W, MS 300/350))
% Rewrote the fluid system again.
> Cell textures are a WIP, Ugly, but will be changed before v1.5.0
Diffstat (limited to 'src/Java/gtPlusPlus')
9 files changed, 217 insertions, 50 deletions
diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java index 1780cb8577..38af8774eb 100644 --- a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java +++ b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java @@ -28,6 +28,7 @@ public class GenericFluid extends Fluid{ FluidRegistry.registerFluid(fluidFactory); blockFactory = new BlockFluidBase(displayName, fluidFactory, rgba).setBlockName("fluidblock"+fluidName); GameRegistry.registerBlock(blockFactory, ItemBlockFluid.class, blockFactory.getUnlocalizedName().substring(5)); + fluidFactory.setBlock(blockFactory); //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); @@ -50,6 +51,7 @@ 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)); + fluidFactory.setBlock(blockFactory); //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)); diff --git a/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java b/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java index 2d4344ce5a..5f0e535123 100644 --- a/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java +++ b/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java @@ -128,7 +128,8 @@ public class BaseItemComponent extends Item{ SCREW("Screw", " Screw", "screw"), BOLT("Bolt", " Bolt", "bolt"), ROTOR("Rotor", " Rotor", "rotor"), - RING("Ring", " Ring", "ring"); + RING("Ring", " Ring", "ring"), + CELL("Cell", " Cell", "cell"); private String COMPONENT_NAME; private String DISPLAY_NAME; diff --git a/src/Java/gtPlusPlus/core/item/base/cell/BaseItemCell.java b/src/Java/gtPlusPlus/core/item/base/cell/BaseItemCell.java new file mode 100644 index 0000000000..f2c2187558 --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/base/cell/BaseItemCell.java @@ -0,0 +1,42 @@ +package gtPlusPlus.core.item.base.cell; + +import gtPlusPlus.core.item.base.BaseItemComponent; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BaseItemCell extends BaseItemComponent{ + + private IIcon base; + private IIcon overlay; + ComponentTypes Cell = ComponentTypes.CELL; + + public BaseItemCell(Material material) { + super(material, BaseItemComponent.ComponentTypes.CELL); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses(){ + return true; + } + + @Override + public void registerIcons(IIconRegister i) { + this.base = i.registerIcon(CORE.MODID + ":" + "item"+Cell.getComponent()); + this.overlay = i.registerIcon(CORE.MODID + ":" + "item"+Cell.getComponent()+"_Overlay"); + } + + + @Override + public IIcon getIconFromDamageForRenderPass(int damage, int pass) { + if(pass == 0) { + return this.base; + } + return this.overlay; + } + +} diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 78d7d73bd4..c79fc04636 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -1,13 +1,18 @@ package gtPlusPlus.core.material; import static gregtech.api.enums.GT_Values.M; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gtPlusPlus.core.item.base.cell.BaseItemCell; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.math.MathUtils; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; public class Material { @@ -15,6 +20,8 @@ public class Material { final String unlocalizedName; final String localizedName; + final Fluid vMoltenFluid; + protected Object dataVar; private MaterialStack[] vMaterialInput = new MaterialStack[9]; @@ -147,14 +154,6 @@ public class Material { } - - /*if (tempSmallestSize <= 64 && tempSmallestSize >= 1){ - this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes - } - else { - this.smallestStackSizeWhenProcessing = 50; //Can divide my math by 1/2 and round it~ - }*/ - //Makes a Fancy Chemical Tooltip this.vChemicalSymbol = chemicalSymbol; if (vMaterialInput != null){ @@ -168,6 +167,9 @@ public class Material { Utils.LOG_WARNING("MaterialInput == null && chemicalSymbol probably equals nothing"); this.vChemicalFormula = "??"; } + + this.vMoltenFluid = generateFluid(); + dataVar = MathUtils.generateSingularRandomHexValue(); @@ -319,7 +321,7 @@ public class Material { } return new ItemStack[]{}; } - + public MaterialStack[] getComposites(){ return this.vMaterialInput; } @@ -494,10 +496,44 @@ public class Material { return "??"; } - - public FluidStack getMolten(int fluidAmount) { - Utils.LOG_INFO("Getting "+fluidAmount+"L of "+unlocalizedName.toLowerCase()); - return FluidUtils.getFluidStack(unlocalizedName.toLowerCase(), fluidAmount); + + Fluid generateFluid(){ + if (Materials.get(localizedName).mFluid == null){ + Utils.LOG_INFO("Generating our own fluid."); + + //Generate a Cell if we need to + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+getUnlocalizedName(), 1) == null){ + Item temp = new BaseItemCell(this); + } + return FluidUtils.addGTFluid( + this.getUnlocalizedName(), + "Molten "+this.getLocalizedName(), + this.RGBA, + 4, + this.getMeltingPoint_K(), + ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+getUnlocalizedName(), 1), + ItemList.Cell_Empty.get(1L, new Object[0]), + 1000); + } + Utils.LOG_INFO("Getting the fluid from a GT material instead."); + return Materials.get(localizedName).mFluid; + } + + public FluidStack getFluid(int fluidAmount) { + Utils.LOG_INFO("Attempting to get "+fluidAmount+"L of "+this.vMoltenFluid.getName()); + + FluidStack moltenFluid = new FluidStack(this.vMoltenFluid, fluidAmount); + + Utils.LOG_INFO("Info: "+moltenFluid.getFluid().getName()+" Info: "+moltenFluid.amount+" Info: "+moltenFluid.getFluidID()); + + //FluidStack moltenFluid = FluidUtils.getFluidStack(this.vMoltenFluid.getName(), fluidAmount); + /*boolean isNull = (moltenFluid == null); + if (isNull) Utils.LOG_INFO("Did not obtain fluid."); + else Utils.LOG_INFO("Found fluid."); + if (isNull){ + return null; + }*/ + return moltenFluid; } @@ -528,4 +564,6 @@ public class Material { + + } diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index e576eba8f5..742c3c6e9f 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -28,6 +28,16 @@ public class FluidUtils { } } + + public static FluidStack getFluidStack(FluidStack vmoltenFluid, int fluidAmount) { + Utils.LOG_WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName()); + try { + return FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount).copy(); + } + catch (Throwable e){ + return null; + } + } public static FluidStack[] getFluidStackArray(String fluidName, int amount){ Utils.LOG_WARNING("Trying to get a fluid stack of "+fluidName); @@ -200,6 +210,54 @@ public class FluidUtils { } return rFluid; } + + public static Fluid addGTFluid(final String aName, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + return addGTFluid("molten."+aName, "molten.autogenerated", aLocalized, aRGBa, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); + } + + public static Fluid addGTFluid(String aName, final String aTexture, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + aName = Utils.sanitizeString(aName.toLowerCase()); + Fluid rFluid = new FluidGT6(aName, aTexture, (aRGBa != null) ? aRGBa : Dyes._NULL.getRGBA()); + GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized); + if (FluidRegistry.registerFluid(rFluid)) { + switch (aState) { + case 0: { + rFluid.setGaseous(false); + rFluid.setViscosity(10000); + break; + } + case 1: + case 4: { + rFluid.setGaseous(false); + rFluid.setViscosity(1000); + break; + } + case 2: { + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); + break; + } + case 3: { + rFluid.setGaseous(true); + rFluid.setDensity(-10000); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); + break; + } + } + } + else { + rFluid = FluidRegistry.getFluid(aName); + } + if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) { + rFluid.setTemperature((int) (aTemperatureK)); + } + 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)); + } + return rFluid; + } public static boolean valid(final Object aStack) { return aStack != null && aStack instanceof ItemStack && ((ItemStack)aStack).getItem() != null && ((ItemStack)aStack).stackSize >= 0; @@ -282,6 +340,6 @@ public class FluidUtils { public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems, final int aStacksize) { return amount(aStacksize, container(aStack, aCheckIFluidContainerItems)); - } + } } diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java index 89d78413c0..49e29476d4 100644 --- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java @@ -29,7 +29,6 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.wrapper.var; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelter; @@ -364,9 +363,7 @@ public class ItemUtils { RecipeGen_Extruder.generateRecipes(matInfo); RecipeGen_ShapedCrafting.generateRecipes(matInfo); RecipeGen_DustGeneration.generateRecipes(matInfo); - RecipeGen_BlastSmelter.generateARecipe(matInfo); - - FluidUtils.generateFluid(matInfo, 1); + RecipeGen_BlastSmelter.generateARecipe(matInfo); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java index 4c5606b125..1e69288e8e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java @@ -1,30 +1,25 @@ package gtPlusPlus.xmod.gregtech.loaders; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_OreDictUnificator; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; -import gtPlusPlus.core.util.recipe.RecipeUtils; import net.minecraft.item.ItemStack; public class RecipeGen_BlastSmelter { public static void generateRecipes(){ - +/* Materials[] GregMaterials = Materials.values(); for (Materials M : GregMaterials){ if (M.equals(Materials.Iridium) || M.equals(Materials.Osmium) || M.equals(Materials.Osmiridium) - /*|| !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) + || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) + || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) - || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium) || !M.equals(Materials.Osmiridium)*/ ){ @@ -160,7 +155,7 @@ public class RecipeGen_BlastSmelter { } } } - } + }*/ } @@ -206,10 +201,29 @@ public class RecipeGen_BlastSmelter { //Generate Recipes for all singular materials that can be made molten. if (M.requiresBlastFurnace()) { - CORE.RA.addBlastSmelterRecipe(tItemStackTest, M.getMolten(fluidAmount), 100, duration, 240); + + if (M.getFluid(10) == null){ + Utils.LOG_INFO("Material Fluid was Null. Why you lie gaem."); + } + else { + Utils.LOG_INFO("Material Fluid: "+M.getFluid(10).getFluid().getName()); + + } + + if (CORE.RA.addBlastSmelterRecipe(tItemStackTest, M.getFluid(fluidAmount), 100, duration, 240)){ + Utils.LOG_INFO("Success."); + } + else { + Utils.LOG_INFO("Failed."); + } } else { - CORE.RA.addBlastSmelterRecipe(tItemStackTest, M.getMolten(fluidAmount), 100, duration/2, 120); + if (CORE.RA.addBlastSmelterRecipe(tItemStackTest, M.getFluid(fluidAmount), 100, duration/2, 120)){ + Utils.LOG_INFO("Success."); + } + else { + Utils.LOG_INFO("Failed."); + } } if (tMaterial != null){ @@ -263,10 +277,20 @@ public class RecipeGen_BlastSmelter { Utils.LOG_INFO("tMaterial["+das+"]: "+components[das].getDisplayName()+" Meta: "+components[das].getItemDamage()+", Amount: "+components[das].stackSize); } if (M.requiresBlastFurnace()) { - CORE.RA.addBlastSmelterRecipe(components, M.getMolten(fluidAmount), 100, duration, 500); + if (CORE.RA.addBlastSmelterRecipe(components, M.getFluid(fluidAmount), 100, duration, 500)){ + Utils.LOG_INFO("Success."); + } + else { + Utils.LOG_INFO("Failed."); + } } else { - CORE.RA.addBlastSmelterRecipe(components, M.getMolten(fluidAmount), 100, duration, 240); + if (CORE.RA.addBlastSmelterRecipe(components, M.getFluid(fluidAmount), 100, duration, 240)){ + Utils.LOG_INFO("Success."); + } + else { + Utils.LOG_INFO("Failed."); + } } } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java index 804d226f67..a9ab14fdf6 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java @@ -77,26 +77,30 @@ public class RecipeGen_ShapedCrafting { //Add a shapeless recipe for each dust this way - Compat mode. - ItemStack[] shapelessInput = new ItemStack[material.getMaterialComposites().length]; - int arrayLocation=0; - if (shapelessInput.length > 1){ - for (ItemStack I : material.getMaterialComposites()){ - if (I != null && material.vSmallestRatio != null){ - shapelessInput[arrayLocation] = I; - shapelessInput[arrayLocation].stackSize = (int) material.vSmallestRatio[arrayLocation]; + /*ItemStack[] inputStacks = material.getMaterialComposites(); + ItemStack outputStacks = material.getDust(material.smallestStackSizeWhenProcessing); + + if (inputStacks.length > 0){ + Utils.LOG_INFO(ItemUtils.getArrayStackNames(inputStacks)); + long[] inputStackSize = material.vSmallestRatio; + if (inputStackSize != null){ + for (short x=0;x<inputStacks.length;x++){ + if (inputStacks[x] != null && inputStackSize[x] != 0) + inputStacks[x].stackSize = (int) inputStackSize[x]; + } + Utils.LOG_INFO(ItemUtils.getArrayStackNames(inputStacks)); + if (RecipeUtils.buildShapelessRecipe( + outputStacks, + inputStacks + )){ + Utils.LOG_INFO("Shapeless Crafting Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Shapeless Crafting Recipe: "+material.getLocalizedName()+" - Failed"); } } - if (RecipeUtils.buildShapelessRecipe( - material.getDust(material.smallestStackSizeWhenProcessing), - shapelessInput - )){ - Utils.LOG_INFO("Shapeless Recipe: "+material.getLocalizedName()+" - Success"); - } - else { - Utils.LOG_INFO("Shapeless Recipe: "+material.getLocalizedName()+" - Failed"); - } - } - + }*/ + //Shaped Recipe - Bolts if (!material.isRadioactive){ diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java index b2e5c7ca09..bf752c2c79 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java @@ -237,6 +237,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { @Override public boolean addBlastSmelterRecipe(ItemStack[] aInput, FluidStack aOutput, int aChance, int aDuration, int aEUt) { if ((aInput == null) || (aOutput == null)) { + Utils.LOG_INFO("Fail - Input or Output was null."); return false; } |