From da45bb91c82feb1bd2aa8042d3eee2569811afbd Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 28 Jan 2022 09:37:18 +0100 Subject: [PATCH] floppenheimer (it's the FEL) --- .../hbm/handler/nei/SILEXRecipeHandler.java | 25 +- .../java/com/hbm/inventory/gui/GUIFEL.java | 120 ++++------ .../java/com/hbm/inventory/gui/GUISILEX.java | 64 ++++- .../inventory/recipes/AssemblerRecipes.java | 12 + .../hbm/inventory/recipes/SILEXRecipes.java | 162 ++++++------- src/main/java/com/hbm/items/ModItems.java | 20 ++ .../com/hbm/items/machine/ItemFELCrystal.java | 56 +++++ .../java/com/hbm/items/weapon/ItemAmmo.java | 28 +++ .../java/com/hbm/main/CraftingManager.java | 6 + .../com/hbm/render/tileentity/RenderFEL.java | 28 +-- .../hbm/tileentity/machine/TileEntityFEL.java | 224 +++++++++++++----- .../tileentity/machine/TileEntitySILEX.java | 180 +++++++------- .../hbm/textures/gui/machine/gui_fel.png | Bin 2728 -> 7311 bytes .../hbm/textures/gui/nei/gui_nei_silex.png | Bin 756 -> 797 bytes .../hbm/textures/gui/processing/gui_silex.png | Bin 4279 -> 3407 bytes .../textures/items/laser_crystal_bismuth.png | Bin 0 -> 483 bytes .../hbm/textures/items/laser_crystal_cmb.png | Bin 0 -> 462 bytes .../hbm/textures/items/laser_crystal_co2.png | Bin 0 -> 305 bytes .../textures/items/laser_crystal_digamma.png | Bin 0 -> 485 bytes .../items/laser_crystal_digamma.png.mcmeta | 3 + .../hbm/textures/items/laser_crystal_dnt.png | Bin 0 -> 358 bytes 21 files changed, 612 insertions(+), 316 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemFELCrystal.java create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_bismuth.png create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_cmb.png create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_co2.png create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/items/laser_crystal_dnt.png diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index efedb31f1..cc1dba5b5 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -10,8 +10,12 @@ import java.util.Map; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import com.hbm.util.WeightedRandomObject; +import com.hbm.inventory.RecipesCommon.ComparableStack; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; @@ -19,7 +23,9 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class SILEXRecipeHandler extends TemplateRecipeHandler { @@ -34,6 +40,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { List outputs; List chances; double produced; + EnumWavelengths crystalStrength; public RecipeSet(Object input, SILEXRecipe recipe) { @@ -41,6 +48,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { this.outputs = new ArrayList(); this.chances = new ArrayList(); this.produced = recipe.fluidProduced / recipe.fluidConsumed; + this.crystalStrength = EnumWavelengths.values()[recipe.laserStrength]; double weight = 0; @@ -141,7 +149,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { if(recipe.getKey() instanceof ItemStack) { - if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey())) + if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue())); } else if (recipe.getKey() instanceof ArrayList) { @@ -149,7 +157,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { for(Object o : (ArrayList)recipe.getKey()) { ItemStack stack = (ItemStack)o; - if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, stack)) + if (NEIServerUtils.areStacksSameType(ingredient, stack)) this.arecipes.add(new RecipeSet(stack, recipe.getValue())); } } @@ -174,6 +182,12 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + /*int index = 0; + for(Double chance : rec.chances) { + fontRenderer.drawString(((int)(chance * 10D) / 10D) + "%", 84, 28 + index * 18 - 9 * ((rec.chances.size() + 1) / 2), 0x404040); + index++; + }*/ for(int i = 0; i < rec.chances.size(); i++) { @@ -186,6 +200,11 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { String am = ((int)(rec.produced * 10D) / 10D) + "x"; fontRenderer.drawString(am, 52 - fontRenderer.getStringWidth(am) / 2, 43, 0x404040); + + String wavelength = (rec.crystalStrength == EnumWavelengths.NULL) ? EnumChatFormatting.WHITE+"N/A" : rec.crystalStrength.textColor + I18nUtil.resolveKey(rec.crystalStrength.name); + fontRenderer.drawString(wavelength, (33 - fontRenderer.getStringWidth(wavelength) / 2), 8, 0x404040); + + } @Override @@ -197,4 +216,4 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { public String getGuiTexture() { return RefStrings.MODID + ":textures/gui/nei/gui_nei_silex.png"; } -} +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIFEL.java b/src/main/java/com/hbm/inventory/gui/GUIFEL.java index 3365d8759..12bac9043 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFEL.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFEL.java @@ -1,10 +1,11 @@ package com.hbm.inventory.gui; -import org.apache.commons.lang3.math.NumberUtils; -import org.lwjgl.input.Keyboard; +import java.awt.Color; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFEL; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; @@ -13,87 +14,54 @@ import com.hbm.tileentity.machine.TileEntityFEL; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class GUIFEL extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_fel.png"); private TileEntityFEL fel; - private GuiTextField field; public GUIFEL(InventoryPlayer invPlayer, TileEntityFEL laser) { super(new ContainerFEL(invPlayer, laser)); this.fel = laser; - this.xSize = 176; - this.ySize = 168; + this.xSize = 203; + this.ySize = 169; } - - @Override - public void initGui() { - super.initGui(); - - Keyboard.enableRepeatEvents(true); - this.field = new GuiTextField(this.fontRendererObj, guiLeft + 57, guiTop + 57, 29, 12); - this.field.setTextColor(-1); - this.field.setDisabledTextColour(-1); - this.field.setEnableBackgroundDrawing(false); - this.field.setMaxStringLength(3); - this.field.setText(String.valueOf(fel.watts)); - } - + @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 16, 18, 9, mouseX, mouseY, new String[] {"Microwave"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 25, 18, 9, mouseX, mouseY, new String[] {"Infrared"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 34, 18, 9, mouseX, mouseY, new String[] {"Visible Light"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 43, 18, 9, mouseX, mouseY, new String[] {"UV"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 52, 18, 9, mouseX, mouseY, new String[] {"X-Ray"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 133, guiTop + 61, 18, 9, mouseX, mouseY, new String[] {"Gamma Ray"}); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 17, 16, 52, fel.power, fel.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 182, guiTop + 27, 16, 113, fel.power, fel.maxPower); } protected void mouseClicked(int x, int y, int i) { super.mouseClicked(x, y, i); - this.field.mouseClicked(x, y, i); - - if(guiLeft + 97 <= x && guiLeft + 97 + 18 > x && guiTop + 52 < y && guiTop + 52 + 18 >= y) { - - if(NumberUtils.isNumber(field.getText())) { - int j = MathHelper.clamp_int((int) Double.parseDouble(field.getText()), 1, 100); - field.setText(j + ""); - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(fel.xCoord, fel.yCoord, fel.zCoord, j, 1)); - } - } - - if(guiLeft + 97 <= x && guiLeft + 97 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) { + if(guiLeft + 142 <= x && guiLeft + 142 + 29 > x && guiTop + 41 < y && guiTop + 41 + 17 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(fel.xCoord, fel.yCoord, fel.zCoord, 0, 2)); } - for(int k = 0; k < 6; k++) { - - if(guiLeft + 133 <= x && guiLeft + 133 + 18 > x && guiTop + 16 + k * 9 < y && guiTop + 16 + k * 9 + 9 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(fel.xCoord, fel.yCoord, fel.zCoord, k, 0)); - } - } } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.fel.hasCustomInventoryName() ? this.fel.getInventoryName() : I18n.format(this.fel.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(name, 90 + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 7, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 98, 4210752); + + if(fel.missingValidSilex && fel.isOn) { + this.fontRendererObj.drawString(I18n.format("ERR."), 55 + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 9, 0xFF0000); + } else if(fel.isOn) { + this.fontRendererObj.drawString(I18n.format("LIVE"), 54 + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 9, 0x00FF00); + } + } @Override @@ -101,29 +69,39 @@ public class GUIFEL extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(field.isFocused()) - drawTexturedModalRect(guiLeft + 53, guiTop + 53, 210, 4, 34, 16); - + if(fel.isOn) - drawTexturedModalRect(guiLeft + 97, guiTop + 16, 192, 0, 18, 18); + drawTexturedModalRect(guiLeft + 142, guiTop + 41, 203, 0, 29, 17); - int mode = fel.mode; - drawTexturedModalRect(guiLeft + 133, guiTop + 16 + mode * 9, 176, 52 + mode * 9, 18, 9); + int k = (int)fel.getPowerScaled(114); + drawTexturedModalRect(guiLeft + 182, guiTop + 27 + 113 - k, 203, 17 + 113 - k, 16, k); - int i = (int) fel.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - - drawTexturedModalRect(guiLeft + 53, guiTop + 45, 210, 0, fel.watts * 34 / 100, 4); + int color = !(fel.mode == EnumWavelengths.VISIBLE) ? fel.mode.guiColor : Color.HSBtoRGB(fel.getWorldObj().getTotalWorldTime() / 50.0F, 0.5F, 1F) & 16777215; - this.field.drawTextBox(); - } - - @Override - protected void keyTyped(char c, int key) { - - if(!this.field.textboxKeyTyped(c, key)) { - super.keyTyped(c, key); + if(fel.power > fel.powerReq * Math.pow(2, fel.mode.ordinal()) && fel.isOn && !(fel.mode == EnumWavelengths.NULL) && fel.distance > 0) { + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glLineWidth(5F); + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawing(1); + tessellator.setColorOpaque_I(color); + + tessellator.addVertex(guiLeft + 113, guiTop + 31.5F, this.zLevel); + tessellator.addVertex(guiLeft + 135, guiTop + 31.5F, this.zLevel); + tessellator.draw(); + + tessellator.startDrawing(1); + tessellator.setColorOpaque_I(color); + + tessellator.addVertex(0, guiTop + 31.5F, this.zLevel); + tessellator.addVertex(guiLeft + 4, guiTop + 31.5F, this.zLevel); + tessellator.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); } - } -} + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index ff2f7604c..8de55b89a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -1,16 +1,21 @@ package com.hbm.inventory.gui; +import java.awt.Color; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntitySILEX; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -19,6 +24,7 @@ public class GUISILEX extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_silex.png"); private TileEntitySILEX silex; + int offset = 0; public GUISILEX(InventoryPlayer invPlayer, TileEntitySILEX laser) { super(new ContainerSILEX(invPlayer, laser)); @@ -32,7 +38,7 @@ public class GUISILEX extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - silex.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 54, 52, 7); + silex.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 42, 52, 7); if(silex.current != null) { this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 27, guiTop + 72, 16, 52, mouseX, mouseY, new String[] { silex.currentFill + "/" + silex.maxFill + "mB", silex.current.toStack().getDisplayName() }); @@ -41,6 +47,7 @@ public class GUISILEX extends GuiInfoContainer { this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 10, guiTop + 92, 10, 10, mouseX, mouseY, new String[] { "Void contents" }); } + @Override protected void mouseClicked(int x, int y, int i) { super.mouseClicked(x, y, i); @@ -55,22 +62,33 @@ public class GUISILEX extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.silex.hasCustomInventoryName() ? this.silex.getInventoryName() : I18n.format(this.silex.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 54, 8, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + + if(silex.mode != EnumWavelengths.NULL) { + this.fontRendererObj.drawString(silex.mode.textColor + I18nUtil.resolveKey(silex.mode.name), 100 + (32 - this.fontRendererObj.getStringWidth(I18nUtil.resolveKey(silex.mode.name)) / 2), 16, 0); + } } @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + if(silex.mode != EnumWavelengths.NULL) { + float freq = 0.1F * (float)Math.pow(2, silex.mode.ordinal()); + int color = (silex.mode != EnumWavelengths.VISIBLE) ? silex.mode.guiColor : Color.HSBtoRGB(silex.getWorldObj().getTotalWorldTime() / 50.0F, 0.5F, 1F) & 16777215; + drawWave(81, 46, 16, 84, 0.5F, freq, color, 3F, 1F); + } + if(silex.tank.getFill() > 0) { if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType())) { - drawTexturedModalRect(guiLeft + 43, guiTop + 53, 176, 118, 54, 9); + drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 118, 54, 9); } else { - drawTexturedModalRect(guiLeft + 43, guiTop + 53, 176, 109, 54, 9); + drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 109, 54, 9); } } @@ -81,6 +99,40 @@ public class GUISILEX extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 26, guiTop + 124 - f, 176, 109 - f, 16, f); int i = silex.getFluidScaled(52); - drawTexturedModalRect(guiLeft + 44, guiTop + 54, 176, silex.tank.getTankType() == Fluids.ACID ? 43 : 50, i, 7); + drawTexturedModalRect(guiLeft + 8, guiTop + 42, 176, silex.tank.getTankType() == Fluids.ACID ? 43 : 50, i, 7); } -} + + private void drawWave(int x, int y, int height, int width, float resolution, float freq, int color, float thickness, float mult) { + float samples = ((float)width) / resolution; + float scale = ((float)height)/2F; + float offset = (float)((float)silex.getWorldObj().getTotalWorldTime() % (4*Math.PI/freq));//((width/3)*Math.PI/3));//(2.05F*width*freq)); + for(int i = 1; i < samples; i++) { + double currentX = offset + x + i*resolution; + double nextX = offset + x + (i+1)*resolution; + double currentY = y + scale*Math.sin(freq*currentX); + double nextY = y + scale*Math.sin(freq*nextX); + drawLine(thickness, color, currentX-offset, currentY, nextX-offset, nextY); + + + } + } + + private void drawLine(float width, int color, double x1, double y1, double x2, double y2) { + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glLineWidth(width); + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawing(1); + tessellator.setColorOpaque_I(color); + + tessellator.addVertex(guiLeft + x1, guiTop + y1, this.zLevel); + tessellator.addVertex(guiLeft + x2, guiTop + y2, this.zLevel); + tessellator.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 34e7da34a..167cbd124 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -738,6 +738,18 @@ public class AssemblerRecipes { new ComparableStack(ModItems.crystal_diamond, 1) }, 400); + makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] { + new ComparableStack(ModBlocks.fusion_conductor, 16), + new ComparableStack(ModBlocks.machine_lithium_battery, 2), + new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(STEEL.plate(), 24), + new OreDictStack(POLYMER.ingot(), 8), + new ComparableStack(ModItems.circuit_red_copper, 4), + new ComparableStack(ModItems.wire_red_copper, 64), + new ComparableStack(ModItems.coil_advanced_torus, 16), + new ComparableStack(ModItems.circuit_gold, 1) + }, 400); + makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { new ComparableStack(ModBlocks.concrete_asbestos, 4), new OreDictStack(STEEL.plate(), 4), diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 94ce516ec..87b47a478 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -28,68 +28,68 @@ public class SILEXRecipes { itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); dictTranslation.put("dustUranium", "ingotUranium"); - recipes.put("ingotUranium", new SILEXRecipe(900, 100) + recipes.put("ingotUranium", new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11)) ); - recipes.put(new ComparableStack(ModItems.ingot_pu_mix), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.ingot_pu_mix), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 6)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 3)) ); - recipes.put(new ComparableStack(ModItems.ingot_am_mix), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.ingot_am_mix), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am241), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am242), 6)) ); itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.PUF6.getID()), new ComparableStack(ModItems.ingot_plutonium)); dictTranslation.put("dustPlutonium", "ingotPlutonium"); - recipes.put("ingotPlutonium", new SILEXRecipe(900, 100) + recipes.put("ingotPlutonium", new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 2)) ); - recipes.put(new ComparableStack(ModItems.ingot_schraranium), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.ingot_schraranium), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) ); itemTranslation.put(new ComparableStack(ModItems.powder_australium), new ComparableStack(ModItems.ingot_australium)); - recipes.put(new ComparableStack(ModItems.ingot_australium), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.ingot_australium), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 1)) ); - recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100, 3) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) ); itemTranslation.put(new ComparableStack(ModItems.powder_lapis), new ComparableStack(Items.dye, 1, 4)); - recipes.put(new ComparableStack(Items.dye, 1, 4), new SILEXRecipe(100, 100) + recipes.put(new ComparableStack(Items.dye, 1, 4), new SILEXRecipe(100, 100 ,1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.sulfur), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) ); - recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.DEATH.getID()), new SILEXRecipe(1000, 1000) + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.DEATH.getID()), new SILEXRecipe(1000, 1000, 4) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_impure_osmiridium), 1)) ); for(int i = 0; i < 5; i++) { // UEU // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) @@ -97,116 +97,116 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i)) ); // MEU // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); // HEU233 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) ); // HEU235 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) ); // TH232 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); // LEP // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 5 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 5 * i)) ); // MEP // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu_mix), 85 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i)) ); // HEP239 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 85 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 84 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i)) ); // HEP241 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 85 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 84 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i)) ); // MEN // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i)) ); // MOX // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 7 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) @@ -215,26 +215,26 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); // LEAUS // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); // HEAUS // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) @@ -242,34 +242,34 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); // BALEFIRE // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100, 3) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i + 5), new SILEXRecipe(400, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i + 5), new SILEXRecipe(400, 100, 3) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i)) ); // FLASHGOLD // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 90 - 20 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 10 + 20 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 89 - 20 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 10 + 20 * i)) ); // FLASHLEAD // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 1 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 1 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i)) ); //Reimumunch - recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 2)) //literal how .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 43 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 43 - 10 * i)) @@ -278,13 +278,13 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i)) ); // POBE // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 5 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) @@ -292,14 +292,14 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); // PUBE // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) @@ -308,14 +308,14 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); // RABE // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) @@ -324,7 +324,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); // FLASHGOLD // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100, 4) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) @@ -332,7 +332,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100, 4) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) @@ -341,13 +341,13 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); // ZFB BI // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) @@ -355,13 +355,13 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); // ZFB PU-241 // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) @@ -369,37 +369,37 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); // ZFB RG-AM // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); } - recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 45)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 65)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 56)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 32)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 22)) @@ -408,25 +408,25 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 16)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 25)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 45)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 60)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 25)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 14)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 60)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 12)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 34)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 13)) @@ -435,7 +435,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 29)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 25)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 2)) @@ -443,7 +443,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 6)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 52)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 16)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 40)) @@ -451,7 +451,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 39)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 2)) @@ -459,7 +459,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 7)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 66)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 22)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 20)) @@ -468,7 +468,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 36)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am241), 25)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am242), 35)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 5)) @@ -476,46 +476,46 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 7)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 60)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 5)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 40)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 35)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 40)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 40)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 15)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 16)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 55)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 9)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 40)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 7)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 8)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) ); - recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 7)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 29)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 2)) @@ -523,7 +523,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 17)) ); - recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(900, 100) + recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 90)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_co60), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 3)) @@ -532,7 +532,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 1)) ); - recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250) + recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, 0) .addOut(new WeightedRandomObject(new ItemStack(Items.flint), 80)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_boron), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) @@ -623,20 +623,22 @@ public class SILEXRecipes { return recipes; } - public static class SILEXRecipe { +public static class SILEXRecipe { public int fluidProduced; public int fluidConsumed; + public int laserStrength; public List outputs = new ArrayList(); - public SILEXRecipe(int fluidProduced, int fluidConsumed) { + public SILEXRecipe(int fluidProduced, int fluidConsumed, int laserStrength) { this.fluidProduced = fluidProduced; this.fluidConsumed = fluidConsumed; + this.laserStrength = laserStrength; } public SILEXRecipe addOut(WeightedRandomObject entry) { outputs.add(entry); return this; - } + } } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0c2fd40ba..419835a58 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -13,6 +13,7 @@ import com.hbm.items.armor.*; import com.hbm.items.bomb.*; import com.hbm.items.food.*; import com.hbm.items.machine.*; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; @@ -718,6 +719,12 @@ public class ModItems { public static Item part_carbon; public static Item part_copper; public static Item part_plutonium; + + public static Item laser_crystal_co2; + public static Item laser_crystal_bismuth; + public static Item laser_crystal_cmb; + public static Item laser_crystal_dnt; + public static Item laser_crystal_digamma; public static Item thermo_element; public static Item limiter; @@ -3228,6 +3235,12 @@ public class ModItems { part_copper = new Item().setUnlocalizedName("part_copper").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_copper"); part_plutonium = new Item().setUnlocalizedName("part_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_plutonium"); + laser_crystal_co2 = new ItemFELCrystal(EnumWavelengths.IR).setUnlocalizedName("laser_crystal_co2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_co2"); + laser_crystal_bismuth = new ItemFELCrystal(EnumWavelengths.VISIBLE).setUnlocalizedName("laser_crystal_bismuth").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_bismuth"); + laser_crystal_cmb = new ItemFELCrystal(EnumWavelengths.UV).setUnlocalizedName("laser_crystal_cmb").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_cmb"); + laser_crystal_dnt = new ItemFELCrystal(EnumWavelengths.GAMMA).setUnlocalizedName("laser_crystal_dnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_dnt"); + laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); + thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); @@ -6443,6 +6456,13 @@ public class ModItems { GameRegistry.registerItem(part_copper, part_copper.getUnlocalizedName()); GameRegistry.registerItem(part_plutonium, part_plutonium.getUnlocalizedName()); + //FEL laser crystals + GameRegistry.registerItem(laser_crystal_co2, laser_crystal_co2.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_bismuth, laser_crystal_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_cmb, laser_crystal_cmb.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); + //Recycled Units GameRegistry.registerItem(recycled_ground, recycled_ground.getUnlocalizedName()); GameRegistry.registerItem(recycled_rock, recycled_rock.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemFELCrystal.java b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java new file mode 100644 index 000000000..4b0e03748 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java @@ -0,0 +1,56 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemFELCrystal extends Item { + + public EnumWavelengths wavelength = EnumWavelengths.NULL; + + public ItemFELCrystal(EnumWavelengths wavelength) + { + this.wavelength = wavelength; + this.setMaxStackSize(1); + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + String desc = (stack.getItem() == ModItems.laser_crystal_digamma) ? (EnumChatFormatting.OBFUSCATED + "THERADIANCEOFATHOUSANDSUNS") : (this.getUnlocalizedNameInefficiently(stack) + ".desc"); + list.add(I18nUtil.resolveKey(desc)); + list.add(wavelength.textColor + I18nUtil.resolveKey(wavelength.name) + " - " + wavelength.textColor + I18nUtil.resolveKey(this.wavelength.wavelengthRange)); + } + + public static enum EnumWavelengths{ + NULL("la creatura", "6 dollar", 0x010101, 0x010101, EnumChatFormatting.WHITE), + + IR("wavelengths.name.ir", "wavelengths.waveRange.ir", 0xBB1010, 0xCC4040, EnumChatFormatting.RED), + VISIBLE("wavelengths.name.visible", "wavelengths.waveRange.visible", 0, 0, EnumChatFormatting.GREEN), + UV("wavelengths.name.uv", "wavelengths.waveRange.uv", 0x0A1FC4, 0x00EFFF, EnumChatFormatting.AQUA), + GAMMA("wavelengths.name.gamma", "wavelengths.waveRange.gamma", 0x150560, 0xEF00FF, EnumChatFormatting.LIGHT_PURPLE), + DRX("wavelengths.name.drx", "wavelengths.waveRange.drx", 0xFF0000, 0xFF0000, EnumChatFormatting.DARK_RED); + + public String name = ""; + public String wavelengthRange = ""; + public int renderedBeamColor; + public int guiColor; + public EnumChatFormatting textColor; + + private EnumWavelengths(String name, String wavelength, int color, int guiColor, EnumChatFormatting textColor) { + this.name = name; + this.wavelengthRange = wavelength; + this.renderedBeamColor = color; + this.guiColor = guiColor; + this.textColor = textColor; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 3879b007b..5246dc19a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -728,6 +728,34 @@ public class ItemAmmo extends Item { if(this == ModItems.ammo_folly_du) { list.add(EnumChatFormatting.BLUE + "+ Howitzer 17kg U238 shell"); } + + //STINGER + if(this == ModItems.ammo_stinger_rocket) { + list.add(EnumChatFormatting.BLUE + "+ Homing"); + } + if(this == ModItems.ammo_stinger_rocket_he) { + list.add(EnumChatFormatting.BLUE + "+ Homing"); + list.add(EnumChatFormatting.BLUE + "+ Increased Blast Radius"); + list.add(EnumChatFormatting.RED + "- Increased Wear"); + } + if(this == ModItems.ammo_stinger_rocket_incendiary) { + list.add(EnumChatFormatting.BLUE + "+ Homing"); + list.add(EnumChatFormatting.BLUE + "+ Incendiary explosion"); + list.add(EnumChatFormatting.RED + "- Slightly Increased wear"); + } + if(this == ModItems.ammo_stinger_rocket_nuclear) { + list.add(EnumChatFormatting.BLUE + "+ Homing"); + list.add(EnumChatFormatting.BLUE + "+ Nuclear"); + list.add(EnumChatFormatting.RED + "- Highly Increased wear"); + } + if(this == ModItems.ammo_stinger_rocket_bones) { + list.add(EnumChatFormatting.BLUE + "+ Homing"); + list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); + list.add(EnumChatFormatting.YELLOW + "* WELCOME ABOARD MATEYS!"); + list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); + list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); + list.add(EnumChatFormatting.YELLOW + "* SPIN THE WHEEL FOR THE TREASURE TO TAKE"); + } } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 55973cd64..efe7e53f5 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -313,6 +313,12 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.blades_advanced_alloy, 1), new Object[] { "PIP", 'P', ALLOY.plate(), 'I', new ItemStack(ModItems.blades_advanced_alloy, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_combine_steel, 1), new Object[] { "PIP", 'P', CMB.plate(), 'I', new ItemStack(ModItems.blades_combine_steel, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_schrabidium, 1), new Object[] { "PIP", 'P', SA326.plate(), 'I', new ItemStack(ModItems.blades_schrabidium, 1, OreDictionary.WILDCARD_VALUE) }); + + addRecipeAuto(new ItemStack(ModItems.laser_crystal_co2, 1), new Object[] { "QDQ", "NCN", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DESH.ingot(), 'N', ND.ingot(), 'C', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.CARBONDIOXIDE.getID()) }); + addRecipeAuto(new ItemStack(ModItems.laser_crystal_bismuth, 1), new Object[] {"QUQ", "BCB", "QTQ", 'Q', ModBlocks.glass_quartz, 'U', U.ingot(), 'T', TH232.ingot(), 'B', ModItems.nugget_bismuth, 'C', ModItems.crystal_rare }); + addRecipeAuto(new ItemStack(ModItems.laser_crystal_cmb, 1), new Object[] {"QBQ", "CSC", "QBQ", 'Q', ModBlocks.glass_quartz, 'B', CMB.ingot(), 'C', SBD.ingot(), 'S', ModItems.cell_anti_schrabidium }); + addRecipeAuto(new ItemStack(ModItems.laser_crystal_dnt, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DNT.ingot(), 'B', ModItems.egg_balefire, 'S', ModItems.powder_spark_mix }); + addRecipeAuto(new ItemStack(ModItems.laser_crystal_digamma, 1), new Object[] {"QUQ", "UEU", "QUQ", 'Q', ModBlocks.glass_quartz, 'U', ModItems.undefined, 'E', ModItems.ingot_electronium } ); Item[] bricks = new Item[] {Items.brick, Items.netherbrick}; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFEL.java b/src/main/java/com/hbm/render/tileentity/RenderFEL.java index 00b8c928d..9d888457f 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFEL.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFEL.java @@ -5,6 +5,7 @@ import java.awt.Color; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.main.ResourceManager; import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; @@ -38,23 +39,20 @@ public class RenderFEL extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); TileEntityFEL fel = (TileEntityFEL) tileEntity; - int color = 0xff0000; + int color = 0xffffff; - switch(fel.mode) { - case 0: color = 0x303000; break; - case 1: color = 0xFF1010; break; - case 2: color = Color.HSBtoRGB(fel.getWorldObj().getTotalWorldTime() / 50.0F, 1F, 0.3F) & 16777215; break; - case 3: color = 0x150560; break; - case 4: color = 0x054005; break; - case 5: color = 0x156015; break; + if(fel.mode.renderedBeamColor == 0) { + color = Color.HSBtoRGB(fel.getWorldObj().getTotalWorldTime() / 50.0F, 0.5F, 0.1F) & 16777215; + } else { + color = fel.mode.renderedBeamColor; + } + int length = fel.distance - 3; + GL11.glTranslated(0, 1.5, -1.5); + if(fel.power > fel.powerReq * Math.pow(2, fel.mode.ordinal()) && fel.isOn && !(fel.mode == EnumWavelengths.NULL) && length > 0) { + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -length - 1), EnumWaveType.SPIRAL, EnumBeamType.SOLID, color, color, 0, 1, 0F, 2, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -length - 1), EnumWaveType.RANDOM, EnumBeamType.SOLID, color, color, (int)(tileEntity.getWorldObj().getTotalWorldTime() % 1000 / 2), (length / 2) + 1, 0.0625F, 2, 0.0625F); } - int length = 25; - - GL11.glTranslated(0, 1.5, -1.5); - BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -length - 1), EnumWaveType.SPIRAL, EnumBeamType.SOLID, color, color, 0, 1, 0F, 2, 0.0625F); - BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -length - 1), EnumWaveType.RANDOM, EnumBeamType.SOLID, color, color, (int)(tileEntity.getWorldObj().getTotalWorldTime() % 1000 / 2), (length / 2) + 1, 0.0625F, 2, 0.0625F); - GL11.glPopMatrix(); } -} +} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 23ed1f571..53e8ae51e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -1,29 +1,59 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockHazard; +import com.hbm.blocks.generic.BlockHazardFalling; +import com.hbm.blocks.machine.MachineSILEX; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.interfaces.Spaghetti; +import com.hbm.items.machine.ItemFELCrystal; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.energy.IEnergyUser; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.block.BlockTNT; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFEL extends TileEntityMachineBase { +public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser { public long power; - public static final long maxPower = 1000000; - public int watts; - public int mode = 0; + public static final long maxPower = 20000000; + public static final int powerReq = 1250; + public EnumWavelengths mode = EnumWavelengths.NULL; public boolean isOn; + public boolean missingValidSilex = true ; + public int distance; + public List entities = new ArrayList(); + public TileEntityFEL() { - super(1); + super(2); } @Override @@ -32,70 +62,146 @@ public class TileEntityFEL extends TileEntityMachineBase { } @Override + @Spaghetti ("What the fuck were you thinking") public void updateEntity() { if(!worldObj.isRemote) { + //this.trySubscribe(world, x, y, z, dir); TODO this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); - int range = 50; - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - int length = 5; + if(this.isOn && !(this.slots[1] == null)) { + + if(this.slots[1].getItem() instanceof ItemFELCrystal) { + + ItemFELCrystal crystal = (ItemFELCrystal) this.slots[1].getItem(); + this.mode = crystal.wavelength; + + } else { this.mode = EnumWavelengths.NULL; } + + } else { this.mode = EnumWavelengths.NULL; } - for(int i = 5; i < range; i++) { + int range = 24; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + int length = 3; + boolean silexSpacing = false; + if(this.isOn && power >= powerReq * Math.pow(3, mode.ordinal()) && this.mode != EnumWavelengths.NULL) { - length = i; - - int x = xCoord + dir.offsetX * i; - int y = yCoord + 1; - int z = zCoord + dir.offsetZ * i; + int distance = this.distance-1; + double blx = Math.min(xCoord, xCoord + dir.offsetX * distance) + 0.2; + double bux = Math.max(xCoord, xCoord + dir.offsetX * distance) + 0.8; + double bly = Math.min(yCoord, 1 + yCoord + dir.offsetY * distance) + 0.2; + double buy = Math.max(yCoord, 1 + yCoord + dir.offsetY * distance) + 0.8; + double blz = Math.min(zCoord, zCoord + dir.offsetZ * distance) + 0.2; + double buz = Math.max(zCoord, zCoord + dir.offsetZ * distance) + 0.8; - Block b = worldObj.getBlock(x, y, z); + List list = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(blx, bly, blz, bux, buy, buz)); - if(b.getMaterial().isOpaque()) - continue; - - if(b == ModBlocks.machine_silex) { - - TileEntity te = worldObj.getTileEntity(x + dir.offsetX, yCoord, z + dir.offsetZ); - - if(te instanceof TileEntitySILEX) { - TileEntitySILEX silex = (TileEntitySILEX) te; - silex.laser += this.watts; + for(EntityLivingBase entity : list) { + switch(this.mode) { + case VISIBLE: entity.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 60 * 65536, 0)); + case IR: + case UV: entity.setFire(65535); break; + case GAMMA: HbmLivingProps.incrementRadiation(entity, 25); break; + case DRX: HbmLivingProps.incrementDigamma(entity, 0.1F); break; } } - break; + power -= powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal())); + for(int i = 3; i < range; i++) { + + length = i; + + int x = xCoord + dir.offsetX * i; + int y = yCoord + 1; + int z = zCoord + dir.offsetZ * i; + + Block b = worldObj.getBlock(x, y, z); + + if(!(b.getMaterial().isOpaque()) && b != Blocks.tnt) { + this.distance = range; + silexSpacing = false; + continue; + } + + if(b == ModBlocks.machine_silex) { + + TileEntity te = worldObj.getTileEntity(x + dir.offsetX, yCoord, z + dir.offsetZ); + + if(te instanceof TileEntitySILEX) { + TileEntitySILEX silex = (TileEntitySILEX) te; + int meta = silex.getBlockMetadata() - BlockDummyable.offset; + if(rotationIsValid(meta, this.getBlockMetadata() - BlockDummyable.offset) && i >= 5 && silexSpacing == false ) { + if(silex.mode != this.mode) { + silex.mode = this.mode; + this.missingValidSilex = false; + silexSpacing = true; + continue; + } + } else { + MachineSILEX silexBlock = (MachineSILEX)silex.getBlockType(); + silexBlock.breakBlock(worldObj, silex.xCoord, silex.yCoord, silex.zCoord, silexBlock, 0); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, x + 0.5, y + 0.5, z + 0.5, new ItemStack(Item.getItemFromBlock(ModBlocks.machine_silex)))); + } + } + + } else if(b.getMaterial().isOpaque() || b == Blocks.tnt) { + + this.distance = i; + + if(b.getMaterial().isLiquid()) { + worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); + worldObj.setBlockToAir(x, y, z); + break; + } + + float hardness = b.getExplosionResistance(null); + if(hardness < 2400 && worldObj.rand.nextInt(5) == 0) { + worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); + Block block = (this.mode != EnumWavelengths.DRX) ? Blocks.fire : (MainRegistry.polaroidID == 11) ? ModBlocks.digamma_matter : ModBlocks.fire_digamma; + worldObj.setBlock(x, y, z, block); + if(this.mode == EnumWavelengths.DRX) + worldObj.setBlock(x, y-1, z, ModBlocks.ash_digamma); + } + break; + } + } } NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); - data.setByte("mode", (byte)mode); - data.setByte("watts", (byte)watts); + data.setString("mode", mode.toString()); data.setBoolean("isOn", isOn); + data.setBoolean("valid", missingValidSilex); + data.setInteger("distance", distance); this.networkPack(data, 250); + + PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } } + + public boolean rotationIsValid(int silexMeta, int felMeta) { + ForgeDirection silexDir = ForgeDirection.getOrientation(silexMeta); + ForgeDirection felDir = ForgeDirection.getOrientation(felMeta); + if(silexDir == felDir || silexDir == felDir.getOpposite()) { + return true; + } + + return false; + } @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); - this.mode = nbt.getByte("mode"); - this.watts = nbt.getByte("watts"); + this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); this.isOn = nbt.getBoolean("isOn"); + this.distance = nbt.getInteger("distance"); + this.missingValidSilex = nbt.getBoolean("valid"); } @Override public void handleButtonPacket(int value, int meta) { - if(meta == 0) { - this.mode = Math.abs(value) % 6; - } - - if(meta == 1){ - this.watts = MathHelper.clamp_int(value, 1, 100); - } - if(meta == 2){ this.isOn = !this.isOn; } @@ -105,18 +211,15 @@ public class TileEntityFEL extends TileEntityMachineBase { return (power * i) / maxPower; } - public int getWattsScaled(int i) { - return (watts * i) / 100; - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); power = nbt.getLong("power"); - watts = nbt.getInteger("watts"); - mode = nbt.getInteger("mode"); + mode = EnumWavelengths.valueOf(nbt.getString("mode")); isOn = nbt.getBoolean("isOn"); + missingValidSilex = nbt.getBoolean("valid"); + distance = nbt.getInteger("distance"); } @Override @@ -124,21 +227,15 @@ public class TileEntityFEL extends TileEntityMachineBase { super.writeToNBT(nbt); nbt.setLong("power", power); - nbt.setInteger("watts", watts); - nbt.setInteger("mode", mode); + nbt.setString("mode", mode.toString()); nbt.setBoolean("isOn", isOn); + nbt.setBoolean("valid", missingValidSilex); + nbt.setInteger("distance", distance); } @Override public AxisAlignedBB getRenderBoundingBox() { - return AxisAlignedBB.getBoundingBox( - xCoord - 4, - yCoord, - zCoord - 4, - xCoord + 5, - yCoord + 3, - zCoord + 5 - ); + return INFINITE_EXTENT_AABB; } @Override @@ -146,4 +243,19 @@ public class TileEntityFEL extends TileEntityMachineBase { public double getMaxRenderDistanceSquared() { return 65536.0D; } -} + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index c9db1e9ed..4b4ce9600 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; import com.hbm.util.WeightedRandomObject; @@ -25,20 +26,21 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.WeightedRandom; public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor { - - public int laser = 0; + + public EnumWavelengths mode = EnumWavelengths.NULL; + public boolean hasLaser; public FluidTank tank; public ComparableStack current; public int currentFill; public static final int maxFill = 16000; public int progress; public final int processTime = 100; - - //0: Input - //1: Fluid ID - //2-3: Fluid Containers - //4: Output - //5-10: Queue + + // 0: Input + // 1: Fluid ID + // 2-3: Fluid Containers + // 4: Output + // 5-10: Queue public TileEntitySILEX() { super(11); @@ -52,28 +54,29 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce @Override public void updateEntity() { - + if(!worldObj.isRemote) { tank.setType(1, 1, slots); tank.loadTank(2, 3, slots); - + loadFluid(); - + if(!process()) { this.progress = 0; } - + dequeue(); - + if(currentFill <= 0) { current = null; } - + NBTTagCompound data = new NBTTagCompound(); data.setInteger("fill", currentFill); data.setInteger("progress", progress); - + data.setString("mode", mode.toString()); + if(this.current != null) { data.setInteger("item", Item.getIdFromItem(this.current.item)); data.setInteger("meta", this.current.meta); @@ -81,85 +84,88 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.networkPack(data, 50); + + this.mode = EnumWavelengths.NULL; } } - + public void networkUnpack(NBTTagCompound nbt) { - + this.currentFill = nbt.getInteger("fill"); this.progress = nbt.getInteger("progress"); - + this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); + if(this.currentFill > 0) { this.current = new ComparableStack(Item.getItemById(nbt.getInteger("item")), 1, nbt.getInteger("meta")); - + } else { this.current = null; } } - + public void handleButtonPacket(int value, int meta) { - + this.currentFill = 0; this.current = null; } - + public int getProgressScaled(int i) { return (progress * i) / processTime; } - + public int getFluidScaled(int i) { return (tank.getFill() * i) / tank.getMaxFill(); } - + public int getFillScaled(int i) { return (currentFill * i) / maxFill; } - + public static final HashMap fluidConversion = new HashMap(); - + static { putFluid(Fluids.UF6); putFluid(Fluids.PUF6); putFluid(Fluids.DEATH); } - + private static void putFluid(FluidType fluid) { fluidConversion.put(fluid, new ComparableStack(ModItems.fluid_icon, 1, fluid.getID())); } - + int loadDelay; - + public void loadFluid() { - + ComparableStack conv = fluidConversion.get(tank.getTankType()); - + if(conv != null) { - + if(currentFill == 0) { current = (ComparableStack) conv.copy(); } - + if(current != null && current.equals(conv)) { - + int toFill = Math.min(10, Math.min(maxFill - currentFill, tank.getFill())); currentFill += toFill; tank.setFill(tank.getFill() - toFill); } } - + loadDelay++; - + if(loadDelay > 20) loadDelay = 0; - + if(loadDelay == 0 && slots[0] != null && tank.getTankType() == Fluids.ACID && (this.current == null || this.current.equals(new ComparableStack(slots[0]).makeSingular()))) { SILEXRecipe recipe = SILEXRecipes.getOutput(slots[0]); - + if(recipe == null) return; - + int load = recipe.fluidProduced; - + if(load <= this.maxFill - this.currentFill && load <= tank.getFill()) { this.currentFill += load; this.current = new ComparableStack(slots[0]).makeSingular(); @@ -168,53 +174,58 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce } } } - + private boolean process() { - + if(current == null || currentFill <= 0) return false; - + SILEXRecipe recipe = SILEXRecipes.getOutput(current.toStack()); - + if(recipe == null) return false; - + + if(recipe.laserStrength > this.mode.ordinal()) + return false; + if(currentFill < recipe.fluidConsumed) return false; - + if(slots[4] != null) return false; - - progress++; - + + int progressSpeed = (int) Math.pow(2, this.mode.ordinal() - recipe.laserStrength + 1) / 2; + + progress += progressSpeed; + if(progress >= processTime) { - + currentFill -= recipe.fluidConsumed; - - ItemStack out = ((WeightedRandomObject)WeightedRandom.getRandomItem(worldObj.rand, recipe.outputs)).asStack(); + + ItemStack out = ((WeightedRandomObject) WeightedRandom.getRandomItem(worldObj.rand, recipe.outputs)).asStack(); slots[4] = out.copy(); progress = 0; this.markDirty(); } - + return true; } - + private void dequeue() { - + if(slots[4] != null) { - + for(int i = 5; i < 11; i++) { - + if(slots[i] != null && slots[i].stackSize < slots[i].getMaxStackSize() && InventoryUtil.doesStackDataMatch(slots[4], slots[i])) { slots[i].stackSize++; this.decrStackSize(4, 1); return; } } - + for(int i = 5; i < 11; i++) { - + if(slots[i] == null) { slots[i] = slots[4].copy(); slots[4] = null; @@ -231,9 +242,10 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - - if(i == 0) return SILEXRecipes.getOutput(itemStack) != null; - + + if(i == 0) + return SILEXRecipes.getOutput(itemStack) != null; + return false; } @@ -241,46 +253,40 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return slot >= 5; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.tank.readFromNBT(nbt, "tank"); this.currentFill = nbt.getInteger("fill"); - + this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); + if(this.currentFill > 0) { this.current = new ComparableStack(Item.getItemById(nbt.getInteger("item")), 1, nbt.getInteger("meta")); } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); this.tank.writeToNBT(nbt, "tank"); nbt.setInteger("fill", this.currentFill); - + nbt.setString("mode", mode.toString()); + if(this.current != null) { nbt.setInteger("item", Item.getIdFromItem(this.current.item)); nbt.setInteger("meta", this.current.meta); } } - + @Override public AxisAlignedBB getRenderBoundingBox() { - return AxisAlignedBB.getBoundingBox( - xCoord - 1, - yCoord, - zCoord - 1, - xCoord + 2, - yCoord + 3, - zCoord + 2 - ); + return AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord, zCoord - 1, xCoord + 2, yCoord + 3, zCoord + 2); } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -291,7 +297,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce @Override public void setFluidFill(int fill, FluidType type) { - + if(type == tank.getTankType()) tank.setFill(fill); } @@ -303,24 +309,28 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce @Override public List getTanks() { - return new ArrayList() {{ add(tank); }}; + return new ArrayList() { + { + add(tank); + } + }; } @Override public int getFluidFill(FluidType type) { - + if(type == tank.getTankType()) return tank.getFill(); - + return 0; } @Override public int getMaxFluidFill(FluidType type) { - + if(type == tank.getTankType()) return tank.getMaxFill(); - + return 0; } -} +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_fel.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_fel.png index 25c4533d368cefeb9382f1133053baabf5c73966..db573b1a71877d12f9c68d28f763ba5f2b1f90eb 100644 GIT binary patch literal 7311 zcmdsc`9GB38}~hykliFy%-GAW6j8>Y@UcY6(qJf&7^3XPz7wJ>NfavUSRz@*F!nv! zx3Ps7*=H<+XIj3$Jg?_3cz&2O=iFyr*E!ewy584$-)Eu>4YXKKo;e8s0IQC+=4}7~ zQM(|3@dWkD!tImY@6prSTIxV?&$*w}0i8Wu9}WPe@yrw(dg_?ziMIJu0AQ>C{Q)V_ z-w^?Tb0RvLaAPm4)r^3`hj-mud+~6i3oNJ7I@sUwb#(W)L z(7HIwK%VlI4F!1;=eE$zOgLV9p;R-PNb&wE@%08sjmSay@Fq--blD7?<32AKx~Do>sjCZeCR-q=*1Jb9C0R!kn=xAR>1h z*nYec)o>QpSs`0u?`qUsk3R6w=fIyC+iP^xa;SkGc|(is-+J3U9%@lY0&~$4*Tg$EV}6``Yc_%BP+p~KfaE%)I`h*VLMs(fg$u5 zG3+AiCu~4>IFgfkk7lIS`{{a1uiGl~?yEC2M?EhVx6vwr`^f#lZ@HCSF8ki6Nf~dt zY3}L(Wb{oL~*L}%J=>rTz z#}X{|*@1A`ZSv8w-sdX*s{5I(h}BCC(WrVC$z8(XFHc8^x-?e#YWfw_ty#V8WV-4= z$64E%G)=B)XRw02=?cdhfXX5l-V#Bvt@*famn8kIR4MV{rwwzGyS6 z=qI$Ula*(C32NF2DPJ;D;jjzfl9L7VG zR83o^NnK1CvOY>jY^3#_13=>(KBQ|7wkK1~;9cQ#@Xffmi0i zpt4~`tLt|qcdDf51@@PZ@S_A2a%ot7_(Aq}X+Z2O3s?mCVr*_QSBVFRoJ*BKwaOoK zGPbTpF2%l{$TPe%9BFc`ZrH|bQTS|luJ0QCgk0s$!tWOq`^@cjk3S{0Dtt#0eug@C?$wueDnl085 zUT7E3?D|!+hK;(%a2h&fbarfTNN|1<-ly~$X&eiOYWI}^6O2{SP{o9K z9P*pHI0q&1U0mv5g{AtoXTr&gjUKb@Be&ilP4*FQqI!{_dE2*Q zorL~R9>kFsbw~Rvg3CsVdncl{Nb?rmryQ#*2}&+5{`;Fo8SMW(lunNhnGv$({7&({Wp0BgH%WaM_nR12OdBY*2bsX& zwzjLEZ?!1(h(ADB{KFhFw1;cOvN}`(=%$fFx1{yC-d^;c2v<;)hZ)}4i%A<0b3*(? zi5v2o_#!r%Db7&1T!)FA&U(}6Eo_UD1?}eMME)!<>9QA6Rg)iokY&8kA4Eo)krzjQ zn)+X^`BlAgy19&&O$l1F-LH!X3ut5#|77l@AQ~L+H!nQ8x0s31D#x>_=&i6tKYw7T zazHHC&}9Q(PYh(5?8$2@9n-yj`RW(lj+n_nv)?!z>s9NrKo&XhaxZLDTWm4G=pP$U zw2sdDW_36@C_XojW=-*%h#!77U(?!5sA_jM2A|d>zp=vE$Tn*dGV+3>OFd&!(#Joz zt!*B8--gt0VLw+c`QnDWQjBe zSAV<|_4sy!CohbyUmo=wVB`y5t>f`|W&R#ljPp3j)bC(y_T0%mxT4kVxrJ$T^Yr5C z50k$k^;jLt)d2;hsd)Yx*v*h6^*gX6 znkgx9bg$%6NfE4zLibZ4{}0Wc=O)!q?TyXutrT#S@N6N-5}IphOOwOa)r4W9EgjI|;ImXoeMG{wiy;v# zG2)K0Jw?&^l_REi-<%D!zAs<@bZtt)1uF_57chztzvXnr0=`GX9nN(-CfshYDBQBk zNQvN^3(PP-dee>HNHAx9kB5Mtl`?aDk3W)NdH=;nX%-R0BqY4DF)ZNpZ+(lv*q@$#@RdTzHA&FL_g zS;d(%9LL>?gxVa;;#=QhFOTVNM#AJU0eHhGF%NxQ-dr+knl^c6NduQQ1(M2$?JlKI zY~1cSC0&ktFp|=INdEC)K)#k*e12tXtob@ETBmxYbHQJ&!=?OqvG&$YXwk4}RYn!7 zjczIVB{VElR#k0NJHa5ktUWwxP8@kBc2$Z(+0RYlH@T5gIhTt5p{=t%O+G&y-C;3( zh;}}_?=gHgv(bK=nYwwD$L>soz0%m@71ND;O+!(?0++@wNPOLD<#-vw`Rk2%vz_il z4O5TEvt-J;hJ}OnDYwtIHc?RdXT~UY3%L!sQK!v{<||iye+(wooFu&(hoakm1}j5$ zc_Ek2VDCMP3XWffnt|m${YPgR27CG`OYrE)XYQ$V0+U(Y=&^vBv;XGh<_+6d$I-lI z-rTMTl>EW+3|<-Xvctk~u{AYtg$rb6(x_`FovxH|llxW= zNl7tgZm@gV_}kQ#gH88qs)fJhLoV&w@Zq_)m6|0^p)MnpR`jT-tQNiP<%p+D{qmrf z;z-|E$N9zLsC3hg%HIg_-R7#Th2amVHMZ@GDfWGu5~q~P%-QOSl)=fk$70)U#4EVr zTO54mDjV}Fupa5Sf=4bf=)IAU{cza}!}+q3dmA_S4*NJpWg4V&$RY#tKTUQ3Z$;I2H>G z3g~MTr_s}c?Ty{n)4TThA_v~@>M||qvL7=1jfC3oW1?8^9-9EA{YC9ME7*N*@z~BL z1weYzTq>dcgcmy(XQ#i>-~NUfr*`g^m9TSxG*xNj*imyWk}6zu6zSbzt>^Q&jvl(` z+&LdzM66~`$X2{AYsZAk{34P7_2u{Oo>VT&_sl{~mR+uyOG7R<9Sp7^UtTATJQ#I3 zUb8Hc7wcUSR26J;c{3Oz+V$4^p*?Ao9g^ZHQi5sN-_Hmky!8|rU>c#uE!VM;Q!^#@ zW&PnagQO`Xrmy$>68T^n zuMA4TME=eHSm7!|!N#z7^Q;7?y(NB)LKcDw-0Y8Cru^_zs?@KdPxD zR7F)f{_FC#rA@!Prlg+1?q^|erdWD$7$i@NXs;RTdS9S?rR%=fy0XTk<;#oSr%~%$$8{y{G02CvKeVg))yTl3 zjoiIybq{Qbvd+|V^mFqLWR6}dQszQRnD9E*Me&3zKZ@pky&c*4a!k$r;lT79Nb0wt zwGktE1{)qGV79m{fzFuHa4P|Ob8u}w)) z@Qq++{BldOhaq%Te{nBx_y5OENY@4Iv}wxM4RBY+#O&)`!9>ZA*V*Ex zJEx1ro|PYIK)iaboRsQGxd)v(!sp-v`UJIYJNK?wYLZ^6+$OnZ5;jv<+>NySe4P`Z z$`Z#9p}xG4vL$|NKau&z`w=o-0zOOch@Qu5^;%rVlvf#})VJwSH0$Vadqi!v)Yua` zvFVEOwO;+EVms_PqmOUYf`wCkf4nlSF4t{n_1S%x0e4!!byzVXDH0)lJ8xkF-$OYQ z)q~p@TQ$ZzDp2E<)2zLH^p;FrgP`A#c&JhljeczE{S>4-VmU=#ssiP`E#)ab+F zqXG;|4&-Q6Ny#jg`2~G9`i{~A!`7uar_Y!E0vf;4z2Nl7MqMPGRcyezRd3%t(t~wQ z?I3r?kCZhIzgtm^zDh5emhPP;^sTCh^_^!i&WI4z5PYH%JsOuK$0#6%Ek61rz9B^f ze!p=F`+9NTx!Z#cU+c^aengI}LpDvMpuiitD!G-fBNEZ~Bqjou-hoRQg7x{ik52C4 zgR*8c=3mSpg5`YK0<*=~Ugl~o8ttffkBeP8dN`&$Vrqau;vQR%*RLLCwppEPGFUNp zRmnQW9C@={olnS13)om{GBVPbfcM?CQvreNR_UJTapV*Pf0R|xKc1S4FlE2Cu2#7a z26-;hf-k_p_Gf7h&R{Y1u&woGWNo!1BB8!npCKdXVfOUPK6d|cj>AXL@4T43*ZF|( z`V<^Ahxi;|$$Pv2ZCN^|e+S3GtRAC4t1BugQKpG{Dygg$HwWs3FMZ~Vf=D?{RLNI;Z;c9Yds(^DUok~!4R#&0jE6AdOJ|c55z4V-gWcQy(InOWrK)8gIIj=u29>563)OKSoj{o9W%u(e6#Zf2joZe_kyO~ap_Zu`vPD9l!NXX< z^&HirVI!LBHR|eWLVXW>{#b9aTFuo0SBnN)H=}}I{zL^y>Lw^?-O!F6DX5FiPz!5j zr;Vw0v!p72M!}5plXDTahW1BA@MI1yk!~Z-L?MY^(8slB^jK#-?7jfGmNZh6rV_UmjRksEq#)s1*|*Ib=6 zF_4+|X=+$RL!Z%*DIE2yH2H0C#fu$(ex)N6u2Tk&FpPL`xW6+R&U#i| zLCNW3+K-7I>ebqr_iyqJmDhPN>~%l$*hVm{5p#<&nhB?rt3S{M)(6^DQ8qivFFOvE zWSki>xb#T;ZOR>809hp;iL7plfv2m_dXNX{Lfb?% z2e2YJVn2M+IpV5r#`~R6YjesbZ*yGJX_!=7@dC(N7Qlj5DiPNHi}|OekgRT}PNbRHYK-zi zX9X1ns)b+C%EY}SLmd`BO%5`u;$I1 zj6dm2T+y3rp;!?R-3)@?B1Aaxf0<$G239cf1Xo}3J)Jen-i~vorRtae7=MONwWfc{ z7^yQCDp>@UpE9Vm5g#DDRr29WJ;c*EaoWR$tp7!|x$e5A;6O;cM_*KHGubc4OiKyeRGdy zHwmKc(ic7K%Hhd9BAtchceyr+Or>)xSEmB@>u?8@wN$k$pk~{=1?1VYv+P{}1Umul zs>rb>R!KUD9)!}s(P`8h5&GgUNx#MKLYGU*R-B<1i)g&xFtXiyS!af(e;nc{i{>j(4&`rJEz)Kgp-&Ba z`VTUQTM&2H2S@wgAN;kpuo#7=xY zvG~t$bw0yP0n+A`3g{QWn1*(0CTEg|(}p;|({aT8TLN6>4*?p(A?X9(q+!dUq3@XB zl)rHTacay{a~+e*Q6*@Rzj81J&|Mlcu0c6FXh_v`t*lJuepFDnsAUL zK=8W5KJIX0wQ0-kG1D|{Z`jm)z`h-Hcki9ns}>`jp5y7h{KmXSdm!`~J$Z}tq*wKq zvJGz6F9FLH%?Y|Dl2|a}n!zxX4{68uUa4-hYl; z@WOj_HpHP2r{)5TW}85dD~A4kOd~j6SBF~BpSD_(D_ThexqukcT#e`9eU)IGEX9}# zb~!`f1c>9}TO+H7)2vvV>$Yn3Kt~o5R)^*sn;3QF7}!IKE1zu`?{cTcP>;XT?C)a<+v-0~IBFK|^U6(<DkOO_=!)ikFbBPa`^tCA0i`|H^&8-S$uJx zO!TD~l}>;GvukU$Tfw^8W16#yr%f?d{1e|wEt=VrDWGs+!Mr=-ZLVE24=?zuGYW=s h{Quk}a+s5jSw$L=*FLbnr2dHr=-e>SELOJ;{y!=O`?CN5 literal 2728 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 diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_silex.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_silex.png index 81879d81de6ff69fae66a43908d3af7afca72f5b..c31ef6de62e0137224c6bb33a09239903928d381 100644 GIT binary patch literal 797 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5D>38$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&eBzIuR9h%1o(|NsB7W5+^6Lk$cJ92^`%LP8`=#WON8Bpt=g&CR>JyFqFc zsyu)cZ%L3}Fi<@lFxb9OY6D7e7I;J!GcfQS0Aa?gYn_}73`}XBE{-7;ac^%Q^t)rg z!1j=#)ye$*|2+;folj3J)rmGP{;3?+b*BB{vBG)B?dCqVKKD3rzMgu#< zuvXkzx_tRVruhteYMYrj6d2Cgu3-St_x3q5#;|%1@63XWvIW-DRd#W<%r;%-BpgZTpK3qavLd+yzS#=!ij<9eCs0W($u z#s}xW=hbX*3TDW=AN8_n4ZFe5Djg1k@C4U}l}z4DXG9`|6BZp<#PFFVjN!rR|Hsp( zZ`V1X)0pQ_&peIgL8VhR(+7*is*Dx0E_E^3oXK=#C<`)X$cz6!>w`bgRAYu|dJPOr z5AGc1QUK9!r9~VV7z^GdvI+p{58rq}!WQ2*0KL_~Q1P1$Bn)&fBTE9iMSuVGcb8ci zo*&#@p7G=Rf6fmdvp4w0x69pRU4LgaLqsm)hFeStTUifeaW`BQV_2=r5Ejj_X4{C8 dn9Mxqx%F}WD;F0uz6GUz22WQ%mvv4FO#mLLF!BHZ literal 756 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 literal 4279 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 diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_bismuth.png b/src/main/resources/assets/hbm/textures/items/laser_crystal_bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..f35669dc643db645fbed7418115454825053396d GIT binary patch literal 483 zcmV<90UZ8`P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0eDG7K~y+T?UGF> z!*LkLKYuTq*Uh%P6o(1rHA>;2xR8rDD=7yql9P*)gO?*mJ2-eNvkkks7S%~FU5rLC1hUbB*(7)|W6ghG}O zDGFTj0~L*R^mmW(B&qP)ZJ{1~CNoVPG_$lM6~`m&9bDtS4}+`AZ|8sJ^+t61U;p6G Z124?ljSc-U8?OKW002ovPDHLkV1g+O(<1-? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_cmb.png b/src/main/resources/assets/hbm/textures/items/laser_crystal_cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..d66693130e3d25494dff827a60f75ac5467b8bf2 GIT binary patch literal 462 zcmV;<0WtoGP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0b@x-K~y+T?UGL@ z!(kZ5KSQ==HvcwknnqYC{SGUK9gwrgRZ`+0yC}CMQj{wPDK2i}=NA$0jO_?aI-JffFlgA` zJ%rdZ`1il{mlPD|mK4_F9OdXehsWcIhgL*CD zbOx;Tg)w&_&{sf44e36)ky#p^h)R+6u3h>~tLL6GY`u08nH0v_hj6bQ(GB9>@4BzLj}+%R>C7s4F%2 zqRu8zSAk|3_N71s40S|KQI9@3-P|4sttEn*aa+07*qoM6N<$ Ef)N_XT>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_co2.png b/src/main/resources/assets/hbm/textures/items/laser_crystal_co2.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf44374ca0d8b8a00978e0a58f4800edd463bb6 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}Z0G|-ocjktl3v(BO>_%)r2R7=#&* z=dVZs3MP5FIEH8hFYR>{YEa;CWjt(hrsKD~*`<<;%UpG4{J&Sjw&D680R!jz4IWpL zk2i1^2PYV|nOZ*AHSTnD@nPI(@IEhMk7M6bu_rYh=6`yYtje;LJuWV|mbZP!RpGW7 cpHmdKI;Vst0D$pyAOHXW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png b/src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png new file mode 100644 index 0000000000000000000000000000000000000000..6a2397cb457ea9880a62c1a3d184c32ab5af49e6 GIT binary patch literal 485 zcmeAS@N?(olHy`uVBq!ia0vp^0ziC#gBeI#2@BT%DaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheu>n3Iu8xL=6}h>53=IFfJ9Be$U%q_#iG@L!fkB*^c~WQRy5-CN&z|`| zKNqO{2@As+W(FY!2B6-BGiQGL|LgSW(~m#B+QtmB_y3vGfByfiVPcrV#PHw3)P@nL zgW;Q~Zo74o z(=ht_*?$+pUR7KQk~p1p?!52qudj;sW@_@5aGZP3f3@6tEpN$z>_a^MOWVY!B#Ikr zneH-TaEMS7*s2ln^W)-83nW^)6eNV?E>7S)!^`Nv+xR%xIfmUZB`P_uW-8O?~c|)V#zO!A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png.mcmeta b/src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png.mcmeta new file mode 100644 index 000000000..d7b41bbd3 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/laser_crystal_digamma.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/items/laser_crystal_dnt.png b/src/main/resources/assets/hbm/textures/items/laser_crystal_dnt.png new file mode 100644 index 0000000000000000000000000000000000000000..410f475ac78d9a4be075f72deb806a3bdfdc7030 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lhh0G|+7Ps1s7xtm29LZ^2geDm^)3`0pI!z4xKnvKgZE}eO*h+%gc!}3ao zW0M)$jTrQvp8giiFm)xv?7a+YPcZCYXOOjHNPCuh=McjtIR-;7hRQ02!gPkXJErG> z#s~h>JO`xYN`m}?|KkG;ZzN>mfGRl)JR*x382Ao@Fyrz36)8Z$Y)==*5RKraz21Bc z3OuZu8X8I~8sxWp-@lB-Mc7=gru*61C7GQ2J~>a={lt?&