From ea7fc0f9bd78750867a64da054cebf651b7d4b0e Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 27 Nov 2020 23:27:34 +0100 Subject: [PATCH] more hadron work --- src/main/java/assets/hbm/lang/de_DE.lang | 7 + src/main/java/assets/hbm/lang/en_US.lang | 7 + .../assets/hbm/textures/gui/generic_54.png | Bin 1240 -> 0 bytes .../hbm/textures/gui/machine/gui_hadron.png | Bin 0 -> 6148 bytes .../hbm/textures/items/particle_amat.png | Bin 0 -> 247 bytes .../hbm/textures/items/particle_aschrab.png | Bin 0 -> 255 bytes .../hbm/textures/items/particle_dark.png | Bin 0 -> 247 bytes .../hbm/textures/items/particle_empty.png | Bin 0 -> 233 bytes .../hbm/textures/items/particle_higgs.png | Bin 0 -> 289 bytes .../textures/items/particle_sparkticle.png | Bin 0 -> 287 bytes .../hbm/textures/items/particle_strange.png | Bin 0 -> 274 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 27 ++-- .../hbm/blocks/machine/BlockHadronAccess.java | 63 +++++++++ .../hbm/blocks/machine/BlockHadronCoil.java | 5 +- .../hbm/blocks/machine/BlockHadronCore.java | 83 ++++++++++++ .../hbm/blocks/machine/BlockHadronDiode.java | 1 - .../hbm/blocks/machine/BlockHadronPower.java | 20 +++ src/main/java/com/hbm/handler/GUIHandler.java | 18 +++ .../com/hbm/inventory/ShredderRecipes.java | 4 +- .../inventory/container/ContainerHadron.java | 84 ++++++++++++ .../java/com/hbm/inventory/gui/GUIHadron.java | 70 ++++++++++ .../tileentity/machine/TileEntityHadron.java | 126 ++++++++++++++++++ .../machine/TileEntityHadronPower.java | 31 +++++ 23 files changed, 525 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/assets/hbm/textures/gui/generic_54.png create mode 100644 src/main/java/assets/hbm/textures/gui/machine/gui_hadron.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_amat.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_aschrab.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_dark.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_empty.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_higgs.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_sparkticle.png create mode 100644 src/main/java/assets/hbm/textures/items/particle_strange.png create mode 100644 src/main/java/com/hbm/blocks/machine/BlockHadronAccess.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockHadronCore.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockHadronPower.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerHadron.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIHadron.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index db9b9c6fa..8f4637f8b 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -270,6 +270,13 @@ fluid.acid_fluid=Säure fluid.mud_fluid=Giftiger Schlamm fluid.toxic_fluid=Stereotypischer grüner Schleim +hadron.analysis=Analysiere... +hadron.buttonOn=Analysekammer (falls vorhanden) ist AN +hadron.buttonOff=Analysekammer ist AUS +hadron.error=Fehler! +hadron.idle=Leerlauf +hadron.progress=Verarbeite... + hbmfluid.acid=Wasserstoffperoxid hbmfluid.amat=Antimaterie hbmfluid.aschrab=Antischrabidium diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index da2794401..3f5aa83f0 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -270,6 +270,13 @@ fluid.acid_fluid=Acid fluid.mud_fluid=Poisonous Mud fluid.toxic_fluid=Stereotypical Green Ooze +hadron.analysis=Analyzing... +hadron.buttonOn=Analysis Chamber (if present) is ON +hadron.buttonOff=Analysis Chamber is OFF +hadron.error=Error! +hadron.idle=Idle +hadron.progress=In Progress... + hbmfluid.acid=Hydrogen Peroxide hbmfluid.amat=Antimatter hbmfluid.aschrab=Antischrabidium diff --git a/src/main/java/assets/hbm/textures/gui/generic_54.png b/src/main/java/assets/hbm/textures/gui/generic_54.png deleted file mode 100644 index 489c84a9be78668da3b27fb50dc5e9b29e24d333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 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 literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_amat.png b/src/main/java/assets/hbm/textures/items/particle_amat.png new file mode 100644 index 0000000000000000000000000000000000000000..f94356d1b12745ff9b177fdfc358a8304a40d8f6 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-hJ8jWdRd|B7Y8y0Nuety}rV#67~vi3lM2|Yk^aLngx5SR8Y;TIWeeccav)>v{}lTcbD@z})i zoTQiLwEc(wdOqeC2>$KxWr2C!;Zx0pF@bM7I=Py{44rPvtJ1Q>T-Ro20A0@D>FVdQ&MBb@0I^Y9Bme*a literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_aschrab.png b/src/main/java/assets/hbm/textures/items/particle_aschrab.png new file mode 100644 index 0000000000000000000000000000000000000000..6a422a39957852d101a2f594b62eb5952f6bf617 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfz>o^RRa&6(mp=kv*ZG6xxr zv+LyB8g=fi+hN+(p=r~Xe6e^P=j&aIUR!;sjlUA?wd{poLUV`6@xv!;e+n%#T(#=5 ziKwv7X(lD3pVoKg|N6(FL{(a`q~3T-M1VU>V2Au5GaS9z#L0sClO% zi_N{Ys}9ucW%!}kSz7T=r;|Y-`ASXGlu0LR8J{1@3->VpeH-Wl22WQ%mvv4FO#pVN BViN!W literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_dark.png b/src/main/java/assets/hbm/textures/items/particle_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f94356d1b12745ff9b177fdfc358a8304a40d8f6 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-hJ8jWdRd|B7Y8y0Nuety}rV#67~vi3lM2|Yk^aLngx5SR8Y;TIWeeccav)>v{}lTcbD@z})i zoTQiLwEc(wdOqeC2>$KxWr2C!;Zx0pF@bM7I=Py{44rPvtJ1Q>T-Ro20A0@D>FVdQ&MBb@0I^Y9Bme*a literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_empty.png b/src/main/java/assets/hbm/textures/items/particle_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..04f1cffae726db465f885196e752a6f9d4e049b7 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvBTxD#N!La^H}$mM`S;oBmHWv>BSPm8w!gOGv{2H+}y!`_{^MQ zIkgpA4@oG$5`X9aOxg4ScleLJjlX(}g-oxgRK5RL5pBS{{Wa?WcF#G7Kc{=LG)xhC fub#2C^OpE!<}}g&jfSB>w=#IT`njxgN@xNA8!uWm literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_higgs.png b/src/main/java/assets/hbm/textures/items/particle_higgs.png new file mode 100644 index 0000000000000000000000000000000000000000..f4856d6ac6eef3934030e1deb095a5027588625b GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfrflBEVhp*9SsE>Aeo_cutx z@?`7z@9#hVWR(aBb$w@dzF6=w>yvUGBD1qT_j z*KW5^d2`aorCCua$g7g?)vh)HrB(b1RZ{g0Q5U8ZA53%5eUZm!@Sd+BNk7?GAiCr1 zs>6@B%EX>ImT+D7$vgqxqhDOMpT7CHth%#QsO^N`qA5b>-_Lb9@U?{H!(kP__UGr- l1Q||kQn}uE&1%(OhIain=DW$vyMcaW@O1TaS?83{1OQl8b724g literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_sparkticle.png b/src/main/java/assets/hbm/textures/items/particle_sparkticle.png new file mode 100644 index 0000000000000000000000000000000000000000..118bfc4cc4cc604348f2a0cc3b4236ac6265473d GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf>V jrlfjaZ!~m!vXAkmQrm@$*>he1eaPVH>gTe~DWM4fiH&fz literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/particle_strange.png b/src/main/java/assets/hbm/textures/items/particle_strange.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9c4b1e4770d2d5949be878d5812cea9284176f GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfAhDSw&V4#CC_Jx`&?#OYkF#vPsMW??OnngAMUBUA9Ag+ z= iter.powerReq) ? "ON" : "OFF"); + //this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 76, guiTop + 94, 24, 12, mouseX, mouseY, new String[] { text }); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + //Toggle hadron + if(guiLeft + 19 <= x && guiLeft + 19 + 18 > x && guiTop + 89 < y && guiTop + 89 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(hadron.xCoord, hadron.yCoord, hadron.zCoord, 0, 0)); + } + + //Toggle analysis chamber + if(guiLeft + 142 <= x && guiLeft + 142 + 18 > x && guiTop + 89 < y && guiTop + 89 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(hadron.xCoord, hadron.yCoord, hadron.zCoord, 0, 1)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.hadron.hasCustomInventoryName() ? this.hadron.getInventoryName() : I18n.format(this.hadron.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); + } + + @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); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java new file mode 100644 index 000000000..9ec7059c3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -0,0 +1,126 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.interfaces.IConsumer; +import com.hbm.tileentity.TileEntityMachineBase; + +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityHadron extends TileEntityMachineBase implements IConsumer { + + public long power; + public static final long maxPower = 1000000000; + + public boolean isOn = false; + public boolean analysis = true; + + public TileEntityHadron() { + super(3); + } + + @Override + public String getName() { + return "container.hadron"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + drawPower(); + } + } + + @Override + public void handleButtonPacket(int value, int meta) { + + if(meta == 0) + this.isOn = !this.isOn; + if(meta == 1) + this.analysis = !this.analysis; + } + + private void drawPower() { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + if(power == maxPower) + return; + + int x = xCoord + dir.offsetX * 2; + int y = yCoord + dir.offsetY * 2; + int z = zCoord + dir.offsetZ * 2; + + TileEntity te = worldObj.getTileEntity(x, y, z); + + if(te instanceof TileEntityHadronPower) { + + TileEntityHadronPower plug = (TileEntityHadronPower)te; + + long toDraw = Math.min(maxPower - power, plug.getPower()); + this.setPower(power + toDraw); + plug.setPower(plug.getPower() - toDraw); + } + } + } + + static final int maxParticles = 1; + List particles = new ArrayList(); + + private void updateParticle() { + + for(Particle particle : particles) { + particle.update(); + } + } + + @Override + public void setPower(long i) { + power = i; + this.markDirty(); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + public static class Particle { + + //Starting values + Item item; + ForgeDirection dir; + int posX; + int posY; + int posZ; + + //Progressing values + int momentum; + int charge; + + public Particle(Item item, ForgeDirection dir, int posX, int posY, int posZ) { + this.item = item; + this.dir = dir; + this.posX = posX; + this.posY = posY; + this.posZ = posZ; + + this.charge = 10; + this.momentum = 0; + } + + public void update() { + + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java new file mode 100644 index 000000000..eccc8a2a0 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java @@ -0,0 +1,31 @@ +package com.hbm.tileentity.machine; + +import com.hbm.interfaces.IConsumer; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityHadronPower extends TileEntity implements IConsumer { + + public long power; + public static final long maxPower = 1000000000; + + public boolean canUpdate() { + return false; + } + + @Override + public void setPower(long i) { + power = i; + this.markDirty(); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } +}