From 9ca0d83933a56de523c92efeff5764784efdbdc6 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 30 Jan 2022 20:09:12 -0800 Subject: [PATCH] trolling: troll harder --- .../handler/nei/RadiolysisRecipeHandler.java | 132 ++++++++++++++++++ .../container/ContainerRadiolysis.java | 9 +- .../com/hbm/inventory/gui/GUIMachineRTG.java | 2 +- .../com/hbm/inventory/gui/GUIRadiolysis.java | 12 +- .../inventory/recipes/AssemblerRecipes.java | 17 ++- .../hbm/inventory/recipes/FusionRecipes.java | 12 +- .../inventory/recipes/RadiolysisRecipes.java | 26 ++-- src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 2 + .../java/com/hbm/main/ResourceManager.java | 6 +- .../hbm/render/item/ItemRenderLibrary.java | 11 ++ .../render/tileentity/RenderRadiolysis.java | 44 ++++++ .../tileentity/machine/TileEntityITER.java | 4 +- .../machine/TileEntityMachineIGenerator.java | 2 +- .../machine/TileEntityMachineRTG.java | 2 +- .../machine/TileEntityMachineRadiolysis.java | 62 ++++---- .../hbm/textures/gui/gui_radiolysis.png | Bin 2147 -> 2047 bytes .../textures/gui/nei/gui_nei_radiolysis.png | Bin 0 -> 1222 bytes 18 files changed, 285 insertions(+), 59 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderRadiolysis.java create mode 100644 src/main/resources/assets/hbm/textures/gui/nei/gui_nei_radiolysis.png diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java new file mode 100644 index 000000000..edd81d147 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -0,0 +1,132 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIRadiolysis; +import com.hbm.inventory.recipes.RadiolysisRecipes; +import com.hbm.lib.RefStrings; + +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; + +public class RadiolysisRecipeHandler extends TemplateRecipeHandler { + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack output1; + PositionedStack output2; + + public RecipeSet(ItemStack input, ItemStack output1, ItemStack output2) { + input.stackSize = 1; + this.input = new PositionedStack(input, 34, 25); + this.output1 = new PositionedStack(output1, 118, 16); + this.output2 = new PositionedStack(output2, 118, 34); + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 20, Arrays.asList(input)); + } + + @Override + public PositionedStack getResult() { + return output1; + } + + @Override + public List getOtherStacks() { + List stacks = new ArrayList(); + stacks.add(output2); + return stacks; + } + } + + @Override + public String getRecipeName() { + return "Radiolysis"; + } + + @Override + public String getGuiTexture() { + return RefStrings.MODID + ":textures/gui/nei/gui_nei_radiolysis.png"; + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + + if(outputId.equals("ntmRadiolysis")) { + HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); + + for(Entry recipe : recipes.entrySet()) { + this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); + + for(Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result)) + this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + + if(inputId.equals("ntmRadiolysis")) { + loadCraftingRecipes("ntmRadiolysis", new Object[0]); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); + + for(Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getKey(), ingredient)) + this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); + } + } + + @Override + public void drawExtras(int recipe) { + drawProgressBar(52, 19, 5, 87, 64, 28, 60, 0); + } + + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(52, 19, 64, 27), "ntmRadiolysis")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(66, 25, 25, 14), "ntmRadiolysis")); + guiGui.add(GUIRadiolysis.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerRadiolysis.java b/src/main/java/com/hbm/inventory/container/ContainerRadiolysis.java index c09fccc59..d3fe7e708 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerRadiolysis.java +++ b/src/main/java/com/hbm/inventory/container/ContainerRadiolysis.java @@ -31,6 +31,9 @@ public class ContainerRadiolysis extends Container { this.addSlotToContainer(new Slot(tile, 12, 148, 17)); this.addSlotToContainer(new SlotMachineOutput(tile, 13, 148, 53)); + //Battery + this.addSlotToContainer(new Slot(tile, 14, 8, 53)); + for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); @@ -57,11 +60,11 @@ public class ContainerRadiolysis extends Container { ItemStack stack = slot.getStack(); var3 = stack.copy(); - if(index <= 13) { - if(!this.mergeItemStack(stack, 14, this.inventorySlots.size(), true)) { + if(index <= 14) { + if(!this.mergeItemStack(stack, 15, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(stack, 0, 14, false)) { + } else if(!this.mergeItemStack(stack, 0, 15, false)) { return null; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java index 7ac329f62..2dc166fa4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java @@ -43,7 +43,7 @@ public class GUIMachineRTG extends GuiInfoContainer { for(int i = 0; i < pellets.size(); i++) { ItemRTGPellet pellet = pellets.get(i); - pelletText[i + 1] = I18nUtil.resolveKey("desc.gui.rtg.pelletPower", I18nUtil.resolveKey(pellet.getUnlocalizedName() + ".name"), pellet.getHeat() * 10); + pelletText[i + 1] = I18nUtil.resolveKey("desc.gui.rtg.pelletPower", I18nUtil.resolveKey(pellet.getUnlocalizedName() + ".name"), pellet.getHeat() * 5); } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, pelletText); diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java index c86124ac6..f847032bb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java @@ -30,10 +30,10 @@ public class GUIRadiolysis extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); radiolysis.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 61, guiTop + 17, 8, 52); - radiolysis.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 17, 26, 16); - radiolysis.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 53, 26, 16); + radiolysis.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 87, guiTop + 17, 12, 16); + radiolysis.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 87, guiTop + 53, 12, 16); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 17, 16, 52, radiolysis.power, radiolysis.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 17, 16, 34, radiolysis.power, radiolysis.maxPower); } @Override @@ -51,15 +51,15 @@ public class GUIRadiolysis extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)(radiolysis.getPower() * 52 / radiolysis.getMaxPower()); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i, 240, 52 - i, 16, i); + int i = (int)(radiolysis.getPower() * 34 / radiolysis.getMaxPower()); + drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 240, 34 - i, 16, i); Minecraft.getMinecraft().getTextureManager().bindTexture(radiolysis.tanks[0].getSheet()); radiolysis.tanks[0].renderTank(this, guiLeft + 61, guiTop + 69, radiolysis.tanks[0].getTankType().textureX() * FluidTank.x, radiolysis.tanks[0].getTankType().textureY() * FluidTank.y, 8, 52); for(byte j = 0; j < 2; j++) { Minecraft.getMinecraft().getTextureManager().bindTexture(radiolysis.tanks[j].getSheet()); - radiolysis.tanks[j + 1].renderTank(this, guiLeft + 80, guiTop + 33 + j * 36, radiolysis.tanks[j + 1].getTankType().textureX() * FluidTank.x, radiolysis.tanks[j + 1].getTankType().textureY() * FluidTank.y, 26, 16); + radiolysis.tanks[j + 1].renderTank(this, guiLeft + 87, guiTop + 33 + j * 36, radiolysis.tanks[j + 1].getTankType().textureX() * FluidTank.x, radiolysis.tanks[j + 1].getTankType().textureY() * FluidTank.y, 12, 16); } } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 7482e56cc..7a4bdc46d 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -251,7 +251,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); - makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 4), },150); + makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(IRON.plate(), 1), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); makeRecipe(new ComparableStack(ModItems.limiter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.wire_copper, 4), },150); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -264,7 +264,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 5), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 6), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); @@ -930,6 +930,19 @@ public class AssemblerRecipes { new ComparableStack(ModItems.inf_water_mk2, 2) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { + new OreDictStack(STEEL.ingot(), 10), + new ComparableStack(ModBlocks.steel_beam, 16), + new OreDictStack(DURA.ingot(), 12), + new OreDictStack(DESH.ingot(), 4), + new OreDictStack(PB.plate(), 12), + new ComparableStack(ModItems.board_copper, 4), + new ComparableStack(ModItems.thermo_element, 10), + new ComparableStack(ModItems.circuit_copper, 3), + new ComparableStack(ModItems.wire_red_copper, 8), + new ComparableStack(ModItems.tank_steel, 3) + }, 200); + if(Loader.isModLoaded("Mekanism")) { Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); diff --git a/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java index 7f72baf6e..e32ea7ee2 100644 --- a/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java @@ -28,12 +28,12 @@ public class FusionRecipes { public static HashMap levels = new HashMap(); static { - levels.put(Fluids.PLASMA_DT, 1); - levels.put(Fluids.PLASMA_DH3, 2); - levels.put(Fluids.PLASMA_HD, 1); - levels.put(Fluids.PLASMA_HT, 1); - levels.put(Fluids.PLASMA_XM, 3); - levels.put(Fluids.PLASMA_BF, 4); + levels.put(Fluids.PLASMA_DT, 1000); + levels.put(Fluids.PLASMA_DH3, 2000); + levels.put(Fluids.PLASMA_HD, 1000); + levels.put(Fluids.PLASMA_HT, 1000); + levels.put(Fluids.PLASMA_XM, 3000); + levels.put(Fluids.PLASMA_BF, 4000); } public static int getBreedingLevel(FluidType plasma) { diff --git a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java index 3f87ac9ba..e70421a8f 100644 --- a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java @@ -3,10 +3,12 @@ package com.hbm.inventory.recipes; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Map.Entry; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.Tuple.Pair; @@ -20,16 +22,24 @@ public class RadiolysisRecipes { /* I am proud of this but I don't think I should be */ public static Map getRecipesForNEI() { Map recipes = new HashMap(); - Iterator key = radiolysis.entrySet().iterator(); - Iterator values = radiolysis.values().iterator(); + Iterator itr = radiolysis.entrySet().iterator(); - while(key.hasNext() && values.hasNext()) { - Pair pair = (Pair) values.next(); + while(itr.hasNext()) { + Map.Entry entry = (Entry) itr.next(); + Pair pair = (Pair) entry.getValue(); + ItemStack[] outputs = new ItemStack[2]; + if(pair.getKey().type == Fluids.NONE) { + outputs[0] = new ItemStack(ModItems.nothing); + } else { + outputs[0] = ItemFluidIcon.make(pair.getKey().type, pair.getKey().fill); + } + if(pair.getValue().type == Fluids.NONE) { + outputs[1] = new ItemStack(ModItems.nothing); + } else { + outputs[1] = ItemFluidIcon.make(pair.getValue().type, pair.getValue().fill); + } - recipes.put(ItemFluidIcon.make((FluidType) key.next(), 100), - new ItemStack[] { - ItemFluidIcon.make(pair.getKey().type, pair.getKey().fill), - ItemFluidIcon.make(pair.getValue().type, pair.getValue().fill) }); + recipes.put(ItemFluidIcon.make((FluidType) entry.getKey(), 100), outputs); } return recipes; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 0031bf6ee..7fda16020 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -204,6 +204,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDeuteriumTower.class, new RenderDeuteriumTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); + //ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 1544b462d..a3273aac9 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -57,6 +57,8 @@ public class NEIConfig implements IConfigureNEI { API.registerUsageHandler(new AnvilRecipeHandler()); API.registerRecipeHandler(new FuelPoolHandler()); API.registerUsageHandler(new FuelPoolHandler()); + API.registerRecipeHandler(new RadiolysisRecipeHandler()); + API.registerUsageHandler(new RadiolysisRecipeHandler()); //universal boyes API.registerRecipeHandler(new ZirnoxRecipeHandler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 719d2609c..c4b222b6a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -278,6 +278,9 @@ public class ResourceManager { public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); + //Radiolysis + //public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); @@ -575,7 +578,8 @@ public class ResourceManager { public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); - + //Radiolysis + //public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis"); ////Obj Items diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index b522a905d..e59841542 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1194,6 +1194,17 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.liquefactor_tex); ResourceManager.liquefactor.renderPart("Main"); GL11.glShadeModel(GL11.GL_FLAT); }}); + + /*renderers.put(Item.getItemFromBlock(ModBlocks.machine_radiolysis), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.radiolysis_tex); ResourceManager.radiolysis.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }});*/ } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadiolysis.java b/src/main/java/com/hbm/render/tileentity/RenderRadiolysis.java new file mode 100644 index 000000000..f314ca632 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadiolysis.java @@ -0,0 +1,44 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderRadiolysis extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + /*GL11.glPushMatrix(); + GL11.glTranslated(x + 0.0D, y, z + 0.0D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180F, 0F, 1F, 0F); + switch(tileEntity.getBlockMetadata() - 10) { + case 2: + GL11.glRotatef(0F, 0F, 1F, 0F); + GL11.glTranslatef(0F, 0F, -1F); + break; + case 3: + GL11.glRotatef(180F, 0F, 1F, 0F); + GL11.glTranslatef(1F, 0F, 0F); + break; + case 4: + GL11.glRotatef(90F, 0F, 1F, 0F); + GL11.glTranslatef(1F, 0F, -1F); + break; + case 5: + GL11.glRotatef(270F, 0F, 1F, 0F); + break; + } + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.radiolysis_tex); + ResourceManager.radiolysis.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix();*/ + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index cf4dd9187..879af660c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -192,10 +192,10 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser BreederRecipe out = BreederRecipes.getOutput(slots[1]); if(slots[1] != null && slots[1].getItem() == ModItems.meteorite_sword_irradiated) - out = new BreederRecipe(ModItems.meteorite_sword_fused, 1); + out = new BreederRecipe(ModItems.meteorite_sword_fused, 1000); if(slots[1] != null && slots[1].getItem() == ModItems.meteorite_sword_fused) - out = new BreederRecipe(ModItems.meteorite_sword_baleful, 4); + out = new BreederRecipe(ModItems.meteorite_sword_baleful, 4000); if(out == null) { this.progress = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 37b1c2028..0c8eea22e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -131,7 +131,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement // RTG /// this.hasRTG = RTGUtil.hasHeat(slots, RTGSlots); - this.spin += RTGUtil.updateRTGs(slots, RTGSlots) * 0.1; + this.spin += RTGUtil.updateRTGs(slots, RTGSlots) * 0.2; if(this.spin > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 8b93a37c0..027653669 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -210,7 +210,7 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, if(heat > heatMax) heat = heatMax; - power += heat * 10; + power += heat * 5; if(power > powerMax) power = powerMax; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 66765d560..76b33904c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -30,7 +30,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer { - //TODO: TileMapping, Render file + resource location, container, gui, gui texture, further recipes; add registerRadiolysis to PostLoad + //TODO: Render file + resource locations + itemrenderlibrary + clientproxy, gui texture, further recipes public long power; public static final int maxPower = 1000000; @@ -43,7 +43,7 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement private static final int[] slot_rtg = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; public TileEntityMachineRadiolysis() { - super(14); //10 rtg slots, 2 fluid ID slots (io), 2 irradiation slots (io) + super(15); //10 rtg slots, 2 fluid ID slots (io), 2 irradiation slots (io), battery slot tanks = new FluidTank[3]; tanks[0] = new FluidTank(Fluids.NONE, 2000, 0); tanks[1] = new FluidTank(Fluids.NONE, 2000, 1); @@ -102,12 +102,15 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public void updateEntity() { if(!worldObj.isRemote) { + power = Library.chargeItemsFromTE(slots, 14, power, maxPower); + int heat = RTGUtil.updateRTGs(slots, slot_rtg); - power += heat * 15; + power += heat * 8; if(power > maxPower) power = maxPower; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, dir); this.sendPower(worldObj, xCoord - 2, yCoord, zCoord, dir); @@ -178,28 +181,33 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement // Code: pressure, sword, sterilize. private void sterilize() { - if(!checkIfValid()) - return; - - if(slots[12].getItem() instanceof ItemFood && !(slots[12].getItem() == ModItems.pancake)) { - slots[12].stackSize -= 1; - if(slots[12].stackSize <= 0) - slots[12] = null; - } - - ItemStack output = slots[12].copy(); - output.stackSize = 1; - - if(slots[13] == null) { - slots[13] = output; - slots[13].stackTagCompound.setBoolean("ntmContagion", false); - } else if(slots[13].isItemEqual(output) && slots[13].stackSize + output.stackSize <= slots[13].getMaxStackSize()) { - slots[12].stackSize -= output.stackSize; - if(slots[12].stackSize <= 0) - slots[12] = null; + if(slots[12] != null) { + if(slots[12].getItem() instanceof ItemFood && !(slots[12].getItem() == ModItems.pancake)) { + slots[12].stackSize -= 1; + if(slots[12].stackSize <= 0) + slots[12] = null; + } - slots[13].stackSize += output.stackSize; - slots[13].stackTagCompound.setBoolean("ntmContagion", false); + if(!checkIfValid()) + return; + + ItemStack output = slots[12].copy(); + output.stackSize = 1; + + if(slots[13] == null) { + slots[12].stackSize -= output.stackSize; + if(slots[12].stackSize <= 0) + slots[12] = null; + slots[13] = output; + slots[13].stackTagCompound.setBoolean("ntmContagion", false); + } else if(slots[13].isItemEqual(output) && slots[13].stackSize + output.stackSize <= slots[13].getMaxStackSize()) { + slots[12].stackSize -= output.stackSize; + if(slots[12].stackSize <= 0) + slots[12] = null; + + slots[13].stackSize += output.stackSize; + slots[13].stackTagCompound.setBoolean("ntmContagion", false); + } } } @@ -270,10 +278,8 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement @Override public int getMaxFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getMaxFill(); - } + if(tanks[0].getTankType() == type) { + return tanks[0].getMaxFill(); } return 0; } diff --git a/src/main/resources/assets/hbm/textures/gui/gui_radiolysis.png b/src/main/resources/assets/hbm/textures/gui/gui_radiolysis.png index 61134e44f04d736b783cc5d32314006ab0ff4336..dbfe0d21deac364a6ea44b70d53b53572c7a3333 100644 GIT binary patch literal 2047 zcmd5-do+~m8h^geOpS4r!_1ajrgnsJTqZ>e9pr9I6VsG7auCYSr4&2jb4xa5>=br5 zhKbw;#l|j7+qIesjkfXS19X z$?9YPP;_y&_W(ff5CM`L?n0}NaXx3~Je=%6_*8QqPYA)b?zRB+SqjpB5b?Z(&Ez=X z9%MT=l_0ypT#o8 z8RR3Jz0Lt_>G*t+p71+?0Gk9Z_O_fD-?s(n7vJbAIX*XY9~OLU6SO{;3@vV)9uoD@ zc1+VWc22GJMPJVjVqz-0=z{sF7^{^IQ|vvXzx%z%FHGZuJ*Jey0vP?q;%k zQkJqn$Q<9)r@WN7%DVDS^)ImjUU(^yS^TF``!{ia#nEz80Rd6EUi9 zK&K6|^d}b(59$S-$*zp>-PIIY&++uD{^UQRiE+7XL)ti@L0SF$`K_x5_^)*Jx>V3^ z{Ut;Cr0w>M-Qqo^+#+pdS7NWUOSE)|-ZoGXi^U10nzZYr0M zAxBfES?i- z%ZGB|cZ};_numV$K@xN+WYTrjFLLO7rif6}>A_5t39H7vu+L79^_wj^WxA-Tw zBEOa%GWw}-d14S{6<>Ar^-dz2JeFRFT?JuJ7qxY4$`iB$$G6Vi+ONV7mq?wH7tzC#x1Yl=W!Uf~H_H zH8^`d(qOV$i=U%F>}^W8PvyOc56Yk16wyfcJ1{FXG$2JVx)!4xh1n+%FC!)1V&oo# zU%=#O=&Xr!=(N$77tlECN2!hqbdhT0-6HQS4KhzvP%#q1jdUia&GF_V-H;~9z0C06 zX1CMCv11&YO=mdEFVxK_5&jdwYAa36XyxEpqTto*uJ3jUL*It$`mH-B1?q=T2eyBM zFOb7rgZI1Je^`rTzO=e3_kobz>V4laInygnBvIxEP+!rK& za@2iv>~wU`GySKLT7SWJ@ayKHSa^27xNuAG4;DLcn!dZ}>qQbjShZnriuq~(7@r$g z>M4P>2lqA{^-k7cQx;FZs@1kcWNiu|{j9V-E`Fc(Bf|+>F~nt#km;-0e3z<3j#mrm zGXDXWU{l_Q#Fu9^{*+LDvm55$cp(Ub*3ML!-dgnmRjL5c`&vU9-X4~|jl?$XsjhGsIX4^S^iVZ?U zU4`Xm_LNpstI!Uy!h~K?M1k4ZsBI?Yq|{r=*}|xz=8#0Lp6W)k?->Dzlf>RzoW3S8 z@Y^OK_v^aVqLsD?PV)u*VUvxF|HO*KhS5hAH%=MCN2Bb^v6fe|OPHa^u~V)cU2(pb zQ9bMnOcqYFf%qrB3>9zv+yF0yj!IbTuycpZr_=dxStC3c)l;14fBNLlel~RbDB|z= zUtkyRw=^=Y5?2r+8#{v>lBz9vX>vDoKKx{+RJUwg-*kIj>L7|xi%Qmxa#xRg)K(1k z_t;S4r3V9s6fEQ`vW=Mnk@jOMs`RTJawUlWe^h>nUhCOFp8XaUd`U5*8vn$=#eron IwDU{)H`5$+sQ>@~ literal 2147 zcmd5-c|6qX8h?JjnL&eT>^T``Y`KMTbZRWA$u=s>9MQ4GxRjFYvSj&@CUHL2mRn?3 z<|J{@L1=O%QK6J{&>UBhj*P92RPIlmbN{@5-9PU8dEU?SexK$0KJWH+%FSgJML2UTq57fPYa9>*b~@|?sLhi8=u5)!6xZIx2G_8{ zSXo(tW$n(+PI#~9>go#f2JrS#V zEXd4*^nU=q08ZsYaxtV7LqY{4mP4!n;wmBP8idut(FQo&4E}AvYX`5p;MN1~-LSV8 zTzbK20Jx7~&oi(e1iN9d62XpfFnL(=N9h?fj@vDP*kfeC~+JS{(zh^NJ99-FsT@wxj;Gxl$mxv zYI&3k%4V=Z^g8EfVrqx8WY^1Uf*MJ?I6SN|Vfo#9zkTHF!7%HL@1hoH;>!$AEEo;* z*9#0>8`G2Bu%=t2gmwyU4k0Sxp4)s2Rb3Zbj&>>0->48qicB7<>~E0l%C}ph)bP$} zy>dz&{kBS}ul4DZPE7~eCv|bP@3c;~eBXe&xR9|2WK!eb(8O&FAB_5(p1EKX9(!bJ za)z*dT|{hb(`7;*;jbco6LKsrp!_@1U+eh8M7&GeNtkLUWzq5=q4PU_AzJ7>W8DT_kOF1BN7KjpZ|xiC+HE z3F#fG(o%ms%4X7Q?{mK!A#`@>dB3$9`w>q%VB&=tt(W`2Xc;>3CF(iXQaGj_D$?QF z2wD7eT4({Q5phZi$gOYYh{OwH(aojYfoOIvfmq(_#ukR~?^A>| z?uYb^my)f_=&_wBn#daWMtz6J`K2c*lajLsEd-mDsp3;51M1n9w&HLN`2c;o$jRyk zHlJT-@8c4%milVd!nA6`h_!kXB6&rs`2Crr-BND9V`KRE`dm?sCl*h4=xfWg*~m*| zmWr}3i9&S>Ycbfv2W`#f=SKLhwBM30H_bd%dTtBa&hpb`_YL&#P`WWr7LL6PQBzH~ zmt44KI*lXJ=`Y8YOY6%rh{C)^@gquFUtgt2zy7Z@<-=2v=4@87iLv6PkLpwzF9xrm zIiFTDsKD4$4eqzrO@8jkX`B4Xf<0>89gUId)Z~Io(#ezFZvy>tE<4U|XG_$6K7&1e zLEzEH_a9?Z>8V@Ov=VYwXSuhGc?&~j-H?>ajtzvbmnFPL(mqYgtXy!=oVRqV$6Z}j zmeIe)O?MgjZBBI)`4E9z3}mUi%RtVKR>WLw^@Jy&iP>H-!LontS(&Fq-%(;OwWH3y zD@k)eV#HZn2JM@WQ#p?j2T{r=4Lvvf^&ULav6xyp{6yxQvjhH8Pcx6TUg&q$6V_p~ zcjhV@j9ITKeDLnz0v9mx|M-&ZRb)H=^{F-01H78x;(0?Vk(zH73DghRP zm?z4{Ft=V!Qdo`?(0MOI{_exPGsr}ndx}**>^fiGem+Q=%#M^M(VI`A)DcT0Ew}`% tf8j!@rylehC}NY!|3~gHL*C6#8iidNWV5n)KK_xxE*nSdYD-?qzX9E}l=T1r diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_radiolysis.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_radiolysis.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbbf5f753f203c5c94cde900f27b9c141ffb459 GIT binary patch literal 1222 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5D>38$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&eBzC?gei0gj_hI$~If#KM(W9H`O-QC^){{zJs5?c;T0#Y0$L4LtN5fEUw z*St3pD8^af5n0T@z;_sg8IR|$NCBFy?CIhdQW5udPH&NvAy3O^=R?2u7p}d^#5sAk z@j*ZTdw;F2zA9R|(T?xX1Wo-1F-@A$wUxXT1qI7;OqcAtwv*{tzG(L}L4(BAbsP+G zGIKPezlwg4ss}3&ojz5b$;QGWcpKMh{e0B}VLRU^CLG-UU1(3@@#c*U8e#{cEiA+u zWciOVEs9{sfA}DRq0B~tyCaElPiu2B1M1_A4EGKl z+{o~z!az*mC{qPD`*EfXj}JyTh;Tp9m672-(8u2FpE}_mOQ)v%8N+tXXx^3obT%3> z{fSK4Z0FX_&YpfMtd{l1<|An_;l(pHh1#<$%b0t3%Gzg5H5>m*e|RmU6EyibYYQWg zVq}^HqS9HO2j`x_c&yq$ab>z9LTqn#aQFW&FAfqR38ZxBO! z4R|3hWQ1Hat* z!^i66c@HX?{!~*)dcKliS%J!DpFVY z=Wo6H?mwjkp+Fy1GxA?>Q~$)|a$oRN`r(A$@)o(}w&FTp`Yz-j^k)GFz!5OLob`da zlGsX5E`eiAGd4vq1dDMeoJwN!iPUM(>}EAc-N>*^N9@3qqr+U%)pGuS#^a8*&mMfT ScmOOz7(8A5T-G@yGywpKKk1|Z literal 0 HcmV?d00001