From e187a2c54d8ecc9d37c4bdaaa17b4e0467cb0719 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 20 Mar 2016 16:28:18 +0100 Subject: [PATCH] Relay working! --- .../refinedstorage/RefinedStorageBlocks.java | 1 + .../refinedstorage/RefinedStorageGui.java | 2 +- .../java/refinedstorage/block/BlockRelay.java | 38 ++++++++++++++++ .../container/ContainerRelay.java | 13 ++++++ .../java/refinedstorage/gui/GuiHandler.java | 4 ++ .../java/refinedstorage/gui/GuiRelay.java | 43 ++++++++++++++++++ .../refinedstorage/proxy/CommonProxy.java | 2 + .../java/refinedstorage/tile/TileCable.java | 13 ++++++ .../java/refinedstorage/tile/TileRelay.java | 15 ++++++ .../assets/refinedstorage/lang/en_US.lang | 3 +- .../assets/refinedstorage/lang/nl_NL.lang | 3 +- .../refinedstorage/textures/gui/relay.png | Bin 0 -> 1788 bytes 12 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 src/main/java/refinedstorage/block/BlockRelay.java create mode 100644 src/main/java/refinedstorage/container/ContainerRelay.java create mode 100644 src/main/java/refinedstorage/gui/GuiRelay.java create mode 100644 src/main/java/refinedstorage/tile/TileRelay.java create mode 100644 src/main/resources/assets/refinedstorage/textures/gui/relay.png diff --git a/src/main/java/refinedstorage/RefinedStorageBlocks.java b/src/main/java/refinedstorage/RefinedStorageBlocks.java index 12bf84f9c..0201e0821 100644 --- a/src/main/java/refinedstorage/RefinedStorageBlocks.java +++ b/src/main/java/refinedstorage/RefinedStorageBlocks.java @@ -18,4 +18,5 @@ public final class RefinedStorageBlocks public static final BlockDestructor DESTRUCTOR = new BlockDestructor(); public static final BlockConstructor CONSTRUCTOR = new BlockConstructor(); public static final BlockStorage STORAGE = new BlockStorage(); + public static final BlockRelay RELAY = new BlockRelay(); } diff --git a/src/main/java/refinedstorage/RefinedStorageGui.java b/src/main/java/refinedstorage/RefinedStorageGui.java index 66c55a6d9..eb9508ade 100644 --- a/src/main/java/refinedstorage/RefinedStorageGui.java +++ b/src/main/java/refinedstorage/RefinedStorageGui.java @@ -13,5 +13,5 @@ public final class RefinedStorageGui public static final int DESTRUCTOR = 9; public static final int CONSTRUCTOR = 10; public static final int STORAGE = 11; - public static final int CRAFTER = 12; + public static final int RELAY = 12; } diff --git a/src/main/java/refinedstorage/block/BlockRelay.java b/src/main/java/refinedstorage/block/BlockRelay.java new file mode 100644 index 000000000..6b2a6f414 --- /dev/null +++ b/src/main/java/refinedstorage/block/BlockRelay.java @@ -0,0 +1,38 @@ +package refinedstorage.block; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import refinedstorage.RefinedStorage; +import refinedstorage.RefinedStorageGui; +import refinedstorage.tile.TileRelay; + +public class BlockRelay extends BlockMachine +{ + public BlockRelay() + { + super("relay"); + } + + @Override + public TileEntity createTileEntity(World world, IBlockState state) + { + return new TileRelay(); + } + + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) + { + if (!world.isRemote) + { + player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.RELAY, world, pos.getX(), pos.getY(), pos.getZ()); + } + + return true; + } +} diff --git a/src/main/java/refinedstorage/container/ContainerRelay.java b/src/main/java/refinedstorage/container/ContainerRelay.java new file mode 100644 index 000000000..1048e51f9 --- /dev/null +++ b/src/main/java/refinedstorage/container/ContainerRelay.java @@ -0,0 +1,13 @@ +package refinedstorage.container; + +import net.minecraft.entity.player.EntityPlayer; + +public class ContainerRelay extends ContainerBase +{ + public ContainerRelay(EntityPlayer player) + { + super(player); + + addPlayerInventory(8, 50); + } +} diff --git a/src/main/java/refinedstorage/gui/GuiHandler.java b/src/main/java/refinedstorage/gui/GuiHandler.java index 5fbf8b8ed..1ad6a9d56 100644 --- a/src/main/java/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/refinedstorage/gui/GuiHandler.java @@ -39,6 +39,8 @@ public class GuiHandler implements IGuiHandler return new ContainerConstructor(player, (TileConstructor) tile); case RefinedStorageGui.STORAGE: return new ContainerStorage(player, ((IStorageGui) tile).getInventory()); + case RefinedStorageGui.RELAY: + return new ContainerRelay(player); default: return null; } @@ -79,6 +81,8 @@ public class GuiHandler implements IGuiHandler return new GuiConstructor((ContainerConstructor) getContainer(ID, player, tile), (TileConstructor) tile); case RefinedStorageGui.STORAGE: return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile); + case RefinedStorageGui.RELAY: + return new GuiRelay((ContainerRelay) getContainer(ID, player, tile), (TileRelay) tile); default: return null; } diff --git a/src/main/java/refinedstorage/gui/GuiRelay.java b/src/main/java/refinedstorage/gui/GuiRelay.java new file mode 100644 index 000000000..e1cfefd9e --- /dev/null +++ b/src/main/java/refinedstorage/gui/GuiRelay.java @@ -0,0 +1,43 @@ +package refinedstorage.gui; + +import refinedstorage.container.ContainerRelay; +import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; +import refinedstorage.tile.TileRelay; + +public class GuiRelay extends GuiBase +{ + private TileRelay relay; + + public GuiRelay(ContainerRelay container, TileRelay relay) + { + super(container, 176, 131); + + this.relay = relay; + } + + @Override + public void init(int x, int y) + { + addSideButton(new SideButtonRedstoneMode(relay)); + } + + @Override + public void update(int x, int y) + { + } + + @Override + public void drawBackground(int x, int y, int mouseX, int mouseY) + { + bindTexture("gui/relay.png"); + + drawTexture(x, y, 0, 0, width, height); + } + + @Override + public void drawForeground(int mouseX, int mouseY) + { + drawString(7, 7, t("gui.refinedstorage:relay")); + drawString(7, 39, t("container.inventory")); + } +} diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index a8fe0762c..2665bdb5c 100644 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -52,6 +52,7 @@ public class CommonProxy GameRegistry.registerTileEntity(TileDestructor.class, "destructor"); GameRegistry.registerTileEntity(TileConstructor.class, "constructor"); GameRegistry.registerTileEntity(TileStorage.class, "storage"); + GameRegistry.registerTileEntity(TileRelay.class, "relay"); GameRegistry.registerBlock(RefinedStorageBlocks.CONTROLLER, ItemBlockController.class, "controller"); GameRegistry.registerBlock(RefinedStorageBlocks.CABLE, "cable"); @@ -67,6 +68,7 @@ public class CommonProxy GameRegistry.registerBlock(RefinedStorageBlocks.DESTRUCTOR, "destructor"); GameRegistry.registerBlock(RefinedStorageBlocks.CONSTRUCTOR, "constructor"); GameRegistry.registerBlock(RefinedStorageBlocks.STORAGE, ItemBlockStorage.class, "storage"); + GameRegistry.registerBlock(RefinedStorageBlocks.RELAY, "relay"); GameRegistry.registerItem(RefinedStorageItems.STORAGE_CELL, "storage_cell"); GameRegistry.registerItem(RefinedStorageItems.WIRELESS_GRID, "wireless_grid"); diff --git a/src/main/java/refinedstorage/tile/TileCable.java b/src/main/java/refinedstorage/tile/TileCable.java index 020e703d3..839e1e6a3 100644 --- a/src/main/java/refinedstorage/tile/TileCable.java +++ b/src/main/java/refinedstorage/tile/TileCable.java @@ -53,6 +53,19 @@ public class TileCable extends TileBase machines.add((TileMachine) tile); visited.add(newPos); + + if (tile instanceof TileRelay) + { + for (EnumFacing relayDir : EnumFacing.VALUES) + { + TileEntity nextToRelay = worldObj.getTileEntity(newPos.offset(relayDir)); + + if (nextToRelay instanceof TileCable) + { + ((TileCable) nextToRelay).addMachines(visited, machines, controller); + } + } + } } else if (tile instanceof TileCable) { diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java new file mode 100644 index 000000000..e14b3a889 --- /dev/null +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -0,0 +1,15 @@ +package refinedstorage.tile; + +public class TileRelay extends TileMachine +{ + @Override + public int getEnergyUsage() + { + return 1; + } + + @Override + public void updateMachine() + { + } +} diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index e416d62ab..bcdaf0f2b 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -12,6 +12,7 @@ gui.refinedstorage:solderer=Solderer gui.refinedstorage:wireless_transmitter=Wireless Transmitter gui.refinedstorage:destructor=Destructor gui.refinedstorage:constructor=Constructor +gui.refinedstorage:relay=Relay misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t @@ -81,7 +82,7 @@ block.refinedstorage:storage.1.name=4k Storage Block block.refinedstorage:storage.2.name=16k Storage Block block.refinedstorage:storage.3.name=64k Storage Block block.refinedstorage:storage.4.name=Creative Storage Block -block.refinedstorage:crafter.name=Crafter +block.refinedstorage:relay.name=Relay item.refinedstorage:storage_cell.0.name=1k Storage Cell item.refinedstorage:storage_cell.1.name=4k Storage Cell diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index e0c643ae0..a2a95e0c4 100644 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -12,7 +12,7 @@ gui.refinedstorage:solderer=Soldeerder gui.refinedstorage:wireless_transmitter=Draadloze Zender gui.refinedstorage:destructor=Destructor gui.refinedstorage:constructor=Constructor -gui.refinedstorage:crafter=Crafter +gui.refinedstorage:relay=Relais misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Vebruik: %d RF/t @@ -82,6 +82,7 @@ block.refinedstorage:storage.1.name=4k Opslag Blok block.refinedstorage:storage.2.name=16k Opslag Blok block.refinedstorage:storage.3.name=64k Opslag Blok block.refinedstorage:storage.4.name=Creative Opslag Blok +block.refinedstorage:relay.name=Relais item.refinedstorage:storage_cell.0.name=1k Opslagcel item.refinedstorage:storage_cell.1.name=4k Opslagcel diff --git a/src/main/resources/assets/refinedstorage/textures/gui/relay.png b/src/main/resources/assets/refinedstorage/textures/gui/relay.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c97a66ec2dc4b9a32b246d39f270a9ea63f774 GIT binary patch literal 1788 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5D>38$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&di49pAxJ|V6^adUI?(9qEC?(Sp9j{X1tA1E>kMnhnPgh10{aTQRmDGBlm z1}6TI3>bpHv#SE5owL9rvY3H^?=T269?xHq0u+=eag8Vm&QB{TPb^AhC`ioAE78kK zEm1JhGte{p)02Fkfq^O1)5S5QBJS<&i&?iFBw7Nm_TB$K@$RmfQHtTm-uQ1m^OJ+; zP3sLA7DmUu-+yl`|NX1)cj4{jjE%|5@Bja{G46r>f#Z6ydZ$_C7%G3U0ShyQ?{Q+F zWccKzGz$Ym!=36#5O2crd;uU;^gb0--Z{+M2Q1SVPVAiyEYcWoYh?QHy88N?oAq`x z*>=>u{&v|9q#6Wve%}OP0LgXp|1bEzbbgr;&xH4S>CN}cHl^#&^6}jb3Xje`}St(