From 892e844f49a6ec55bad6424c048664fa3617f6fd Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 9 Mar 2026 15:47:48 +0100 Subject: [PATCH] wheels of pussy my dick's stuck in a car door the exhaust pipe, a hole so tight handjob by toyota --- changelog | 89 ++------------ gradle.properties | 2 +- .../com/hbm/blocks/machine/rbmk/RBMKBase.java | 2 + .../com/hbm/blocks/machine/rbmk/RBMKRod.java | 5 +- .../com/hbm/blocks/network/FluidPump.java | 103 +--------------- .../inventory/container/ContainerSafe.java | 57 +-------- .../java/com/hbm/inventory/gui/GUIPump.java | 112 ++++++++++++++++++ .../com/hbm/items/machine/ItemRBMKLid.java | 2 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/rbmk/TileEntityRBMKBase.java | 2 + .../machine/rbmk/TileEntityRBMKRod.java | 8 +- .../blocks/rbmk/rbmk_moderator_cover_top.png | Bin 381 -> 376 bytes .../blocks/rbmk/rbmk_moderator_top.png | Bin 460 -> 464 bytes 13 files changed, 142 insertions(+), 242 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIPump.java diff --git a/changelog b/changelog index 9ab17054d..3f348a6ac 100644 --- a/changelog +++ b/changelog @@ -1,84 +1,11 @@ -## Added -* Reasim RBMK control rods - * Come in manual and auto variants, but not moderated - * The same as standard control rods, except they need 5kHE/t - * Have only a single cable connection at the bottom - * Replace standard RBMK control rods when 528 mode is enabled -* New RBMK fuels - * UZrH - * Made from MEU, zirconium and hydrogen in the PUREX - * More efficient than MEU but with less durability - * Has a new thermal coefficient mechanic, once the core heat exceeds 1000°C, reactivity drops down - * Very high diffusion, meaning the core is considerably colder than on most fuels -* RBMK Display panel - * Single block that shows a 7x7 view of a linked RBMK - * Doesn't have a GUI or tooltips or anything, only acts as a monitor - * Ideal for >15x15 reactor monitoring, since the displays are tileable - ## Changed -* Updated RBMK visuals - * The indentations on most RBMK passive elements have been removed, heavily reducing tri count and allowing face culling, making RBMKs render much more efficiently - * The caps no longer render as part of the TESR and instead use much more performant ISBRH rendering - * Due to most passive elements no longer needing TESRs for their caps, most parts no longer use any TESRs at all - * This should fix various issues regarding lower-end hardware (especially Pojav) as well as issues with TESRs getting skipped due to the sheer number of things to render - * Control rods now show their set color as part of the model -* Improved buzzsaw tree detection - * Instead of just clearing a pillar, it now tries to detect branches - * The max size of trees that can be successfully harvested is now way bigger - * This means that things like 2x2 jungle trees can now be automated -* Annihilating radioactive items now creates that item's radiation value x5 as chunk radiation - * The maximum per tick is a 1000 RAD/s increase to prevent world-destroying radiation levels from annihilating demon cores -* The water door now has a skin that isn't rusted with less contrast -* The containment door now has a lead-colored skin with a trefoil on it -* Using a screwdriver on a beamline now toggles a window which flashes if a particle passes -* Particles now start slowly and accelerate, instead of passing a fixed 10 components per tick, particles only do 1 component per tick, which increases by 1 every 1,000 momentum -* RBMK absorber columns now heat up when exposed to neutrons - * The type of neutron does not matter, only the quantity - * 20 flux equals 1°C heatup -* RBMK passive cooling has changed - * The default value is now 2.5°C/t instead of 1 - * This value only applies to rods that have exposed sides, i.e. the edges of a reactor - * There is now a second passive cooling variable used for rods on the inside (`dialPassiveCoolingInner`, 0.1°C/t by default) - * The effective passive cooling value is scaled smoothly depending on how many sides are exposed, using `dialPassiveCoolingInner` with no exposed sides and `dialPassiveCooling` for rods with four exposed sides - * Simply put, spindly RBMKs are now way less desirable, structural columns no longer just debuff the reactor and reactors that actually look like reactors are now more powerful -* Chanced the way RBMK coolers work - * Instead of using cryogel, coolers use 50mB of cold PFM per tick and return an equal amount of warm PFM - * In a 5x5 square around the cooler, all components are cooled down by 200°C per tick, down to a minimum of 20°C - * This renders that section of the reactor unsuitable for boiling water, however it means very high heat fuels can be used - * Cold PFM is used up at a steady rate, even if the reactor is already cold -* The RBMK structural column recipe now uses only half as many metal plates, and rubber instead of insulator -* Changed the way reasim RBMK fuel channels work - * Instead of six randomized neutron streams, reasim rods now use eight 75% strength streams in an even star pattern - * The pattern is rotated in a random multiple of 9° (i.e. four possible angle variations) -* RBMK steam channels now spawn steam particles if water is voided due to the steam buffer not being emptied in time -* Rebalanced 528 mode - * Increased the chance for most precision assembler recipes to succeed - * Increased the chance for items to be salvaged by recycling - * In expensive mode, the chances have been increased drastically compared to the old values -* Added RoR functionality to some RBMK columns - * Manual control rods can have their target height set, allowing them to be remote controlled without a console - * All fuel channels can now provide values such as column heat, fuel skin heat, depletion and xenon poison -* RBMK consoles and displays no longer show the temperature value of control rods as a red gradient, instead they show the control rods' color grouping -* RBMK fuel rods can no longer be removed by hand if the skin temp exceeds 200°C -* RBMK fuel rods can no longer be cycled via autoloader if the skin temp exceeds 1,000°C - * For fully automated high powered reactors, it may now be necessary to read the depletion via RoR and then throttle the reactor with control rods - * RBMK cranes can still remove any fuel, no matter how hot it is -* RBMK fuel channels will now undergo meltdown if it is broken when a fuel rod is still loaded with a heat temperature of at least 1,500°C -* The annihilator now creates pollution when destroying fluids, with a 200% pollution modifier -* MOX fuel now uses plutonium-239 instead of RGP, and more uranium-238 - * This makes it a decent option for pu239 from the chicago pile without having to use HEP239 +* Updated russian localization +* Safes now properly use the inventorytweaks API, allowing slot sorting via GUI +* The meltdown disabling dial now also affects meldown caused by breaking fuel channels while hot +* The dots on the grpahite moderator columns are now a lot darker to tell them apart from fuel channels much more easily ## Fixed -* Fixed NBTStack serialization omitting the stack size most of the time, preventing deserialization (mainly in the precision assembler config) -* Fixed precision assembler not being listed in the creative inventory -* Fixed OpenComputers integration for the CCGT -* Fixed tool abilities switching when clicking on a block with a special interaction -* Fixed outdated info on the QMAW pages involving AA and BSCCO due to the fusion reactor update -* Fixed ammo container giving 9mm instead of .22 for the akimbo target pistols -* Fixed RBMK control rods incorrectly showing up in the red group when no group is set -* Fixed fluid output direction being incorrect on boilers, causing them to break with pipe anchors -* Fixed an issue where the industrial turbine's tendency to round up the possible operation counter would cause it to use up steam it doesn't actually have -* Fixed yet another issue with the settings tool when copying automatic control rod settings -* Fixed quad rocket launcher steering not working right -* Fixed standard and industrial boilers not respecting the heating efficiency value of the fluid trait -* Fixed copy tool integration for RBMK automatic control rods (again) +* Fixed RBMK fuel channel RoR not being properly parseable due to not being integers +* Potentially fixed a dupe regarding safes +* Moved the flow control pump's GUI code out of the block class which should hopefully fix an issue where spigot servers crash instantly when placed down +* Fixed RBMKs melting down when removing the covers from fuel channels with hot fuel in them \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 694b51954..2a8110c95 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5628 +mod_build_number=5629 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index 932e11380..dc7d7f47f 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -225,7 +225,9 @@ public abstract class RBMKBase extends BlockDummyable implements IToolable, ILoo world.spawnEntityInWorld(new EntityItem(world, pos[0] + 0.5, pos[1] + 0.5 + RBMKDials.getColumnHeight(world), pos[2] + 0.5, new ItemStack(ModItems.rbmk_lid_glass))); } + rbmk.explodeOnBroken = false; world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], DIR_NO_LID.ordinal() + offset, 3); + rbmk.explodeOnBroken = true; } return true; diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java index 184b571fa..aecc4318d 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java @@ -5,6 +5,7 @@ import com.hbm.items.machine.ItemRBMKLid; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -41,9 +42,9 @@ public class RBMKRod extends RBMKBase { @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - if(meta >= this.offset) { + if(meta >= this.offset && !RBMKDials.getMeltdownsDisabled(world)) { TileEntityRBMKRod tile = (TileEntityRBMKRod) world.getTileEntity(x, y, z); - if(tile != null) { + if(tile != null && tile.explodeOnBroken) { if(tile.slots[0] != null && tile.slots[0].getItem() instanceof ItemRBMKRod && ItemRBMKRod.getHullHeat(tile.slots[0]) >= 1500) { tile.meltdown(); } diff --git a/src/main/java/com/hbm/blocks/network/FluidPump.java b/src/main/java/com/hbm/blocks/network/FluidPump.java index fb0730ceb..94af82393 100644 --- a/src/main/java/com/hbm/blocks/network/FluidPump.java +++ b/src/main/java/com/hbm/blocks/network/FluidPump.java @@ -9,17 +9,15 @@ import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import org.lwjgl.input.Keyboard; import com.hbm.blocks.ILookOverlay; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIPump; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; @@ -35,10 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -50,7 +44,6 @@ import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; @@ -346,98 +339,4 @@ public class FluidPump extends BlockContainer implements INBTBlockTransformable, throw new NoSuchMethodException(); } } - - @SideOnly(Side.CLIENT) - public static class GUIPump extends GuiScreen { - - protected final TileEntityFluidPump pump; - - private GuiTextField textPlacementPriority; - private GuiButton buttonPressure; - private GuiButton buttonPriority; - private int pressure; - private int priority; - - public GUIPump(TileEntityFluidPump pump) { - this.pump = pump; - this.pressure = pump.tank[0].getPressure(); - this.priority = pump.priority.ordinal(); - } - - @Override - public void initGui() { - Keyboard.enableRepeatEvents(true); - - textPlacementPriority = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20); - textPlacementPriority.setText("" + pump.bufferSize); - textPlacementPriority.setMaxStringLength(5); - - buttonPressure = new GuiButton(0, this.width / 2 - 50, 100, 90, 20, pressure + " PU"); - - buttonPriority = new GuiButton(1, this.width / 2 + 50, 100, 90, 20, pump.priority.name()); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - drawDefaultBackground(); - - drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0); - drawString(fontRendererObj, "(max. 10,000mB)", this.width / 2 - 150, 90, 0xA0A0A0); - textPlacementPriority.drawTextBox(); - - drawString(fontRendererObj, "Pressure:", this.width / 2 - 50, 80, 0xA0A0A0); - buttonPressure.drawButton(mc, mouseX, mouseY); - - drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0); - buttonPriority.drawButton(mc, mouseX, mouseY); - - super.drawScreen(mouseX, mouseY, partialTicks); - } - - @Override - public void onGuiClosed() { - Keyboard.enableRepeatEvents(false); - - NBTTagCompound data = new NBTTagCompound(); - - data.setByte("pressure", (byte) pressure); - data.setByte("priority", (byte) priority); - - try { data.setInteger("capacity", Integer.parseInt(textPlacementPriority.getText())); } catch(Exception ex) {} - - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, pump.xCoord, pump.yCoord, pump.zCoord)); - } - - @Override - protected void keyTyped(char typedChar, int keyCode) { - super.keyTyped(typedChar, keyCode); - if(textPlacementPriority.textboxKeyTyped(typedChar, keyCode)) return; - - if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { - this.mc.thePlayer.closeScreen(); - } - } - - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) { - super.mouseClicked(mouseX, mouseY, mouseButton); - textPlacementPriority.mouseClicked(mouseX, mouseY, mouseButton); - - if(buttonPressure.mousePressed(mc, mouseX, mouseY)) { - this.pressure++; - if(pressure > 5) pressure = 0; - buttonPressure.displayString = pressure + " PU"; - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - } - - if(buttonPriority.mousePressed(mc, mouseX, mouseY)) { - this.priority++; - if(priority >= ConnectionPriority.values().length) priority = 0; - buttonPriority.displayString = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority).name(); - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - } - } - - @Override public boolean doesGuiPauseGame() { return false; } - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerSafe.java b/src/main/java/com/hbm/inventory/container/ContainerSafe.java index 30fc1740c..70274d7c0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSafe.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSafe.java @@ -1,66 +1,21 @@ package com.hbm.inventory.container; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -//@invtweaks.api.container.ChestContainer(rowSize = 5) -public class ContainerSafe extends Container { +@invtweaks.api.container.ChestContainer(rowSize = 5, isLargeChest = false) +public class ContainerSafe extends ContainerCrateBase { - private IInventory diFurnace; - - public ContainerSafe(InventoryPlayer invPlayer, IInventory tedf) { - diFurnace = tedf; + public ContainerSafe(InventoryPlayer invPlayer, IInventory te) { + super(invPlayer,te); for(int i = 0; i < 3; i++) { for(int j = 0; j < 5; j++) { - this.addSlotToContainer(new Slot(tedf, j + i * 5, 8 + j * 18 + 18 * 2, 18 + i * 18)); + this.addSlotToContainer(new Slot(te, j + i * 5, 8 + j * 18 + 18 * 2, 18 + i * 18)); } } - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 2)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 2)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); + this.playerInv(invPlayer, 8, 32 + 18 * 3, 90 + (18 * 3)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIPump.java b/src/main/java/com/hbm/inventory/gui/GUIPump.java new file mode 100644 index 000000000..2ffa3873e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPump.java @@ -0,0 +1,112 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Keyboard; + +import com.hbm.blocks.network.FluidPump.TileEntityFluidPump; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.util.EnumUtil; + +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +@SideOnly(Side.CLIENT) +public class GUIPump extends GuiScreen { + + protected final TileEntityFluidPump pump; + + private GuiTextField textPlacementPriority; + private GuiButton buttonPressure; + private GuiButton buttonPriority; + private int pressure; + private int priority; + + public GUIPump(TileEntityFluidPump pump) { + this.pump = pump; + this.pressure = pump.tank[0].getPressure(); + this.priority = pump.priority.ordinal(); + } + + @Override + public void initGui() { + Keyboard.enableRepeatEvents(true); + + textPlacementPriority = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20); + textPlacementPriority.setText("" + pump.bufferSize); + textPlacementPriority.setMaxStringLength(5); + + buttonPressure = new GuiButton(0, this.width / 2 - 50, 100, 90, 20, pressure + " PU"); + + buttonPriority = new GuiButton(1, this.width / 2 + 50, 100, 90, 20, pump.priority.name()); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + + drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0); + drawString(fontRendererObj, "(max. 10,000mB)", this.width / 2 - 150, 90, 0xA0A0A0); + textPlacementPriority.drawTextBox(); + + drawString(fontRendererObj, "Pressure:", this.width / 2 - 50, 80, 0xA0A0A0); + buttonPressure.drawButton(mc, mouseX, mouseY); + + drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0); + buttonPriority.drawButton(mc, mouseX, mouseY); + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + + NBTTagCompound data = new NBTTagCompound(); + + data.setByte("pressure", (byte) pressure); + data.setByte("priority", (byte) priority); + + try { data.setInteger("capacity", Integer.parseInt(textPlacementPriority.getText())); } catch(Exception ex) {} + + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, pump.xCoord, pump.yCoord, pump.zCoord)); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) { + super.keyTyped(typedChar, keyCode); + if(textPlacementPriority.textboxKeyTyped(typedChar, keyCode)) return; + + if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) { + super.mouseClicked(mouseX, mouseY, mouseButton); + textPlacementPriority.mouseClicked(mouseX, mouseY, mouseButton); + + if(buttonPressure.mousePressed(mc, mouseX, mouseY)) { + this.pressure++; + if(pressure > 5) pressure = 0; + buttonPressure.displayString = pressure + " PU"; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + + if(buttonPriority.mousePressed(mc, mouseX, mouseY)) { + this.priority++; + if(priority >= ConnectionPriority.values().length) priority = 0; + buttonPriority.displayString = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority).name(); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java index 87e59ca73..0df81466a 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java @@ -54,7 +54,9 @@ public class ItemRBMKLid extends Item { world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.concrete_smooth.stepSound.func_150496_b(), (ModBlocks.concrete_smooth.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.concrete_smooth.stepSound.getPitch() * 0.8F); } + tile.explodeOnBroken = false; world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], meta + RBMKBase.offset, 3); + tile.explodeOnBroken = true; stack.stackSize--; return true; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index fe7ab7c96..35c0c0d8c 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5628)"; + public static final String VERSION = "1.0.27 BETA (5629)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index a0952b330..5394ac98b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -56,6 +56,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { public static final int maxWater = 16000; public int reasimSteam; public static final int maxSteam = 16000; + + public static boolean explodeOnBroken = true; public boolean hasLid() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 45612c190..550ccfbef 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -558,11 +558,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Override public String provideRORValue(String name) { - if((PREFIX_VALUE + "columnheat").equals(name)) return "" + this.heat; + if((PREFIX_VALUE + "columnheat").equals(name)) return "" + (int) this.heat; if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - if((PREFIX_VALUE + "rodheat").equals(name)) return "" + ItemRBMKRod.getHullHeat(slots[0]); - if((PREFIX_VALUE + "depletion").equals(name)) return "" + (100 - ItemRBMKRod.getEnrichment(slots[0]) * 100); - if((PREFIX_VALUE + "xenon").equals(name)) return "" + (ItemRBMKRod.getPoison(slots[0]) * 100); + if((PREFIX_VALUE + "rodheat").equals(name)) return "" + (int) ItemRBMKRod.getHullHeat(slots[0]); + if((PREFIX_VALUE + "depletion").equals(name)) return "" + (int) (100 - ItemRBMKRod.getEnrichment(slots[0]) * 100); + if((PREFIX_VALUE + "xenon").equals(name)) return "" + (int) (ItemRBMKRod.getPoison(slots[0]) * 100); } return null; } diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_cover_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_cover_top.png index fb129290d14274855b8f6210555f7ae3d206701a..34f8b67a886d8d898d13ac68b607ab1f68b8f233 100644 GIT binary patch delta 333 zcmV-T0kZ!60{8-uG=DEiL_t(IjjfWsYQr!Tg-?tZf$-+$9ZKn=We5&51rNbw2$T+e zv_KL{Xwr7GwF$umE$xsVRZ7&-p%;v=e!hDpoilpbJ%0?QM=l1_9N_a z0RUQ8P)fm=9$Hs89QU}Y$9Q{xg>x2lJ%)$?0F+YLY}Y7QjeoF+gq)FsnU^u#+}*=_ zkEh3numM1T+eHWOJyy#uG$`VV-g{VUAtG?jh5{_c^@|g5(9UPjx=LV%QVOeO2j|iT zWqe2GIoNzDao(UDOb>qNVa$M7B}x~skN(96)H#+Pa--eI=l00000NkvXXu0mjf8wQx5 delta 338 zcmV-Y0j>V{0{sGzG=DTnL_t(IjjfWgYQr!PhW{8Z0^!ZgJCxE#$&eva$Pg$U`bHg0 zNdh6S6G%!4P1Up}of$c1$VH`llLt6o}X zu-UEw09sd2O2Ih;tt;#gJ6zR$ynnpG`xbTG2N3}Plv3Di*MBIu8^c5tbB-L$c_HD) z<_XPgksJUJ;rVifX0`wk#Q}xv7(zhTbs!>m-^K>qjO%hhDG!W>187|(Fo#kK)5#d# zx58_qe5 zF`P~(q?7|)b2RTn~_lmbBP_xtR3FJp4fu~;my*8W%5pMO93 zSbn^`P&jy}Ykxc1nsbctJ{TdGril;&#u%)%4$^jt7KksE_$Iegg^*k&L4rb_GQ+EgLj;K1147`@g288 Qe*gdg07*qoM6N<$f=5rw!TDCXv=6@Vxd<;e@rfEV%aL(bqC+Cc{w#HXxWP$467=yJIV+`XsA|el;&qv0X z8Bp-#Kx>V)mcH-V?RGyHc;#fZTGc_;0!pb_&N0T?{dE<+*n=kr-g}&L71a#jz5oCK M07*qoM6N<$f(ebt2LJ#7