From 1625ef221149aa975067d4b6605d287750dc4ac6 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 4 May 2021 23:58:04 +0200 Subject: [PATCH] automatic RBMK control rod functions completed, control panel GUI tex --- .../com/hbm/inventory/gui/GUIRBMKBoiler.java | 4 +- .../hbm/inventory/gui/GUIRBMKControlAuto.java | 20 ++++++--- .../rbmk/TileEntityRBMKControlAuto.java | 42 ++++++++---------- .../gui/reactors/gui_rbmk_console.png | Bin 0 -> 5073 bytes 4 files changed, 34 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java index 3b28c027f..a43d78b6d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java @@ -10,7 +10,6 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -59,6 +58,7 @@ public class GUIRBMKBoiler extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } + @SuppressWarnings("incomplete-switch") //shut up @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); @@ -68,7 +68,7 @@ public class GUIRBMKBoiler extends GuiInfoContainer { int i = boiler.feed.getFill() * 58 / boiler.feed.getMaxFill(); drawTexturedModalRect(guiLeft + 126, guiTop + 82 - i, 176, 58 - i, 14, i); - int j = boiler.feed.getFill() * 22 / boiler.feed.getMaxFill(); + int j = boiler.feed.getFill() * 22 / boiler.steam.getMaxFill(); if(j > 0) j++; if(j > 22) j++; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java index a529201ba..18ae397b9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java @@ -6,7 +6,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerRBMKControlAuto; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlAuto; @@ -68,12 +67,21 @@ public class GUIRBMKControlAuto extends GuiInfoContainer { String func = "Function: "; switch(rod.function) { - case LINEAR: func += " Linear"; break; - case QUAD_UP: func += " Quadratic"; break; - case QUAD_DOWN: func += " Negative Quadratic"; break; + case LINEAR: func += "Linear"; break; + case QUAD_UP: func += "Quadratic"; break; + case QUAD_DOWN: func += "Inverse Quadratic"; break; } - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 69, guiTop + 27, 26, 19, mouseX, mouseY, new String[]{ func } ); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 26, 28, 19, mouseX, mouseY, new String[]{ func } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 61, guiTop + 48, 22, 10, mouseX, mouseY, new String[]{ "Select linear interpolation" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 61, guiTop + 59, 22, 10, mouseX, mouseY, new String[]{ "Select quadratic interpolation" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 61, guiTop + 70, 22, 10, mouseX, mouseY, new String[]{ "Select inverse quadratic interpolation" } ); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 26, 30, 10, mouseX, mouseY, new String[]{ "Level at max heat", "Should be smaller than level at min heat" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 37, 30, 10, mouseX, mouseY, new String[]{ "Level at min heat", "Should be larger than level at min heat" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 48, 30, 10, mouseX, mouseY, new String[]{ "Max heat", "Must be larger than min heat" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 59, 30, 10, mouseX, mouseY, new String[]{ "Min heat", "Must be smaller than max heat" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 30, 10, mouseX, mouseY, new String[]{ "Save parameters" } ); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index c8fb7b78c..fb1026946 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -5,6 +5,7 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements IControlReceiver { @@ -32,34 +33,27 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements double fauxLevel = 0; - if(this.heat < heatLower) { - fauxLevel = this.levelLower; - - } else if(this.heat > heatUpper) { - fauxLevel = this.levelUpper; - - } else { - - switch(this.function) { - case LINEAR: - //my brain hasn't been this challenged since my math finals in '19 - fauxLevel = (this.heat - this.heatLower) * ((this.levelUpper - this.levelLower) / (this.heatUpper - this.heatLower)) + this.heatLower; - break; - - //TODO: all this bullshit - case QUAD_UP: + //TODO: there's some chaos that needs limiting - //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - //this.targetLevel = Math.pow((this.heat - this.heatLower) / 100, 2) * (this.levelUpper - this.levelLower) + this.levelLower; - break; - case QUAD_DOWN: - break; - } + switch(this.function) { + case LINEAR: + // my brain hasn't been this challenged since my math finals in + // '19 + fauxLevel = (this.heat - this.heatLower) * ((this.levelUpper - this.levelLower) / (this.heatUpper - this.heatLower)) + this.levelLower; + break; + + case QUAD_UP: + // so this is how we roll, huh? + fauxLevel = Math.pow((this.heat - this.heatLower) / (this.heatUpper - this.heatLower), 2) * (this.levelUpper - this.levelLower) + this.levelLower; + break; + case QUAD_DOWN: + // sometimes my genius is almost frightening + fauxLevel = Math.pow((this.heat - this.heatUpper) / (this.heatLower - this.heatUpper), 2) * (this.levelLower - this.levelUpper) + this.levelUpper; + break; } this.targetLevel = fauxLevel * 0.01D; + this.targetLevel = MathHelper.clamp_double(this.targetLevel, 0D, 1D); } super.updateEntity(); diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png new file mode 100644 index 0000000000000000000000000000000000000000..2e68149f95c26369dc704687d922e26ca8e1f06e GIT binary patch literal 5073 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 J&d@#jKL8;1zb^m) literal 0 HcmV?d00001