diff options
Diffstat (limited to 'src')
9 files changed, 210 insertions, 104 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java b/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java index fbc0b22690..d07f7338df 100644 --- a/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java +++ b/src/Java/gtPlusPlus/core/handler/render/FirepitModel.java @@ -12,101 +12,108 @@ import net.minecraft.entity.Entity; public class FirepitModel extends ModelBase { - //fields - ModelRenderer Side_A; - ModelRenderer Side_B; - ModelRenderer Side_C; - ModelRenderer Side_D; - ModelRenderer Log1; - ModelRenderer Log2; - ModelRenderer Log3; - ModelRenderer Log4; - - public FirepitModel() - { - textureWidth = 16; - textureHeight = 16; - - Side_A = new ModelRenderer(this, 0, 0); - Side_A.addBox(0F, 0F, 0F, 12, 6, 1); - Side_A.setRotationPoint(-6F, 18F, -6F); - Side_A.setTextureSize(16, 16); - Side_A.mirror = true; - setRotation(Side_A, -0.3148822F, 0F, 0F); - Side_A.mirror = false; - Side_B = new ModelRenderer(this, 0, 0); - Side_B.addBox(0F, 0F, 0F, 12, 6, 1); - Side_B.setRotationPoint(-6F, 18F, 6F); - Side_B.setTextureSize(16, 16); - Side_B.mirror = true; - setRotation(Side_B, -0.3148822F, 1.570796F, 0F); - Side_C = new ModelRenderer(this, 0, 0); - Side_C.addBox(0F, 0F, 0F, 12, 6, 1); - Side_C.setRotationPoint(6F, 18F, 6F); - Side_C.setTextureSize(16, 16); - Side_C.mirror = true; - setRotation(Side_C, -0.3148822F, 3.141593F, 0F); - Side_C.mirror = false; - Side_D = new ModelRenderer(this, 0, 0); - Side_D.addBox(0F, 0F, 0F, 12, 6, 1); - Side_D.setRotationPoint(6F, 18F, -6F); - Side_D.setTextureSize(16, 16); - Side_D.mirror = true; - setRotation(Side_D, -0.3148822F, 4.712389F, 0F); - Log1 = new ModelRenderer(this, 0, 10); - Log1.addBox(0F, 0F, 0F, 14, 2, 2); - Log1.setRotationPoint(4F, 10F, -4F); - Log1.setTextureSize(16, 16); - Log1.mirror = true; - setRotation(Log1, 0F, 0F, 1.570796F); - Log2 = new ModelRenderer(this, -2, 10); - Log2.addBox(0F, 0F, 0F, 14, 2, 2); - Log2.setRotationPoint(-4F, 10F, -4F); - Log2.setTextureSize(16, 16); - Log2.mirror = true; - setRotation(Log2, 1.570796F, 0F, 1.570796F); - Log2.mirror = false; - Log3 = new ModelRenderer(this, 0, 10); - Log3.addBox(0F, 0F, 0F, 14, 2, 2); - Log3.setRotationPoint(-4F, 10F, 4F); - Log3.setTextureSize(16, 16); - Log3.mirror = true; - setRotation(Log3, 3.141593F, 0F, 1.570796F); - Log4 = new ModelRenderer(this, -2, 10); - Log4.addBox(0F, 0F, 0F, 14, 2, 2); - Log4.setRotationPoint(4F, 10F, 4F); - Log4.setTextureSize(16, 16); - Log4.mirror = true; - setRotation(Log4, 4.712389F, 0F, 1.570796F); - Log4.mirror = false; - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Side_A.render(f5); - Side_B.render(f5); - Side_C.render(f5); - Side_D.render(f5); - Log1.render(f5); - Log2.render(f5); - Log3.render(f5); - Log4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } + //fields + ModelRenderer Side_A; + ModelRenderer Side_B; + ModelRenderer Side_C; + ModelRenderer Side_D; + ModelRenderer Log1; + ModelRenderer Log2; + ModelRenderer Log3; + ModelRenderer Log4; + + public FirepitModel() + { + textureWidth = 16; + textureHeight = 16; + + Side_A = new ModelRenderer(this, 0, 0); + Side_A.addBox(0F, 0F, 0F, 12, 6, 1); + Side_A.setRotationPoint(-6F, 18F, -6F); + Side_A.setTextureSize(16, 16); + Side_A.mirror = true; + setRotation(Side_A, -0.3148822F, 0F, 0F); + //Side_A.mirror = false; + + Side_B = new ModelRenderer(this, 0, 0); + Side_B.addBox(0F, 0F, 0F, 12, 6, 1); + Side_B.setRotationPoint(-6F, 18F, 6F); + Side_B.setTextureSize(16, 16); + Side_B.mirror = true; + setRotation(Side_B, -0.3148822F, 1.570796F, 0F); + + Side_C = new ModelRenderer(this, 0, 0); + Side_C.addBox(0F, 0F, 0F, 12, 6, 1); + Side_C.setRotationPoint(6F, 18F, 6F); + Side_C.setTextureSize(16, 16); + Side_C.mirror = true; + setRotation(Side_C, -0.3148822F, 3.141593F, 0F); + //Side_C.mirror = false; + + Side_D = new ModelRenderer(this, 0, 0); + Side_D.addBox(0F, 0F, 0F, 12, 6, 1); + Side_D.setRotationPoint(6F, 18F, -6F); + Side_D.setTextureSize(16, 16); + Side_D.mirror = true; + setRotation(Side_D, -0.3148822F, 4.712389F, 0F); + + Log1 = new ModelRenderer(this, 0, 10); + Log1.addBox(0F, 0F, 0F, 14, 2, 2); + Log1.setRotationPoint(4F, 10F, -4F); + Log1.setTextureSize(16, 16); + Log1.mirror = true; + setRotation(Log1, 0F, 0F, 1.570796F); + + Log2 = new ModelRenderer(this, -2, 10); + Log2.addBox(0F, 0F, 0F, 14, 2, 2); + Log2.setRotationPoint(-4F, 10F, -4F); + Log2.setTextureSize(16, 16); + Log2.mirror = true; + setRotation(Log2, 1.570796F, 0F, 1.570796F); + //Log2.mirror = false; + + Log3 = new ModelRenderer(this, 0, 10); + Log3.addBox(0F, 0F, 0F, 14, 2, 2); + Log3.setRotationPoint(-4F, 10F, 4F); + Log3.setTextureSize(16, 16); + Log3.mirror = true; + setRotation(Log3, 3.141593F, 0F, 1.570796F); + + Log4 = new ModelRenderer(this, -2, 10); + Log4.addBox(0F, 0F, 0F, 14, 2, 2); + Log4.setRotationPoint(4F, 10F, 4F); + Log4.setTextureSize(16, 16); + Log4.mirror = true; + setRotation(Log4, 4.712389F, 0F, 1.570796F); + //Log4.mirror = false; + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Side_A.render(f5); + Side_B.render(f5); + Side_C.render(f5); + Side_D.render(f5); + Log1.render(f5); + Log2.render(f5); + Log3.render(f5); + Log4.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } } diff --git a/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java b/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java index 16ad016b97..5a02de77b5 100644 --- a/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java +++ b/src/Java/gtPlusPlus/core/handler/render/FirepitRender.java @@ -35,6 +35,7 @@ public class FirepitRender extends TileEntitySpecialRenderer{ this.bindTexture(texture); GL11.glPushMatrix(); this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glTranslatef(1.0f, 1.0f, 1.0f); GL11.glPopMatrix(); GL11.glPopMatrix(); } diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index cc9ca0e9e6..f84ebaff05 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -23,6 +23,7 @@ import gtPlusPlus.core.lib.CORE.configSwitches; import gtPlusPlus.core.material.*; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.debug.DEBUG_INIT; +import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; import net.minecraft.item.*; import net.minecraft.item.Item.ToolMaterial; @@ -348,7 +349,9 @@ public final class ModItems { //FLiBe Fuel Compounds dustLi2BeF4 = ItemUtils.generateSpecialUseDusts("Li2BeF4", "Li2BeF4 Fuel Compound", Utils.rgbtoHexValue(255, 255, 255))[0]; //https://en.wikipedia.org/wiki/FLiBe - + FluidUtils.generateFluid("Li2BeF4", "Li2BeF4", 7430, new short[]{255, 255, 255, 100}); + + metaItem2 = new BaseEuItem(); metaItem2.registerItem(0, EnumChatFormatting.BLACK+"Test Item 0", 0, 0, "I am 0."); metaItem2.registerItem(1, EnumChatFormatting.GREEN+"Test Item 1", 1006346000, 1, "I Hold EU 1.", 500); diff --git a/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java b/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java index ee9d451948..a0216771b9 100644 --- a/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java +++ b/src/Java/gtPlusPlus/core/item/base/BaseItemComponent.java @@ -6,6 +6,7 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.entity.EntityUtils; import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.math.MathUtils; import java.util.List; @@ -23,6 +24,7 @@ public class BaseItemComponent extends Item{ public final String materialName; public final String unlocalName; public final ComponentTypes componentType; + public final int componentColour; public BaseItemComponent(Material material, ComponentTypes componentType) { this.componentMaterial = material; @@ -33,14 +35,32 @@ public class BaseItemComponent extends Item{ this.setUnlocalizedName(unlocalName); this.setMaxStackSize(64); this.setTextureName(CORE.MODID + ":" + "item"+componentType.COMPONENT_NAME); + this.componentColour = material.getRgbAsHex(); GameRegistry.registerItem(this, unlocalName); GT_OreDictUnificator.registerOre(componentType.getOreDictName()+material.getUnlocalizedName(), ItemUtils.getSimpleStack(this)); } + //For Cell Generation + public BaseItemComponent(String unlocalName, String localName, short[] RGBA) { + this.componentMaterial = null; + this.unlocalName = "itemCell"+unlocalName; + this.materialName = localName; + this.componentType = ComponentTypes.CELL; + this.setCreativeTab(AddToCreativeTab.tabMisc); + this.setUnlocalizedName(unlocalName); + this.setMaxStackSize(64); + this.componentColour = MathUtils.getRgbAsHex(RGBA); + this.setTextureName(CORE.MODID + ":" + "item"+ComponentTypes.CELL.COMPONENT_NAME); + GameRegistry.registerItem(this, unlocalName); + GT_OreDictUnificator.registerOre(ComponentTypes.CELL.getOreDictName()+unlocalName, ItemUtils.getSimpleStack(this)); + } + @Override public String getItemStackDisplayName(ItemStack p_77653_1_) { + if (componentMaterial != null) return (componentMaterial.getLocalizedName()+componentType.DISPLAY_NAME); + return materialName+" Cell"; } public final String getMaterialName() { @@ -51,7 +71,7 @@ public class BaseItemComponent extends Item{ @Override public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) { - if (materialName != null && materialName != "" && !materialName.equals("")){ + if (materialName != null && materialName != "" && !materialName.equals("") && componentMaterial != null){ if (componentType == ComponentTypes.DUST){ @@ -102,12 +122,14 @@ public class BaseItemComponent extends Item{ @Override public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) { - return componentMaterial.getRgbAsHex(); + return componentColour; } @Override public void onUpdate(ItemStack iStack, World world, Entity entityHolding, int p_77663_4_, boolean p_77663_5_) { - EntityUtils.applyRadiationDamageToEntity(componentMaterial.vRadioationLevel, world, entityHolding); + if (componentMaterial != null){ + EntityUtils.applyRadiationDamageToEntity(componentMaterial.vRadioationLevel, world, entityHolding); + } } @@ -148,11 +170,11 @@ public class BaseItemComponent extends Item{ public String getName(){ return DISPLAY_NAME; } - + public String getOreDictName(){ - return OREDICT_NAME; + return OREDICT_NAME; } - + } } diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 1687064083..91d60fd184 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -30,6 +30,7 @@ public class RECIPES_GREGTECH { chemicalReactorRecipes(); dehydratorRecipes(); blastFurnaceRecipes(); + lftrRecipes(); addFuels(); } @@ -248,6 +249,18 @@ public class RECIPES_GREGTECH { } } + + private static void lftrRecipes(){ + try { + CORE.RA.addLFTRRecipe( + FluidUtils.getFluidStack("moltenUranium233", 200), //Fluid input (slot 1) + FluidUtils.getFluidStack("moltenLi2BeF4", 1000), //Fluid output (slot 2) + FluidUtils.getFluidStack("moltenUranium233", 500), //Output Array of Items - Upto 9, + 16000*20, //Time in ticks + 8000); //EU + + }catch (NullPointerException e){Utils.LOG_INFO("FAILED TO LOAD RECIPES - NULL POINTER SOMEWHERE");} + } private static void assemblerRecipes(){ //GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 6L), ItemList.Casing_Turbine.get(1L, new Object[0]), ItemList.Casing_Turbine2.get(1L, new Object[0]), 50, 16); diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index 26a8770d44..65c0e87fd9 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -3,10 +3,13 @@ package gtPlusPlus.core.util.fluid; import gregtech.api.enums.*; import gregtech.api.util.GT_LanguageManager; import gtPlusPlus.core.fluids.GenericFluid; +import gtPlusPlus.core.item.base.BaseItemComponent; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.*; @@ -335,5 +338,27 @@ public class FluidUtils { public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems, final int aStacksize) { return amount(aStacksize, container(aStack, aCheckIFluidContainerItems)); } + + public final static Fluid generateFluid(String unlocalizedName, String localizedName, int MeltingPoint, short[] RGBA){ + if (FluidUtils.getFluidStack("molten"+localizedName, 1) == null){ + Utils.LOG_WARNING("Generating our own fluid."); + + //Generate a Cell if we need to + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, 1) == null){ + @SuppressWarnings("unused") + Item temp = new BaseItemComponent(unlocalizedName, localizedName, RGBA); + } + return FluidUtils.addGTFluid( + unlocalizedName, + "Molten "+localizedName, + RGBA, + 4, + MeltingPoint, + ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, 1), + ItemList.Cell_Empty.get(1L, new Object[0]), + 1000); + } + return null; + } } diff --git a/src/Java/gtPlusPlus/core/util/math/MathUtils.java b/src/Java/gtPlusPlus/core/util/math/MathUtils.java index 75d8452975..c864df491c 100644 --- a/src/Java/gtPlusPlus/core/util/math/MathUtils.java +++ b/src/Java/gtPlusPlus/core/util/math/MathUtils.java @@ -258,6 +258,13 @@ public class MathUtils { return result; } - + final public static int getRgbAsHex(short[] RGBA){ + + int returnValue = Utils.rgbtoHexValue(RGBA[0], RGBA[1], RGBA[2]); + if (returnValue == 0){ + return (int) 0; + } + return Utils.rgbtoHexValue(RGBA[0], RGBA[1], RGBA[2]); + } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java index 62b3aa9bcc..9eaf13dca3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java @@ -90,5 +90,10 @@ public interface IGregtech_RecipeAdder { * @return true if the Recipe got added, otherwise false. */ public boolean addBlastSmelterRecipe(ItemStack[] aInput, FluidStack aOutput, int aChance, int aDuration, int aEUt); + + + public boolean addLFTRRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); + public boolean addLFTRRecipe(ItemStack aInput1, FluidStack aInput2, ItemStack aOutput1, FluidStack aOutput2, int aDuration, int aEUt); + public boolean addLFTRRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java index cdec6d6c32..9fa070a4f8 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java @@ -280,4 +280,27 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { return true; } + + + @Override + public boolean addLFTRRecipe(ItemStack aInput1, FluidStack aInput2, + ItemStack aOutput1, FluidStack aOutput2, int aDuration, int aEUt) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean addLFTRRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) { + return false; + } + + @Override + public boolean addLFTRRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt) { + if (aInput1 == null || aInput2 == null || aOutput1 == null || aDuration < 1 || aEUt < 1) { + return false; + } + Recipe_GT.Gregtech_Recipe_Map.sLiquidFluorineThoriumReactorRecipes.addRecipe(null, new FluidStack[]{aInput1, aInput2}, new FluidStack[]{aOutput1}, aDuration, aEUt, 16000); + return true; + } + } |