From e829d75b280a436c66b2138202bbd973f0b250f3 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 23 Aug 2020 00:01:28 +0200 Subject: [PATCH] a bit of work on the ITER, TE for the trapped brick --- .../gui/reactors/gui_fusion_multiblock.png | Bin 2821 -> 2913 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 6 +-- .../com/hbm/blocks/generic/TrappedBrick.java | 5 ++ .../java/com/hbm/inventory/gui/GUIITER.java | 9 +++- .../com/hbm/items/block/ItemGlyphBlock.java | 8 ++-- .../com/hbm/items/block/ItemTrapBlock.java | 45 ++++++++++++++++++ .../deco/TileEntityTrappedBrick.java | 38 +++++++++++++++ .../tileentity/machine/TileEntityITER.java | 31 +++++++++++- .../TileEntityMachinePlasmaHeater.java | 21 ++++---- 9 files changed, 143 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/items/block/ItemTrapBlock.java create mode 100644 src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java diff --git a/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png b/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png index ba585496468e56f6a1f865f2219e306665c33f2f..7830e84a66b787a173610af027c67a94663c0d3e 100644 GIT binary patch delta 2587 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

NsxB_cX#R{RF603|b@ zdJ}f;zi(9^Jv?8GiC2!j->yi}meSGK|49$P&)R*h)w-N~4jDjYLlqc~1-s;m>*{lKh<3%rwO24w3tLf0T70`4 z<-MdH_N(;Be(K%ns*_rO`MOSpr$fP`gT-(6I$j8$O-uOea*cc4aBx&4- B(NF*Y diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 06952e092..eb9c8c0f3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -6,9 +6,7 @@ import com.hbm.blocks.fluid.*; import com.hbm.blocks.machine.*; import com.hbm.blocks.network.*; import com.hbm.blocks.test.*; -import com.hbm.items.block.ItemBlockLore; -import com.hbm.items.block.ItemGlyphBlock; -import com.hbm.items.block.ItemTaintBlock; +import com.hbm.items.block.*; import com.hbm.items.bomb.ItemPrototypeBlock; import com.hbm.items.special.ItemOreBlock; import com.hbm.lib.ModDamageSource; @@ -1640,7 +1638,7 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle, brick_jungle.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_cracked, brick_jungle_cracked.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_lava, brick_jungle_lava.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_trap, brick_jungle_trap.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/TrappedBrick.java b/src/main/java/com/hbm/blocks/generic/TrappedBrick.java index 782af02d4..d36c5adca 100644 --- a/src/main/java/com/hbm/blocks/generic/TrappedBrick.java +++ b/src/main/java/com/hbm/blocks/generic/TrappedBrick.java @@ -1,6 +1,7 @@ package com.hbm.blocks.generic; import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.deco.TileEntityTrappedBrick; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -20,6 +21,10 @@ public class TrappedBrick extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { + + if(Trap.get(meta).type == TrapType.DETECTOR) + return new TileEntityTrappedBrick(); + return null; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIITER.java b/src/main/java/com/hbm/inventory/gui/GUIITER.java index 08eaa2d48..d29968e3a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIITER.java +++ b/src/main/java/com/hbm/inventory/gui/GUIITER.java @@ -63,8 +63,15 @@ public class GUIITER 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(iter.isOn) + drawTexturedModalRect(guiLeft + 52, guiTop + 107, 176, 0, 18, 18); - //TODO: progress bars and button + if(iter.isOn && iter.power >= iter.powerReq) + drawTexturedModalRect(guiLeft + 76, guiTop + 94, 194, 0, 24, 12); + + if(iter.getShield() >= iter.plasma.getTankType().temperature) + drawTexturedModalRect(guiLeft + 97, guiTop + 17, 218, 0, 18, 18); for(int t = 0; t < 2; t++) { Minecraft.getMinecraft().getTextureManager().bindTexture(iter.tanks[t].getSheet()); diff --git a/src/main/java/com/hbm/items/block/ItemGlyphBlock.java b/src/main/java/com/hbm/items/block/ItemGlyphBlock.java index 20fd5c4d1..2452efcf1 100644 --- a/src/main/java/com/hbm/items/block/ItemGlyphBlock.java +++ b/src/main/java/com/hbm/items/block/ItemGlyphBlock.java @@ -9,8 +9,8 @@ import net.minecraft.item.ItemStack; public class ItemGlyphBlock extends ItemBlock { - public ItemGlyphBlock(Block p_i45328_1_) { - super(p_i45328_1_); + public ItemGlyphBlock(Block block) { + super(block); this.setMaxDamage(0); this.setHasSubtypes(true); } @@ -38,8 +38,8 @@ public class ItemGlyphBlock extends ItemBlock { } } - public int getMetadata(int p_77647_1_) + public int getMetadata(int meta) { - return p_77647_1_; + return meta; } } diff --git a/src/main/java/com/hbm/items/block/ItemTrapBlock.java b/src/main/java/com/hbm/items/block/ItemTrapBlock.java new file mode 100644 index 000000000..a62ca0057 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemTrapBlock.java @@ -0,0 +1,45 @@ +package com.hbm.items.block; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemTrapBlock extends ItemBlock { + + public ItemTrapBlock(Block block) { + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + switch(itemstack.getItemDamage()) { + case 0: list.add("Hourglass"); break; + case 1: list.add("Eye"); break; + case 2: list.add("'Pillar'"); break; + case 3: list.add("IOI"); break; + case 4: list.add("Delta"); break; + case 5: list.add("VTPC"); break; + case 6: list.add("Cool S"); break; + case 7: list.add("Trefoil"); break; + case 8: list.add("Pony"); break; + case 9: list.add("Sparkle"); break; + case 10: list.add("PiP"); break; + case 11: list.add("Triangles"); break; + case 12: list.add("Linux Mint"); break; + case 13: list.add("13"); break; + case 14: list.add("Digamma"); break; + case 15: list.add("Celestial Altar"); break; + } + } + + public int getMetadata(int meta) + { + return meta; + } +} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java new file mode 100644 index 000000000..9b56dd8df --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java @@ -0,0 +1,38 @@ +package com.hbm.tileentity.deco; + +import com.hbm.blocks.generic.TrappedBrick.Trap; +import com.hbm.blocks.generic.TrappedBrick.TrapType; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityTrappedBrick extends TileEntity { + + AxisAlignedBB detector = null; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(detector == null) { + setDetector(); + } + } + } + + private void setDetector() { + + Trap trap = Trap.get(this.getBlockMetadata()); + + switch(trap) { + case FALLING_ROCKS: break; + case ARROW: break; + case FLAMING_ARROW: break; + case PILLAR: break; + case POISON_DART: break; + case ZOMBIE: break; + case SPIDERS: break; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index f6821a9df..48db410ae 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -25,7 +25,8 @@ import net.minecraft.util.Vec3; public class TileEntityITER extends TileEntityMachineBase implements IConsumer, IFluidAcceptor, IFluidSource { public long power; - public static final long maxPower = 1000000000; + public static final long maxPower = 100000000; + public static final int powerReq = 1000000; public int age = 0; public List list = new ArrayList(); public FluidTank[] tanks; @@ -60,10 +61,17 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer, if (age == 9 || age == 19) fillFluidInit(tanks[1].getTankType()); + + power = Library.chargeTEFromItems(slots, 0, power, maxPower); /// START Processing part /// - if(plasma.getFill() > 0 && this.plasma.getTankType().temperature >= this.getShield()) { + if(!isOn) { + plasma.setFill(0); //jettison plasma if the thing is turned off + } + + //explode either if there's plasma that is too hot or if the reactor is turned on but the magnets have no power + if(plasma.getFill() > 0 && (this.plasma.getTankType().temperature >= this.getShield() || (this.isOn && this.power < this.powerReq))) { this.disassemble(); Vec3 vec = Vec3.createVectorHelper(5.5, 0, 0); vec.rotateAroundY(worldObj.rand.nextFloat() * (float)Math.PI * 2F); @@ -78,6 +86,25 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer, tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); /// END Notif packets /// + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isOn", isOn); + data.setLong("power", power); + this.networkPack(data, 250); + } + } + + @Override + public void networkUnpack(NBTTagCompound data) { + this.isOn = data.getBoolean("isOn"); + this.power = data.getLong("power"); + } + + @Override + public void handleButtonPacket(int value, int meta) { + + if(meta == 0) { + this.isOn = !this.isOn; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 12c09e44e..cf80d4247 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -84,19 +84,22 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme if(te instanceof TileEntityITER) { TileEntityITER iter = (TileEntityITER)te; - + if(iter.plasma.getFill() == 0 && this.plasma.getTankType() != FluidType.NONE) { iter.plasma.setTankType(this.plasma.getTankType()); } - - if(iter.plasma.getTankType() == this.plasma.getTankType()) { - int toLoad = Math.min(iter.plasma.getMaxFill() - iter.plasma.getFill(), this.plasma.getFill()); - toLoad = Math.min(toLoad, 40); - this.plasma.setFill(this.plasma.getFill() - toLoad); - iter.plasma.setFill(iter.plasma.getFill() + toLoad); - this.markDirty(); - iter.markDirty(); + if(iter.isOn) { + + if(iter.plasma.getTankType() == this.plasma.getTankType()) { + + int toLoad = Math.min(iter.plasma.getMaxFill() - iter.plasma.getFill(), this.plasma.getFill()); + toLoad = Math.min(toLoad, 40); + this.plasma.setFill(this.plasma.getFill() - toLoad); + iter.plasma.setFill(iter.plasma.getFill() + toLoad); + this.markDirty(); + iter.markDirty(); + } } } }