From cca25b159409f735d16995ba1a7f7572bbb4fd2d Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 25 Nov 2017 20:40:47 +0100 Subject: [PATCH] AMS base gui overhaul, limiter functionality (sorta) --- assets/hbm/textures/gui/gui_ams_base.png | Bin 3350 -> 4614 bytes assets/hbm/textures/gui/gui_ams_limiter.png | Bin 3008 -> 3063 bytes assets/hbm/textures/items/ams_focus_blank.png | Bin 0 -> 229 bytes .../hbm/textures/items/ams_focus_booster.png | Bin 0 -> 219 bytes .../hbm/textures/items/ams_focus_limiter.png | Bin 0 -> 250 bytes com/hbm/inventory/gui/GUIAMSLimiter.java | 8 ++ com/hbm/inventory/gui/GuiInfoContainer.java | 5 ++ com/hbm/packet/AuxGaugePacket.java | 71 ++++++++++++++++++ com/hbm/packet/PacketDispatcher.java | 2 + .../machine/TileEntityAMSLimiter.java | 50 +++++++++++- 10 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 assets/hbm/textures/items/ams_focus_blank.png create mode 100644 assets/hbm/textures/items/ams_focus_booster.png create mode 100644 assets/hbm/textures/items/ams_focus_limiter.png create mode 100644 com/hbm/packet/AuxGaugePacket.java diff --git a/assets/hbm/textures/gui/gui_ams_base.png b/assets/hbm/textures/gui/gui_ams_base.png index 760dfbec42b996964f2678fba59c563ea5289635..2c1039e143c9d2f1d1c1599db08b464dadae82f3 100644 GIT binary patch literal 4614 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 literal 3350 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 literal 3008 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 PUB}?*>gTe~DWM4f-WyYa literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/ams_focus_limiter.png b/assets/hbm/textures/items/ams_focus_limiter.png new file mode 100644 index 0000000000000000000000000000000000000000..1659c3ba19e8b4ec29007bebe5ddca57c541421f GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQ`H4XYDE045EY*xuBY1qP9zGb4-1JxfTH~Nwu zWTf2Lu;%v6+2y{j-%c)AbK6p1WC_C><})iE{=AT_RP=1l5{4(GKh31~9qlaUpD51d zyq=L^`);M{%A9*K wGJchD@H+#;y#6C{dt$GDj^_Wj?$gH##@l-wB6lY52KkJ^)78&qol`;+0N@v7EC2ui literal 0 HcmV?d00001 diff --git a/com/hbm/inventory/gui/GUIAMSLimiter.java b/com/hbm/inventory/gui/GUIAMSLimiter.java index dbab5a181..924c82bde 100644 --- a/com/hbm/inventory/gui/GUIAMSLimiter.java +++ b/com/hbm/inventory/gui/GUIAMSLimiter.java @@ -34,6 +34,8 @@ public class GUIAMSLimiter extends GuiInfoContainer { limiter.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, limiter.power, limiter.maxPower); + this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, new String[] { "Efficiency:", limiter.efficiency + "%" }); + this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, new String[] { "Heat:", limiter.heat + "/" + limiter.maxHeat }); } @Override @@ -53,6 +55,12 @@ public class GUIAMSLimiter extends GuiInfoContainer { int i = (int) limiter.getPowerScaled(52); drawTexturedModalRect(guiLeft + 134, guiTop + 69 - i, 192, 52 - i, 16, i); + int j = limiter.getEfficiencyScaled(52); + drawTexturedModalRect(guiLeft + 152, guiTop + 69 - j, 208, 52 - j, 16, j); + + int k = limiter.getHeatScaled(52); + drawTexturedModalRect(guiLeft + 8, guiTop + 69 - k, 176, 52 - k, 16, k); + Minecraft.getMinecraft().getTextureManager().bindTexture(limiter.tank.getSheet()); limiter.tank.renderTank(this, guiLeft + 26, guiTop + 69, limiter.tank.getTankType().textureX() * FluidTank.x, limiter.tank.getTankType().textureY() * FluidTank.y, 16, 52); diff --git a/com/hbm/inventory/gui/GuiInfoContainer.java b/com/hbm/inventory/gui/GuiInfoContainer.java index fe784566c..7dded0616 100644 --- a/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/com/hbm/inventory/gui/GuiInfoContainer.java @@ -20,5 +20,10 @@ public abstract class GuiInfoContainer extends GuiContainer { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) gui.drawFluidInfo(new String[] { power + "/" + maxPower + "HE" }, mouseX, mouseY); } + + public void drawCustomInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height, String[] text) { + if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) + this.func_146283_a(Arrays.asList(text), mouseX, mouseY); + } } diff --git a/com/hbm/packet/AuxGaugePacket.java b/com/hbm/packet/AuxGaugePacket.java new file mode 100644 index 000000000..55ddc2922 --- /dev/null +++ b/com/hbm/packet/AuxGaugePacket.java @@ -0,0 +1,71 @@ +package com.hbm.packet; + +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.ISource; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class AuxGaugePacket implements IMessage { + + int x; + int y; + int z; + int value; + int id; + + public AuxGaugePacket() + { + + } + + public AuxGaugePacket(int x, int y, int z, int value, int id) + { + this.x = x; + this.y = y; + this.z = z; + this.value = value; + this.id = id; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + value = buf.readInt(); + id = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeInt(value); + buf.writeInt(id); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(AuxGaugePacket m, MessageContext ctx) { + try { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (true) { + + } + + } catch (Exception x) { } + return null; + } + } +} diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index b09c050e3..f89cf6b54 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -51,6 +51,8 @@ public class PacketDispatcher { wrapper.registerMessage(TEPressPacket.Handler.class, TEPressPacket.class, i++, Side.CLIENT); //Electricity gauge for GUI rendering wrapper.registerMessage(AuxElectricityPacket.Handler.class, AuxElectricityPacket.class, i++, Side.CLIENT); + //Electricity gauge for GUI rendering + wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/com/hbm/tileentity/machine/TileEntityAMSLimiter.java index d51fbdc88..2ad585038 100644 --- a/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ b/com/hbm/tileentity/machine/TileEntityAMSLimiter.java @@ -32,9 +32,9 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, public long power = 0; public static final long maxPower = 1000000; public int efficiency = 0; - public static final long maxEfficiency = 100; + public static final int maxEfficiency = 100; public int heat = 0; - public static final long maxHeat = 2500; + public static final int maxHeat = 2500; public int age = 0; public int warning = 0; public int mode = 0; @@ -211,6 +211,32 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, tank.setType(0, 1, slots); tank.updateTank(xCoord, yCoord, zCoord); + + heat = 0; + + if(slots[0] != null) + heat += maxHeat/2; + if(slots[1] != null) + heat += maxHeat/2; + + if(power > 0) { + //" - (maxHeat / 2)" offsets center to 50% instead of 0% + efficiency = Math.round(calcEffect(power, heat - (maxHeat / 2)) * 100); + power -= Math.ceil(power * 0.025); + heat += efficiency; + } else { + efficiency = 0; + } + + //TODO + /*if(tank.getTankType().name().equals(FluidType.CRYOGEL.name())) { + + int i = (int) (1/Math.sqrt(heat + 1)); + + if() { + + } + }*/ power = Library.chargeTEFromItems(slots, 3, power, maxPower); @@ -218,9 +244,29 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, } } + private float gauss(float a, float x) { + + //Greater values -> less difference of temperate impact + double amplifier = 0.10; + + return (float) ( (1/Math.sqrt(a * Math.PI)) * Math.pow(Math.E, -1 * Math.pow(x, 2)/amplifier) ); + } + + private float calcEffect(float a, float x) { + return (float) (gauss( 1 / a, x / maxHeat) * Math.sqrt(Math.PI * 2) / (Math.sqrt(2) * Math.sqrt(maxPower))); + } + public long getPowerScaled(long i) { return (power * i) / maxPower; } + + public int getEfficiencyScaled(int i) { + return (efficiency * i) / maxEfficiency; + } + + public int getHeatScaled(int i) { + return (heat * i) / maxHeat; + } @Override public void setPower(long i) {