From d0712fcd7db614049dd4888dbc9f2916520f0ab9 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 1 May 2016 21:19:41 +0200 Subject: [PATCH] Processing pattern encoder --- .../refinedstorage/RefinedStorageBlocks.java | 1 + .../refinedstorage/RefinedStorageGui.java | 1 + .../block/BlockProcessingPatternEncoder.java | 38 +++++ .../ContainerProcessingPatternEncoder.java | 41 +++++ src/main/java/refinedstorage/gui/GuiGrid.java | 7 +- .../java/refinedstorage/gui/GuiHandler.java | 5 + .../gui/GuiProcessingPatternEncoder.java | 35 ++++ .../network/MessageGridPatternCreate.java | 8 +- .../refinedstorage/proxy/ClientProxy.java | 1 + .../refinedstorage/proxy/CommonProxy.java | 3 + .../TileProcessingPatternEncoder.java | 149 ++++++++++++++++++ .../refinedstorage/tile/grid/TileGrid.java | 4 +- .../processing_pattern_encoder.json | 39 +++++ .../assets/refinedstorage/lang/en_US.lang | 2 + .../assets/refinedstorage/lang/nl_NL.lang | 2 + .../blocks/processing_pattern_encoder.png | Bin 0 -> 212 bytes .../gui/processing_pattern_encoder.png | Bin 0 -> 2539 bytes 17 files changed, 322 insertions(+), 14 deletions(-) create mode 100755 src/main/java/refinedstorage/block/BlockProcessingPatternEncoder.java create mode 100755 src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java create mode 100755 src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java create mode 100755 src/main/java/refinedstorage/tile/autocrafting/TileProcessingPatternEncoder.java create mode 100755 src/main/resources/assets/refinedstorage/blockstates/processing_pattern_encoder.json create mode 100755 src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png create mode 100755 src/main/resources/assets/refinedstorage/textures/gui/processing_pattern_encoder.png diff --git a/src/main/java/refinedstorage/RefinedStorageBlocks.java b/src/main/java/refinedstorage/RefinedStorageBlocks.java index 9803fd44b..d9f376622 100755 --- a/src/main/java/refinedstorage/RefinedStorageBlocks.java +++ b/src/main/java/refinedstorage/RefinedStorageBlocks.java @@ -21,4 +21,5 @@ public final class RefinedStorageBlocks { public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor(); public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter(); public static final BlockCrafter CRAFTER = new BlockCrafter(); + public static final BlockProcessingPatternEncoder PROCESSING_PATTERN_ENCODER = new BlockProcessingPatternEncoder(); } diff --git a/src/main/java/refinedstorage/RefinedStorageGui.java b/src/main/java/refinedstorage/RefinedStorageGui.java index 035605d81..53899b893 100755 --- a/src/main/java/refinedstorage/RefinedStorageGui.java +++ b/src/main/java/refinedstorage/RefinedStorageGui.java @@ -17,4 +17,5 @@ public final class RefinedStorageGui { public static final int CRAFTING_MONITOR = 15; public static final int WIRELESS_TRANSMITTER = 16; public static final int CRAFTER = 17; + public static final int PROCESSING_PATTERN_ENCODER = 18; } diff --git a/src/main/java/refinedstorage/block/BlockProcessingPatternEncoder.java b/src/main/java/refinedstorage/block/BlockProcessingPatternEncoder.java new file mode 100755 index 000000000..0a496973a --- /dev/null +++ b/src/main/java/refinedstorage/block/BlockProcessingPatternEncoder.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.autocrafting.TileProcessingPatternEncoder; + +public class BlockProcessingPatternEncoder extends BlockBase { + public BlockProcessingPatternEncoder() { + super("processing_pattern_encoder"); + } + + @Override + public boolean hasTileEntity(IBlockState state) { + return true; + } + + @Override + public TileEntity createTileEntity(World world, IBlockState state) { + return new TileProcessingPatternEncoder(); + } + + @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.PROCESSING_PATTERN_ENCODER, world, pos.getX(), pos.getY(), pos.getZ()); + } + + return true; + } +} diff --git a/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java new file mode 100755 index 000000000..846143038 --- /dev/null +++ b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java @@ -0,0 +1,41 @@ +package refinedstorage.container; + +import net.minecraft.entity.player.EntityPlayer; +import refinedstorage.RefinedStorageItems; +import refinedstorage.container.slot.BasicItemValidator; +import refinedstorage.container.slot.SlotFiltered; +import refinedstorage.container.slot.SlotOutput; +import refinedstorage.container.slot.SlotSpecimen; +import refinedstorage.tile.autocrafting.TileProcessingPatternEncoder; + +public class ContainerProcessingPatternEncoder extends ContainerBase { + public ContainerProcessingPatternEncoder(EntityPlayer player, TileProcessingPatternEncoder ppEncoder) { + super(player); + + int ox = 8; + int x = ox; + int y = 20; + + for (int i = 0; i < 9 * 2; ++i) { + addSlotToContainer(new SlotSpecimen(ppEncoder.getInputsOutputsInventory(), i, x, y, false)); + + x += 18; + + if ((i + 1) % 3 == 0) { + if (i == 8) { + ox = 90; + x = ox; + y = 20; + } else { + x = ox; + y += 18; + } + } + } + + addSlotToContainer(new SlotFiltered(ppEncoder, 0, 152, 18, new BasicItemValidator(RefinedStorageItems.PATTERN))); + addSlotToContainer(new SlotOutput(ppEncoder, 1, 152, 58)); + + addPlayerInventory(8, 93); + } +} diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 15bf63464..340f2a85f 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -36,7 +36,6 @@ public class GuiGrid extends GuiBase { private List items = new ArrayList(); private GuiTextField searchField; - private GuiCheckBox processingCheckbox; private int hoveringSlot; private int hoveringItemId; @@ -67,10 +66,6 @@ public class GuiGrid extends GuiBase { addSideButton(new SideButtonGridSortingDirection(grid)); addSideButton(new SideButtonGridSortingType(grid)); addSideButton(new SideButtonGridSearchBoxMode(grid)); - - if (grid.getType() == EnumGridType.PATTERN) { - processingCheckbox = (GuiCheckBox) addCheckBox(x + 65, y + 148, t("misc.refinedstorage:processing")); - } } public IGrid getGrid() { @@ -308,7 +303,7 @@ public class GuiGrid extends GuiBase { if (grid.isConnected()) { if (clickedCreatePattern) { - RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid, processingCheckbox.isChecked())); + RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid)); } else if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { grid.onItemPush(-1, clickedButton == 1); } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { diff --git a/src/main/java/refinedstorage/gui/GuiHandler.java b/src/main/java/refinedstorage/gui/GuiHandler.java index deaa7c311..1ded7e7e5 100755 --- a/src/main/java/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/refinedstorage/gui/GuiHandler.java @@ -11,6 +11,7 @@ import refinedstorage.container.*; import refinedstorage.storage.IStorageGui; import refinedstorage.tile.*; import refinedstorage.tile.autocrafting.TileCraftingMonitor; +import refinedstorage.tile.autocrafting.TileProcessingPatternEncoder; import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.WirelessGrid; import refinedstorage.util.HandUtils; @@ -48,6 +49,8 @@ public class GuiHandler implements IGuiHandler { return new ContainerWirelessTransmitter(player, (TileWirelessTransmitter) tile); case RefinedStorageGui.CRAFTER: return new ContainerCrafter(player, (TileCrafter) tile); + case RefinedStorageGui.PROCESSING_PATTERN_ENCODER: + return new ContainerProcessingPatternEncoder(player, (TileProcessingPatternEncoder) tile); default: return null; } @@ -115,6 +118,8 @@ public class GuiHandler implements IGuiHandler { return new GuiWirelessTransmitter((ContainerWirelessTransmitter) getContainer(ID, player, tile), (TileWirelessTransmitter) tile); case RefinedStorageGui.CRAFTER: return new GuiCrafter((ContainerCrafter) getContainer(ID, player, tile), (TileCrafter) tile); + case RefinedStorageGui.PROCESSING_PATTERN_ENCODER: + return new GuiProcessingPatternEncoder((ContainerProcessingPatternEncoder) getContainer(ID, player, tile), (TileProcessingPatternEncoder) tile); default: return null; } diff --git a/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java new file mode 100755 index 000000000..e1cd34aaf --- /dev/null +++ b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java @@ -0,0 +1,35 @@ +package refinedstorage.gui; + +import refinedstorage.container.ContainerProcessingPatternEncoder; +import refinedstorage.gui.sidebutton.SideButtonCompare; +import refinedstorage.gui.sidebutton.SideButtonMode; +import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; +import refinedstorage.tile.autocrafting.TileProcessingPatternEncoder; +import refinedstorage.util.InventoryUtils; + +public class GuiProcessingPatternEncoder extends GuiBase { + public GuiProcessingPatternEncoder(ContainerProcessingPatternEncoder container, TileProcessingPatternEncoder ppEncoder) { + super(container, 176, 172); + } + + @Override + public void init(int x, int y) { + } + + @Override + public void update(int x, int y) { + } + + @Override + public void drawBackground(int x, int y, int mouseX, int mouseY) { + bindTexture("gui/processing_pattern_encoder.png"); + + drawTexture(x, y, 0, 0, width, height); + } + + @Override + public void drawForeground(int mouseX, int mouseY) { + drawString(7, 7, t("gui.refinedstorage:processing_pattern_encoder")); + drawString(7, 77, t("container.inventory")); + } +} diff --git a/src/main/java/refinedstorage/network/MessageGridPatternCreate.java b/src/main/java/refinedstorage/network/MessageGridPatternCreate.java index 9e41e3802..6d4cf42cf 100755 --- a/src/main/java/refinedstorage/network/MessageGridPatternCreate.java +++ b/src/main/java/refinedstorage/network/MessageGridPatternCreate.java @@ -12,16 +12,14 @@ public class MessageGridPatternCreate extends MessageHandlerPlayerToServer 0) { @@ -174,7 +174,7 @@ public class TileGrid extends TileMachine implements IGrid { ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN); ItemPattern.setResult(pattern, crafted); - ItemPattern.setProcessing(pattern, processing); + ItemPattern.setProcessing(pattern, false); for (int i = 0; i < 9; ++i) { ItemStack ingredient = craftingInventory.getStackInSlot(i); diff --git a/src/main/resources/assets/refinedstorage/blockstates/processing_pattern_encoder.json b/src/main/resources/assets/refinedstorage/blockstates/processing_pattern_encoder.json new file mode 100755 index 000000000..e85b1407d --- /dev/null +++ b/src/main/resources/assets/refinedstorage/blockstates/processing_pattern_encoder.json @@ -0,0 +1,39 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "orientable", + "textures": { + "side": "refinedstorage:blocks/side", + "top": "refinedstorage:blocks/side", + "front": "refinedstorage:blocks/processing_pattern_encoder" + } + }, + "variants": { + "inventory": [ + { + "transform": "forge:default-block", + "y": 0 + } + ], + "direction": { + "north": { + "y": 0 + }, + "east": { + "y": 90 + }, + "south": { + "y": 180 + }, + "west": { + "y": 270 + }, + "up": { + "x": 270 + }, + "down": { + "x": 90 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 6a5dbaf23..bc0ecf897 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -24,6 +24,7 @@ gui.refinedstorage:crafting_monitor=Crafting Monitor gui.refinedstorage:wireless_transmitter=Wireless Transmitter gui.refinedstorage:wireless_transmitter.distance=%d blocks gui.refinedstorage:crafter=Crafter +gui.refinedstorage:processing_pattern_encoder=Processing Pattern Encoder misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t @@ -102,6 +103,7 @@ block.refinedstorage:interface.name=Interface block.refinedstorage:crafting_monitor.name=Crafting Monitor block.refinedstorage:wireless_transmitter.name=Wireless Transmitter block.refinedstorage:crafter.name=Crafter +block.refinedstorage:processing_pattern_encoder.name=Processing Pattern Encoder 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 0c3751ce5..237f9884a 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -24,6 +24,7 @@ gui.refinedstorage:crafting_monitor=Crafting Monitor gui.refinedstorage:wireless_transmitter=Draadloze Zender gui.refinedstorage:wireless_transmitter.distance=%d blokken gui.refinedstorage:crafter=Crafter +gui.refinedstorage:processing_pattern_encoder=Verwerkingspatroon Codeerder misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Vebruik: %d RF/t @@ -102,6 +103,7 @@ block.refinedstorage:interface.name=Interface block.refinedstorage:crafting_monitor.name=Crafting Monitor block.refinedstorage:wireless_transmitter.name=Draadloze Zender block.refinedstorage:crafter.name=Crafter +block.refinedstorage:processing_pattern_encoder.name=Verwerkingspatroon Codeerder item.refinedstorage:storage_disk.0.name=1k Opslagschijf item.refinedstorage:storage_disk.1.name=4k Opslagschijf diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png b/src/main/resources/assets/refinedstorage/textures/blocks/processing_pattern_encoder.png new file mode 100755 index 0000000000000000000000000000000000000000..909db6a58d7bceebc3d681f05c56c1beefed6b92 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ z_Z;p3Gu{bV3*`(X BK;!@b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/refinedstorage/textures/gui/processing_pattern_encoder.png b/src/main/resources/assets/refinedstorage/textures/gui/processing_pattern_encoder.png new file mode 100755 index 0000000000000000000000000000000000000000..20c3f2319689a00b7e09f7c40ee430a692cba658 GIT binary patch literal 2539 zcmeHIi&v6o7=J&+ycMZ4w@jzyDs?Cdrg)k~PDG}W0UC-TS&}9Q2F?o#pH3@v-E3)I z(l$3SEwwE3f=U{?HZwaN*TR*owoz)C>5i8)_OZ^ke_`ir&v|dpbKc+Y`MtOE7KG6# ztIX}p0RXG0!GUxDAY=#uQzN8Hy2xT0JTaXT02+tvpCJzVz>b|e0Jwa@Vrj2207f7z zlu1V7YuB!Ib#--fbHie>?(Xh59M03z)62^XkH-@T1aEI|UteD$kr)sVKqiwZ6iRS# zFqKLT2?+@e4W-d&yLRmg3k##u=?n&g$z+Cyhet$2uvo0f$jGRuC=Q3ip;?CflrOeUAh>Fnb0*pditDJ!lla$kAW z{t9+{Wi;;`C!snv@jN%_tNp^-L)q=A@{aUeWoDjIn%|Xm7%APdqdhq}IYmW9wY9Yh zg`%#muD-s$p`igTROJ-i$o>3A-tpeUC;N^T-)!&Icihw~)%vb}eb2Z0{{H?O-{}!U zcH@8hPwl{?u5VTvUX6rKV;FA0f7k$H&SWEU_-3NuNHGAIK0}2DgmwFo;Cm7>OTrNH zBx!pO#RJja#AJy_a=gUJ+r!htk57=%05A@u2JT>{bDnF8q#CAue@Z<~S;CH|<8cn_ zjTIH|Y6e3#Z|b|$N<8;)P_I9t^}A(}c=A=Vh*mK>Cv&XU4V+Fsa7(dySRKx5`6Q$K z*{3CitAA_6Hw6CbYWt(#h`-eK1VhM%@iFq*D2vIZM{`W0sqU)ka*!TV(h;+a_!kjOkOpc{i4#^ZP_fMr;v>l&Wcz3QcSRSlz4rU=jcdE*vt3gsjtA8UDac~Svh<2-$JYZjPn^d} zO`B~RKRAGPS+8O|>^m}@u4(%QoSqlIIke~k?5MYSovp8j+>Kce?a$YG$nkegucfVm zmSVF`J5NW(oLX3;11IcuZuBg>8ufhfg#%+Nw|$*#!_|%jOhW6yX-wV7I!9Bbara&6 z_7!!$<0ElU^diPC%8Rl1{;;MG<6=j0<0hy>#c)u~2ovnQX7b3*PF1e!Xpa~~!zCI$ zwNpI`SwJ6u$U~_(>}-8%8v7CoMN$nHmU%oxE$(Tk&fk{N1cL(j%Qb|Jh?L(mU%3wR zuO~0uAKdb0s$cH`mp*8XO4(_q zqPG=So_Xo7;`@N&(!&vhObk$ZUyZA!1ML|WP+D5R7w}i(HWh*2s>ja8-hF{#HMZ@_ z8|2N~wtca%h755jU#q1bTLTQXuqObZEP+mdMOnfC&003;zV)o}VCR}W@_c}H0z;!L zv=a%%eY0@;(+@dYNq4PRH)je>Q7i|@lmsfTUq)I4-%#pgz!Qc0tYBaU-r%w{LHa5q z!tKXaqagi7b3%;?>wZR_fzg0NX_d#w2oA|;2%MZ66G!W;zDH&j^QIqQc$y#z--xSl zztUDVe0Pu z1_f*Mg)_>M