From b3180e8e7b946db52fd2cd9438963ddb4d7a8e4c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 10 Apr 2016 20:23:54 +0200 Subject: [PATCH] Crafting monitor WIP --- .../refinedstorage/RefinedStorageBlocks.java | 1 + .../refinedstorage/RefinedStorageGui.java | 1 + .../block/BlockCraftingMonitor.java | 33 ++++++++++++ .../container/ContainerCraftingMonitor.java | 11 ++++ .../gui/GuiCraftingMonitor.java | 51 +++++++++++++++++++ .../java/refinedstorage/gui/GuiHandler.java | 5 ++ .../refinedstorage/proxy/CommonProxy.java | 3 ++ .../autocrafting/TileCraftingMonitor.java | 21 ++++++++ .../assets/refinedstorage/lang/en_US.lang | 2 + .../assets/refinedstorage/lang/nl_NL.lang | 2 + 10 files changed, 130 insertions(+) create mode 100755 src/main/java/refinedstorage/block/BlockCraftingMonitor.java create mode 100755 src/main/java/refinedstorage/container/ContainerCraftingMonitor.java create mode 100755 src/main/java/refinedstorage/gui/GuiCraftingMonitor.java create mode 100755 src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java diff --git a/src/main/java/refinedstorage/RefinedStorageBlocks.java b/src/main/java/refinedstorage/RefinedStorageBlocks.java index a8b95f579..3e817a11d 100755 --- 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 BlockStorage STORAGE = new BlockStorage(); public static final BlockRelay RELAY = new BlockRelay(); public static final BlockInterface INTERFACE = new BlockInterface(); + public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor(); } diff --git a/src/main/java/refinedstorage/RefinedStorageGui.java b/src/main/java/refinedstorage/RefinedStorageGui.java index bf9ba4959..f698405bb 100755 --- a/src/main/java/refinedstorage/RefinedStorageGui.java +++ b/src/main/java/refinedstorage/RefinedStorageGui.java @@ -14,4 +14,5 @@ public final class RefinedStorageGui { public static final int RELAY = 12; public static final int INTERFACE = 13; public static final int WIRELESS_GRID = 14; + public static final int CRAFTING_MONITOR = 15; } diff --git a/src/main/java/refinedstorage/block/BlockCraftingMonitor.java b/src/main/java/refinedstorage/block/BlockCraftingMonitor.java new file mode 100755 index 000000000..5469187f8 --- /dev/null +++ b/src/main/java/refinedstorage/block/BlockCraftingMonitor.java @@ -0,0 +1,33 @@ +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.autocrafting.TileCraftingMonitor; + +public class BlockCraftingMonitor extends BlockMachine { + public BlockCraftingMonitor() { + super("crafting_monitor"); + } + + @Override + public TileEntity createTileEntity(World world, IBlockState state) { + return new TileCraftingMonitor(); + } + + @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.CRAFTING_MONITOR, world, pos.getX(), pos.getY(), pos.getZ()); + } + + return true; + } +} diff --git a/src/main/java/refinedstorage/container/ContainerCraftingMonitor.java b/src/main/java/refinedstorage/container/ContainerCraftingMonitor.java new file mode 100755 index 000000000..1515b8a5c --- /dev/null +++ b/src/main/java/refinedstorage/container/ContainerCraftingMonitor.java @@ -0,0 +1,11 @@ +package refinedstorage.container; + +import net.minecraft.entity.player.EntityPlayer; + +public class ContainerCraftingMonitor extends ContainerBase { + public ContainerCraftingMonitor(EntityPlayer player) { + super(player); + + addPlayerInventory(8, 99); + } +} diff --git a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java new file mode 100755 index 000000000..331f9eaa8 --- /dev/null +++ b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java @@ -0,0 +1,51 @@ +package refinedstorage.gui; + +import refinedstorage.container.ContainerCraftingMonitor; +import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; +import refinedstorage.tile.autocrafting.TileCraftingMonitor; + +public class GuiCraftingMonitor extends GuiBase { + public static final int VISIBLE_ROWS = 2; + + private TileCraftingMonitor craftingMonitor; + + private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59); + + public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) { + super(container, 176, 181); + + this.craftingMonitor = craftingMonitor; + } + + @Override + public void init(int x, int y) { + addSideButton(new SideButtonRedstoneMode(craftingMonitor)); + } + + @Override + public void update(int x, int y) { + scrollbar.setCanScroll(getRows() > VISIBLE_ROWS); + scrollbar.setScrollDelta((float) scrollbar.getScrollbarHeight() / (float) getRows()); + } + + @Override + public void drawBackground(int x, int y, int mouseX, int mouseY) { + bindTexture("gui/crafting_monitor.png"); + + drawTexture(x, y, 0, 0, width, height); + + scrollbar.draw(this); + } + + @Override + public void drawForeground(int mouseX, int mouseY) { + scrollbar.update(this, mouseX, mouseY); + + drawString(7, 7, t("gui.refinedstorage:crafting_monitor")); + drawString(7, 87, t("container.inventory")); + } + + private int getRows() { + return 0; + } +} diff --git a/src/main/java/refinedstorage/gui/GuiHandler.java b/src/main/java/refinedstorage/gui/GuiHandler.java index 553dad20a..a75e6a5a1 100755 --- a/src/main/java/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/refinedstorage/gui/GuiHandler.java @@ -10,6 +10,7 @@ import refinedstorage.RefinedStorageGui; import refinedstorage.container.*; import refinedstorage.storage.IStorageGui; import refinedstorage.tile.*; +import refinedstorage.tile.autocrafting.TileCraftingMonitor; import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.WirelessGrid; import refinedstorage.util.HandUtils; @@ -41,6 +42,8 @@ public class GuiHandler implements IGuiHandler { return new ContainerRelay(player); case RefinedStorageGui.INTERFACE: return new ContainerInterface(player, (TileInterface) tile); + case RefinedStorageGui.CRAFTING_MONITOR: + return new ContainerCraftingMonitor(player); default: return null; } @@ -102,6 +105,8 @@ public class GuiHandler implements IGuiHandler { return new GuiRelay((ContainerRelay) getContainer(ID, player, tile), (TileRelay) tile); case RefinedStorageGui.INTERFACE: return new GuiInterface((ContainerInterface) getContainer(ID, player, tile), (TileInterface) tile); + case RefinedStorageGui.CRAFTING_MONITOR: + return new GuiCraftingMonitor((ContainerCraftingMonitor) getContainer(ID, player, tile), (TileCraftingMonitor) tile); default: return null; } diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index d92a942fe..630a2223c 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -23,6 +23,7 @@ import refinedstorage.item.*; import refinedstorage.network.*; import refinedstorage.storage.NBTStorage; import refinedstorage.tile.*; +import refinedstorage.tile.autocrafting.TileCraftingMonitor; import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.solderer.*; @@ -65,6 +66,7 @@ public class CommonProxy { GameRegistry.registerTileEntity(TileStorage.class, ID + ":storage"); GameRegistry.registerTileEntity(TileRelay.class, ID + ":relay"); GameRegistry.registerTileEntity(TileInterface.class, ID + ":interface"); + GameRegistry.registerTileEntity(TileCraftingMonitor.class, ID + ":crafting_monitor"); registerBlock(RefinedStorageBlocks.CONTROLLER); registerBlock(RefinedStorageBlocks.CABLE); @@ -81,6 +83,7 @@ public class CommonProxy { registerBlock(RefinedStorageBlocks.STORAGE); registerBlock(RefinedStorageBlocks.RELAY); registerBlock(RefinedStorageBlocks.INTERFACE); + registerBlock(RefinedStorageBlocks.CRAFTING_MONITOR); registerItem(RefinedStorageItems.STORAGE_DISK); registerItem(RefinedStorageItems.WIRELESS_GRID); diff --git a/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java b/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java new file mode 100755 index 000000000..f521b5bbd --- /dev/null +++ b/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java @@ -0,0 +1,21 @@ +package refinedstorage.tile.autocrafting; + +import net.minecraft.inventory.Container; +import refinedstorage.container.ContainerCraftingMonitor; +import refinedstorage.tile.TileMachine; + +public class TileCraftingMonitor extends TileMachine { + @Override + public int getEnergyUsage() { + return 2; + } + + @Override + public void updateMachine() { + } + + @Override + public Class getContainer() { + return ContainerCraftingMonitor.class; + } +} diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 797ecf483..243c193c6 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -20,6 +20,7 @@ gui.refinedstorage:relay=Relay gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.patterns=Patterns +gui.refinedstorage:crafting_monitor=Crafting Monitor misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t @@ -91,6 +92,7 @@ block.refinedstorage:storage.3.name=64k Storage Block block.refinedstorage:storage.4.name=Creative Storage Block block.refinedstorage:relay.name=Relay block.refinedstorage:interface.name=Interface +block.refinedstorage:crafting_monitor.name=Crafting Monitor item.refinedstorage:storage_disk.0.name=1k Storage Disk item.refinedstorage:storage_disk.1.name=4k Storage Disk diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index a5cf3706d..5935ffe4f 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -20,6 +20,7 @@ gui.refinedstorage:relay=Relais gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.patterns=Patronen +gui.refinedstorage:crafting_monitor=Crafting Monitor misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Vebruik: %d RF/t @@ -91,6 +92,7 @@ block.refinedstorage:storage.3.name=64k Opslag Blok block.refinedstorage:storage.4.name=Creative Opslag Blok block.refinedstorage:relay.name=Relais block.refinedstorage:interface.name=Interface +block.refinedstorage:crafting_monitor.name=Crafting Monitor item.refinedstorage:storage_disk.0.name=1k Opslagschijf item.refinedstorage:storage_disk.1.name=4k Opslagschijf