From 0824eab7900c3c608d27f807ea6828767ce52061 Mon Sep 17 00:00:00 2001 From: Raoul Date: Tue, 29 Mar 2016 18:12:36 +0200 Subject: [PATCH 01/30] Changelog crap --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f91afd04d..3092b64a1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ - Made the amount text in the Grid for items smaller - Nice formatting for items >= 1K (pressing shift while hovering over an item will still display the real item count) - When placing Importer, Exporter or External Storage with SHIFT, it will have the opposite direction. This is for easy placement behind other blocks (furnaces for example) +- Added mass crafting of items with shift in Crafting Grid +- Added JEI recipe transfering in Crafting Grid ### 0.4.1 **Bugfixes** From 292403e6c17396e763f7895c628322719ffdced9 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 30 Mar 2016 12:38:45 +0200 Subject: [PATCH 02/30] JEI synchronization, doesn't actually sync yet though... JEI bug? --- src/main/java/refinedstorage/gui/GuiGrid.java | 9 ++ .../SideButtonGridSearchBoxMode.java | 44 ++++++ .../SideButtonGridSortingDirection.java | 8 +- .../sidebutton/SideButtonGridSortingType.java | 8 +- .../jei/PluginRefinedStorage.java | 24 +++- ...te.java => MessageGridSettingsUpdate.java} | 128 ++++++++++-------- .../refinedstorage/proxy/CommonProxy.java | 2 +- .../java/refinedstorage/tile/TileGrid.java | 20 +++ .../assets/refinedstorage/lang/en_US.lang | 16 ++- .../assets/refinedstorage/lang/nl_NL.lang | 16 ++- .../assets/refinedstorage/textures/icons.png | Bin 2615 -> 2647 bytes 11 files changed, 190 insertions(+), 85 deletions(-) create mode 100755 src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java rename src/main/java/refinedstorage/network/{MessageGridSortingUpdate.java => MessageGridSettingsUpdate.java} (69%) diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 17ae74a6d..38d6ee1ec 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -10,9 +10,11 @@ import net.minecraft.inventory.Slot; import refinedstorage.RefinedStorage; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; +import refinedstorage.gui.sidebutton.SideButtonGridSearchBoxMode; import refinedstorage.gui.sidebutton.SideButtonGridSortingDirection; import refinedstorage.gui.sidebutton.SideButtonGridSortingType; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; +import refinedstorage.jei.PluginRefinedStorage; import refinedstorage.network.MessageGridCraftingClear; import refinedstorage.network.MessageGridCraftingPush; import refinedstorage.network.MessageStoragePull; @@ -52,6 +54,10 @@ public class GuiGrid extends GuiBase { addSideButton(new SideButtonGridSortingDirection(grid)); addSideButton(new SideButtonGridSortingType(grid)); + if (PluginRefinedStorage.isJeiLoaded()) { + addSideButton(new SideButtonGridSearchBoxMode(grid)); + } + searchField = new GuiTextField(0, fontRendererObj, x + 80 + 1, y + 6 + 1, 88 - 6, fontRendererObj.FONT_HEIGHT); searchField.setEnableBackgroundDrawing(false); searchField.setVisible(true); @@ -287,6 +293,9 @@ public class GuiGrid extends GuiBase { @Override protected void keyTyped(char character, int keyCode) throws IOException { if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) { + if (PluginRefinedStorage.isJeiLoaded()) { + PluginRefinedStorage.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText()); + } } else { super.keyTyped(character, keyCode); } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java new file mode 100755 index 000000000..bdd0ce1b3 --- /dev/null +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -0,0 +1,44 @@ +package refinedstorage.gui.sidebutton; + +import net.minecraft.util.text.TextFormatting; +import refinedstorage.RefinedStorage; +import refinedstorage.gui.GuiBase; +import refinedstorage.network.MessageGridSettingsUpdate; +import refinedstorage.tile.TileGrid; + +public class SideButtonGridSearchBoxMode extends SideButton { + private TileGrid grid; + + public SideButtonGridSearchBoxMode(TileGrid grid) { + this.grid = grid; + } + + @Override + public String getTooltip(GuiBase gui) { + StringBuilder builder = new StringBuilder(); + + builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.search_box_mode")).append(TextFormatting.RESET).append("\n"); + builder.append(gui.t("sidebutton.refinedstorage:grid.search_box_mode." + grid.getSearchBoxMode())); + + return builder.toString(); + } + + @Override + public void draw(GuiBase gui, int x, int y) { + gui.bindTexture("icons.png"); + gui.drawTexture(x - 1, y + 2 - 1, 0, 96, 16, 16); + } + + @Override + public void actionPerformed() { + int mode = grid.getSearchBoxMode(); + + if (mode == TileGrid.SEARCH_BOX_MODE_NORMAL) { + mode = TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED; + } else if (mode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { + mode = TileGrid.SEARCH_BOX_MODE_NORMAL; + } + + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, grid.getSortingDirection(), grid.getSortingType(), mode)); + } +} diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java index b7ccb59c5..af1540f08 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java @@ -3,7 +3,7 @@ package refinedstorage.gui.sidebutton; import net.minecraft.util.text.TextFormatting; import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; -import refinedstorage.network.MessageGridSortingUpdate; +import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.tile.TileGrid; public class SideButtonGridSortingDirection extends SideButton { @@ -17,8 +17,8 @@ public class SideButtonGridSortingDirection extends SideButton { public String getTooltip(GuiBase gui) { StringBuilder builder = new StringBuilder(); - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.direction")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:sorting.direction." + grid.getSortingDirection())); + builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.direction")).append(TextFormatting.RESET).append("\n"); + builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection())); return builder.toString(); } @@ -39,6 +39,6 @@ public class SideButtonGridSortingDirection extends SideButton { dir = TileGrid.SORTING_DIRECTION_ASCENDING; } - RefinedStorage.NETWORK.sendToServer(new MessageGridSortingUpdate(grid, dir, grid.getSortingType())); + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, dir, grid.getSortingType(), grid.getSearchBoxMode())); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java index e5f04f2ce..8e02f4b18 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java @@ -3,7 +3,7 @@ package refinedstorage.gui.sidebutton; import net.minecraft.util.text.TextFormatting; import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; -import refinedstorage.network.MessageGridSortingUpdate; +import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.tile.TileGrid; public class SideButtonGridSortingType extends SideButton { @@ -17,8 +17,8 @@ public class SideButtonGridSortingType extends SideButton { public String getTooltip(GuiBase gui) { StringBuilder builder = new StringBuilder(); - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.type")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:sorting.type." + grid.getSortingType())); + builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.type")).append(TextFormatting.RESET).append("\n"); + builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType())); return builder.toString(); } @@ -39,6 +39,6 @@ public class SideButtonGridSortingType extends SideButton { type = TileGrid.SORTING_TYPE_QUANTITY; } - RefinedStorage.NETWORK.sendToServer(new MessageGridSortingUpdate(grid, grid.getSortingDirection(), type)); + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, grid.getSortingDirection(), type, grid.getSearchBoxMode())); } } diff --git a/src/main/java/refinedstorage/jei/PluginRefinedStorage.java b/src/main/java/refinedstorage/jei/PluginRefinedStorage.java index 216a3b9ff..8196517fd 100755 --- a/src/main/java/refinedstorage/jei/PluginRefinedStorage.java +++ b/src/main/java/refinedstorage/jei/PluginRefinedStorage.java @@ -1,6 +1,7 @@ package refinedstorage.jei; -import mezz.jei.api.BlankModPlugin; +import mezz.jei.api.IJeiRuntime; +import mezz.jei.api.IModPlugin; import mezz.jei.api.IModRegistry; import mezz.jei.api.JEIPlugin; import net.minecraft.item.Item; @@ -10,9 +11,15 @@ import refinedstorage.storage.DiskStorage; import refinedstorage.tile.TileStorage; @JEIPlugin -public class PluginRefinedStorage extends BlankModPlugin { +public class PluginRefinedStorage implements IModPlugin { + public static PluginRefinedStorage INSTANCE; + + private IJeiRuntime runtime; + @Override public void register(IModRegistry registry) { + INSTANCE = this; + registry.getRecipeTransferRegistry().addRecipeTransferHandler(new GridRecipeTransferHandler()); registry.addRecipeCategories(new SoldererRecipeCategory(registry.getJeiHelpers().getGuiHelper())); @@ -24,4 +31,17 @@ public class PluginRefinedStorage extends BlankModPlugin { registry.getJeiHelpers().getNbtIgnoreList().ignoreNbtTagNames(RefinedStorageItems.STORAGE_DISK, DiskStorage.NBT_ITEMS, DiskStorage.NBT_STORED); registry.getJeiHelpers().getNbtIgnoreList().ignoreNbtTagNames(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), TileStorage.NBT_STORAGE); } + + @Override + public void onRuntimeAvailable(IJeiRuntime runtime) { + this.runtime = runtime; + } + + public IJeiRuntime getRuntime() { + return runtime; + } + + public static boolean isJeiLoaded() { + return INSTANCE != null; + } } diff --git a/src/main/java/refinedstorage/network/MessageGridSortingUpdate.java b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java similarity index 69% rename from src/main/java/refinedstorage/network/MessageGridSortingUpdate.java rename to src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java index 11781aec1..66d5ad038 100755 --- a/src/main/java/refinedstorage/network/MessageGridSortingUpdate.java +++ b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java @@ -1,60 +1,68 @@ -package refinedstorage.network; - -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.tile.TileGrid; - -public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer implements IMessage { - private int x; - private int y; - private int z; - private int sortingDirection; - private int sortingType; - - public MessageGridSortingUpdate() { - } - - public MessageGridSortingUpdate(TileGrid grid, int sortingDirection, int sortingType) { - this.x = grid.getPos().getX(); - this.y = grid.getPos().getY(); - this.z = grid.getPos().getZ(); - this.sortingDirection = sortingDirection; - this.sortingType = sortingType; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - sortingDirection = buf.readInt(); - sortingType = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(sortingDirection); - buf.writeInt(sortingType); - } - - @Override - public void handle(MessageGridSortingUpdate message, EntityPlayerMP player) { - TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); - - if (tile instanceof TileGrid) { - if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) { - ((TileGrid) tile).setSortingDirection(message.sortingDirection); - } - - if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) { - ((TileGrid) tile).setSortingType(message.sortingType); - } - } - } -} +package refinedstorage.network; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import refinedstorage.tile.TileGrid; + +public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer implements IMessage { + private int x; + private int y; + private int z; + private int sortingDirection; + private int sortingType; + private int searchBoxMode; + + public MessageGridSettingsUpdate() { + } + + public MessageGridSettingsUpdate(TileGrid grid, int sortingDirection, int sortingType, int searchBoxMode) { + this.x = grid.getPos().getX(); + this.y = grid.getPos().getY(); + this.z = grid.getPos().getZ(); + this.sortingDirection = sortingDirection; + this.sortingType = sortingType; + this.searchBoxMode = searchBoxMode; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + sortingDirection = buf.readInt(); + sortingType = buf.readInt(); + searchBoxMode = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeInt(sortingDirection); + buf.writeInt(sortingType); + buf.writeInt(searchBoxMode); + } + + @Override + public void handle(MessageGridSettingsUpdate message, EntityPlayerMP player) { + TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); + + if (tile instanceof TileGrid) { + if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) { + ((TileGrid) tile).setSortingDirection(message.sortingDirection); + } + + if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) { + ((TileGrid) tile).setSortingType(message.sortingType); + } + + if (message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_NORMAL || message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { + ((TileGrid) tile).setSearchBoxMode(message.searchBoxMode); + } + } + } +} diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 45d217346..4df5be14c 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -36,7 +36,7 @@ public class CommonProxy { RefinedStorage.NETWORK.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, 7, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingClear.class, MessageGridCraftingClear.class, 9, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessagePriorityUpdate.class, MessagePriorityUpdate.class, 10, Side.SERVER); - RefinedStorage.NETWORK.registerMessage(MessageGridSortingUpdate.class, MessageGridSortingUpdate.class, 11, Side.SERVER); + RefinedStorage.NETWORK.registerMessage(MessageGridSettingsUpdate.class, MessageGridSettingsUpdate.class, 11, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER); diff --git a/src/main/java/refinedstorage/tile/TileGrid.java b/src/main/java/refinedstorage/tile/TileGrid.java index 86fc515ef..928149317 100755 --- a/src/main/java/refinedstorage/tile/TileGrid.java +++ b/src/main/java/refinedstorage/tile/TileGrid.java @@ -21,6 +21,7 @@ import java.util.List; public class TileGrid extends TileMachine { public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SORTING_TYPE = "SortingType"; + public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; public static final int SORTING_DIRECTION_ASCENDING = 0; public static final int SORTING_DIRECTION_DESCENDING = 1; @@ -28,6 +29,9 @@ public class TileGrid extends TileMachine { public static final int SORTING_TYPE_QUANTITY = 0; public static final int SORTING_TYPE_NAME = 1; + public static final int SEARCH_BOX_MODE_NORMAL = 0; + public static final int SEARCH_BOX_MODE_JEI_SYNCHRONIZED = 1; + private Container craftingContainer = new Container() { @Override public boolean canInteractWith(EntityPlayer player) { @@ -44,6 +48,7 @@ public class TileGrid extends TileMachine { private int sortingDirection = SORTING_DIRECTION_DESCENDING; private int sortingType = SORTING_TYPE_NAME; + private int searchBoxMode = SEARCH_BOX_MODE_NORMAL; @Override public int getEnergyUsage() { @@ -176,6 +181,14 @@ public class TileGrid extends TileMachine { this.sortingType = sortingType; } + public int getSearchBoxMode() { + return searchBoxMode; + } + + public void setSearchBoxMode(int searchBoxMode) { + this.searchBoxMode = searchBoxMode; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -189,6 +202,10 @@ public class TileGrid extends TileMachine { if (nbt.hasKey(NBT_SORTING_TYPE)) { sortingType = nbt.getInteger(NBT_SORTING_TYPE); } + + if (nbt.hasKey(NBT_SEARCH_BOX_MODE)) { + searchBoxMode = nbt.getInteger(NBT_SEARCH_BOX_MODE); + } } @Override @@ -199,6 +216,7 @@ public class TileGrid extends TileMachine { nbt.setInteger(NBT_SORTING_DIRECTION, sortingDirection); nbt.setInteger(NBT_SORTING_TYPE, sortingType); + nbt.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode); } @Override @@ -207,6 +225,7 @@ public class TileGrid extends TileMachine { buf.writeInt(sortingDirection); buf.writeInt(sortingType); + buf.writeInt(searchBoxMode); } @Override @@ -215,6 +234,7 @@ public class TileGrid extends TileMachine { sortingDirection = buf.readInt(); sortingType = buf.readInt(); + searchBoxMode = buf.readInt(); } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index b50764d79..949b66bd8 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -47,13 +47,15 @@ sidebutton.refinedstorage:redstone_mode.0=Ignore redstone signal sidebutton.refinedstorage:redstone_mode.1=Only work with redstone signal sidebutton.refinedstorage:redstone_mode.2=Only work without redstone signal -sidebutton.refinedstorage:sorting.direction=Sorting Direction -sidebutton.refinedstorage:sorting.direction.0=Ascending -sidebutton.refinedstorage:sorting.direction.1=Descending - -sidebutton.refinedstorage:sorting.type=Sorting Type -sidebutton.refinedstorage:sorting.type.0=Quantity -sidebutton.refinedstorage:sorting.type.1=Name +sidebutton.refinedstorage:grid.sorting.direction=Sorting Direction +sidebutton.refinedstorage:grid.sorting.direction.0=Ascending +sidebutton.refinedstorage:grid.sorting.direction.1=Descending +sidebutton.refinedstorage:grid.sorting.type=Sorting Type +sidebutton.refinedstorage:grid.sorting.type.0=Quantity +sidebutton.refinedstorage:grid.sorting.type.1=Name +sidebutton.refinedstorage:grid.search_box_mode=Search Box Mode +sidebutton.refinedstorage:grid.search_box_mode.0=Normal +sidebutton.refinedstorage:grid.search_box_mode.1=JEI Synchronized sidebutton.refinedstorage:mode=Mode sidebutton.refinedstorage:mode.whitelist=Whitelist diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index b57f86d95..d939ed30a 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -47,13 +47,15 @@ sidebutton.refinedstorage:redstone_mode.0=Redstone negeren sidebutton.refinedstorage:redstone_mode.1=Alleen werken met redstone signaal sidebutton.refinedstorage:redstone_mode.2=Alleen werken zonder redstone signaal -sidebutton.refinedstorage:sorting.direction=Sorteer Richting -sidebutton.refinedstorage:sorting.direction.0=Oplopend -sidebutton.refinedstorage:sorting.direction.1=Aflopend - -sidebutton.refinedstorage:sorting.type=Sorteer Type -sidebutton.refinedstorage:sorting.type.0=Hoeveelheid -sidebutton.refinedstorage:sorting.type.1=Naam +sidebutton.refinedstorage:grid.sorting.direction=Sorteer Richting +sidebutton.refinedstorage:grid.sorting.direction.0=Oplopend +sidebutton.refinedstorage:grid.sorting.direction.1=Aflopend +sidebutton.refinedstorage:grid.sorting.type=Sorteer Type +sidebutton.refinedstorage:grid.sorting.type.0=Hoeveelheid +sidebutton.refinedstorage:grid.sorting.type.1=Naam +sidebutton.refinedstorage:grid.search_box_mode=Zoekbalk Mode +sidebutton.refinedstorage:grid.search_box_mode.0=Normaal +sidebutton.refinedstorage:grid.search_box_mode.1=JEI Gesynchronizeerd sidebutton.refinedstorage:mode=Mode sidebutton.refinedstorage:mode.whitelist=Whitelist diff --git a/src/main/resources/assets/refinedstorage/textures/icons.png b/src/main/resources/assets/refinedstorage/textures/icons.png index 19f326da41151a32834b8a81cda722e9b7ceeba2..2508d63f8640073417d90a10595f689c676ecae8 100755 GIT binary patch delta 1269 zcmV^*YTdU|th=?=C7^9Vu=7`s-@W(Dk|~g%Gv|AshdK95^2_(m zO&$Uv6ikLNrvwRWNXwcCz&$+q6>ueHC0L7DDVWZgb1VQOuUP>rzzOIWI$E!;Vv!dP z*?$3U>bW_8KL}WT=j~1d(d|9UVLQN%J@`_bi9*0Ga!>hg>EPfmg8r z(d|9U;X6PEA4K{H-$0MZ_MW554hSzrB7B6G9>)S?d(Y8r2ei)kMI@kg1`CkwJx8}4 z@aCYOJrW?jgKY0Py6u4a!+!WkfbD6ry?^KEwgcWeCI?wZ0$fj#?L9}=9q^z%Cf^tP zo{;T5N4FgS^80EqzUV@FP4ja2APPuYQ~;8eNI)TDBHMEd<}3()1;_;0`8!AE65!|W zn3-$`+&i!epca5f1cifr1;7AGzS&=ZGk|5zIY7WYJ-4vTc_1nPNs9_VhAku;k$-?z zi_`!F$o!-RyZ|>prvWFR4gvA6zs{buU-p=L{0{I2l3)K}bQ%HmmNhUK8?e{kNB)U+ zKs_}-c0a}Z$qq;xaMN?lf4~lK0+^lzy#c=@0|LYV=lrpNu#RLS7Ql)MK*r#G5-~WP zTMFUw!q5vJTy1Y}{j=LxUKRlzoqs_wn(*{L0P~=gx)3 zb`y6B0oBp>KKcHS_U8LDGc#6zbQ5&~0Z&d(KRO)~8s7~%fq<#0DGd9FEPq3TE(UBT z5HLBpfj=S)HYO)S6LsS{fq;pLVBNoo_*yVN9-6ot+X)1Wjkyc%7#$5w(v5Ti0V5;9 z)pf_W!SHZsQr!#>69^a@`ga%nSFMI7-A$E1K(%@!V$%xf=nSt0GvHNl3{K}3{ecLQ z76_;ae&uNjSmvBaKoC?${eRNYEZrsee?qZ*8@A?pCk? zARzw+3YE{U|9W$4d++YfovrIXeN}1RC-~v}WJMq#gMAs42KUP??mNLW_&G=nPUn_= z1YqGI5pe4K?8(R6%72bZ(m4d22yXxN``@#*d0ETECe=xHz=aE^kN^C`>qlj2CpJkZ z5n!qP^7T^^Zen}zoqtC_ZT{$|-^t_NPi&%2BcLYx{rJZx<4bPPSp>-S4#U%5%tiug z^OClc2(Z^*o(g|F4*|9t*Es~Z>n{R=Q(l1Y#&!w;{`w0ibcrk*ED<8RQ>I00000NkvXXu0mjf^EOT< delta 1233 zcmV;?1TOp66t@(xR0ImZ000ia0czHX36ov~Cx4wuL_t(|UhSM|TU%8Wg(C^E!D=zg zAktP^s8DSQP|-Nnv6_R5TIZ=0>ujxc2xwan?ETfpea>0;=H?d2=iIg5=OOE?kT3ha zJ9!9G!DO&GC2FyTbgYR0JR*=^0ap@MqP2vTf@z;Q#{w|&niH@Bynwc$UE83Fiw*K+6v$lR|z@uZu%( zk?mbarwsu4eK(j~bRm7Fc{_X%1tcvh07*+MppY?hM$;b30@Fo2S8_7~s{;Fxm`5O7b=Ei7{$hzdZ`q5_b%fn*~V(0^!< z8h`+qpVUAQ;OFNw;04S>K=R|SvuE9hyUjge1A>9pkN+?_jez-vGti$HaMwRX{)snW zJ~cnKpJM*j2BZ!6={e>=8dPH+pR4vS+i`?oj}0S!pOxBziIyV z%=5boi;LDQEtphi5KtR^`J-!_H=liJx8?=ZMop^|2v}Sgd-wACpSM20vh&2bbJnm8h>;#;5vbT z@$n7(5n;43K5k9ijqd~k#>S%c@JqzkqR~-nl5Sil5HK?0FSuuT*qT;1(g_3%4MkVi zJ>N!ygVvK&Mo>45hN`T zP!Yl@P#18_IkA8!stkvtr+;3)pGtttF9!V4Bl90Q!eQVb0cDmI@B;k&DFgN1-g0lb zOkuzYaPwFEO}MXKlHu#U5dv17e`wlThl(zkwiN&u_q9NyU>bZMBmsBlmVE@^ z5Fin7>iqP{$NVY$AC*?;5O5;8{nzh*PtVTDStd5APOqJ^jUWEMRs{ z(sdF6?)uA1;g9Dbz;)w0hX8;5ML={a2ngM{P9Y#%f8m6D$i#6s(isHc`UC&^pPU&4 zypqt@Cprv@(ASswzuS4Ffd3Z)L;y|!{rvzw0c@xMBrPfcNt4(KW|JTa9+Myn9+Myn v9+Myn9+Myn9+Myn9+Myn2O2^yz}o)-!hcM@EQtr_00000NkvXXu0mjf-Zx1Q From 8d40203f84b172dcd7ed68011d99d65446d50312 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 30 Mar 2016 19:07:13 +0200 Subject: [PATCH 03/30] Make side buttons be left instead of right, fix some JEI stuff --- src/main/java/refinedstorage/gui/GuiBase.java | 13 +++++++++---- src/main/java/refinedstorage/gui/GuiGrid.java | 2 +- .../gui/sidebutton/SideButtonGridSearchBoxMode.java | 2 +- .../resources/assets/refinedstorage/lang/en_US.lang | 2 +- .../resources/assets/refinedstorage/lang/nl_NL.lang | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiBase.java b/src/main/java/refinedstorage/gui/GuiBase.java index 98adc423c..91cf46e58 100755 --- a/src/main/java/refinedstorage/gui/GuiBase.java +++ b/src/main/java/refinedstorage/gui/GuiBase.java @@ -24,6 +24,7 @@ public abstract class GuiBase extends GuiContainer { private int lastButtonId = 0; private int lastSideButtonY = 6; + private String sideButtonTooltip; protected int width; protected int height; @@ -78,17 +79,21 @@ public abstract class GuiBase extends GuiContainer { mouseX -= guiLeft; mouseY -= guiTop; + sideButtonTooltip = null; + for (SideButton sideButton : sideButtons) { - GL11.glDisable(GL11.GL_LIGHTING); sideButton.draw(this, sideButton.getX() + 2, sideButton.getY() + 1); - GL11.glEnable(GL11.GL_LIGHTING); if (inBounds(sideButton.getX(), sideButton.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT, mouseX, mouseY)) { - drawTooltip(mouseX, mouseY, sideButton.getTooltip(this)); + sideButtonTooltip = sideButton.getTooltip(this); } } drawForeground(mouseX, mouseY); + + if (sideButtonTooltip != null) { + drawTooltip(mouseX, mouseY, sideButtonTooltip); + } } @Override @@ -115,7 +120,7 @@ public abstract class GuiBase extends GuiContainer { } public void addSideButton(SideButton button) { - button.setX(xSize - 1); + button.setX(-SIDE_BUTTON_WIDTH + 1); button.setY(lastSideButtonY); button.setId(addButton(guiLeft + button.getX(), guiTop + button.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT).id); diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 38d6ee1ec..fcab053e4 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -293,7 +293,7 @@ public class GuiGrid extends GuiBase { @Override protected void keyTyped(char character, int keyCode) throws IOException { if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) { - if (PluginRefinedStorage.isJeiLoaded()) { + if (PluginRefinedStorage.isJeiLoaded() && grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { PluginRefinedStorage.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText()); } } else { diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index bdd0ce1b3..18e670f9d 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -26,7 +26,7 @@ public class SideButtonGridSearchBoxMode extends SideButton { @Override public void draw(GuiBase gui, int x, int y) { gui.bindTexture("icons.png"); - gui.drawTexture(x - 1, y + 2 - 1, 0, 96, 16, 16); + gui.drawTexture(x, y + 2 - 1, 0, 96, 16, 16); } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 949b66bd8..944d76393 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -55,7 +55,7 @@ sidebutton.refinedstorage:grid.sorting.type.0=Quantity sidebutton.refinedstorage:grid.sorting.type.1=Name sidebutton.refinedstorage:grid.search_box_mode=Search Box Mode sidebutton.refinedstorage:grid.search_box_mode.0=Normal -sidebutton.refinedstorage:grid.search_box_mode.1=JEI Synchronized +sidebutton.refinedstorage:grid.search_box_mode.1=JEI synchronized sidebutton.refinedstorage:mode=Mode sidebutton.refinedstorage:mode.whitelist=Whitelist diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index d939ed30a..ef922a6ab 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -55,7 +55,7 @@ sidebutton.refinedstorage:grid.sorting.type.0=Hoeveelheid sidebutton.refinedstorage:grid.sorting.type.1=Naam sidebutton.refinedstorage:grid.search_box_mode=Zoekbalk Mode sidebutton.refinedstorage:grid.search_box_mode.0=Normaal -sidebutton.refinedstorage:grid.search_box_mode.1=JEI Gesynchronizeerd +sidebutton.refinedstorage:grid.search_box_mode.1=JEI gesynchroniseerd sidebutton.refinedstorage:mode=Mode sidebutton.refinedstorage:mode.whitelist=Whitelist From 344ea7724fd95ae77c2bde3e5dda874cce02f048 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 30 Mar 2016 19:09:06 +0200 Subject: [PATCH 04/30] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3092b64a1..d22f3b2d2 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ - When placing Importer, Exporter or External Storage with SHIFT, it will have the opposite direction. This is for easy placement behind other blocks (furnaces for example) - Added mass crafting of items with shift in Crafting Grid - Added JEI recipe transfering in Crafting Grid +- Grid can synchronize with JEI +- Side buttons in machine GUIs are now left, not right ### 0.4.1 **Bugfixes** From 6ff47cc9d01ace38647137b575f71f858e8022ee Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 30 Mar 2016 20:45:43 +0200 Subject: [PATCH 05/30] Update changelog again --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d22f3b2d2..36a7a896c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,13 @@ **Bugfixes** - Fixed clicking sound in Grid - Fixed a bunch of crashes -- Fixed exporter not exporting is some cases -- Fixed importer not importing in some cases -- Fixed controller drawing RF every 20 ticks instead of every tick +- Fixed Exporter not exporting is some cases +- Fixed Importer not importing in some cases +- Fixed Controller drawing RF every 20 ticks instead of every tick - Fixed not being able to shift click from Crafting Grid crafting slots - Fixed new items inserted after crafting in Grid being laggy - Fixed flickering of items in Grid -- Fixed getting a stack of unstackable stuff from Grid +- Fixed getting a stack of unstackable items from Grid - Check if the Constructor can actually place said block in the world **Features** From 95da95ce562c38a74a2facdf0267a4f29996c8b4 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 31 Mar 2016 15:39:44 +0200 Subject: [PATCH 06/30] Fixed Cable not having a collision box --- CHANGELOG.md | 1 + src/main/java/refinedstorage/block/BlockCable.java | 12 +++--------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36a7a896c..2189a5702 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Fixed new items inserted after crafting in Grid being laggy - Fixed flickering of items in Grid - Fixed getting a stack of unstackable items from Grid +- Fixed Cable not having a collision box - Check if the Constructor can actually place said block in the world **Features** diff --git a/src/main/java/refinedstorage/block/BlockCable.java b/src/main/java/refinedstorage/block/BlockCable.java index 2aa216733..9fdb19e6f 100755 --- a/src/main/java/refinedstorage/block/BlockCable.java +++ b/src/main/java/refinedstorage/block/BlockCable.java @@ -9,11 +9,12 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; import refinedstorage.tile.TileController; import refinedstorage.tile.TileMachine; public class BlockCable extends BlockBase { + public static final AxisAlignedBB CABLE_AABB = new AxisAlignedBB(4 * (1F / 16F), 4 * (1F / 16F), 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F)); + public static final PropertyBool NORTH = PropertyBool.create("north"); public static final PropertyBool EAST = PropertyBool.create("east"); public static final PropertyBool SOUTH = PropertyBool.create("south"); @@ -64,14 +65,7 @@ public class BlockCable extends BlockBase { @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) { - float pixel = 1F / 16F; - - return new AxisAlignedBB(4 * pixel, 4 * pixel, 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel); - } - - @Override - public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos) { - return getBoundingBox(state, world, pos); + return CABLE_AABB; } @Override From c0ff1d62c2f79b33467a23ae11390ca183b27da4 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 31 Mar 2016 15:41:30 +0200 Subject: [PATCH 07/30] Reformat and optimize imports --- build.gradle | 10 +++++----- src/main/java/refinedstorage/gui/GuiGrid.java | 20 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 966a9baa9..ef8581b76 100755 --- a/build.gradle +++ b/build.gradle @@ -24,13 +24,13 @@ minecraft { } repositories { - maven { - url "http://dvs1.progwml6.com/files/maven" - } + maven { + url "http://dvs1.progwml6.com/files/maven" + } } dependencies { - deobfCompile "mezz.jei:jei_1.9:3.1.+" + deobfCompile "mezz.jei:jei_1.9:3.1.+" } processResources { @@ -40,7 +40,7 @@ processResources { from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' - expand 'version':project.version, 'mcversion':project.minecraft.version + expand 'version': project.version, 'mcversion': project.minecraft.version } from(sourceSets.main.resources.srcDirs) { diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index fcab053e4..c7467e83f 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -88,11 +88,11 @@ public class GuiGrid extends GuiBase { Collections.sort(items, new Comparator() { @Override public int compare(StorageItem o1, StorageItem o2) { - if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { - return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName()); - } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { - return o1.toItemStack().getDisplayName().compareTo(o2.toItemStack().getDisplayName()); - } + if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { + return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName()); + } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { + return o1.toItemStack().getDisplayName().compareTo(o2.toItemStack().getDisplayName()); + } return 0; } @@ -102,11 +102,11 @@ public class GuiGrid extends GuiBase { Collections.sort(items, new Comparator() { @Override public int compare(StorageItem o1, StorageItem o2) { - if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { - return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity()); - } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { - return Integer.valueOf(o1.getQuantity()).compareTo(o2.getQuantity()); - } + if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { + return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity()); + } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { + return Integer.valueOf(o1.getQuantity()).compareTo(o2.getQuantity()); + } return 0; } From ef451d67a37eabe01feac0ecf3a060a5a7eca511 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 31 Mar 2016 21:51:17 +0200 Subject: [PATCH 08/30] Use flag system instead of a billion booleans --- src/main/java/refinedstorage/gui/GuiGrid.java | 16 +++++-- .../network/MessageStoragePull.java | 42 ++++++++++++------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index c7467e83f..52980fcdd 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -257,11 +257,19 @@ public class GuiGrid extends GuiBase { if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), -1, clickedButton == 1)); } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { - boolean half = clickedButton == 1; - boolean shift = GuiScreen.isShiftKeyDown(); - boolean one = clickedButton == 2; + int flags = 0; - RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, half, one, shift)); + if (clickedButton == 1) { + flags |= MessageStoragePull.PULL_HALF; + } + if (GuiScreen.isShiftKeyDown()) { + flags |= MessageStoragePull.PULL_SHIFT; + } + if (clickedButton == 2) { + flags |= MessageStoragePull.PULL_ONE; + } + + RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, flags)); } else if (clickedClear) { RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear(grid)); } else { diff --git a/src/main/java/refinedstorage/network/MessageStoragePull.java b/src/main/java/refinedstorage/network/MessageStoragePull.java index 9ed5b2f11..03b5b7c0e 100755 --- a/src/main/java/refinedstorage/network/MessageStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageStoragePull.java @@ -10,25 +10,25 @@ import refinedstorage.storage.StorageItem; import refinedstorage.tile.TileController; public class MessageStoragePull extends MessageHandlerPlayerToServer implements IMessage { + public static final int PULL_HALF = 1; + public static final int PULL_ONE = 2; + public static final int PULL_SHIFT = 4; + private int x; private int y; private int z; private int id; - private boolean half; - private boolean one; - private boolean shift; + private int flags; public MessageStoragePull() { } - public MessageStoragePull(int x, int y, int z, int id, boolean half, boolean one, boolean shift) { + public MessageStoragePull(int x, int y, int z, int id, int flags) { this.x = x; this.y = y; this.z = z; this.id = id; - this.half = half; - this.one = one; - this.shift = shift; + this.flags = flags; } @Override @@ -37,9 +37,7 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer 1) { + if (message.isPullingHalf() && item.getQuantity() > 1) { quantity = item.getQuantity() / 2; if (quantity > 32) { quantity = 32; } - } else if (message.one) { + } else if (message.isPullingOne()) { quantity = 1; + } else if (message.isPullingWithShift()) { + // NO OP, the default quantity (64) will be fine } if (quantity > item.getType().getItemStackLimit(item.toItemStack())) { @@ -82,7 +92,7 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer Date: Fri, 1 Apr 2016 01:41:01 +0200 Subject: [PATCH 09/30] Wireless Grid changes The wireless grid used to be a hack, just opening the block's GUI it was bound to. Now it is bound to a controller, which means a grid is no longer needed on the network to actually use a wireless grid. Thanks to this I can also easily implement the wireless grid as an RF item (I now have the ability to throw the player out of the GUI when needed, for example: power is up) --- .../refinedstorage/RefinedStorageGui.java | 1 + .../java/refinedstorage/block/BlockGrid.java | 2 +- .../refinedstorage/block/EnumGridType.java | 4 +- .../container/ContainerGrid.java | 22 +++-- .../slot/SlotGridCraftingResult.java | 2 +- src/main/java/refinedstorage/gui/GuiGrid.java | 17 ++-- .../java/refinedstorage/gui/GuiHandler.java | 27 ++++++ .../SideButtonGridSearchBoxMode.java | 11 ++- .../SideButtonGridSortingDirection.java | 11 ++- .../sidebutton/SideButtonGridSortingType.java | 11 ++- .../refinedstorage/item/ItemWirelessGrid.java | 49 +++++++---- .../network/MessageGridCraftingClear.java | 2 +- .../network/MessageGridCraftingPush.java | 2 +- .../network/MessageGridCraftingTransfer.java | 2 +- .../network/MessageGridSettingsUpdate.java | 2 +- .../MessageWirelessGridSettingsUpdate.java | 62 +++++++++++++ .../refinedstorage/proxy/CommonProxy.java | 2 + .../refinedstorage/tile/TileController.java | 59 ++++++++++++- .../java/refinedstorage/tile/grid/IGrid.java | 27 ++++++ .../tile/{ => grid}/TileGrid.java | 28 +++++- .../tile/grid/WirelessGrid.java | 86 +++++++++++++++++++ .../assets/refinedstorage/lang/en_US.lang | 5 +- .../assets/refinedstorage/lang/nl_NL.lang | 7 +- 23 files changed, 375 insertions(+), 66 deletions(-) create mode 100755 src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java create mode 100755 src/main/java/refinedstorage/tile/grid/IGrid.java rename src/main/java/refinedstorage/tile/{ => grid}/TileGrid.java (88%) create mode 100755 src/main/java/refinedstorage/tile/grid/WirelessGrid.java diff --git a/src/main/java/refinedstorage/RefinedStorageGui.java b/src/main/java/refinedstorage/RefinedStorageGui.java index 646e4815e..bf9ba4959 100755 --- a/src/main/java/refinedstorage/RefinedStorageGui.java +++ b/src/main/java/refinedstorage/RefinedStorageGui.java @@ -13,4 +13,5 @@ public final class RefinedStorageGui { public static final int STORAGE = 11; public static final int RELAY = 12; public static final int INTERFACE = 13; + public static final int WIRELESS_GRID = 14; } diff --git a/src/main/java/refinedstorage/block/BlockGrid.java b/src/main/java/refinedstorage/block/BlockGrid.java index 1a3980d77..1bb905a13 100755 --- a/src/main/java/refinedstorage/block/BlockGrid.java +++ b/src/main/java/refinedstorage/block/BlockGrid.java @@ -15,7 +15,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; import java.util.List; diff --git a/src/main/java/refinedstorage/block/EnumGridType.java b/src/main/java/refinedstorage/block/EnumGridType.java index e2c6ff308..daef604a3 100755 --- a/src/main/java/refinedstorage/block/EnumGridType.java +++ b/src/main/java/refinedstorage/block/EnumGridType.java @@ -4,7 +4,8 @@ import net.minecraft.util.IStringSerializable; public enum EnumGridType implements IStringSerializable { NORMAL(0, "normal"), - CRAFTING(1, "crafting"); + CRAFTING(1, "crafting"), + WIRELESS(2, "wireless"); private int id; private String name; @@ -27,5 +28,4 @@ public enum EnumGridType implements IStringSerializable { public String toString() { return name; } - } diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 09ea57ede..2aefdf39a 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -6,7 +6,8 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import refinedstorage.block.EnumGridType; import refinedstorage.container.slot.SlotGridCraftingResult; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.IGrid; +import refinedstorage.tile.grid.TileGrid; import java.util.ArrayList; import java.util.List; @@ -14,9 +15,9 @@ import java.util.List; public class ContainerGrid extends ContainerBase { private List craftingSlots = new ArrayList(); - private TileGrid grid; + private IGrid grid; - public ContainerGrid(EntityPlayer player, TileGrid grid) { + public ContainerGrid(EntityPlayer player, IGrid grid) { super(player); this.grid = grid; @@ -28,7 +29,7 @@ public class ContainerGrid extends ContainerBase { int y = 106; for (int i = 0; i < 9; ++i) { - Slot slot = new Slot(grid.getCraftingInventory(), i, x, y); + Slot slot = new Slot(((TileGrid) grid).getCraftingInventory(), i, x, y); craftingSlots.add(slot); @@ -42,12 +43,12 @@ public class ContainerGrid extends ContainerBase { } } - addSlotToContainer(new SlotGridCraftingResult(this, player, grid.getCraftingInventory(), grid.getCraftingResultInventory(), grid, 0, 133 + 4, 120 + 4)); + addSlotToContainer(new SlotGridCraftingResult(this, player, ((TileGrid) grid).getCraftingInventory(), ((TileGrid) grid).getCraftingResultInventory(), (TileGrid) grid, 0, 133 + 4, 120 + 4)); } } public TileGrid getGrid() { - return grid; + return (TileGrid) grid; } public List getCraftingSlots() { @@ -73,4 +74,13 @@ public class ContainerGrid extends ContainerBase { } } } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + + if (grid.getType() == EnumGridType.WIRELESS && grid.isConnected()) { + grid.getController().onCloseWirelessGrid(player); + } + } } diff --git a/src/main/java/refinedstorage/container/slot/SlotGridCraftingResult.java b/src/main/java/refinedstorage/container/slot/SlotGridCraftingResult.java index 3bf56c7b5..940b27b45 100755 --- a/src/main/java/refinedstorage/container/slot/SlotGridCraftingResult.java +++ b/src/main/java/refinedstorage/container/slot/SlotGridCraftingResult.java @@ -7,7 +7,7 @@ import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.FMLCommonHandler; import refinedstorage.container.ContainerGrid; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; public class SlotGridCraftingResult extends SlotCrafting { private ContainerGrid container; diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 52980fcdd..267a6c401 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -21,14 +21,15 @@ import refinedstorage.network.MessageStoragePull; import refinedstorage.network.MessageStoragePush; import refinedstorage.storage.StorageItem; import refinedstorage.tile.TileController; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.IGrid; +import refinedstorage.tile.grid.TileGrid; import java.io.IOException; import java.util.*; public class GuiGrid extends GuiBase { private ContainerGrid container; - private TileGrid grid; + private IGrid grid; private List items = new ArrayList(); @@ -39,7 +40,7 @@ public class GuiGrid extends GuiBase { private Scrollbar scrollbar; - public GuiGrid(ContainerGrid container, TileGrid grid) { + public GuiGrid(ContainerGrid container, IGrid grid) { super(container, 193, grid.getType() == EnumGridType.CRAFTING ? 256 : 208); this.container = container; @@ -49,7 +50,9 @@ public class GuiGrid extends GuiBase { @Override public void init(int x, int y) { - addSideButton(new SideButtonRedstoneMode(grid)); + if (grid.getRedstoneModeSetting() != null) { + addSideButton(new SideButtonRedstoneMode(grid.getRedstoneModeSetting())); + } addSideButton(new SideButtonGridSortingDirection(grid)); addSideButton(new SideButtonGridSortingType(grid)); @@ -162,7 +165,7 @@ public class GuiGrid extends GuiBase { public void drawForeground(int mouseX, int mouseY) { scrollbar.update(this, mouseX, mouseY); - drawString(7, 7, t("gui.refinedstorage:grid")); + drawString(7, 7, t(grid.getType() == EnumGridType.WIRELESS ? "gui.refinedstorage:wireless_grid" : "gui.refinedstorage:grid")); if (grid.getType() == EnumGridType.CRAFTING) { drawString(7, 94, t("container.crafting")); @@ -271,7 +274,7 @@ public class GuiGrid extends GuiBase { RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, flags)); } else if (clickedClear) { - RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear(grid)); + RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear((TileGrid) grid)); } else { for (Slot slot : container.getPlayerInventorySlots()) { if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) { @@ -285,7 +288,7 @@ public class GuiGrid extends GuiBase { for (Slot slot : container.getCraftingSlots()) { if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) { if (GuiScreen.isShiftKeyDown()) { - RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingPush(grid, slot.getSlotIndex())); + RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingPush((TileGrid) grid, slot.getSlotIndex())); } } } diff --git a/src/main/java/refinedstorage/gui/GuiHandler.java b/src/main/java/refinedstorage/gui/GuiHandler.java index 04f8ccf15..19461d667 100755 --- a/src/main/java/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/refinedstorage/gui/GuiHandler.java @@ -3,6 +3,7 @@ package refinedstorage.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; @@ -10,6 +11,8 @@ import refinedstorage.RefinedStorageGui; import refinedstorage.container.*; import refinedstorage.storage.IStorageGui; import refinedstorage.tile.*; +import refinedstorage.tile.grid.TileGrid; +import refinedstorage.tile.grid.WirelessGrid; public class GuiHandler implements IGuiHandler { private Container getContainer(int ID, EntityPlayer player, TileEntity tile) { @@ -45,9 +48,31 @@ public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + if (ID == RefinedStorageGui.WIRELESS_GRID) { + return getWirelessGridContainer(world, player, x); + } + return getContainer(ID, player, world.getTileEntity(new BlockPos(x, y, z))); } + private WirelessGrid getWirelessGrid(World world, EntityPlayer player, int hand) { + EnumHand realHand = hand == 0 ? EnumHand.MAIN_HAND : EnumHand.OFF_HAND; + + return new WirelessGrid(player.getHeldItem(realHand), realHand, world); + } + + private ContainerGrid getWirelessGridContainer(World world, EntityPlayer player, int hand) { + WirelessGrid wirelessGrid = getWirelessGrid(world, player, hand); + + return new ContainerGrid(player, wirelessGrid); + } + + private GuiGrid getWirelessGridGui(World world, EntityPlayer player, int hand) { + WirelessGrid wirelessGrid = getWirelessGrid(world, player, hand); + + return new GuiGrid(new ContainerGrid(player, wirelessGrid), wirelessGrid); + } + @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(new BlockPos(x, y, z)); @@ -57,6 +82,8 @@ public class GuiHandler implements IGuiHandler { return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile); case RefinedStorageGui.GRID: return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile); + case RefinedStorageGui.WIRELESS_GRID: + return getWirelessGridGui(world, player, x); case RefinedStorageGui.DISK_DRIVE: return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png"); case RefinedStorageGui.IMPORTER: diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index 18e670f9d..42f362f9b 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -1,15 +1,14 @@ package refinedstorage.gui.sidebutton; import net.minecraft.util.text.TextFormatting; -import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; -import refinedstorage.network.MessageGridSettingsUpdate; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.IGrid; +import refinedstorage.tile.grid.TileGrid; public class SideButtonGridSearchBoxMode extends SideButton { - private TileGrid grid; + private IGrid grid; - public SideButtonGridSearchBoxMode(TileGrid grid) { + public SideButtonGridSearchBoxMode(IGrid grid) { this.grid = grid; } @@ -39,6 +38,6 @@ public class SideButtonGridSearchBoxMode extends SideButton { mode = TileGrid.SEARCH_BOX_MODE_NORMAL; } - RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, grid.getSortingDirection(), grid.getSortingType(), mode)); + grid.onSearchBoxModeChanged(mode); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java index af1540f08..0fe678ef8 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java @@ -1,15 +1,14 @@ package refinedstorage.gui.sidebutton; import net.minecraft.util.text.TextFormatting; -import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; -import refinedstorage.network.MessageGridSettingsUpdate; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.IGrid; +import refinedstorage.tile.grid.TileGrid; public class SideButtonGridSortingDirection extends SideButton { - private TileGrid grid; + private IGrid grid; - public SideButtonGridSortingDirection(TileGrid grid) { + public SideButtonGridSortingDirection(IGrid grid) { this.grid = grid; } @@ -39,6 +38,6 @@ public class SideButtonGridSortingDirection extends SideButton { dir = TileGrid.SORTING_DIRECTION_ASCENDING; } - RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, dir, grid.getSortingType(), grid.getSearchBoxMode())); + grid.onSortingDirectionChanged(dir); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java index 8e02f4b18..3668dcc21 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java @@ -1,15 +1,14 @@ package refinedstorage.gui.sidebutton; import net.minecraft.util.text.TextFormatting; -import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; -import refinedstorage.network.MessageGridSettingsUpdate; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.IGrid; +import refinedstorage.tile.grid.TileGrid; public class SideButtonGridSortingType extends SideButton { - private TileGrid grid; + private IGrid grid; - public SideButtonGridSortingType(TileGrid grid) { + public SideButtonGridSortingType(IGrid grid) { this.grid = grid; } @@ -39,6 +38,6 @@ public class SideButtonGridSortingType extends SideButton { type = TileGrid.SORTING_TYPE_QUANTITY; } - RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(grid, grid.getSortingDirection(), type, grid.getSearchBoxMode())); + grid.onSortingTypeChanged(type); } } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 25debec53..87a211ebe 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -13,17 +13,19 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; -import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; -import refinedstorage.RefinedStorageGui; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.TileController; +import refinedstorage.tile.grid.TileGrid; import java.util.List; public class ItemWirelessGrid extends ItemBase { - public static final String NBT_GRID_X = "GridX"; - public static final String NBT_GRID_Y = "GridY"; - public static final String NBT_GRID_Z = "GridZ"; + public static final String NBT_CONTROLLER_X = "ControllerX"; + public static final String NBT_CONTROLLER_Y = "ControllerY"; + public static final String NBT_CONTROLLER_Z = "ControllerZ"; + public static final String NBT_SORTING_TYPE = "SortingType"; + public static final String NBT_SORTING_DIRECTION = "SortingDirection"; + public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; public ItemWirelessGrid() { super("wireless_grid"); @@ -44,12 +46,15 @@ public class ItemWirelessGrid extends ItemBase { public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { Block block = worldIn.getBlockState(pos).getBlock(); - if (block == RefinedStorageBlocks.GRID) { + if (block == RefinedStorageBlocks.CONTROLLER) { NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger(NBT_GRID_X, pos.getX()); - tag.setInteger(NBT_GRID_Y, pos.getY()); - tag.setInteger(NBT_GRID_Z, pos.getZ()); + tag.setInteger(NBT_CONTROLLER_X, pos.getX()); + tag.setInteger(NBT_CONTROLLER_Y, pos.getY()); + tag.setInteger(NBT_CONTROLLER_Z, pos.getZ()); + tag.setInteger(NBT_SORTING_DIRECTION, TileGrid.SORTING_DIRECTION_DESCENDING); + tag.setInteger(NBT_SORTING_TYPE, TileGrid.SORTING_TYPE_NAME); + tag.setInteger(NBT_SEARCH_BOX_MODE, TileGrid.SEARCH_BOX_MODE_NORMAL); stack.setTagCompound(tag); @@ -66,8 +71,8 @@ public class ItemWirelessGrid extends ItemBase { if (isInRange(stack, player)) { TileEntity tile = world.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))); - if (tile instanceof TileGrid) { - player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.GRID, world, tile.getPos().getX(), tile.getPos().getY(), tile.getPos().getZ()); + if (tile instanceof TileController) { + ((TileController) tile).onOpenWirelessGrid(player, hand); return new ActionResult(EnumActionResult.PASS, stack); } else { @@ -87,15 +92,27 @@ public class ItemWirelessGrid extends ItemBase { } public static int getX(ItemStack stack) { - return stack.getTagCompound().getInteger(NBT_GRID_X); + return stack.getTagCompound().getInteger(NBT_CONTROLLER_X); } public static int getY(ItemStack stack) { - return stack.getTagCompound().getInteger(NBT_GRID_Y); + return stack.getTagCompound().getInteger(NBT_CONTROLLER_Y); } public static int getZ(ItemStack stack) { - return stack.getTagCompound().getInteger(NBT_GRID_Z); + return stack.getTagCompound().getInteger(NBT_CONTROLLER_Z); + } + + public static int getSortingType(ItemStack stack) { + return stack.getTagCompound().getInteger(NBT_SORTING_TYPE); + } + + public static int getSortingDirection(ItemStack stack) { + return stack.getTagCompound().getInteger(NBT_SORTING_DIRECTION); + } + + public static int getSearchBoxMode(ItemStack stack) { + return stack.getTagCompound().getInteger(NBT_SEARCH_BOX_MODE); } public static boolean isInRange(ItemStack stack, EntityPlayer player) { @@ -103,6 +120,6 @@ public class ItemWirelessGrid extends ItemBase { } public static boolean isValid(ItemStack stack) { - return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_GRID_X) && stack.getTagCompound().hasKey(NBT_GRID_Y) && stack.getTagCompound().hasKey(NBT_GRID_Z); + return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z); } } diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingClear.java b/src/main/java/refinedstorage/network/MessageGridCraftingClear.java index ef3bc8cf3..4538c9787 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingClear.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingClear.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import refinedstorage.block.EnumGridType; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; public class MessageGridCraftingClear extends MessageHandlerPlayerToServer implements IMessage { private int x; diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingPush.java b/src/main/java/refinedstorage/network/MessageGridCraftingPush.java index 6fc60fe59..eab765869 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingPush.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingPush.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import refinedstorage.block.EnumGridType; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; public class MessageGridCraftingPush extends MessageHandlerPlayerToServer implements IMessage { private int x; diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingTransfer.java b/src/main/java/refinedstorage/network/MessageGridCraftingTransfer.java index 135d09a6e..69e5e3c2d 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingTransfer.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingTransfer.java @@ -10,7 +10,7 @@ import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; public class MessageGridCraftingTransfer extends MessageHandlerPlayerToServer implements IMessage { private NBTTagCompound recipe; diff --git a/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java index 66d5ad038..65d348a27 100755 --- a/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java +++ b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java @@ -5,7 +5,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.tile.TileGrid; +import refinedstorage.tile.grid.TileGrid; public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer implements IMessage { private int x; diff --git a/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java b/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java new file mode 100755 index 000000000..88c8eab9a --- /dev/null +++ b/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java @@ -0,0 +1,62 @@ +package refinedstorage.network; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; +import net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import refinedstorage.RefinedStorageItems; +import refinedstorage.item.ItemWirelessGrid; +import refinedstorage.tile.grid.TileGrid; + +public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToServer implements IMessage { + private int hand; + private int sortingDirection; + private int sortingType; + private int searchBoxMode; + + public MessageWirelessGridSettingsUpdate() { + } + + public MessageWirelessGridSettingsUpdate(int hand, int sortingDirection, int sortingType, int searchBoxMode) { + this.hand = hand; + this.sortingDirection = sortingDirection; + this.sortingType = sortingType; + this.searchBoxMode = searchBoxMode; + } + + @Override + public void fromBytes(ByteBuf buf) { + hand = buf.readInt(); + sortingDirection = buf.readInt(); + sortingType = buf.readInt(); + searchBoxMode = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(hand); + buf.writeInt(sortingDirection); + buf.writeInt(sortingType); + buf.writeInt(searchBoxMode); + } + + @Override + public void handle(MessageWirelessGridSettingsUpdate message, EntityPlayerMP player) { + ItemStack held = player.getHeldItem(hand == 1 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND); + + if (held != null && held.getItem() == RefinedStorageItems.WIRELESS_GRID && held.getTagCompound() != null) { + if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) { + held.getTagCompound().setInteger(ItemWirelessGrid.NBT_SORTING_DIRECTION, message.sortingDirection); + } + + if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) { + held.getTagCompound().setInteger(ItemWirelessGrid.NBT_SORTING_TYPE, message.sortingType); + } + + if (message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_NORMAL || message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { + held.getTagCompound().setInteger(ItemWirelessGrid.NBT_SEARCH_BOX_MODE, message.searchBoxMode); + } + } + } +} diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 4df5be14c..2c2d6d0fe 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -20,6 +20,7 @@ import refinedstorage.item.*; import refinedstorage.network.*; import refinedstorage.storage.NBTStorage; import refinedstorage.tile.*; +import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.solderer.*; import static refinedstorage.RefinedStorage.ID; @@ -39,6 +40,7 @@ public class CommonProxy { RefinedStorage.NETWORK.registerMessage(MessageGridSettingsUpdate.class, MessageGridSettingsUpdate.class, 11, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER); + RefinedStorage.NETWORK.registerMessage(MessageWirelessGridSettingsUpdate.class, MessageWirelessGridSettingsUpdate.class, 14, Side.SERVER); NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index a0e081fe1..12e15600d 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -3,12 +3,16 @@ package refinedstorage.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; +import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; +import refinedstorage.RefinedStorageGui; import refinedstorage.block.BlockController; import refinedstorage.block.EnumControllerType; import refinedstorage.storage.IStorage; @@ -18,14 +22,19 @@ import refinedstorage.tile.settings.IRedstoneModeSetting; import refinedstorage.tile.settings.RedstoneMode; import refinedstorage.util.InventoryUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.util.*; public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeSetting { + public class WirelessGridConsumer { + public EntityPlayer player; + public EnumHand hand; + public ItemStack wirelessGrid; + } + private List items = new ArrayList(); private List storages = new ArrayList(); + private List wirelessGridConsumers = new ArrayList(); + private List wirelessGridConsumersMarkedForRemoval = new ArrayList(); private RedstoneMode redstoneMode = RedstoneMode.IGNORE; @@ -107,6 +116,19 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor } } + wirelessGridConsumers.removeAll(wirelessGridConsumersMarkedForRemoval); + wirelessGridConsumersMarkedForRemoval.clear(); + + Iterator it = wirelessGridConsumers.iterator(); + while (it.hasNext()) { + WirelessGridConsumer consumer = it.next(); + + if (!InventoryUtils.compareStack(consumer.wirelessGrid, consumer.player.getHeldItem(consumer.hand))) { + onCloseWirelessGrid(consumer.player); + consumer.player.closeScreen(); + } + } + if (lastEnergy != energy.getEnergyStored()) { worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); } @@ -248,6 +270,35 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor return newStack; } + public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) { + WirelessGridConsumer consumer = new WirelessGridConsumer(); + consumer.hand = hand; + consumer.player = player; + consumer.wirelessGrid = player.getHeldItem(hand); + wirelessGridConsumers.add(consumer); + + player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, hand == EnumHand.OFF_HAND ? 1 : 0, 0, 0); + } + + public void onCloseWirelessGrid(EntityPlayer player) { + WirelessGridConsumer consumer = getWirelessGridConsumer(player); + + if (consumer != null) { + wirelessGridConsumersMarkedForRemoval.add(consumer); + } + } + + public WirelessGridConsumer getWirelessGridConsumer(EntityPlayer player) { + Iterator it = wirelessGridConsumers.iterator(); + while (it.hasNext()) { + WirelessGridConsumer consumer = it.next(); + if (consumer.player == player) { + return consumer; + } + } + return null; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/refinedstorage/tile/grid/IGrid.java b/src/main/java/refinedstorage/tile/grid/IGrid.java new file mode 100755 index 000000000..0406c8373 --- /dev/null +++ b/src/main/java/refinedstorage/tile/grid/IGrid.java @@ -0,0 +1,27 @@ +package refinedstorage.tile.grid; + +import refinedstorage.block.EnumGridType; +import refinedstorage.tile.TileController; +import refinedstorage.tile.settings.IRedstoneModeSetting; + +public interface IGrid { + EnumGridType getType(); + + TileController getController(); + + int getSortingType(); + + int getSortingDirection(); + + int getSearchBoxMode(); + + void onSortingTypeChanged(int type); + + void onSortingDirectionChanged(int direction); + + void onSearchBoxModeChanged(int searchBoxMode); + + IRedstoneModeSetting getRedstoneModeSetting(); + + boolean isConnected(); +} diff --git a/src/main/java/refinedstorage/tile/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java similarity index 88% rename from src/main/java/refinedstorage/tile/TileGrid.java rename to src/main/java/refinedstorage/tile/grid/TileGrid.java index 928149317..ab6891320 100755 --- a/src/main/java/refinedstorage/tile/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -1,4 +1,4 @@ -package refinedstorage.tile; +package refinedstorage.tile.grid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; @@ -8,17 +8,21 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; +import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.block.BlockGrid; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; import refinedstorage.inventory.InventorySimple; +import refinedstorage.network.MessageGridSettingsUpdate; +import refinedstorage.tile.TileMachine; +import refinedstorage.tile.settings.IRedstoneModeSetting; import refinedstorage.util.InventoryUtils; import java.util.ArrayList; import java.util.List; -public class TileGrid extends TileMachine { +public class TileGrid extends TileMachine implements IGrid { public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SORTING_TYPE = "SortingType"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; @@ -185,6 +189,26 @@ public class TileGrid extends TileMachine { return searchBoxMode; } + @Override + public void onSortingTypeChanged(int type) { + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(this, sortingDirection, type, searchBoxMode)); + } + + @Override + public void onSortingDirectionChanged(int direction) { + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(this, direction, sortingType, searchBoxMode)); + } + + @Override + public void onSearchBoxModeChanged(int searchBoxMode) { + RefinedStorage.NETWORK.sendToServer(new MessageGridSettingsUpdate(this, sortingDirection, sortingType, searchBoxMode)); + } + + @Override + public IRedstoneModeSetting getRedstoneModeSetting() { + return this; + } + public void setSearchBoxMode(int searchBoxMode) { this.searchBoxMode = searchBoxMode; } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java new file mode 100755 index 000000000..2e67077fe --- /dev/null +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -0,0 +1,86 @@ +package refinedstorage.tile.grid; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import refinedstorage.RefinedStorage; +import refinedstorage.block.EnumGridType; +import refinedstorage.item.ItemWirelessGrid; +import refinedstorage.network.MessageWirelessGridSettingsUpdate; +import refinedstorage.tile.TileController; +import refinedstorage.tile.settings.IRedstoneModeSetting; + +public class WirelessGrid implements IGrid { + private ItemStack stack; + private EnumHand hand; + private World world; + private int sortingType; + private int sortingDirection; + private int searchBoxMode; + + public WirelessGrid(ItemStack stack, EnumHand hand, World world) { + this.stack = stack; + this.hand = hand; + this.world = world; + this.sortingType = ItemWirelessGrid.getSortingType(stack); + this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack); + this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack); + } + + @Override + public EnumGridType getType() { + return EnumGridType.WIRELESS; + } + + @Override + public TileController getController() { + return (TileController) world.getTileEntity(new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack))); + } + + @Override + public int getSortingType() { + return sortingType; + } + + @Override + public int getSortingDirection() { + return sortingDirection; + } + + @Override + public int getSearchBoxMode() { + return searchBoxMode; + } + + @Override + public void onSortingTypeChanged(int type) { + RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, getSortingDirection(), type, getSearchBoxMode())); + + this.sortingType = type; + } + + @Override + public void onSortingDirectionChanged(int direction) { + RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, direction, getSortingType(), getSearchBoxMode())); + + this.sortingDirection = direction; + } + + @Override + public void onSearchBoxModeChanged(int searchBoxMode) { + RefinedStorage.NETWORK.sendToServer(new MessageWirelessGridSettingsUpdate(hand == EnumHand.OFF_HAND ? 1 : 0, getSortingDirection(), getSortingType(), searchBoxMode)); + + this.searchBoxMode = searchBoxMode; + } + + @Override + public IRedstoneModeSetting getRedstoneModeSetting() { + return null; + } + + @Override + public boolean isConnected() { + return getController() instanceof TileController; + } +} diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 944d76393..32fce5224 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -6,6 +6,7 @@ gui.refinedstorage:controller.machine_position.x=X: %d gui.refinedstorage:controller.machine_position.y=Y: %d gui.refinedstorage:controller.machine_position.z=Z: %d gui.refinedstorage:grid=Grid +gui.refinedstorage:wireless_grid=Wireless Grid gui.refinedstorage:disk_drive=Drive gui.refinedstorage:external_storage=External Storage gui.refinedstorage:importer=Importer @@ -31,8 +32,8 @@ misc.refinedstorage:storage.full=%d%% full misc.refinedstorage:wireless_grid.tooltip.0=X: %d misc.refinedstorage:wireless_grid.tooltip.1=Y: %d misc.refinedstorage:wireless_grid.tooltip.2=Z: %d -misc.refinedstorage:wireless_grid.out_of_range=Grid out of range. -misc.refinedstorage:wireless_grid.not_found=Grid not found. +misc.refinedstorage:wireless_grid.out_of_range=Controller out of range. +misc.refinedstorage:wireless_grid.not_found=Controller not found. misc.refinedstorage:yes=Yes misc.refinedstorage:no=No diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index ef922a6ab..377f9bf30 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -6,6 +6,7 @@ gui.refinedstorage:controller.machine_position.x=X: %d gui.refinedstorage:controller.machine_position.y=Y: %d gui.refinedstorage:controller.machine_position.z=Z: %d gui.refinedstorage:grid=Rooster +gui.refinedstorage:wireless_grid=Draadloos Rooster gui.refinedstorage:disk_drive=Schijf gui.refinedstorage:external_storage=Externe Opslag gui.refinedstorage:importer=Importeur @@ -31,8 +32,8 @@ misc.refinedstorage:storage.full=%d%% vol misc.refinedstorage:wireless_grid.tooltip.0=X: %d misc.refinedstorage:wireless_grid.tooltip.1=Y: %d misc.refinedstorage:wireless_grid.tooltip.2=Z: %d -misc.refinedstorage:wireless_grid.out_of_range=Rooster buiten bereik. -misc.refinedstorage:wireless_grid.not_found=Rooster werd niet gevonden. +misc.refinedstorage:wireless_grid.out_of_range=Controller buiten bereik. +misc.refinedstorage:wireless_grid.not_found=Controller werd niet gevonden. misc.refinedstorage:yes=Ja misc.refinedstorage:no=Nee @@ -93,7 +94,7 @@ item.refinedstorage:storage_disk.1.name=4k Opslagschijf item.refinedstorage:storage_disk.2.name=16k Opslagschijf item.refinedstorage:storage_disk.3.name=64k Opslagschijf item.refinedstorage:storage_disk.4.name=Creative Opslagschijf -item.refinedstorage:wireless_grid.name=Draadloze Rooster +item.refinedstorage:wireless_grid.name=Draadloos Rooster item.refinedstorage:quartz_enriched_iron.name=Quartz Verrijkt Iron item.refinedstorage:core.0.name=Constructie Core item.refinedstorage:core.1.name=Destructie Core From 11712a762e9d7949ab89d544d7c57e17f94bf27d Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 01:51:48 +0200 Subject: [PATCH 10/30] We can't have EnumGridType.WIRELESS, iterferes with block stuff --- src/main/java/refinedstorage/block/EnumGridType.java | 3 +-- .../java/refinedstorage/container/ContainerGrid.java | 3 ++- src/main/java/refinedstorage/gui/GuiGrid.java | 2 +- src/main/java/refinedstorage/tile/grid/IGrid.java | 2 ++ src/main/java/refinedstorage/tile/grid/TileGrid.java | 5 +++++ src/main/java/refinedstorage/tile/grid/WirelessGrid.java | 9 +++++++-- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/refinedstorage/block/EnumGridType.java b/src/main/java/refinedstorage/block/EnumGridType.java index daef604a3..7ad35d165 100755 --- a/src/main/java/refinedstorage/block/EnumGridType.java +++ b/src/main/java/refinedstorage/block/EnumGridType.java @@ -4,8 +4,7 @@ import net.minecraft.util.IStringSerializable; public enum EnumGridType implements IStringSerializable { NORMAL(0, "normal"), - CRAFTING(1, "crafting"), - WIRELESS(2, "wireless"); + CRAFTING(1, "crafting"); private int id; private String name; diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 2aefdf39a..6aed298b3 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -6,6 +6,7 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import refinedstorage.block.EnumGridType; import refinedstorage.container.slot.SlotGridCraftingResult; +import refinedstorage.tile.TileController; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; @@ -79,7 +80,7 @@ public class ContainerGrid extends ContainerBase { public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); - if (grid.getType() == EnumGridType.WIRELESS && grid.isConnected()) { + if (grid.getController() instanceof TileController && grid.isWireless()) { grid.getController().onCloseWirelessGrid(player); } } diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 267a6c401..3088fbeb7 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -165,7 +165,7 @@ public class GuiGrid extends GuiBase { public void drawForeground(int mouseX, int mouseY) { scrollbar.update(this, mouseX, mouseY); - drawString(7, 7, t(grid.getType() == EnumGridType.WIRELESS ? "gui.refinedstorage:wireless_grid" : "gui.refinedstorage:grid")); + drawString(7, 7, t(grid.isWireless() ? "gui.refinedstorage:wireless_grid" : "gui.refinedstorage:grid")); if (grid.getType() == EnumGridType.CRAFTING) { drawString(7, 94, t("container.crafting")); diff --git a/src/main/java/refinedstorage/tile/grid/IGrid.java b/src/main/java/refinedstorage/tile/grid/IGrid.java index 0406c8373..825395005 100755 --- a/src/main/java/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/refinedstorage/tile/grid/IGrid.java @@ -24,4 +24,6 @@ public interface IGrid { IRedstoneModeSetting getRedstoneModeSetting(); boolean isConnected(); + + boolean isWireless(); } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index ab6891320..63feee7d1 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -209,6 +209,11 @@ public class TileGrid extends TileMachine implements IGrid { return this; } + @Override + public boolean isWireless() { + return false; + } + public void setSearchBoxMode(int searchBoxMode) { this.searchBoxMode = searchBoxMode; } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 2e67077fe..7df40e3d7 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -30,7 +30,7 @@ public class WirelessGrid implements IGrid { @Override public EnumGridType getType() { - return EnumGridType.WIRELESS; + return EnumGridType.NORMAL; } @Override @@ -81,6 +81,11 @@ public class WirelessGrid implements IGrid { @Override public boolean isConnected() { - return getController() instanceof TileController; + return getController() instanceof TileController && getController().isActive(); + } + + @Override + public boolean isWireless() { + return true; } } From 5e5d2c9e35c6cf3fd8c3c028c7c47a9f7cdea399 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 02:12:06 +0200 Subject: [PATCH 11/30] Bugfixes --- .../java/refinedstorage/gui/GuiHandler.java | 6 ++-- .../MessageWirelessGridSettingsUpdate.java | 4 +-- .../refinedstorage/tile/TileController.java | 28 ++++++++---------- .../tile/grid/WirelessGrid.java | 4 ++- .../tile/grid/WirelessGridConsumer.java | 29 +++++++++++++++++++ .../java/refinedstorage/util/HandUtils.java | 27 +++++++++++++++++ 6 files changed, 75 insertions(+), 23 deletions(-) create mode 100755 src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java create mode 100755 src/main/java/refinedstorage/util/HandUtils.java diff --git a/src/main/java/refinedstorage/gui/GuiHandler.java b/src/main/java/refinedstorage/gui/GuiHandler.java index 19461d667..1329c1aab 100755 --- a/src/main/java/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/refinedstorage/gui/GuiHandler.java @@ -3,7 +3,6 @@ package refinedstorage.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; @@ -13,6 +12,7 @@ import refinedstorage.storage.IStorageGui; import refinedstorage.tile.*; import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.WirelessGrid; +import refinedstorage.util.HandUtils; public class GuiHandler implements IGuiHandler { private Container getContainer(int ID, EntityPlayer player, TileEntity tile) { @@ -56,9 +56,7 @@ public class GuiHandler implements IGuiHandler { } private WirelessGrid getWirelessGrid(World world, EntityPlayer player, int hand) { - EnumHand realHand = hand == 0 ? EnumHand.MAIN_HAND : EnumHand.OFF_HAND; - - return new WirelessGrid(player.getHeldItem(realHand), realHand, world); + return new WirelessGrid(player.getHeldItem(HandUtils.getHandById(hand)), HandUtils.getHandById(hand), world); } private ContainerGrid getWirelessGridContainer(World world, EntityPlayer player, int hand) { diff --git a/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java b/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java index 88c8eab9a..5db048608 100755 --- a/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java +++ b/src/main/java/refinedstorage/network/MessageWirelessGridSettingsUpdate.java @@ -3,11 +3,11 @@ package refinedstorage.network; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import refinedstorage.RefinedStorageItems; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.tile.grid.TileGrid; +import refinedstorage.util.HandUtils; public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToServer implements IMessage { private int hand; @@ -43,7 +43,7 @@ public class MessageWirelessGridSettingsUpdate extends MessageHandlerPlayerToSer @Override public void handle(MessageWirelessGridSettingsUpdate message, EntityPlayerMP player) { - ItemStack held = player.getHeldItem(hand == 1 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND); + ItemStack held = player.getHeldItem(HandUtils.getHandById(message.hand)); if (held != null && held.getItem() == RefinedStorageItems.WIRELESS_GRID && held.getTagCompound() != null) { if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) { diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 12e15600d..f56f288e2 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -18,19 +18,15 @@ import refinedstorage.block.EnumControllerType; import refinedstorage.storage.IStorage; import refinedstorage.storage.IStorageProvider; import refinedstorage.storage.StorageItem; +import refinedstorage.tile.grid.WirelessGridConsumer; import refinedstorage.tile.settings.IRedstoneModeSetting; import refinedstorage.tile.settings.RedstoneMode; +import refinedstorage.util.HandUtils; import refinedstorage.util.InventoryUtils; import java.util.*; public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeSetting { - public class WirelessGridConsumer { - public EntityPlayer player; - public EnumHand hand; - public ItemStack wirelessGrid; - } - private List items = new ArrayList(); private List storages = new ArrayList(); private List wirelessGridConsumers = new ArrayList(); @@ -120,12 +116,13 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor wirelessGridConsumersMarkedForRemoval.clear(); Iterator it = wirelessGridConsumers.iterator(); + while (it.hasNext()) { WirelessGridConsumer consumer = it.next(); - if (!InventoryUtils.compareStack(consumer.wirelessGrid, consumer.player.getHeldItem(consumer.hand))) { - onCloseWirelessGrid(consumer.player); - consumer.player.closeScreen(); + if (!InventoryUtils.compareStack(consumer.getWirelessGrid(), consumer.getPlayer().getHeldItem(consumer.getHand()))) { + onCloseWirelessGrid(consumer.getPlayer()); + consumer.getPlayer().closeScreen(); } } @@ -271,13 +268,9 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor } public void onOpenWirelessGrid(EntityPlayer player, EnumHand hand) { - WirelessGridConsumer consumer = new WirelessGridConsumer(); - consumer.hand = hand; - consumer.player = player; - consumer.wirelessGrid = player.getHeldItem(hand); - wirelessGridConsumers.add(consumer); + wirelessGridConsumers.add(new WirelessGridConsumer(player, hand, player.getHeldItem(hand))); - player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, hand == EnumHand.OFF_HAND ? 1 : 0, 0, 0); + player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, worldObj, HandUtils.getIdFromHand(hand), 0, 0); } public void onCloseWirelessGrid(EntityPlayer player) { @@ -290,12 +283,15 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor public WirelessGridConsumer getWirelessGridConsumer(EntityPlayer player) { Iterator it = wirelessGridConsumers.iterator(); + while (it.hasNext()) { WirelessGridConsumer consumer = it.next(); - if (consumer.player == player) { + + if (consumer.getPlayer() == player) { return consumer; } } + return null; } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 7df40e3d7..b23556cf9 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -81,7 +81,9 @@ public class WirelessGrid implements IGrid { @Override public boolean isConnected() { - return getController() instanceof TileController && getController().isActive(); + // Since getController().isActive() doesn't do anything clientside + // we just check if the energy usage is above 0. + return getController() instanceof TileController && getController().getEnergyUsage() > 0; } @Override diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java b/src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java new file mode 100755 index 000000000..d9cad6354 --- /dev/null +++ b/src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java @@ -0,0 +1,29 @@ +package refinedstorage.tile.grid; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; + +public class WirelessGridConsumer { + private EntityPlayer player; + private EnumHand hand; + private ItemStack wirelessGrid; + + public WirelessGridConsumer(EntityPlayer player, EnumHand hand, ItemStack wirelessGrid) { + this.player = player; + this.hand = hand; + this.wirelessGrid = wirelessGrid; + } + + public ItemStack getWirelessGrid() { + return wirelessGrid; + } + + public EnumHand getHand() { + return hand; + } + + public EntityPlayer getPlayer() { + return player; + } +} \ No newline at end of file diff --git a/src/main/java/refinedstorage/util/HandUtils.java b/src/main/java/refinedstorage/util/HandUtils.java new file mode 100755 index 000000000..27a2b9f13 --- /dev/null +++ b/src/main/java/refinedstorage/util/HandUtils.java @@ -0,0 +1,27 @@ +package refinedstorage.util; + +import net.minecraft.util.EnumHand; + +public class HandUtils { + public static EnumHand getHandById(int id) { + switch (id) { + case 0: + return EnumHand.MAIN_HAND; + case 1: + return EnumHand.OFF_HAND; + } + + return EnumHand.MAIN_HAND; + } + + public static int getIdFromHand(EnumHand hand) { + switch (hand) { + case MAIN_HAND: + return 0; + case OFF_HAND: + return 1; + } + + return 0; + } +} From 4d9e6b02b91241e27f7161f117a7e8409cd29384 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 02:22:24 +0200 Subject: [PATCH 12/30] Add isActiveClientSide to controller --- src/main/java/refinedstorage/gui/GuiController.java | 5 ++++- .../java/refinedstorage/item/ItemWirelessGrid.java | 8 +++----- .../java/refinedstorage/tile/TileController.java | 12 +++++++++++- .../java/refinedstorage/tile/grid/WirelessGrid.java | 4 +--- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index f52eafa4d..c254f18fb 100755 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -119,7 +119,10 @@ public class GuiController extends GuiBase { } if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { - drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); + String message = t("misc.refinedstorage:energy_usage", controller.isActiveClientSide() ? controller.getEnergyUsage() : 0); + message += "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null)); + + drawTooltip(mouseX, mouseY, message); } } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 87a211ebe..6b4c97abe 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -74,7 +74,7 @@ public class ItemWirelessGrid extends ItemBase { if (tile instanceof TileController) { ((TileController) tile).onOpenWirelessGrid(player, hand); - return new ActionResult(EnumActionResult.PASS, stack); + return new ActionResult(EnumActionResult.SUCCESS, stack); } else { player.addChatComponentMessage(new TextComponentString(I18n.translateToLocal("misc.refinedstorage:wireless_grid.not_found"))); } @@ -84,11 +84,9 @@ public class ItemWirelessGrid extends ItemBase { } else { player.addChatComponentMessage(new TextComponentString(I18n.translateToLocal("misc.refinedstorage:wireless_grid.not_found"))); } - - return new ActionResult(EnumActionResult.FAIL, stack); - } else { - return new ActionResult(EnumActionResult.PASS, stack); } + + return new ActionResult(EnumActionResult.PASS, stack); } public static int getX(ItemStack stack) { diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index f56f288e2..fae57c119 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -41,6 +41,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor private EnergyStorage energy = new EnergyStorage(32000); private int energyUsage; + private boolean activeClientSide; + private boolean destroyed = false; @Override @@ -347,6 +349,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor return energy.getEnergyStored() >= getEnergyUsage() && redstoneMode.isEnabled(worldObj, pos); } + public boolean isActiveClientSide() { + return activeClientSide; + } + @Override public RedstoneMode getRedstoneMode() { return redstoneMode; @@ -371,6 +377,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor @Override public void fromBytes(ByteBuf buf) { + activeClientSide = buf.readBoolean(); + int lastEnergy = energy.getEnergyStored(); energy.setEnergyStored(buf.readInt()); @@ -406,8 +414,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor @Override public void toBytes(ByteBuf buf) { + buf.writeBoolean(isActive()); + buf.writeInt(energy.getEnergyStored()); - buf.writeInt(isActive() ? energyUsage : 0); + buf.writeInt(energyUsage); buf.writeInt(redstoneMode.id); diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index b23556cf9..3a926d10e 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -81,9 +81,7 @@ public class WirelessGrid implements IGrid { @Override public boolean isConnected() { - // Since getController().isActive() doesn't do anything clientside - // we just check if the energy usage is above 0. - return getController() instanceof TileController && getController().getEnergyUsage() > 0; + return getController() instanceof TileController && getController().isActiveClientSide(); } @Override From 6f914698c0b2eb4647dc983bbba2a75a10546193 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 02:23:28 +0200 Subject: [PATCH 13/30] Update readme --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2189a5702..b01966bc9 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ - Updated to the latest Forge and JEI - Renamed Drives to Disk Drives - Renamed Storage Cells to Storage Disks +- Removed Wireless Transmitters +- Wireless Grid is now bound to a Controller instead of a Grid - Drives have a better interface and there are now blacklist and whitelist filters for the Storage Disks in it too. - Destructors have the ability to whitelist and blacklist certain items now - Shift clicking stuff in the Interface From eafcce4b6aead455ab6f21d49b782d5e5f9d630a Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 13:40:14 +0200 Subject: [PATCH 14/30] Work on making wireless grid an RF item --- .../refinedstorage/item/ItemWirelessGrid.java | 45 +++++++++++++++++-- .../network/MessageStoragePull.java | 2 + .../refinedstorage/tile/TileController.java | 20 ++++++++- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 6b4c97abe..e2b4028de 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -1,5 +1,6 @@ package refinedstorage.item; +import cofh.api.energy.ItemEnergyContainer; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -13,13 +14,14 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; +import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.tile.TileController; import refinedstorage.tile.grid.TileGrid; import java.util.List; -public class ItemWirelessGrid extends ItemBase { +public class ItemWirelessGrid extends ItemEnergyContainer { public static final String NBT_CONTROLLER_X = "ControllerX"; public static final String NBT_CONTROLLER_Y = "ControllerY"; public static final String NBT_CONTROLLER_Z = "ControllerZ"; @@ -28,9 +30,36 @@ public class ItemWirelessGrid extends ItemBase { public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; public ItemWirelessGrid() { - super("wireless_grid"); + super(3200); - setMaxStackSize(1); + setMaxDamage(3200); + setHasSubtypes(false); + setCreativeTab(RefinedStorage.TAB); + } + + @Override + public boolean isDamageable() { + return true; + } + + @Override + public boolean isRepairable() { + return false; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 1 - (getEnergyStored(stack) / getMaxEnergyStored(stack)); + } + + @Override + public boolean isDamaged(ItemStack stack) { + return true; + } + + @Override + public void setDamage(ItemStack stack, int damage) { + // NO OP } @Override @@ -120,4 +149,14 @@ public class ItemWirelessGrid extends ItemBase { public static boolean isValid(ItemStack stack) { return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z); } + + @Override + public String getUnlocalizedName() { + return "item." + RefinedStorage.ID + ":wireless_grid"; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return getUnlocalizedName(); + } } diff --git a/src/main/java/refinedstorage/network/MessageStoragePull.java b/src/main/java/refinedstorage/network/MessageStoragePull.java index 03b5b7c0e..535d24f0b 100755 --- a/src/main/java/refinedstorage/network/MessageStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageStoragePull.java @@ -100,6 +100,8 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer it = wirelessGridConsumers.iterator(); From ef79be6f3f146e365c52682f75d177500ecc5c61 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 17:06:44 +0200 Subject: [PATCH 15/30] Fix wireless grid RF --- src/main/java/refinedstorage/item/ItemWirelessGrid.java | 8 +++++++- .../java/refinedstorage/network/MessageStoragePull.java | 3 ++- .../java/refinedstorage/network/MessageStoragePush.java | 3 +++ src/main/java/refinedstorage/tile/TileController.java | 4 +++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index e2b4028de..fc634bfeb 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -29,6 +29,10 @@ public class ItemWirelessGrid extends ItemEnergyContainer { public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; + public static final int USAGE_OPEN = 30; + public static final int USAGE_PULL = 3; + public static final int USAGE_PUSH = 3; + public ItemWirelessGrid() { super(3200); @@ -49,7 +53,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (getEnergyStored(stack) / getMaxEnergyStored(stack)); + return 1d - ((double) getEnergyStored(stack) / (double) getMaxEnergyStored(stack)); } @Override @@ -64,6 +68,8 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + list.add(I18n.translateToLocalFormatted("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack))); + if (isValid(stack)) { list.add(I18n.translateToLocalFormatted("misc.refinedstorage:wireless_grid.tooltip.0", getX(stack))); list.add(I18n.translateToLocalFormatted("misc.refinedstorage:wireless_grid.tooltip.1", getY(stack))); diff --git a/src/main/java/refinedstorage/network/MessageStoragePull.java b/src/main/java/refinedstorage/network/MessageStoragePull.java index 535d24f0b..fad3581a8 100755 --- a/src/main/java/refinedstorage/network/MessageStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageStoragePull.java @@ -6,6 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import refinedstorage.item.ItemWirelessGrid; import refinedstorage.storage.StorageItem; import refinedstorage.tile.TileController; @@ -101,7 +102,7 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer implements IMessage { @@ -83,6 +84,8 @@ public class MessageStoragePush extends MessageHandlerPlayerToServer Date: Fri, 1 Apr 2016 18:04:48 +0200 Subject: [PATCH 16/30] Model fixes for wireless grid --- .../refinedstorage/item/ItemWirelessGrid.java | 67 +++++++++++-------- .../refinedstorage/proxy/ClientProxy.java | 23 ++----- .../models/item/wireless_grid.json | 20 ++++++ 3 files changed, 65 insertions(+), 45 deletions(-) create mode 100755 src/main/resources/assets/refinedstorage/models/item/wireless_grid.json diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index fc634bfeb..112adff2d 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -2,16 +2,13 @@ package refinedstorage.item; import cofh.api.energy.ItemEnergyContainer; import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; +import net.minecraft.util.*; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import refinedstorage.RefinedStorage; @@ -29,6 +26,8 @@ public class ItemWirelessGrid extends ItemEnergyContainer { public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; + public static final int RANGE = 64; + public static final int USAGE_OPEN = 30; public static final int USAGE_PULL = 3; public static final int USAGE_PUSH = 3; @@ -36,6 +35,13 @@ public class ItemWirelessGrid extends ItemEnergyContainer { public ItemWirelessGrid() { super(3200); + addPropertyOverride(new ResourceLocation("connected"), new IItemPropertyGetter() { + @Override + public float apply(ItemStack stack, World world, EntityLivingBase entity) { + return canOpenWirelessGrid(world, entity, stack) ? 1.0f : 0.0f; + } + }); + setMaxDamage(3200); setHasSubtypes(false); setCreativeTab(RefinedStorage.TAB); @@ -70,7 +76,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { list.add(I18n.translateToLocalFormatted("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack))); - if (isValid(stack)) { + if (canOpenWirelessGrid(player.worldObj, player, stack)) { list.add(I18n.translateToLocalFormatted("misc.refinedstorage:wireless_grid.tooltip.0", getX(stack))); list.add(I18n.translateToLocalFormatted("misc.refinedstorage:wireless_grid.tooltip.1", getY(stack))); list.add(I18n.translateToLocalFormatted("misc.refinedstorage:wireless_grid.tooltip.2", getZ(stack))); @@ -101,24 +107,12 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - if (!world.isRemote) { - if (isValid(stack)) { - if (isInRange(stack, player)) { - TileEntity tile = world.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))); + if (!world.isRemote && canOpenWirelessGrid(world, player, stack)) { + TileController tile = (TileController) world.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))); - if (tile instanceof TileController) { - ((TileController) tile).onOpenWirelessGrid(player, hand); + tile.onOpenWirelessGrid(player, hand); - return new ActionResult(EnumActionResult.SUCCESS, stack); - } else { - player.addChatComponentMessage(new TextComponentString(I18n.translateToLocal("misc.refinedstorage:wireless_grid.not_found"))); - } - } else { - player.addChatComponentMessage(new TextComponentString(I18n.translateToLocal("misc.refinedstorage:wireless_grid.out_of_range"))); - } - } else { - player.addChatComponentMessage(new TextComponentString(I18n.translateToLocal("misc.refinedstorage:wireless_grid.not_found"))); - } + return new ActionResult(EnumActionResult.SUCCESS, stack); } return new ActionResult(EnumActionResult.PASS, stack); @@ -148,14 +142,33 @@ public class ItemWirelessGrid extends ItemEnergyContainer { return stack.getTagCompound().getInteger(NBT_SEARCH_BOX_MODE); } - public static boolean isInRange(ItemStack stack, EntityPlayer player) { - return (int) Math.sqrt(Math.pow(getX(stack) - player.posX, 2) + Math.pow(getY(stack) - player.posY, 2) + Math.pow(getZ(stack) - player.posZ, 2)) < 64; + public static boolean isInRange(ItemStack stack, EntityLivingBase entity) { + return (int) Math.sqrt(Math.pow(getX(stack) - entity.posX, 2) + Math.pow(getY(stack) - entity.posY, 2) + Math.pow(getZ(stack) - entity.posZ, 2)) < RANGE; } - public static boolean isValid(ItemStack stack) { - return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z); + public static boolean canOpenWirelessGrid(World world, EntityLivingBase entity, ItemStack stack) { + if (entity != null && stack.hasTagCompound() + && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) + && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) + && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z) + && stack.getTagCompound().hasKey(NBT_SORTING_DIRECTION) + && stack.getTagCompound().hasKey(NBT_SORTING_TYPE) + && stack.getTagCompound().hasKey(NBT_SEARCH_BOX_MODE)) { + if (world == null) { + world = entity.worldObj; + } + + int x = getX(stack); + int y = getY(stack); + int z = getZ(stack); + + return isInRange(stack, entity) && world.getTileEntity(new BlockPos(x, y, z)) instanceof TileController; + } + + return false; } + @Override public String getUnlocalizedName() { return "item." + RefinedStorage.ID + ":wireless_grid"; diff --git a/src/main/java/refinedstorage/proxy/ClientProxy.java b/src/main/java/refinedstorage/proxy/ClientProxy.java index 1422444f7..ccf539708 100755 --- a/src/main/java/refinedstorage/proxy/ClientProxy.java +++ b/src/main/java/refinedstorage/proxy/ClientProxy.java @@ -1,11 +1,9 @@ package refinedstorage.proxy; -import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.StateMap; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @@ -14,7 +12,10 @@ import refinedstorage.RefinedStorageItems; import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumStorageType; -import refinedstorage.item.*; +import refinedstorage.item.ItemCore; +import refinedstorage.item.ItemProcessor; +import refinedstorage.item.ItemStorageDisk; +import refinedstorage.item.ItemStoragePart; public class ClientProxy extends CommonProxy { @Override @@ -52,11 +53,6 @@ public class ClientProxy extends CommonProxy { new ResourceLocation("refinedstorage:destruction_core") ); - ModelBakery.registerItemVariants(RefinedStorageItems.WIRELESS_GRID, - new ResourceLocation("refinedstorage:wireless_grid_connected"), - new ResourceLocation("refinedstorage:wireless_grid_disconnected") - ); - // Items ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.STORAGE_DISK, ItemStorageDisk.TYPE_1K, new ModelResourceLocation("refinedstorage:1k_storage_disk", "inventory")); ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.STORAGE_DISK, ItemStorageDisk.TYPE_4K, new ModelResourceLocation("refinedstorage:4k_storage_disk", "inventory")); @@ -84,16 +80,7 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.CORE, ItemCore.TYPE_CONSTRUCTION, new ModelResourceLocation("refinedstorage:construction_core", "inventory")); ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.CORE, ItemCore.TYPE_DESTRUCTION, new ModelResourceLocation("refinedstorage:destruction_core", "inventory")); - ModelLoader.setCustomMeshDefinition(RefinedStorageItems.WIRELESS_GRID, new ItemMeshDefinition() { - @Override - public ModelResourceLocation getModelLocation(ItemStack stack) { - if (ItemWirelessGrid.isValid(stack)) { - return new ModelResourceLocation("refinedstorage:wireless_grid_connected", "inventory"); - } else { - return new ModelResourceLocation("refinedstorage:wireless_grid_disconnected", "inventory"); - } - } - }); + ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.WIRELESS_GRID, 0, new ModelResourceLocation("refinedstorage:wireless_grid", "inventory")); // Blocks ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CABLE), 0, new ModelResourceLocation("refinedstorage:cable", "inventory")); diff --git a/src/main/resources/assets/refinedstorage/models/item/wireless_grid.json b/src/main/resources/assets/refinedstorage/models/item/wireless_grid.json new file mode 100755 index 000000000..b4dc292ba --- /dev/null +++ b/src/main/resources/assets/refinedstorage/models/item/wireless_grid.json @@ -0,0 +1,20 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "refinedstorage:items/wireless_grid_disconnected" + }, + "overrides": [ + { + "predicate": { + "connected": 0 + }, + "model": "refinedstorage:item/wireless_grid_disconnected" + }, + { + "predicate": { + "connected": 1 + }, + "model": "refinedstorage:item/wireless_grid_connected" + } + ] +} From 01f7e339a6c86578b7394f6e67b7f23c5676f562 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 18:16:39 +0200 Subject: [PATCH 17/30] More WG fixes --- .../refinedstorage/item/ItemWirelessGrid.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 112adff2d..4aa569d66 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -2,9 +2,11 @@ package refinedstorage.item; import cofh.api.energy.ItemEnergyContainer; import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.*; @@ -43,6 +45,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { }); setMaxDamage(3200); + setMaxStackSize(1); setHasSubtypes(false); setCreativeTab(RefinedStorage.TAB); } @@ -72,6 +75,15 @@ public class ItemWirelessGrid extends ItemEnergyContainer { // NO OP } + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + list.add(new ItemStack(item)); + + ItemStack fullyCharged = new ItemStack(item); + receiveEnergy(fullyCharged, getMaxEnergyStored(fullyCharged), false); + list.add(fullyCharged); + } + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { list.add(I18n.translateToLocalFormatted("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack))); @@ -88,7 +100,11 @@ public class ItemWirelessGrid extends ItemEnergyContainer { Block block = worldIn.getBlockState(pos).getBlock(); if (block == RefinedStorageBlocks.CONTROLLER) { - NBTTagCompound tag = new NBTTagCompound(); + NBTTagCompound tag = stack.getTagCompound(); + + if (tag == null) { + tag = new NBTTagCompound(); + } tag.setInteger(NBT_CONTROLLER_X, pos.getX()); tag.setInteger(NBT_CONTROLLER_Y, pos.getY()); From 4aadc6853bf7598a8ea0b39a3f822ac2c467b674 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 18:23:42 +0200 Subject: [PATCH 18/30] Shouldn't cause requip animation --- src/main/java/refinedstorage/item/ItemWirelessGrid.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 4aa569d66..09ff44710 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -184,6 +184,10 @@ public class ItemWirelessGrid extends ItemEnergyContainer { return false; } + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return false; + } @Override public String getUnlocalizedName() { From 7ae113a3a4716ff47a8afe85f1f388d2d3f8a006 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 21:00:40 +0200 Subject: [PATCH 19/30] Remove unneeded method in INetworkTile --- src/main/java/refinedstorage/tile/INetworkTile.java | 3 --- src/main/java/refinedstorage/tile/TileController.java | 5 ----- src/main/java/refinedstorage/tile/TileMachine.java | 5 ----- 3 files changed, 13 deletions(-) diff --git a/src/main/java/refinedstorage/tile/INetworkTile.java b/src/main/java/refinedstorage/tile/INetworkTile.java index 0e19c28de..ffbc823ce 100755 --- a/src/main/java/refinedstorage/tile/INetworkTile.java +++ b/src/main/java/refinedstorage/tile/INetworkTile.java @@ -1,12 +1,9 @@ package refinedstorage.tile; import io.netty.buffer.ByteBuf; -import net.minecraft.util.math.BlockPos; public interface INetworkTile { void fromBytes(ByteBuf buf); void toBytes(ByteBuf buf); - - BlockPos getTilePos(); } diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 51c200508..35bcc182e 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -385,11 +385,6 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor this.redstoneMode = mode; } - @Override - public BlockPos getTilePos() { - return pos; - } - @Override public BlockPos getMachinePos() { return pos; diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index 3e774cb91..d312e2e66 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileMachine.java @@ -78,11 +78,6 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed return pos; } - @Override - public BlockPos getTilePos() { - return pos; - } - public TileController getController() { return (TileController) worldObj.getTileEntity(controllerPosition); } From 0768d5ad114d2c611dc6f27eeb6acb78282e9d83 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 1 Apr 2016 21:15:33 +0200 Subject: [PATCH 20/30] Store dimension id with wireless grid --- .../java/refinedstorage/item/ItemWirelessGrid.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 09ff44710..4044ec028 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -24,6 +24,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { public static final String NBT_CONTROLLER_X = "ControllerX"; public static final String NBT_CONTROLLER_Y = "ControllerY"; public static final String NBT_CONTROLLER_Z = "ControllerZ"; + public static final String NBT_DIMENSION_ID = "DimensionID"; public static final String NBT_SORTING_TYPE = "SortingType"; public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; @@ -96,8 +97,8 @@ public class ItemWirelessGrid extends ItemEnergyContainer { } @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - Block block = worldIn.getBlockState(pos).getBlock(); + public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + Block block = world.getBlockState(pos).getBlock(); if (block == RefinedStorageBlocks.CONTROLLER) { NBTTagCompound tag = stack.getTagCompound(); @@ -109,6 +110,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { tag.setInteger(NBT_CONTROLLER_X, pos.getX()); tag.setInteger(NBT_CONTROLLER_Y, pos.getY()); tag.setInteger(NBT_CONTROLLER_Z, pos.getZ()); + tag.setInteger(NBT_DIMENSION_ID, player.dimension); tag.setInteger(NBT_SORTING_DIRECTION, TileGrid.SORTING_DIRECTION_DESCENDING); tag.setInteger(NBT_SORTING_TYPE, TileGrid.SORTING_TYPE_NAME); tag.setInteger(NBT_SEARCH_BOX_MODE, TileGrid.SEARCH_BOX_MODE_NORMAL); @@ -134,6 +136,10 @@ public class ItemWirelessGrid extends ItemEnergyContainer { return new ActionResult(EnumActionResult.PASS, stack); } + public static int getDimensionId(ItemStack stack) { + return stack.getTagCompound().getInteger(NBT_DIMENSION_ID); + } + public static int getX(ItemStack stack) { return stack.getTagCompound().getInteger(NBT_CONTROLLER_X); } @@ -167,6 +173,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Y) && stack.getTagCompound().hasKey(NBT_CONTROLLER_Z) + && stack.getTagCompound().hasKey(NBT_DIMENSION_ID) && stack.getTagCompound().hasKey(NBT_SORTING_DIRECTION) && stack.getTagCompound().hasKey(NBT_SORTING_TYPE) && stack.getTagCompound().hasKey(NBT_SEARCH_BOX_MODE)) { @@ -178,7 +185,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { int y = getY(stack); int z = getZ(stack); - return isInRange(stack, entity) && world.getTileEntity(new BlockPos(x, y, z)) instanceof TileController; + return isInRange(stack, entity) && getDimensionId(stack) == entity.dimension && world.getTileEntity(new BlockPos(x, y, z)) instanceof TileController; } return false; From 0c11c83eb95db80ad8e5334bdc07c50fc0401fe5 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 00:07:25 +0200 Subject: [PATCH 21/30] This fixes all the bugs I got while playtesting --- src/main/java/refinedstorage/gui/GuiController.java | 2 +- src/main/java/refinedstorage/tile/TileDestructor.java | 3 ++- src/main/java/refinedstorage/tile/TileImporter.java | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index c254f18fb..60a765960 100755 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -79,7 +79,7 @@ public class GuiController extends GuiBase { TileMachine machineHovering = null; for (int i = 0; i < 4; ++i) { - if (slot < machines.size()) { + if (slot < machines.size() && machines.get(slot) != null && machines.get(slot).getWorld() != null) { TileMachine machine = machines.get(slot); IBlockState machineState = machine.getWorld().getBlockState(machine.getPos()); Block machineBlock = machineState.getBlock(); diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index d8ed2200b..7088d09bd 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; @@ -39,7 +40,7 @@ public class TileDestructor extends TileMachine implements ICompareSetting, IMod IBlockState frontBlockState = worldObj.getBlockState(front); Block frontBlock = frontBlockState.getBlock(); - if (!frontBlock.isAir(frontBlockState, worldObj, front)) { + if (Item.getItemFromBlock(frontBlock) != null && !frontBlock.isAir(frontBlockState, worldObj, front)) { if (ModeSettingUtils.doesNotViolateMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { List drops = frontBlock.getDrops(worldObj, front, frontBlockState, 0); diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index e36febd68..4c3f14ba0 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -80,11 +80,16 @@ public class TileImporter extends TileMachine implements ICompareSetting, IModeS ItemStack toTake = stack.copy(); toTake.stackSize = 1; + // If we can't import and/ or push, move on (otherwise we stay on the same slot forever) if (canImport(toTake)) { if (getController().push(toTake)) { inventory.decrStackSize(currentSlot, 1); inventory.markDirty(); + } else { + currentSlot++; } + } else { + currentSlot++; } } } else { From 50b14c8151087425f5d7c9be172c09f4427cda94 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 00:24:24 +0200 Subject: [PATCH 22/30] If controller is disabled / inactive, ignore push / pull packets --- src/main/java/refinedstorage/network/MessageStoragePull.java | 2 +- src/main/java/refinedstorage/network/MessageStoragePush.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/refinedstorage/network/MessageStoragePull.java b/src/main/java/refinedstorage/network/MessageStoragePull.java index fad3581a8..c53ce8c3d 100755 --- a/src/main/java/refinedstorage/network/MessageStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageStoragePull.java @@ -66,7 +66,7 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer Date: Sat, 2 Apr 2016 15:38:39 +0200 Subject: [PATCH 23/30] Renames and general code improvements --- .../java/refinedstorage/block/BlockBase.java | 7 +- .../java/refinedstorage/block/BlockCable.java | 30 +++---- .../refinedstorage/block/BlockController.java | 11 ++- .../refinedstorage/block/BlockDetector.java | 11 ++- .../java/refinedstorage/block/BlockGrid.java | 11 ++- .../refinedstorage/block/BlockMachine.java | 9 +-- .../refinedstorage/block/BlockStorage.java | 13 ++-- .../refinedstorage/block/EnumStorageType.java | 3 +- .../container/ContainerGrid.java | 10 +-- src/main/java/refinedstorage/gui/GuiGrid.java | 18 ++--- .../java/refinedstorage/gui/GuiStorage.java | 14 ++-- .../gui/sidebutton/SideButtonCompare.java | 14 ++-- .../gui/sidebutton/SideButtonMode.java | 16 ++-- .../sidebutton/SideButtonRedstoneMode.java | 14 ++-- .../refinedstorage/item/ItemBlockStorage.java | 3 - .../refinedstorage/item/ItemStorageDisk.java | 14 ++-- .../jei/GridRecipeTransferHandler.java | 2 +- .../jei/SoldererRecipeWrapper.java | 19 ----- .../network/MessageCompareUpdate.java | 8 +- .../network/MessageModeToggle.java | 8 +- .../network/MessageRedstoneModeUpdate.java | 8 +- .../network/MessageStoragePull.java | 6 +- .../refinedstorage/storage/DiskStorage.java | 25 +----- .../java/refinedstorage/storage/IStorage.java | 2 +- .../refinedstorage/storage/IStorageGui.java | 12 +-- .../storage/IStorageProvider.java | 2 +- .../{StorageItem.java => ItemGroup.java} | 24 +++--- .../refinedstorage/storage/NBTStorage.java | 13 ++-- .../refinedstorage/tile/MachineSearcher.java | 2 +- .../refinedstorage/tile/TileConstructor.java | 4 +- .../refinedstorage/tile/TileController.java | 24 +++--- .../refinedstorage/tile/TileDestructor.java | 10 +-- .../refinedstorage/tile/TileDetector.java | 10 +-- .../refinedstorage/tile/TileDiskDrive.java | 19 ++--- .../refinedstorage/tile/TileExporter.java | 4 +- .../tile/TileExternalStorage.java | 28 +++---- .../refinedstorage/tile/TileImporter.java | 8 +- .../refinedstorage/tile/TileInterface.java | 4 +- .../java/refinedstorage/tile/TileMachine.java | 7 +- .../java/refinedstorage/tile/TileRelay.java | 2 +- .../java/refinedstorage/tile/TileStorage.java | 31 +++----- .../ICompareConfig.java} | 4 +- .../IModeConfig.java} | 30 +++---- .../IRedstoneModeConfig.java} | 4 +- .../ModeConfigUtils.java} | 78 +++++++++---------- .../{settings => config}/RedstoneMode.java | 2 +- .../java/refinedstorage/tile/grid/IGrid.java | 4 +- .../refinedstorage/tile/grid/TileGrid.java | 4 +- .../tile/grid/WirelessGrid.java | 4 +- .../refinedstorage/util/InventoryUtils.java | 24 ------ 50 files changed, 271 insertions(+), 363 deletions(-) rename src/main/java/refinedstorage/storage/{StorageItem.java => ItemGroup.java} (87%) rename src/main/java/refinedstorage/tile/{settings/ICompareSetting.java => config/ICompareConfig.java} (64%) rename src/main/java/refinedstorage/tile/{settings/IModeSetting.java => config/IModeConfig.java} (68%) rename src/main/java/refinedstorage/tile/{settings/IRedstoneModeSetting.java => config/IRedstoneModeConfig.java} (66%) rename src/main/java/refinedstorage/tile/{settings/ModeSettingUtils.java => config/ModeConfigUtils.java} (86%) rename src/main/java/refinedstorage/tile/{settings => config}/RedstoneMode.java (96%) diff --git a/src/main/java/refinedstorage/block/BlockBase.java b/src/main/java/refinedstorage/block/BlockBase.java index e754db4e7..be09b393d 100755 --- a/src/main/java/refinedstorage/block/BlockBase.java +++ b/src/main/java/refinedstorage/block/BlockBase.java @@ -40,10 +40,9 @@ public abstract class BlockBase extends Block { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + }); } @Override diff --git a/src/main/java/refinedstorage/block/BlockCable.java b/src/main/java/refinedstorage/block/BlockCable.java index 9fdb19e6f..e638883ac 100755 --- a/src/main/java/refinedstorage/block/BlockCable.java +++ b/src/main/java/refinedstorage/block/BlockCable.java @@ -5,11 +5,10 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -import refinedstorage.tile.TileController; +import refinedstorage.RefinedStorageBlocks; import refinedstorage.tile.TileMachine; public class BlockCable extends BlockBase { @@ -28,16 +27,15 @@ public class BlockCable extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - NORTH, - EAST, - SOUTH, - WEST, - UP, - DOWN, - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + NORTH, + EAST, + SOUTH, + WEST, + UP, + DOWN, + }); } @Override @@ -54,13 +52,7 @@ public class BlockCable extends BlockBase { public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) { Block block = world.getBlockState(pos).getBlock(); - if (block instanceof BlockCable) { - return true; - } - - TileEntity tile = world.getTileEntity(pos); - - return tile instanceof TileMachine || tile instanceof TileController; + return (block == RefinedStorageBlocks.CABLE || block == RefinedStorageBlocks.CONTROLLER) || world.getTileEntity(pos) instanceof TileMachine; } @Override diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index d28c88f60..5cad921a8 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -38,12 +38,11 @@ public class BlockController extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - TYPE, - ENERGY - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + TYPE, + ENERGY + }); } @Override diff --git a/src/main/java/refinedstorage/block/BlockDetector.java b/src/main/java/refinedstorage/block/BlockDetector.java index 4cc4c8f8d..527f789d6 100755 --- a/src/main/java/refinedstorage/block/BlockDetector.java +++ b/src/main/java/refinedstorage/block/BlockDetector.java @@ -25,12 +25,11 @@ public class BlockDetector extends BlockMachine { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - CONNECTED, - POWERED - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + CONNECTED, + POWERED + }); } @Override diff --git a/src/main/java/refinedstorage/block/BlockGrid.java b/src/main/java/refinedstorage/block/BlockGrid.java index 1bb905a13..49fd0bbbe 100755 --- a/src/main/java/refinedstorage/block/BlockGrid.java +++ b/src/main/java/refinedstorage/block/BlockGrid.java @@ -40,12 +40,11 @@ public class BlockGrid extends BlockMachine { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - CONNECTED, - TYPE - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + CONNECTED, + TYPE + }); } @Override diff --git a/src/main/java/refinedstorage/block/BlockMachine.java b/src/main/java/refinedstorage/block/BlockMachine.java index 981be3f10..f621a9df9 100755 --- a/src/main/java/refinedstorage/block/BlockMachine.java +++ b/src/main/java/refinedstorage/block/BlockMachine.java @@ -22,11 +22,10 @@ public abstract class BlockMachine extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - CONNECTED - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + CONNECTED + }); } @Override diff --git a/src/main/java/refinedstorage/block/BlockStorage.java b/src/main/java/refinedstorage/block/BlockStorage.java index c986505fe..3d37c31f1 100755 --- a/src/main/java/refinedstorage/block/BlockStorage.java +++ b/src/main/java/refinedstorage/block/BlockStorage.java @@ -41,12 +41,11 @@ public class BlockStorage extends BlockMachine { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] - { - DIRECTION, - CONNECTED, - TYPE - }); + return new BlockStateContainer(this, new IProperty[]{ + DIRECTION, + CONNECTED, + TYPE + }); } @Override @@ -91,9 +90,7 @@ public class BlockStorage extends BlockMachine { ItemStack stack = new ItemStack(RefinedStorageBlocks.STORAGE, 1, RefinedStorageBlocks.STORAGE.getMetaFromState(state)); NBTTagCompound tag = new NBTTagCompound(); - tag.setTag(TileStorage.NBT_STORAGE, ((TileStorage) world.getTileEntity(pos)).getStorageTag()); - stack.setTagCompound(tag); drops.add(stack); diff --git a/src/main/java/refinedstorage/block/EnumStorageType.java b/src/main/java/refinedstorage/block/EnumStorageType.java index 85fed352a..e3878a5da 100755 --- a/src/main/java/refinedstorage/block/EnumStorageType.java +++ b/src/main/java/refinedstorage/block/EnumStorageType.java @@ -43,7 +43,6 @@ public enum EnumStorageType implements IStringSerializable { return type; } } - - return null; + return TYPE_1K; } } diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 6aed298b3..3d2ed1b76 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -56,11 +56,11 @@ public class ContainerGrid extends ContainerBase { return craftingSlots; } - // I'm overriding detectAndSendChanges() here because the default check - // checks if the item stacks are equal, and if so, then it will only send the new slot contents. - // The thing is though, when the grid replaces the slots with new items from the storage - // system, the item stack replaced WILL be the same and thus changes will not be sent! - // That is why we override here to get rid of the check and ALWAYS send slot changes. + /* I'm overriding detectAndSendChanges() here because the default check + checks if the item stacks are equal, and if so, then it will only send the new slot contents. + The thing is though, when the grid replaces the slots with new items from the storage + system, the item stack replaced WILL be the same and thus changes will not be sent! + That is why we override here to get rid of the check and ALWAYS send slot changes. */ @Override public void detectAndSendChanges() { for (int i = 0; i < this.inventorySlots.size(); ++i) { diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 3088fbeb7..4c70d6512 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -19,7 +19,7 @@ import refinedstorage.network.MessageGridCraftingClear; import refinedstorage.network.MessageGridCraftingPush; import refinedstorage.network.MessageStoragePull; import refinedstorage.network.MessageStoragePush; -import refinedstorage.storage.StorageItem; +import refinedstorage.storage.ItemGroup; import refinedstorage.tile.TileController; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; @@ -31,7 +31,7 @@ public class GuiGrid extends GuiBase { private ContainerGrid container; private IGrid grid; - private List items = new ArrayList(); + private List items = new ArrayList(); private GuiTextField searchField; @@ -77,10 +77,10 @@ public class GuiGrid extends GuiBase { items.addAll(grid.getController().getItems()); if (!searchField.getText().trim().isEmpty()) { - Iterator t = items.iterator(); + Iterator t = items.iterator(); while (t.hasNext()) { - StorageItem item = t.next(); + ItemGroup item = t.next(); if (!item.toItemStack().getDisplayName().toLowerCase().contains(searchField.getText().toLowerCase())) { t.remove(); @@ -88,9 +88,9 @@ public class GuiGrid extends GuiBase { } } - Collections.sort(items, new Comparator() { + Collections.sort(items, new Comparator() { @Override - public int compare(StorageItem o1, StorageItem o2) { + public int compare(ItemGroup o1, ItemGroup o2) { if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName()); } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { @@ -102,9 +102,9 @@ public class GuiGrid extends GuiBase { }); if (grid.getSortingType() == TileGrid.SORTING_TYPE_QUANTITY) { - Collections.sort(items, new Comparator() { + Collections.sort(items, new Comparator() { @Override - public int compare(StorageItem o1, StorageItem o2) { + public int compare(ItemGroup o1, ItemGroup o2) { if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity()); } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { @@ -187,7 +187,7 @@ public class GuiGrid extends GuiBase { hoveringSlot = slot; if (slot < items.size()) { - // We need to use the ID, because if we filter, the client-side index will change + // we need to use the ID, because if we filter, the client-side index will change // while the server-side's index will still be the same. hoveringItemId = items.get(slot).getId(); } diff --git a/src/main/java/refinedstorage/gui/GuiStorage.java b/src/main/java/refinedstorage/gui/GuiStorage.java index e1f1b106b..63e4ef700 100755 --- a/src/main/java/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/refinedstorage/gui/GuiStorage.java @@ -35,17 +35,17 @@ public class GuiStorage extends GuiBase { @Override public void init(int x, int y) { - if (gui.getRedstoneModeSetting() != null) { - addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeSetting())); + if (gui.getRedstoneModeConfig() != null) { + addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeConfig())); } - if (gui.getModeSetting() != null) { - addSideButton(new SideButtonMode(gui.getModeSetting())); + if (gui.getModeConfig() != null) { + addSideButton(new SideButtonMode(gui.getModeConfig())); } - if (gui.getCompareSetting() != null) { - addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_DAMAGE)); - addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_NBT)); + if (gui.getCompareConfig() != null) { + addSideButton(new SideButtonCompare(gui.getCompareConfig(), InventoryUtils.COMPARE_DAMAGE)); + addSideButton(new SideButtonCompare(gui.getCompareConfig(), InventoryUtils.COMPARE_NBT)); } priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT); diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java index f2bde9452..8f46d3e0a 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java @@ -4,15 +4,15 @@ import net.minecraft.util.text.TextFormatting; import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; import refinedstorage.network.MessageCompareUpdate; -import refinedstorage.tile.settings.ICompareSetting; +import refinedstorage.tile.config.ICompareConfig; import refinedstorage.util.InventoryUtils; public class SideButtonCompare extends SideButton { - private ICompareSetting setting; + private ICompareConfig config; private int mask; - public SideButtonCompare(ICompareSetting setting, int mask) { - this.setting = setting; + public SideButtonCompare(ICompareConfig config, int mask) { + this.config = config; this.mask = mask; } @@ -22,7 +22,7 @@ public class SideButtonCompare extends SideButton { builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:compare." + mask)).append(TextFormatting.RESET).append("\n"); - if ((setting.getCompare() & mask) == mask) { + if ((config.getCompare() & mask) == mask) { builder.append(gui.t("misc.refinedstorage:yes")); } else { builder.append(gui.t("misc.refinedstorage:no")); @@ -43,13 +43,13 @@ public class SideButtonCompare extends SideButton { ty = 48; } - int tx = (setting.getCompare() & mask) == mask ? 0 : 16; + int tx = (config.getCompare() & mask) == mask ? 0 : 16; gui.drawTexture(x, y + 2, tx, ty, 16, 16); } @Override public void actionPerformed() { - RefinedStorage.NETWORK.sendToServer(new MessageCompareUpdate(setting, setting.getCompare() ^ mask)); + RefinedStorage.NETWORK.sendToServer(new MessageCompareUpdate(config, config.getCompare() ^ mask)); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java index f8b8bc4e4..663fbcbe2 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java @@ -4,13 +4,13 @@ import net.minecraft.util.text.TextFormatting; import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; import refinedstorage.network.MessageModeToggle; -import refinedstorage.tile.settings.IModeSetting; +import refinedstorage.tile.config.IModeConfig; public class SideButtonMode extends SideButton { - private IModeSetting mode; + private IModeConfig config; - public SideButtonMode(IModeSetting mode) { - this.mode = mode; + public SideButtonMode(IModeConfig config) { + this.config = config; } @Override @@ -18,7 +18,7 @@ public class SideButtonMode extends SideButton { StringBuilder builder = new StringBuilder(); builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:mode." + (mode.isWhitelist() ? "whitelist" : "blacklist"))); + builder.append(gui.t("sidebutton.refinedstorage:mode." + (config.isWhitelist() ? "whitelist" : "blacklist"))); return builder.toString(); } @@ -29,9 +29,9 @@ public class SideButtonMode extends SideButton { int tx = 0; - if (mode.isWhitelist()) { + if (config.isWhitelist()) { tx = 0; - } else if (mode.isBlacklist()) { + } else if (config.isBlacklist()) { tx = 16; } @@ -40,6 +40,6 @@ public class SideButtonMode extends SideButton { @Override public void actionPerformed() { - RefinedStorage.NETWORK.sendToServer(new MessageModeToggle(mode)); + RefinedStorage.NETWORK.sendToServer(new MessageModeToggle(config)); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java index c8878d2be..71d30515c 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java @@ -4,13 +4,13 @@ import net.minecraft.util.text.TextFormatting; import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; import refinedstorage.network.MessageRedstoneModeUpdate; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.IRedstoneModeConfig; public class SideButtonRedstoneMode extends SideButton { - private IRedstoneModeSetting setting; + private IRedstoneModeConfig config; - public SideButtonRedstoneMode(IRedstoneModeSetting setting) { - this.setting = setting; + public SideButtonRedstoneMode(IRedstoneModeConfig config) { + this.config = config; } @Override @@ -18,7 +18,7 @@ public class SideButtonRedstoneMode extends SideButton { StringBuilder builder = new StringBuilder(); builder.append(TextFormatting.RED).append(gui.t("sidebutton.refinedstorage:redstone_mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:redstone_mode." + setting.getRedstoneMode().id)); + builder.append(gui.t("sidebutton.refinedstorage:redstone_mode." + config.getRedstoneMode().id)); return builder.toString(); } @@ -26,11 +26,11 @@ public class SideButtonRedstoneMode extends SideButton { @Override public void draw(GuiBase gui, int x, int y) { gui.bindTexture("icons.png"); - gui.drawTexture(x, y + 1, setting.getRedstoneMode().id * 16, 0, 16, 16); + gui.drawTexture(x, y + 1, config.getRedstoneMode().id * 16, 0, 16, 16); } @Override public void actionPerformed() { - RefinedStorage.NETWORK.sendToServer(new MessageRedstoneModeUpdate(setting)); + RefinedStorage.NETWORK.sendToServer(new MessageRedstoneModeUpdate(config)); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockStorage.java b/src/main/java/refinedstorage/item/ItemBlockStorage.java index 6a4b85c8b..0eec56106 100755 --- a/src/main/java/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/refinedstorage/item/ItemBlockStorage.java @@ -41,11 +41,8 @@ public class ItemBlockStorage extends ItemBlockBase { public static ItemStack initNBT(ItemStack stack) { NBTTagCompound tag = new NBTTagCompound(); - tag.setTag(TileStorage.NBT_STORAGE, NBTStorage.getBaseNBT()); - stack.setTagCompound(tag); - return stack; } } diff --git a/src/main/java/refinedstorage/item/ItemStorageDisk.java b/src/main/java/refinedstorage/item/ItemStorageDisk.java index 298b5c030..9531af118 100755 --- a/src/main/java/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/refinedstorage/item/ItemStorageDisk.java @@ -6,7 +6,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; -import refinedstorage.storage.DiskStorage; +import refinedstorage.block.EnumStorageType; import refinedstorage.storage.NBTStorage; import java.util.List; @@ -29,16 +29,20 @@ public class ItemStorageDisk extends ItemBase { @Override public void getSubItems(Item item, CreativeTabs tab, List list) { for (int i = 0; i < 5; ++i) { - list.add(NBTStorage.initNBT(new ItemStack(item, 1, i))); + ItemStack disk = new ItemStack(item, 1, i); + disk.setTagCompound(NBTStorage.getBaseNBT()); + list.add(disk); } } @Override public void addInformation(ItemStack disk, EntityPlayer player, List list, boolean b) { - if (DiskStorage.getCapacity(disk) == -1) { + int capacity = EnumStorageType.getById(disk.getItemDamage()).getCapacity(); + + if (capacity == -1) { list.add(String.format(I18n.translateToLocal("misc.refinedstorage:storage.stored"), NBTStorage.getStored(disk.getTagCompound()))); } else { - list.add(String.format(I18n.translateToLocal("misc.refinedstorage:storage.stored_capacity"), NBTStorage.getStored(disk.getTagCompound()), DiskStorage.getCapacity(disk))); + list.add(String.format(I18n.translateToLocal("misc.refinedstorage:storage.stored_capacity"), NBTStorage.getStored(disk.getTagCompound()), capacity)); } } @@ -46,6 +50,6 @@ public class ItemStorageDisk extends ItemBase { public void onCreated(ItemStack stack, World world, EntityPlayer player) { super.onCreated(stack, world, player); - NBTStorage.initNBT(stack); + stack.setTagCompound(NBTStorage.getBaseNBT()); } } diff --git a/src/main/java/refinedstorage/jei/GridRecipeTransferHandler.java b/src/main/java/refinedstorage/jei/GridRecipeTransferHandler.java index 51ba42c3b..1ed337255 100755 --- a/src/main/java/refinedstorage/jei/GridRecipeTransferHandler.java +++ b/src/main/java/refinedstorage/jei/GridRecipeTransferHandler.java @@ -18,7 +18,7 @@ import refinedstorage.network.MessageGridCraftingTransfer; import java.util.List; import java.util.Map; -// Thanks to https://github.com/zerofall/EZStorage/blob/master/src/main/java/com/zerofall/ezstorage/jei/RecipeTransferHandler.java +// https://github.com/zerofall/EZStorage/blob/master/src/main/java/com/zerofall/ezstorage/jei/RecipeTransferHandler.java public class GridRecipeTransferHandler implements IRecipeTransferHandler { @Override public Class getContainerClass() { diff --git a/src/main/java/refinedstorage/jei/SoldererRecipeWrapper.java b/src/main/java/refinedstorage/jei/SoldererRecipeWrapper.java index 3a045d881..ede772266 100755 --- a/src/main/java/refinedstorage/jei/SoldererRecipeWrapper.java +++ b/src/main/java/refinedstorage/jei/SoldererRecipeWrapper.java @@ -1,6 +1,5 @@ package refinedstorage.jei; -import com.google.common.base.Objects; import mezz.jei.plugins.vanilla.VanillaRecipeWrapper; import net.minecraft.item.ItemStack; @@ -8,25 +7,12 @@ import java.util.Collections; import java.util.List; public class SoldererRecipeWrapper extends VanillaRecipeWrapper { - private int hashCode; private List inputs; private ItemStack output; public SoldererRecipeWrapper(List inputs, ItemStack output) { this.inputs = inputs; this.output = output; - - int available = 0; - - for (int i = 0; i < 3; ++i) { - if (inputs.get(i) != null) { - available = i; - - break; - } - } - - hashCode = Objects.hashCode(inputs.get(available), output); } @Override @@ -56,11 +42,6 @@ public class SoldererRecipeWrapper extends VanillaRecipeWrapper { return ItemStack.areItemStacksEqual(output, other.output); } - @Override - public int hashCode() { - return hashCode; - } - @Override public String toString() { return inputs + " = " + output; diff --git a/src/main/java/refinedstorage/network/MessageCompareUpdate.java b/src/main/java/refinedstorage/network/MessageCompareUpdate.java index 17ec03cc2..f0c34ac6c 100755 --- a/src/main/java/refinedstorage/network/MessageCompareUpdate.java +++ b/src/main/java/refinedstorage/network/MessageCompareUpdate.java @@ -5,7 +5,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.tile.settings.ICompareSetting; +import refinedstorage.tile.config.ICompareConfig; public class MessageCompareUpdate extends MessageHandlerPlayerToServer implements IMessage { private int x; @@ -16,7 +16,7 @@ public class MessageCompareUpdate extends MessageHandlerPlayerToServer implements IMessage { private int x; @@ -15,7 +15,7 @@ public class MessageModeToggle extends MessageHandlerPlayerToServer implements IMessage { private int x; @@ -15,7 +15,7 @@ public class MessageRedstoneModeUpdate extends MessageHandlerPlayerToServer implements IMessage { @@ -70,7 +70,7 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer item.getType().getItemStackLimit(item.toItemStack())) { diff --git a/src/main/java/refinedstorage/storage/DiskStorage.java b/src/main/java/refinedstorage/storage/DiskStorage.java index 6735893f8..6ffb2ba7a 100755 --- a/src/main/java/refinedstorage/storage/DiskStorage.java +++ b/src/main/java/refinedstorage/storage/DiskStorage.java @@ -1,42 +1,25 @@ package refinedstorage.storage; import net.minecraft.item.ItemStack; -import refinedstorage.item.ItemStorageDisk; +import refinedstorage.block.EnumStorageType; import refinedstorage.tile.TileDiskDrive; -import refinedstorage.tile.settings.ModeSettingUtils; +import refinedstorage.tile.config.ModeConfigUtils; public class DiskStorage extends NBTStorage { private TileDiskDrive diskDrive; public DiskStorage(ItemStack disk, TileDiskDrive diskDrive) { - super(disk.getTagCompound(), getCapacity(disk), diskDrive.getPriority()); + super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), diskDrive.getPriority()); this.diskDrive = diskDrive; } @Override public boolean canPush(ItemStack stack) { - if (ModeSettingUtils.doesNotViolateMode(diskDrive.getInventory(), diskDrive.getModeSetting(), diskDrive.getCompare(), stack)) { + if (ModeConfigUtils.doesNotViolateMode(diskDrive.getInventory(), diskDrive.getModeConfig(), diskDrive.getCompare(), stack)) { return super.canPush(stack); } return false; } - - public static int getCapacity(ItemStack disk) { - switch (disk.getItemDamage()) { - case ItemStorageDisk.TYPE_1K: - return 1000; - case ItemStorageDisk.TYPE_4K: - return 4000; - case ItemStorageDisk.TYPE_16K: - return 16000; - case ItemStorageDisk.TYPE_64K: - return 64000; - case ItemStorageDisk.TYPE_CREATIVE: - return -1; - } - - return 0; - } } diff --git a/src/main/java/refinedstorage/storage/IStorage.java b/src/main/java/refinedstorage/storage/IStorage.java index fbffed542..9d48e340b 100755 --- a/src/main/java/refinedstorage/storage/IStorage.java +++ b/src/main/java/refinedstorage/storage/IStorage.java @@ -5,7 +5,7 @@ import net.minecraft.item.ItemStack; import java.util.List; public interface IStorage { - void addItems(List items); + void addItems(List items); void push(ItemStack stack); diff --git a/src/main/java/refinedstorage/storage/IStorageGui.java b/src/main/java/refinedstorage/storage/IStorageGui.java index 3361d1fee..cbf9b1e9c 100755 --- a/src/main/java/refinedstorage/storage/IStorageGui.java +++ b/src/main/java/refinedstorage/storage/IStorageGui.java @@ -1,9 +1,9 @@ package refinedstorage.storage; import net.minecraft.inventory.IInventory; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; +import refinedstorage.tile.config.IRedstoneModeConfig; public interface IStorageGui { String getName(); @@ -14,11 +14,11 @@ public interface IStorageGui { IInventory getInventory(); - IRedstoneModeSetting getRedstoneModeSetting(); + IRedstoneModeConfig getRedstoneModeConfig(); - ICompareSetting getCompareSetting(); + ICompareConfig getCompareConfig(); - IModeSetting getModeSetting(); + IModeConfig getModeConfig(); int getStored(); diff --git a/src/main/java/refinedstorage/storage/IStorageProvider.java b/src/main/java/refinedstorage/storage/IStorageProvider.java index 7c9d8e699..c6b77b88b 100755 --- a/src/main/java/refinedstorage/storage/IStorageProvider.java +++ b/src/main/java/refinedstorage/storage/IStorageProvider.java @@ -3,5 +3,5 @@ package refinedstorage.storage; import java.util.List; public interface IStorageProvider { - void addStorages(List storages); + void provide(List storages); } diff --git a/src/main/java/refinedstorage/storage/StorageItem.java b/src/main/java/refinedstorage/storage/ItemGroup.java similarity index 87% rename from src/main/java/refinedstorage/storage/StorageItem.java rename to src/main/java/refinedstorage/storage/ItemGroup.java index 956773032..71ed19180 100755 --- a/src/main/java/refinedstorage/storage/StorageItem.java +++ b/src/main/java/refinedstorage/storage/ItemGroup.java @@ -9,7 +9,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import refinedstorage.util.InventoryUtils; -public class StorageItem { +public class ItemGroup { private Item type; private int quantity; private int damage; @@ -17,7 +17,7 @@ public class StorageItem { @SideOnly(Side.CLIENT) private int id; - public StorageItem(ByteBuf buf) { + public ItemGroup(ByteBuf buf) { this.id = buf.readInt(); this.type = Item.getItemById(buf.readInt()); this.quantity = buf.readInt(); @@ -25,20 +25,14 @@ public class StorageItem { this.tag = buf.readBoolean() ? ByteBufUtils.readTag(buf) : null; } - public StorageItem(Item type, int quantity, int damage, NBTTagCompound tag) { + public ItemGroup(Item type, int quantity, int damage, NBTTagCompound tag) { this.type = type; this.quantity = quantity; this.damage = damage; this.tag = tag; } - public StorageItem(Item type, int quantity, int damage, NBTTagCompound tag, int id) { - this(type, quantity, damage, tag); - - this.id = id; - } - - public StorageItem(ItemStack stack) { + public ItemGroup(ItemStack stack) { this(stack.getItem(), stack.stackSize, stack.getItemDamage(), stack.getTagCompound()); } @@ -87,12 +81,12 @@ public class StorageItem { return id; } - public StorageItem copy() { + public ItemGroup copy() { return copy(quantity); } - public StorageItem copy(int newQuantity) { - return new StorageItem(type, newQuantity, damage, tag); + public ItemGroup copy(int newQuantity) { + return new ItemGroup(type, newQuantity, damage, tag); } public ItemStack toItemStack() { @@ -103,7 +97,7 @@ public class StorageItem { return stack; } - public boolean compare(StorageItem other, int flags) { + public boolean compare(ItemGroup other, int flags) { if ((flags & InventoryUtils.COMPARE_DAMAGE) == InventoryUtils.COMPARE_DAMAGE) { if (damage != other.getDamage()) { return false; @@ -159,7 +153,7 @@ public class StorageItem { return type == stack.getItem(); } - public boolean compareNoQuantity(StorageItem other) { + public boolean compareNoQuantity(ItemGroup other) { return compare(other, InventoryUtils.COMPARE_NBT | InventoryUtils.COMPARE_DAMAGE); } diff --git a/src/main/java/refinedstorage/storage/NBTStorage.java b/src/main/java/refinedstorage/storage/NBTStorage.java index 4ce2260fb..06070dad5 100755 --- a/src/main/java/refinedstorage/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/storage/NBTStorage.java @@ -27,7 +27,7 @@ public class NBTStorage implements IStorage { } @Override - public void addItems(List items) { + public void addItems(List items) { NBTTagList list = (NBTTagList) nbtTag.getTag(NBT_ITEMS); for (int i = 0; i < list.tagCount(); ++i) { @@ -44,7 +44,7 @@ public class NBTStorage implements IStorage { for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound tag = list.getCompoundTagAt(i); - StorageItem item = createItemFromNBT(tag); + ItemGroup item = createItemFromNBT(tag); if (item.compareNoQuantity(stack)) { tag.setInteger(NBT_ITEM_QUANTITY, item.getQuantity() + stack.stackSize); @@ -75,7 +75,7 @@ public class NBTStorage implements IStorage { for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound tag = list.getCompoundTagAt(i); - StorageItem item = createItemFromNBT(tag); + ItemGroup item = createItemFromNBT(tag); if (item.compare(stack, flags)) { if (quantity > item.getQuantity()) { @@ -115,8 +115,8 @@ public class NBTStorage implements IStorage { return priority; } - private StorageItem createItemFromNBT(NBTTagCompound tag) { - return new StorageItem(Item.getItemById(tag.getInteger(NBT_ITEM_TYPE)), tag.getInteger(NBT_ITEM_QUANTITY), tag.getInteger(NBT_ITEM_DAMAGE), tag.hasKey(NBT_ITEM_NBT) ? ((NBTTagCompound) tag.getTag(NBT_ITEM_NBT)) : null); + private ItemGroup createItemFromNBT(NBTTagCompound tag) { + return new ItemGroup(Item.getItemById(tag.getInteger(NBT_ITEM_TYPE)), tag.getInteger(NBT_ITEM_QUANTITY), tag.getInteger(NBT_ITEM_DAMAGE), tag.hasKey(NBT_ITEM_NBT) ? ((NBTTagCompound) tag.getTag(NBT_ITEM_NBT)) : null); } public static int getStored(NBTTagCompound tag) { @@ -133,8 +133,7 @@ public class NBTStorage implements IStorage { } public static ItemStack initNBT(ItemStack stack) { - stack.setTagCompound(NBTStorage.getBaseNBT()); - + stack.setTagCompound(getBaseNBT()); return stack; } } diff --git a/src/main/java/refinedstorage/tile/MachineSearcher.java b/src/main/java/refinedstorage/tile/MachineSearcher.java index 721c45357..61a3703da 100755 --- a/src/main/java/refinedstorage/tile/MachineSearcher.java +++ b/src/main/java/refinedstorage/tile/MachineSearcher.java @@ -33,7 +33,7 @@ public class MachineSearcher { if (machine.getRedstoneMode().isEnabled(controller.getWorld(), tile.getPos())) { machines.add(machine); } else if (machine instanceof TileRelay) { - // If the relay is disabled we can't search any further + // if the relay is disabled we can't search any further return; } } diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index 361c7aef2..730b743c0 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -8,10 +8,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import refinedstorage.inventory.InventorySimple; -import refinedstorage.tile.settings.ICompareSetting; +import refinedstorage.tile.config.ICompareConfig; import refinedstorage.util.InventoryUtils; -public class TileConstructor extends TileMachine implements ICompareSetting { +public class TileConstructor extends TileMachine implements ICompareConfig { public static final int SPEED = 10; public static final String NBT_COMPARE = "Compare"; diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 35bcc182e..cbb28c5a3 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -19,17 +19,17 @@ import refinedstorage.block.EnumControllerType; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.storage.IStorage; import refinedstorage.storage.IStorageProvider; -import refinedstorage.storage.StorageItem; +import refinedstorage.storage.ItemGroup; +import refinedstorage.tile.config.IRedstoneModeConfig; +import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.grid.WirelessGridConsumer; -import refinedstorage.tile.settings.IRedstoneModeSetting; -import refinedstorage.tile.settings.RedstoneMode; import refinedstorage.util.HandUtils; import refinedstorage.util.InventoryUtils; import java.util.*; -public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeSetting { - private List items = new ArrayList(); +public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeConfig { + private List items = new ArrayList(); private List storages = new ArrayList(); private List wirelessGridConsumers = new ArrayList(); private List wirelessGridConsumersMarkedForRemoval = new ArrayList(); @@ -84,7 +84,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor for (TileMachine machine : machines) { if (machine instanceof IStorageProvider) { - ((IStorageProvider) machine).addStorages(storages); + ((IStorageProvider) machine).provide(storages); } } @@ -162,7 +162,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor return machines; } - public List getItems() { + public List getItems() { return items; } @@ -184,14 +184,14 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor continue; } - StorageItem item = items.get(i); + ItemGroup item = items.get(i); for (int j = i + 1; j < items.size(); ++j) { if (markedIndexes.contains(j)) { continue; } - StorageItem other = items.get(j); + ItemGroup other = items.get(j); if (item.compareNoQuantity(other)) { item.setQuantity(item.getQuantity() + other.getQuantity()); @@ -201,7 +201,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor } } - List markedItems = new ArrayList(); + List markedItems = new ArrayList(); for (int i : markedIndexes) { markedItems.add(items.get(i)); @@ -411,7 +411,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor int size = buf.readInt(); for (int i = 0; i < size; ++i) { - items.add(new StorageItem(buf)); + items.add(new ItemGroup(buf)); } machines.clear(); @@ -438,7 +438,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor buf.writeInt(items.size()); - for (StorageItem item : items) { + for (ItemGroup item : items) { item.toBytes(buf, items.indexOf(item)); } diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index 7088d09bd..1257a0d63 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -9,14 +9,14 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import refinedstorage.inventory.InventorySimple; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; -import refinedstorage.tile.settings.ModeSettingUtils; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; +import refinedstorage.tile.config.ModeConfigUtils; import refinedstorage.util.InventoryUtils; import java.util.List; -public class TileDestructor extends TileMachine implements ICompareSetting, IModeSetting { +public class TileDestructor extends TileMachine implements ICompareConfig, IModeConfig { public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -41,7 +41,7 @@ public class TileDestructor extends TileMachine implements ICompareSetting, IMod Block frontBlock = frontBlockState.getBlock(); if (Item.getItemFromBlock(frontBlock) != null && !frontBlock.isAir(frontBlockState, worldObj, front)) { - if (ModeSettingUtils.doesNotViolateMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { + if (ModeConfigUtils.doesNotViolateMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { List drops = frontBlock.getDrops(worldObj, front, frontBlockState, 0); worldObj.setBlockToAir(front); diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index c94869f2a..809c6b4e5 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -6,12 +6,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import refinedstorage.RefinedStorageBlocks; import refinedstorage.inventory.InventorySimple; -import refinedstorage.storage.StorageItem; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.RedstoneMode; +import refinedstorage.storage.ItemGroup; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.RedstoneMode; import refinedstorage.util.InventoryUtils; -public class TileDetector extends TileMachine implements ICompareSetting { +public class TileDetector extends TileMachine implements ICompareConfig { public static final int MODE_UNDER = 0; public static final int MODE_EQUAL = 1; public static final int MODE_ABOVE = 2; @@ -50,7 +50,7 @@ public class TileDetector extends TileMachine implements ICompareSetting { if (slot != null) { boolean foundAny = false; - for (StorageItem item : getController().getItems()) { + for (ItemGroup item : getController().getItems()) { if (item.compare(slot, compare)) { foundAny = true; diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 545220ae2..3c267aab1 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -7,17 +7,18 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.text.ITextComponent; import refinedstorage.RefinedStorage; +import refinedstorage.block.EnumStorageType; import refinedstorage.inventory.InventorySimple; import refinedstorage.network.MessagePriorityUpdate; import refinedstorage.storage.*; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; +import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.util.InventoryUtils; import java.util.List; -public class TileDiskDrive extends TileMachine implements IStorageProvider, IStorageGui, ICompareSetting, IModeSetting, IInventory { +public class TileDiskDrive extends TileMachine implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig, IInventory { public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -47,7 +48,7 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto } @Override - public void addStorages(List storages) { + public void provide(List storages) { for (int i = 0; i < getSizeInventory(); ++i) { if (getStackInSlot(i) != null) { storages.add(new DiskStorage(getStackInSlot(i), this)); @@ -152,17 +153,17 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto } @Override - public IRedstoneModeSetting getRedstoneModeSetting() { + public IRedstoneModeConfig getRedstoneModeConfig() { return this; } @Override - public ICompareSetting getCompareSetting() { + public ICompareConfig getCompareConfig() { return this; } @Override - public IModeSetting getModeSetting() { + public IModeConfig getModeConfig() { return this; } @@ -205,7 +206,7 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto ItemStack stack = getStackInSlot(i); if (stack != null) { - int diskCapacity = DiskStorage.getCapacity(stack); + int diskCapacity = EnumStorageType.getById(stack.getItemDamage()).getCapacity(); if (diskCapacity == -1) { return -1; diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index 0d8026fec..2c76dfcb5 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -7,10 +7,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityHopper; import refinedstorage.inventory.InventorySimple; -import refinedstorage.tile.settings.ICompareSetting; +import refinedstorage.tile.config.ICompareConfig; import refinedstorage.util.InventoryUtils; -public class TileExporter extends TileMachine implements ICompareSetting { +public class TileExporter extends TileMachine implements ICompareConfig { public static final String NBT_COMPARE = "Compare"; public static final int SPEED = 3; diff --git a/src/main/java/refinedstorage/tile/TileExternalStorage.java b/src/main/java/refinedstorage/tile/TileExternalStorage.java index 5f679363f..c0d1dd4e2 100755 --- a/src/main/java/refinedstorage/tile/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/TileExternalStorage.java @@ -12,16 +12,16 @@ import refinedstorage.network.MessagePriorityUpdate; import refinedstorage.storage.IStorage; import refinedstorage.storage.IStorageGui; import refinedstorage.storage.IStorageProvider; -import refinedstorage.storage.StorageItem; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; -import refinedstorage.tile.settings.IRedstoneModeSetting; -import refinedstorage.tile.settings.ModeSettingUtils; +import refinedstorage.storage.ItemGroup; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; +import refinedstorage.tile.config.IRedstoneModeConfig; +import refinedstorage.tile.config.ModeConfigUtils; import refinedstorage.util.InventoryUtils; import java.util.List; -public class TileExternalStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting, IModeSetting { +public class TileExternalStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareConfig, IModeConfig { public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -44,7 +44,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider } @Override - public void addItems(List items) { + public void addItems(List items) { TileEntity connectedTile = getConnectedTile(); if (connectedTile instanceof IDeepStorageUnit) { @@ -54,7 +54,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider ItemStack stack = deep.getStoredItemType().copy(); while (stack.stackSize > 0) { - items.add(new StorageItem(stack.splitStack(Math.min(stack.getMaxStackSize(), stack.stackSize)))); + items.add(new ItemGroup(stack.splitStack(Math.min(stack.getMaxStackSize(), stack.stackSize)))); } } } else if (connectedTile instanceof IInventory) { @@ -62,7 +62,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider for (int i = 0; i < inventory.getSizeInventory(); ++i) { if (inventory.getStackInSlot(i) != null) { - items.add(new StorageItem(inventory.getStackInSlot(i))); + items.add(new ItemGroup(inventory.getStackInSlot(i))); } } } @@ -137,7 +137,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider @Override public boolean canPush(ItemStack stack) { - if (ModeSettingUtils.doesNotViolateMode(inventory, this, compare, stack)) { + if (ModeConfigUtils.doesNotViolateMode(inventory, this, compare, stack)) { TileEntity connectedTile = getConnectedTile(); if (connectedTile instanceof IDeepStorageUnit) { @@ -284,7 +284,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider } @Override - public void addStorages(List storages) { + public void provide(List storages) { storages.add(this); } @@ -294,17 +294,17 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider } @Override - public IRedstoneModeSetting getRedstoneModeSetting() { + public IRedstoneModeConfig getRedstoneModeConfig() { return this; } @Override - public ICompareSetting getCompareSetting() { + public ICompareConfig getCompareConfig() { return this; } @Override - public IModeSetting getModeSetting() { + public IModeConfig getModeConfig() { return this; } diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index 4c3f14ba0..9928c34b5 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -7,11 +7,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import refinedstorage.inventory.InventorySimple; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; import refinedstorage.util.InventoryUtils; -public class TileImporter extends TileMachine implements ICompareSetting, IModeSetting { +public class TileImporter extends TileMachine implements ICompareConfig, IModeConfig { public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -60,7 +60,7 @@ public class TileImporter extends TileMachine implements ICompareSetting, IModeS sided.markDirty(); } } else { - // If we can't import and/ or extract, move on (otherwise we stay on the same slot forever) + // if we can't import and/or extract, move on (otherwise we stay on the same slot forever) currentSlot++; } } diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index ae6076258..1ee1d0fdc 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -9,10 +9,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.text.ITextComponent; import refinedstorage.inventory.InventorySimple; -import refinedstorage.tile.settings.ICompareSetting; +import refinedstorage.tile.config.ICompareConfig; import refinedstorage.util.InventoryUtils; -public class TileInterface extends TileMachine implements ICompareSetting, ISidedInventory { +public class TileInterface extends TileMachine implements ICompareConfig, ISidedInventory { public static final String NBT_COMPARE = "Compare"; public static final int SPEED = 3; diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index d312e2e66..b26579c79 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileMachine.java @@ -5,12 +5,11 @@ import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import refinedstorage.block.BlockMachine; -import refinedstorage.tile.settings.IRedstoneModeSetting; -import refinedstorage.tile.settings.RedstoneMode; +import refinedstorage.tile.config.IRedstoneModeConfig; +import refinedstorage.tile.config.RedstoneMode; -public abstract class TileMachine extends TileBase implements INetworkTile, IRedstoneModeSetting { +public abstract class TileMachine extends TileBase implements INetworkTile, IRedstoneModeConfig { protected boolean connected = false; - protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; private BlockPos controllerPosition; diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java index 572fbf713..df8d2399c 100755 --- a/src/main/java/refinedstorage/tile/TileRelay.java +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -1,6 +1,6 @@ package refinedstorage.tile; -import refinedstorage.tile.settings.RedstoneMode; +import refinedstorage.tile.config.RedstoneMode; public class TileRelay extends TileMachine { public TileRelay() { diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index ee20e65f6..01efafb24 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -13,15 +13,15 @@ import refinedstorage.block.EnumStorageType; import refinedstorage.inventory.InventorySimple; import refinedstorage.network.MessagePriorityUpdate; import refinedstorage.storage.*; -import refinedstorage.tile.settings.ICompareSetting; -import refinedstorage.tile.settings.IModeSetting; -import refinedstorage.tile.settings.IRedstoneModeSetting; -import refinedstorage.tile.settings.ModeSettingUtils; +import refinedstorage.tile.config.ICompareConfig; +import refinedstorage.tile.config.IModeConfig; +import refinedstorage.tile.config.IRedstoneModeConfig; +import refinedstorage.tile.config.ModeConfigUtils; import refinedstorage.util.InventoryUtils; import java.util.List; -public class TileStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting, IModeSetting { +public class TileStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareConfig, IModeConfig { public static final String NBT_STORAGE = "Storage"; public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; @@ -34,7 +34,6 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora private int priority = 0; private int compare = 0; private int mode = 0; - @SideOnly(Side.CLIENT) private int stored; @@ -48,7 +47,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora } @Override - public void addStorages(List storages) { + public void provide(List storages) { storages.add(this); } @@ -116,7 +115,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora } @Override - public void addItems(List items) { + public void addItems(List items) { getStorage().addItems(items); markDirty(); @@ -140,7 +139,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora @Override public boolean canPush(ItemStack stack) { - return ModeSettingUtils.doesNotViolateMode(inventory, this, compare, stack) && getStorage().canPush(stack); + return ModeConfigUtils.doesNotViolateMode(inventory, this, compare, stack) && getStorage().canPush(stack); } @Override @@ -190,17 +189,17 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora } @Override - public IRedstoneModeSetting getRedstoneModeSetting() { + public IRedstoneModeConfig getRedstoneModeConfig() { return this; } @Override - public ICompareSetting getCompareSetting() { + public ICompareConfig getCompareConfig() { return this; } @Override - public IModeSetting getModeSetting() { + public IModeConfig getModeConfig() { return this; } @@ -239,14 +238,6 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora return stored; } - public int getStoredScaled(int scale) { - if (getType() == EnumStorageType.TYPE_CREATIVE) { - return 0; - } - - return (int) ((float) getStored() / (float) getCapacity() * (float) scale); - } - @Override public int getCapacity() { return getType().getCapacity(); diff --git a/src/main/java/refinedstorage/tile/settings/ICompareSetting.java b/src/main/java/refinedstorage/tile/config/ICompareConfig.java similarity index 64% rename from src/main/java/refinedstorage/tile/settings/ICompareSetting.java rename to src/main/java/refinedstorage/tile/config/ICompareConfig.java index 37fb20595..73675b21a 100755 --- a/src/main/java/refinedstorage/tile/settings/ICompareSetting.java +++ b/src/main/java/refinedstorage/tile/config/ICompareConfig.java @@ -1,8 +1,8 @@ -package refinedstorage.tile.settings; +package refinedstorage.tile.config; import net.minecraft.util.math.BlockPos; -public interface ICompareSetting { +public interface ICompareConfig { int getCompare(); void setCompare(int compare); diff --git a/src/main/java/refinedstorage/tile/settings/IModeSetting.java b/src/main/java/refinedstorage/tile/config/IModeConfig.java similarity index 68% rename from src/main/java/refinedstorage/tile/settings/IModeSetting.java rename to src/main/java/refinedstorage/tile/config/IModeConfig.java index 387e389da..16f997d35 100755 --- a/src/main/java/refinedstorage/tile/settings/IModeSetting.java +++ b/src/main/java/refinedstorage/tile/config/IModeConfig.java @@ -1,15 +1,15 @@ -package refinedstorage.tile.settings; - -import net.minecraft.util.math.BlockPos; - -public interface IModeSetting { - boolean isWhitelist(); - - boolean isBlacklist(); - - void setToWhitelist(); - - void setToBlacklist(); - - BlockPos getMachinePos(); -} +package refinedstorage.tile.config; + +import net.minecraft.util.math.BlockPos; + +public interface IModeConfig { + boolean isWhitelist(); + + boolean isBlacklist(); + + void setToWhitelist(); + + void setToBlacklist(); + + BlockPos getMachinePos(); +} diff --git a/src/main/java/refinedstorage/tile/settings/IRedstoneModeSetting.java b/src/main/java/refinedstorage/tile/config/IRedstoneModeConfig.java similarity index 66% rename from src/main/java/refinedstorage/tile/settings/IRedstoneModeSetting.java rename to src/main/java/refinedstorage/tile/config/IRedstoneModeConfig.java index 379857da5..0768b1c9b 100755 --- a/src/main/java/refinedstorage/tile/settings/IRedstoneModeSetting.java +++ b/src/main/java/refinedstorage/tile/config/IRedstoneModeConfig.java @@ -1,8 +1,8 @@ -package refinedstorage.tile.settings; +package refinedstorage.tile.config; import net.minecraft.util.math.BlockPos; -public interface IRedstoneModeSetting { +public interface IRedstoneModeConfig { RedstoneMode getRedstoneMode(); void setRedstoneMode(RedstoneMode mode); diff --git a/src/main/java/refinedstorage/tile/settings/ModeSettingUtils.java b/src/main/java/refinedstorage/tile/config/ModeConfigUtils.java similarity index 86% rename from src/main/java/refinedstorage/tile/settings/ModeSettingUtils.java rename to src/main/java/refinedstorage/tile/config/ModeConfigUtils.java index a1936fcef..54180cfaa 100755 --- a/src/main/java/refinedstorage/tile/settings/ModeSettingUtils.java +++ b/src/main/java/refinedstorage/tile/config/ModeConfigUtils.java @@ -1,39 +1,39 @@ -package refinedstorage.tile.settings; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import refinedstorage.util.InventoryUtils; - -public class ModeSettingUtils { - public static boolean doesNotViolateMode(IInventory inventory, IModeSetting mode, int compare, ItemStack stack) { - if (mode.isWhitelist()) { - int slots = 0; - - for (int i = 0; i < inventory.getSizeInventory(); ++i) { - ItemStack slot = inventory.getStackInSlot(i); - - if (slot != null) { - slots++; - - if (InventoryUtils.compareStack(slot, stack, compare)) { - return true; - } - } - } - - return slots == 0; - } else if (mode.isBlacklist()) { - for (int i = 0; i < inventory.getSizeInventory(); ++i) { - ItemStack slot = inventory.getStackInSlot(i); - - if (slot != null && InventoryUtils.compareStack(slot, stack, compare)) { - return false; - } - } - - return true; - } - - return false; - } -} +package refinedstorage.tile.config; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import refinedstorage.util.InventoryUtils; + +public class ModeConfigUtils { + public static boolean doesNotViolateMode(IInventory inventory, IModeConfig mode, int compare, ItemStack stack) { + if (mode.isWhitelist()) { + int slots = 0; + + for (int i = 0; i < inventory.getSizeInventory(); ++i) { + ItemStack slot = inventory.getStackInSlot(i); + + if (slot != null) { + slots++; + + if (InventoryUtils.compareStack(slot, stack, compare)) { + return true; + } + } + } + + return slots == 0; + } else if (mode.isBlacklist()) { + for (int i = 0; i < inventory.getSizeInventory(); ++i) { + ItemStack slot = inventory.getStackInSlot(i); + + if (slot != null && InventoryUtils.compareStack(slot, stack, compare)) { + return false; + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/java/refinedstorage/tile/settings/RedstoneMode.java b/src/main/java/refinedstorage/tile/config/RedstoneMode.java similarity index 96% rename from src/main/java/refinedstorage/tile/settings/RedstoneMode.java rename to src/main/java/refinedstorage/tile/config/RedstoneMode.java index c2fdce468..a0f1bbcc2 100755 --- a/src/main/java/refinedstorage/tile/settings/RedstoneMode.java +++ b/src/main/java/refinedstorage/tile/config/RedstoneMode.java @@ -1,4 +1,4 @@ -package refinedstorage.tile.settings; +package refinedstorage.tile.config; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; diff --git a/src/main/java/refinedstorage/tile/grid/IGrid.java b/src/main/java/refinedstorage/tile/grid/IGrid.java index 825395005..e44ce3f80 100755 --- a/src/main/java/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/refinedstorage/tile/grid/IGrid.java @@ -2,7 +2,7 @@ package refinedstorage.tile.grid; import refinedstorage.block.EnumGridType; import refinedstorage.tile.TileController; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.IRedstoneModeConfig; public interface IGrid { EnumGridType getType(); @@ -21,7 +21,7 @@ public interface IGrid { void onSearchBoxModeChanged(int searchBoxMode); - IRedstoneModeSetting getRedstoneModeSetting(); + IRedstoneModeConfig getRedstoneModeSetting(); boolean isConnected(); diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 63feee7d1..3f3bb2c7d 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -16,7 +16,7 @@ import refinedstorage.container.ContainerGrid; import refinedstorage.inventory.InventorySimple; import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.tile.TileMachine; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.util.InventoryUtils; import java.util.ArrayList; @@ -205,7 +205,7 @@ public class TileGrid extends TileMachine implements IGrid { } @Override - public IRedstoneModeSetting getRedstoneModeSetting() { + public IRedstoneModeConfig getRedstoneModeSetting() { return this; } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 3a926d10e..7ff41b239 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -9,7 +9,7 @@ import refinedstorage.block.EnumGridType; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.MessageWirelessGridSettingsUpdate; import refinedstorage.tile.TileController; -import refinedstorage.tile.settings.IRedstoneModeSetting; +import refinedstorage.tile.config.IRedstoneModeConfig; public class WirelessGrid implements IGrid { private ItemStack stack; @@ -75,7 +75,7 @@ public class WirelessGrid implements IGrid { } @Override - public IRedstoneModeSetting getRedstoneModeSetting() { + public IRedstoneModeConfig getRedstoneModeSetting() { return null; } diff --git a/src/main/java/refinedstorage/util/InventoryUtils.java b/src/main/java/refinedstorage/util/InventoryUtils.java index 1e62fa23f..4132243cb 100755 --- a/src/main/java/refinedstorage/util/InventoryUtils.java +++ b/src/main/java/refinedstorage/util/InventoryUtils.java @@ -88,30 +88,6 @@ public class InventoryUtils { } } - public static void pushToInventorySlot(IInventory inventory, int i, ItemStack stack) { - ItemStack slot = inventory.getStackInSlot(i); - - if (slot == null) { - inventory.setInventorySlotContents(i, stack); - } else if (compareStackNoQuantity(slot, stack)) { - slot.stackSize += stack.stackSize; - } - } - - public static boolean canPushToInventorySlot(IInventory inventory, int i, ItemStack stack) { - ItemStack slot = inventory.getStackInSlot(i); - - if (slot == null) { - return true; - } - - if (!compareStackNoQuantity(slot, stack)) { - return false; - } - - return slot.stackSize + stack.stackSize < slot.getMaxStackSize(); - } - public static void pushToInventory(IInventory inventory, ItemStack stack) { int toGo = stack.stackSize; From 250ddd5aa4408477201d84cddacbccb6dd92f94e Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 15:48:46 +0200 Subject: [PATCH 24/30] More fixes --- src/main/java/refinedstorage/block/BlockStorage.java | 2 +- src/main/java/refinedstorage/item/ItemStorageDisk.java | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/refinedstorage/block/BlockStorage.java b/src/main/java/refinedstorage/block/BlockStorage.java index 3d37c31f1..c4fc6f8b3 100755 --- a/src/main/java/refinedstorage/block/BlockStorage.java +++ b/src/main/java/refinedstorage/block/BlockStorage.java @@ -34,7 +34,7 @@ public class BlockStorage extends BlockMachine { @Override public void getSubBlocks(Item item, CreativeTabs tab, List subItems) { - for (int i = 0; i <= 4; i++) { + for (int i = 0; i <= 4; ++i) { subItems.add(ItemBlockStorage.initNBT(new ItemStack(item, 1, i))); } } diff --git a/src/main/java/refinedstorage/item/ItemStorageDisk.java b/src/main/java/refinedstorage/item/ItemStorageDisk.java index 9531af118..306ea0a14 100755 --- a/src/main/java/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/refinedstorage/item/ItemStorageDisk.java @@ -29,9 +29,7 @@ public class ItemStorageDisk extends ItemBase { @Override public void getSubItems(Item item, CreativeTabs tab, List list) { for (int i = 0; i < 5; ++i) { - ItemStack disk = new ItemStack(item, 1, i); - disk.setTagCompound(NBTStorage.getBaseNBT()); - list.add(disk); + list.add(NBTStorage.initNBT(new ItemStack(item, 1, i))); } } @@ -50,6 +48,6 @@ public class ItemStorageDisk extends ItemBase { public void onCreated(ItemStack stack, World world, EntityPlayer player) { super.onCreated(stack, world, player); - stack.setTagCompound(NBTStorage.getBaseNBT()); + NBTStorage.initNBT(stack); } } From b3fd6d1c72315369c968719ecd77e5f509a649d1 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 16:02:41 +0200 Subject: [PATCH 25/30] Renames of a few vars --- src/main/java/refinedstorage/gui/GuiGrid.java | 18 +++++----- .../network/MessageStoragePull.java | 14 ++++---- .../refinedstorage/storage/NBTStorage.java | 24 ++++++------- .../refinedstorage/tile/TileController.java | 36 +++++++++---------- .../refinedstorage/tile/TileDetector.java | 10 +++--- 5 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 4c70d6512..4499f502f 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -74,15 +74,15 @@ public class GuiGrid extends GuiBase { items.clear(); if (grid.isConnected()) { - items.addAll(grid.getController().getItems()); + items.addAll(grid.getController().getItemGroups()); if (!searchField.getText().trim().isEmpty()) { Iterator t = items.iterator(); while (t.hasNext()) { - ItemGroup item = t.next(); + ItemGroup group = t.next(); - if (!item.toItemStack().getDisplayName().toLowerCase().contains(searchField.getText().toLowerCase())) { + if (!group.toItemStack().getDisplayName().toLowerCase().contains(searchField.getText().toLowerCase())) { t.remove(); } } @@ -90,11 +90,11 @@ public class GuiGrid extends GuiBase { Collections.sort(items, new Comparator() { @Override - public int compare(ItemGroup o1, ItemGroup o2) { + public int compare(ItemGroup left, ItemGroup right) { if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { - return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName()); + return right.toItemStack().getDisplayName().compareTo(left.toItemStack().getDisplayName()); } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { - return o1.toItemStack().getDisplayName().compareTo(o2.toItemStack().getDisplayName()); + return left.toItemStack().getDisplayName().compareTo(right.toItemStack().getDisplayName()); } return 0; @@ -104,11 +104,11 @@ public class GuiGrid extends GuiBase { if (grid.getSortingType() == TileGrid.SORTING_TYPE_QUANTITY) { Collections.sort(items, new Comparator() { @Override - public int compare(ItemGroup o1, ItemGroup o2) { + public int compare(ItemGroup left, ItemGroup right) { if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) { - return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity()); + return Integer.valueOf(right.getQuantity()).compareTo(left.getQuantity()); } else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) { - return Integer.valueOf(o1.getQuantity()).compareTo(o2.getQuantity()); + return Integer.valueOf(left.getQuantity()).compareTo(right.getQuantity()); } return 0; diff --git a/src/main/java/refinedstorage/network/MessageStoragePull.java b/src/main/java/refinedstorage/network/MessageStoragePull.java index 373eb4a7c..b8726e0f5 100755 --- a/src/main/java/refinedstorage/network/MessageStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageStoragePull.java @@ -69,13 +69,13 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer 1) { - quantity = item.getQuantity() / 2; + if (message.isPullingHalf() && group.getQuantity() > 1) { + quantity = group.getQuantity() / 2; if (quantity > 32) { quantity = 32; @@ -86,11 +86,11 @@ public class MessageStoragePull extends MessageHandlerPlayerToServer item.getType().getItemStackLimit(item.toItemStack())) { - quantity = item.getType().getItemStackLimit(item.toItemStack()); + if (quantity > group.getType().getItemStackLimit(group.toItemStack())) { + quantity = group.getType().getItemStackLimit(group.toItemStack()); } - ItemStack took = controller.take(item.copy(quantity).toItemStack()); + ItemStack took = controller.take(group.copy(quantity).toItemStack()); if (took != null) { if (message.isPullingWithShift()) { diff --git a/src/main/java/refinedstorage/storage/NBTStorage.java b/src/main/java/refinedstorage/storage/NBTStorage.java index 06070dad5..8af951b59 100755 --- a/src/main/java/refinedstorage/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/storage/NBTStorage.java @@ -31,7 +31,7 @@ public class NBTStorage implements IStorage { NBTTagList list = (NBTTagList) nbtTag.getTag(NBT_ITEMS); for (int i = 0; i < list.tagCount(); ++i) { - items.add(createItemFromNBT(list.getCompoundTagAt(i))); + items.add(createItemGroupFromNBT(list.getCompoundTagAt(i))); } } @@ -44,10 +44,10 @@ public class NBTStorage implements IStorage { for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound tag = list.getCompoundTagAt(i); - ItemGroup item = createItemFromNBT(tag); + ItemGroup group = createItemGroupFromNBT(tag); - if (item.compareNoQuantity(stack)) { - tag.setInteger(NBT_ITEM_QUANTITY, item.getQuantity() + stack.stackSize); + if (group.compareNoQuantity(stack)) { + tag.setInteger(NBT_ITEM_QUANTITY, group.getQuantity() + stack.stackSize); return; } @@ -75,22 +75,22 @@ public class NBTStorage implements IStorage { for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound tag = list.getCompoundTagAt(i); - ItemGroup item = createItemFromNBT(tag); + ItemGroup group = createItemGroupFromNBT(tag); - if (item.compare(stack, flags)) { - if (quantity > item.getQuantity()) { - quantity = item.getQuantity(); + if (group.compare(stack, flags)) { + if (quantity > group.getQuantity()) { + quantity = group.getQuantity(); } - tag.setInteger(NBT_ITEM_QUANTITY, item.getQuantity() - quantity); + tag.setInteger(NBT_ITEM_QUANTITY, group.getQuantity() - quantity); - if (item.getQuantity() - quantity == 0) { + if (group.getQuantity() - quantity == 0) { list.removeTag(i); } nbtTag.setInteger(NBT_STORED, getStored(nbtTag) - quantity); - ItemStack newItem = item.toItemStack(); + ItemStack newItem = group.toItemStack(); newItem.stackSize = quantity; @@ -115,7 +115,7 @@ public class NBTStorage implements IStorage { return priority; } - private ItemGroup createItemFromNBT(NBTTagCompound tag) { + private ItemGroup createItemGroupFromNBT(NBTTagCompound tag) { return new ItemGroup(Item.getItemById(tag.getInteger(NBT_ITEM_TYPE)), tag.getInteger(NBT_ITEM_QUANTITY), tag.getInteger(NBT_ITEM_DAMAGE), tag.hasKey(NBT_ITEM_NBT) ? ((NBTTagCompound) tag.getTag(NBT_ITEM_NBT)) : null); } diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index cbb28c5a3..9aa9dcae4 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -29,7 +29,7 @@ import refinedstorage.util.InventoryUtils; import java.util.*; public class TileController extends TileBase implements IEnergyReceiver, INetworkTile, IRedstoneModeConfig { - private List items = new ArrayList(); + private List itemGroups = new ArrayList(); private List storages = new ArrayList(); private List wirelessGridConsumers = new ArrayList(); private List wirelessGridConsumersMarkedForRemoval = new ArrayList(); @@ -162,15 +162,15 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor return machines; } - public List getItems() { - return items; + public List getItemGroups() { + return itemGroups; } private void syncItems() { - items.clear(); + itemGroups.clear(); for (IStorage storage : storages) { - storage.addItems(items); + storage.addItems(itemGroups); } combineItems(); @@ -179,22 +179,22 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor private void combineItems() { List markedIndexes = new ArrayList(); - for (int i = 0; i < items.size(); ++i) { + for (int i = 0; i < itemGroups.size(); ++i) { if (markedIndexes.contains(i)) { continue; } - ItemGroup item = items.get(i); + ItemGroup group = itemGroups.get(i); - for (int j = i + 1; j < items.size(); ++j) { + for (int j = i + 1; j < itemGroups.size(); ++j) { if (markedIndexes.contains(j)) { continue; } - ItemGroup other = items.get(j); + ItemGroup otherGroup = itemGroups.get(j); - if (item.compareNoQuantity(other)) { - item.setQuantity(item.getQuantity() + other.getQuantity()); + if (group.compareNoQuantity(otherGroup)) { + group.setQuantity(group.getQuantity() + otherGroup.getQuantity()); markedIndexes.add(j); } @@ -204,10 +204,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor List markedItems = new ArrayList(); for (int i : markedIndexes) { - markedItems.add(items.get(i)); + markedItems.add(itemGroups.get(i)); } - items.removeAll(markedItems); + itemGroups.removeAll(markedItems); } public boolean push(ItemStack stack) { @@ -406,12 +406,12 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor redstoneMode = RedstoneMode.getById(buf.readInt()); - items.clear(); + itemGroups.clear(); int size = buf.readInt(); for (int i = 0; i < size; ++i) { - items.add(new ItemGroup(buf)); + itemGroups.add(new ItemGroup(buf)); } machines.clear(); @@ -436,10 +436,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor buf.writeInt(redstoneMode.id); - buf.writeInt(items.size()); + buf.writeInt(itemGroups.size()); - for (ItemGroup item : items) { - item.toBytes(buf, items.indexOf(item)); + for (ItemGroup group : itemGroups) { + group.toBytes(buf, itemGroups.indexOf(group)); } buf.writeInt(machines.size()); diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index 809c6b4e5..a8a71b41a 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -50,19 +50,19 @@ public class TileDetector extends TileMachine implements ICompareConfig { if (slot != null) { boolean foundAny = false; - for (ItemGroup item : getController().getItems()) { - if (item.compare(slot, compare)) { + for (ItemGroup group : getController().getItemGroups()) { + if (group.compare(slot, compare)) { foundAny = true; switch (mode) { case MODE_UNDER: - powered = item.getQuantity() < amount; + powered = group.getQuantity() < amount; break; case MODE_EQUAL: - powered = item.getQuantity() == amount; + powered = group.getQuantity() == amount; break; case MODE_ABOVE: - powered = item.getQuantity() > amount; + powered = group.getQuantity() > amount; break; } From f6812ee809de005f47ab75ab4569fbfbe03cbb43 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 16:35:13 +0200 Subject: [PATCH 26/30] Don't use stringbuilder in sidebuttons --- src/main/java/refinedstorage/gui/GuiGrid.java | 2 ++ .../gui/sidebutton/SideButtonCompare.java | 12 +++++------- .../gui/sidebutton/SideButtonDetectorMode.java | 7 +------ .../gui/sidebutton/SideButtonGridSearchBoxMode.java | 7 +------ .../sidebutton/SideButtonGridSortingDirection.java | 7 +------ .../gui/sidebutton/SideButtonGridSortingType.java | 7 +------ .../gui/sidebutton/SideButtonMode.java | 7 +------ .../gui/sidebutton/SideButtonRedstoneMode.java | 7 +------ 8 files changed, 13 insertions(+), 43 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 4499f502f..b85438a63 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -265,9 +265,11 @@ public class GuiGrid extends GuiBase { if (clickedButton == 1) { flags |= MessageStoragePull.PULL_HALF; } + if (GuiScreen.isShiftKeyDown()) { flags |= MessageStoragePull.PULL_SHIFT; } + if (clickedButton == 2) { flags |= MessageStoragePull.PULL_ONE; } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java index 8f46d3e0a..5313c78d4 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java @@ -18,17 +18,15 @@ public class SideButtonCompare extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:compare." + mask)).append(TextFormatting.RESET).append("\n"); + String tooltip = TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:compare." + mask) + TextFormatting.RESET + "\n"; if ((config.getCompare() & mask) == mask) { - builder.append(gui.t("misc.refinedstorage:yes")); + tooltip += gui.t("misc.refinedstorage:yes"); } else { - builder.append(gui.t("misc.refinedstorage:no")); + tooltip += gui.t("misc.refinedstorage:no"); } - return builder.toString(); + return tooltip; } @Override @@ -45,7 +43,7 @@ public class SideButtonCompare extends SideButton { int tx = (config.getCompare() & mask) == mask ? 0 : 16; - gui.drawTexture(x, y + 2, tx, ty, 16, 16); + gui.drawTexture(x, y + 1, tx, ty, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java index 43bd88417..7cdcc96f0 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java @@ -17,12 +17,7 @@ public class SideButtonDetectorMode extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:detector.mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:detector.mode." + detector.getMode())); - - return builder.toString(); + return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + detector.getMode()); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index 42f362f9b..b617a2f90 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -14,12 +14,7 @@ public class SideButtonGridSearchBoxMode extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.search_box_mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:grid.search_box_mode." + grid.getSearchBoxMode())); - - return builder.toString(); + return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.search_box_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.search_box_mode." + grid.getSearchBoxMode()); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java index 0fe678ef8..60f795da4 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java @@ -14,12 +14,7 @@ public class SideButtonGridSortingDirection extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.direction")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection())); - - return builder.toString(); + return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.direction") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection()); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java index 3668dcc21..70c00071b 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java @@ -14,12 +14,7 @@ public class SideButtonGridSortingType extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.type")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType())); - - return builder.toString(); + return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType()); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java index 663fbcbe2..3a1b7c97c 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java @@ -15,12 +15,7 @@ public class SideButtonMode extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:mode." + (config.isWhitelist() ? "whitelist" : "blacklist"))); - - return builder.toString(); + return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (config.isWhitelist() ? "whitelist" : "blacklist")); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java index 71d30515c..2d5e38497 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java @@ -15,12 +15,7 @@ public class SideButtonRedstoneMode extends SideButton { @Override public String getTooltip(GuiBase gui) { - StringBuilder builder = new StringBuilder(); - - builder.append(TextFormatting.RED).append(gui.t("sidebutton.refinedstorage:redstone_mode")).append(TextFormatting.RESET).append("\n"); - builder.append(gui.t("sidebutton.refinedstorage:redstone_mode." + config.getRedstoneMode().id)); - - return builder.toString(); + return TextFormatting.RED + gui.t("sidebutton.refinedstorage:redstone_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:redstone_mode." + config.getRedstoneMode().id); } @Override From b087d86f9a270bff2e8384a01b7b7cfbb06c2b5c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 22:44:28 +0200 Subject: [PATCH 27/30] Upgrade Forge. JEI crashes with it, so this build is unusable. --- build.gradle | 2 +- .../java/refinedstorage/block/BlockBase.java | 9 +++ .../refinedstorage/block/BlockController.java | 7 +++ .../java/refinedstorage/block/BlockGrid.java | 7 +++ .../refinedstorage/block/BlockStorage.java | 6 ++ .../java/refinedstorage/item/ItemBase.java | 1 + .../refinedstorage/item/ItemBlockBase.java | 2 + .../item/ItemBlockController.java | 6 +- .../refinedstorage/item/ItemBlockGrid.java | 6 +- .../refinedstorage/item/ItemBlockStorage.java | 6 +- .../refinedstorage/item/ItemWirelessGrid.java | 1 + .../refinedstorage/proxy/CommonProxy.java | 57 +++++++++++-------- 12 files changed, 77 insertions(+), 33 deletions(-) diff --git a/build.gradle b/build.gradle index ef8581b76..320ece576 100755 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ group = "refinedstorage" archivesBaseName = "refinedstorage" minecraft { - version = "1.9-12.16.0.1811-1.9" + version = "1.9-12.16.0.1826-1.9" runDir = "run" useDepAts = true mappings = "snapshot_20160312" diff --git a/src/main/java/refinedstorage/block/BlockBase.java b/src/main/java/refinedstorage/block/BlockBase.java index be09b393d..ad80b89ec 100755 --- a/src/main/java/refinedstorage/block/BlockBase.java +++ b/src/main/java/refinedstorage/block/BlockBase.java @@ -8,6 +8,7 @@ import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -30,6 +31,7 @@ public abstract class BlockBase extends Block { this.name = name; setHardness(0.6F); + setRegistryName(RefinedStorage.ID, name); setCreativeTab(RefinedStorage.TAB); } @@ -123,4 +125,11 @@ public abstract class BlockBase extends Block { super.breakBlock(world, pos, state); } + + public ItemBlock createItemForBlock() { + ItemBlock itemBlock = new ItemBlock(this); + itemBlock.setRegistryName(getRegistryName()); + + return itemBlock; + } } diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index 5cad921a8..2794c6d5f 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -8,6 +8,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -17,6 +18,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; +import refinedstorage.item.ItemBlockController; import refinedstorage.tile.TileController; import java.util.List; @@ -96,4 +98,9 @@ public class BlockController extends BlockBase { public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) { return ((TileController) world.getTileEntity(pos)).getEnergyScaled(15); } + + @Override + public ItemBlock createItemForBlock() { + return new ItemBlockController(); + } } diff --git a/src/main/java/refinedstorage/block/BlockGrid.java b/src/main/java/refinedstorage/block/BlockGrid.java index 49fd0bbbe..2848c8b5b 100755 --- a/src/main/java/refinedstorage/block/BlockGrid.java +++ b/src/main/java/refinedstorage/block/BlockGrid.java @@ -7,6 +7,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -15,6 +16,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; +import refinedstorage.item.ItemBlockGrid; import refinedstorage.tile.grid.TileGrid; import java.util.List; @@ -65,4 +67,9 @@ public class BlockGrid extends BlockMachine { return true; } + + @Override + public ItemBlock createItemForBlock() { + return new ItemBlockGrid(); + } } diff --git a/src/main/java/refinedstorage/block/BlockStorage.java b/src/main/java/refinedstorage/block/BlockStorage.java index c4fc6f8b3..4c2fb01df 100755 --- a/src/main/java/refinedstorage/block/BlockStorage.java +++ b/src/main/java/refinedstorage/block/BlockStorage.java @@ -8,6 +8,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -113,4 +114,9 @@ public class BlockStorage extends BlockMachine { world.setBlockToAir(pos); } + + @Override + public ItemBlock createItemForBlock() { + return new ItemBlockStorage(); + } } diff --git a/src/main/java/refinedstorage/item/ItemBase.java b/src/main/java/refinedstorage/item/ItemBase.java index 1f4beb7b5..c5afe2ab1 100755 --- a/src/main/java/refinedstorage/item/ItemBase.java +++ b/src/main/java/refinedstorage/item/ItemBase.java @@ -10,6 +10,7 @@ public abstract class ItemBase extends Item { public ItemBase(String name) { this.name = name; + setRegistryName(RefinedStorage.ID, name); setCreativeTab(RefinedStorage.TAB); } diff --git a/src/main/java/refinedstorage/item/ItemBlockBase.java b/src/main/java/refinedstorage/item/ItemBlockBase.java index b2a21469a..14d8d2de4 100755 --- a/src/main/java/refinedstorage/item/ItemBlockBase.java +++ b/src/main/java/refinedstorage/item/ItemBlockBase.java @@ -7,6 +7,8 @@ import net.minecraft.item.ItemStack; public abstract class ItemBlockBase extends ItemColored { public ItemBlockBase(Block block) { super(block, true); + + setRegistryName(block.getRegistryName()); } @Override diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java index bd5c4e62d..0d7c33c41 100755 --- a/src/main/java/refinedstorage/item/ItemBlockController.java +++ b/src/main/java/refinedstorage/item/ItemBlockController.java @@ -1,9 +1,9 @@ package refinedstorage.item; -import net.minecraft.block.Block; +import refinedstorage.RefinedStorageBlocks; public class ItemBlockController extends ItemBlockBase { - public ItemBlockController(Block block) { - super(block); + public ItemBlockController() { + super(RefinedStorageBlocks.CONTROLLER); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockGrid.java b/src/main/java/refinedstorage/item/ItemBlockGrid.java index ef8aa2ede..3c813813b 100755 --- a/src/main/java/refinedstorage/item/ItemBlockGrid.java +++ b/src/main/java/refinedstorage/item/ItemBlockGrid.java @@ -1,9 +1,9 @@ package refinedstorage.item; -import net.minecraft.block.Block; +import refinedstorage.RefinedStorageBlocks; public class ItemBlockGrid extends ItemBlockBase { - public ItemBlockGrid(Block block) { - super(block); + public ItemBlockGrid() { + super(RefinedStorageBlocks.GRID); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockStorage.java b/src/main/java/refinedstorage/item/ItemBlockStorage.java index 0eec56106..7310b2ffb 100755 --- a/src/main/java/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/refinedstorage/item/ItemBlockStorage.java @@ -1,11 +1,11 @@ package refinedstorage.item; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; +import refinedstorage.RefinedStorageBlocks; import refinedstorage.block.EnumStorageType; import refinedstorage.storage.NBTStorage; import refinedstorage.tile.TileStorage; @@ -13,8 +13,8 @@ import refinedstorage.tile.TileStorage; import java.util.List; public class ItemBlockStorage extends ItemBlockBase { - public ItemBlockStorage(Block block) { - super(block); + public ItemBlockStorage() { + super(RefinedStorageBlocks.STORAGE); } @Override diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 4044ec028..14e0948ee 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -45,6 +45,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { } }); + setRegistryName(RefinedStorage.ID, "wireless_grid"); setMaxDamage(3200); setMaxStackSize(1); setHasSubtypes(false); diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 2c2d6d0fe..0faacbb1f 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -1,7 +1,9 @@ package refinedstorage.proxy; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; @@ -12,11 +14,15 @@ import net.minecraftforge.fml.relauncher.Side; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageItems; +import refinedstorage.block.BlockBase; import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumStorageType; import refinedstorage.gui.GuiHandler; -import refinedstorage.item.*; +import refinedstorage.item.ItemCore; +import refinedstorage.item.ItemProcessor; +import refinedstorage.item.ItemStorageDisk; +import refinedstorage.item.ItemStoragePart; import refinedstorage.network.*; import refinedstorage.storage.NBTStorage; import refinedstorage.tile.*; @@ -58,29 +64,29 @@ public class CommonProxy { GameRegistry.registerTileEntity(TileRelay.class, ID + ":relay"); GameRegistry.registerTileEntity(TileInterface.class, ID + ":interface"); - GameRegistry.registerBlock(RefinedStorageBlocks.CONTROLLER, ItemBlockController.class, ID + ":controller"); - GameRegistry.registerBlock(RefinedStorageBlocks.CABLE, ID + ":cable"); - GameRegistry.registerBlock(RefinedStorageBlocks.GRID, ItemBlockGrid.class, ID + ":grid"); - GameRegistry.registerBlock(RefinedStorageBlocks.DISK_DRIVE, ID + ":disk_drive"); - GameRegistry.registerBlock(RefinedStorageBlocks.EXTERNAL_STORAGE, ID + ":external_storage"); - GameRegistry.registerBlock(RefinedStorageBlocks.IMPORTER, ID + ":importer"); - GameRegistry.registerBlock(RefinedStorageBlocks.EXPORTER, ID + ":exporter"); - GameRegistry.registerBlock(RefinedStorageBlocks.DETECTOR, ID + ":detector"); - GameRegistry.registerBlock(RefinedStorageBlocks.MACHINE_CASING, ID + ":machine_casing"); - GameRegistry.registerBlock(RefinedStorageBlocks.SOLDERER, ID + ":solderer"); - GameRegistry.registerBlock(RefinedStorageBlocks.DESTRUCTOR, ID + ":destructor"); - GameRegistry.registerBlock(RefinedStorageBlocks.CONSTRUCTOR, ID + ":constructor"); - GameRegistry.registerBlock(RefinedStorageBlocks.STORAGE, ItemBlockStorage.class, ID + ":storage"); - GameRegistry.registerBlock(RefinedStorageBlocks.RELAY, ID + ":relay"); - GameRegistry.registerBlock(RefinedStorageBlocks.INTERFACE, ID + ":interface"); + registerBlock(RefinedStorageBlocks.CONTROLLER); + registerBlock(RefinedStorageBlocks.CABLE); + registerBlock(RefinedStorageBlocks.GRID); + registerBlock(RefinedStorageBlocks.DISK_DRIVE); + registerBlock(RefinedStorageBlocks.EXTERNAL_STORAGE); + registerBlock(RefinedStorageBlocks.IMPORTER); + registerBlock(RefinedStorageBlocks.EXPORTER); + registerBlock(RefinedStorageBlocks.DETECTOR); + registerBlock(RefinedStorageBlocks.MACHINE_CASING); + registerBlock(RefinedStorageBlocks.SOLDERER); + registerBlock(RefinedStorageBlocks.DESTRUCTOR); + registerBlock(RefinedStorageBlocks.CONSTRUCTOR); + registerBlock(RefinedStorageBlocks.STORAGE); + registerBlock(RefinedStorageBlocks.RELAY); + registerBlock(RefinedStorageBlocks.INTERFACE); - GameRegistry.registerItem(RefinedStorageItems.STORAGE_DISK, ID + ":storage_disk"); - GameRegistry.registerItem(RefinedStorageItems.WIRELESS_GRID, ID + ":wireless_grid"); - GameRegistry.registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON, ID + ":quartz_enriched_iron"); - GameRegistry.registerItem(RefinedStorageItems.CORE, ID + ":core"); - GameRegistry.registerItem(RefinedStorageItems.SILICON, ID + ":silicon"); - GameRegistry.registerItem(RefinedStorageItems.PROCESSOR, ID + ":processor"); - GameRegistry.registerItem(RefinedStorageItems.STORAGE_PART, ID + ":storage_part"); + GameRegistry.register(RefinedStorageItems.STORAGE_DISK); + GameRegistry.register(RefinedStorageItems.WIRELESS_GRID); + GameRegistry.register(RefinedStorageItems.QUARTZ_ENRICHED_IRON); + GameRegistry.register(RefinedStorageItems.CORE); + GameRegistry.register(RefinedStorageItems.SILICON); + GameRegistry.register(RefinedStorageItems.PROCESSOR); + GameRegistry.register(RefinedStorageItems.STORAGE_PART); // Processors SoldererRegistry.addRecipe(new SoldererRecipePrintedProcessor(ItemProcessor.TYPE_PRINTED_BASIC)); @@ -350,4 +356,9 @@ public class CommonProxy { public void postInit(FMLPostInitializationEvent e) { } + + private void registerBlock(BlockBase block) { + GameRegistry.register(block); + GameRegistry.register(block.createItemForBlock()); + } } From 3007bc1fd2f0db84e003c9744c81592882e58a3d Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 22:58:15 +0200 Subject: [PATCH 28/30] Small changes (descriptive commit is descriptive) --- .../java/refinedstorage/block/BlockBase.java | 8 +++----- .../refinedstorage/proxy/CommonProxy.java | 20 +++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/java/refinedstorage/block/BlockBase.java b/src/main/java/refinedstorage/block/BlockBase.java index ad80b89ec..2ebb9c78b 100755 --- a/src/main/java/refinedstorage/block/BlockBase.java +++ b/src/main/java/refinedstorage/block/BlockBase.java @@ -8,6 +8,7 @@ import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -126,10 +127,7 @@ public abstract class BlockBase extends Block { super.breakBlock(world, pos, state); } - public ItemBlock createItemForBlock() { - ItemBlock itemBlock = new ItemBlock(this); - itemBlock.setRegistryName(getRegistryName()); - - return itemBlock; + public Item createItemForBlock() { + return new ItemBlock(this).setRegistryName(getRegistryName()); } } diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 0faacbb1f..e546f2c34 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -80,13 +80,13 @@ public class CommonProxy { registerBlock(RefinedStorageBlocks.RELAY); registerBlock(RefinedStorageBlocks.INTERFACE); - GameRegistry.register(RefinedStorageItems.STORAGE_DISK); - GameRegistry.register(RefinedStorageItems.WIRELESS_GRID); - GameRegistry.register(RefinedStorageItems.QUARTZ_ENRICHED_IRON); - GameRegistry.register(RefinedStorageItems.CORE); - GameRegistry.register(RefinedStorageItems.SILICON); - GameRegistry.register(RefinedStorageItems.PROCESSOR); - GameRegistry.register(RefinedStorageItems.STORAGE_PART); + registerItem(RefinedStorageItems.STORAGE_DISK); + registerItem(RefinedStorageItems.WIRELESS_GRID); + registerItem(RefinedStorageItems.QUARTZ_ENRICHED_IRON); + registerItem(RefinedStorageItems.CORE); + registerItem(RefinedStorageItems.SILICON); + registerItem(RefinedStorageItems.PROCESSOR); + registerItem(RefinedStorageItems.STORAGE_PART); // Processors SoldererRegistry.addRecipe(new SoldererRecipePrintedProcessor(ItemProcessor.TYPE_PRINTED_BASIC)); @@ -359,6 +359,10 @@ public class CommonProxy { private void registerBlock(BlockBase block) { GameRegistry.register(block); - GameRegistry.register(block.createItemForBlock()); + GameRegistry.register(block.createItemForBlock()); + } + + private void registerItem(Item item) { + GameRegistry.register(item); } } From ad46d7cfb7f667270f6387cbb40b7931048906b1 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 3 Apr 2016 01:10:06 +0200 Subject: [PATCH 29/30] Make it work again!!! --- build.gradle | 2 +- .../java/refinedstorage/block/BlockBase.java | 4 ++-- .../refinedstorage/block/BlockController.java | 7 +++--- .../java/refinedstorage/block/BlockGrid.java | 7 +++--- .../refinedstorage/block/BlockStorage.java | 3 +-- .../container/ContainerGrid.java | 3 ++- src/main/java/refinedstorage/gui/GuiGrid.java | 3 ++- .../refinedstorage/item/ItemBlockBase.java | 24 +++++++++++++++---- .../item/ItemBlockController.java | 9 ------- .../refinedstorage/item/ItemBlockGrid.java | 9 ------- .../refinedstorage/item/ItemBlockStorage.java | 2 +- .../java/refinedstorage/tile/grid/IGrid.java | 2 -- .../refinedstorage/tile/grid/TileGrid.java | 5 ---- .../tile/grid/WirelessGrid.java | 14 +++++------ 14 files changed, 41 insertions(+), 53 deletions(-) delete mode 100755 src/main/java/refinedstorage/item/ItemBlockController.java delete mode 100755 src/main/java/refinedstorage/item/ItemBlockGrid.java diff --git a/build.gradle b/build.gradle index 320ece576..67489efed 100755 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ repositories { } dependencies { - deobfCompile "mezz.jei:jei_1.9:3.1.+" + deobfCompile "mezz.jei:jei_1.9:3.2.+" } processResources { diff --git a/src/main/java/refinedstorage/block/BlockBase.java b/src/main/java/refinedstorage/block/BlockBase.java index 2ebb9c78b..61f15ef2a 100755 --- a/src/main/java/refinedstorage/block/BlockBase.java +++ b/src/main/java/refinedstorage/block/BlockBase.java @@ -9,7 +9,6 @@ import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -18,6 +17,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; +import refinedstorage.item.ItemBlockBase; import refinedstorage.tile.TileBase; import refinedstorage.util.InventoryUtils; @@ -128,6 +128,6 @@ public abstract class BlockBase extends Block { } public Item createItemForBlock() { - return new ItemBlock(this).setRegistryName(getRegistryName()); + return new ItemBlockBase(this, false); } } diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index 2794c6d5f..2f8e9d75e 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -8,7 +8,6 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -18,7 +17,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; -import refinedstorage.item.ItemBlockController; +import refinedstorage.item.ItemBlockBase; import refinedstorage.tile.TileController; import java.util.List; @@ -100,7 +99,7 @@ public class BlockController extends BlockBase { } @Override - public ItemBlock createItemForBlock() { - return new ItemBlockController(); + public Item createItemForBlock() { + return new ItemBlockBase(this, true); } } diff --git a/src/main/java/refinedstorage/block/BlockGrid.java b/src/main/java/refinedstorage/block/BlockGrid.java index 2848c8b5b..49ea2a100 100755 --- a/src/main/java/refinedstorage/block/BlockGrid.java +++ b/src/main/java/refinedstorage/block/BlockGrid.java @@ -7,7 +7,6 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; @@ -16,7 +15,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; -import refinedstorage.item.ItemBlockGrid; +import refinedstorage.item.ItemBlockBase; import refinedstorage.tile.grid.TileGrid; import java.util.List; @@ -69,7 +68,7 @@ public class BlockGrid extends BlockMachine { } @Override - public ItemBlock createItemForBlock() { - return new ItemBlockGrid(); + public Item createItemForBlock() { + return new ItemBlockBase(this, true); } } diff --git a/src/main/java/refinedstorage/block/BlockStorage.java b/src/main/java/refinedstorage/block/BlockStorage.java index 4c2fb01df..17c190dec 100755 --- a/src/main/java/refinedstorage/block/BlockStorage.java +++ b/src/main/java/refinedstorage/block/BlockStorage.java @@ -8,7 +8,6 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -116,7 +115,7 @@ public class BlockStorage extends BlockMachine { } @Override - public ItemBlock createItemForBlock() { + public Item createItemForBlock() { return new ItemBlockStorage(); } } diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 3d2ed1b76..3abd7ac64 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -9,6 +9,7 @@ import refinedstorage.container.slot.SlotGridCraftingResult; import refinedstorage.tile.TileController; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; +import refinedstorage.tile.grid.WirelessGrid; import java.util.ArrayList; import java.util.List; @@ -80,7 +81,7 @@ public class ContainerGrid extends ContainerBase { public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); - if (grid.getController() instanceof TileController && grid.isWireless()) { + if (grid instanceof WirelessGrid && ((WirelessGrid) grid).getBoundTile() instanceof TileController) { grid.getController().onCloseWirelessGrid(player); } } diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index b85438a63..f3d7c1e62 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -23,6 +23,7 @@ import refinedstorage.storage.ItemGroup; import refinedstorage.tile.TileController; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; +import refinedstorage.tile.grid.WirelessGrid; import java.io.IOException; import java.util.*; @@ -165,7 +166,7 @@ public class GuiGrid extends GuiBase { public void drawForeground(int mouseX, int mouseY) { scrollbar.update(this, mouseX, mouseY); - drawString(7, 7, t(grid.isWireless() ? "gui.refinedstorage:wireless_grid" : "gui.refinedstorage:grid")); + drawString(7, 7, t(grid instanceof WirelessGrid ? "gui.refinedstorage:wireless_grid" : "gui.refinedstorage:grid")); if (grid.getType() == EnumGridType.CRAFTING) { drawString(7, 94, t("container.crafting")); diff --git a/src/main/java/refinedstorage/item/ItemBlockBase.java b/src/main/java/refinedstorage/item/ItemBlockBase.java index 14d8d2de4..647af94f3 100755 --- a/src/main/java/refinedstorage/item/ItemBlockBase.java +++ b/src/main/java/refinedstorage/item/ItemBlockBase.java @@ -1,18 +1,32 @@ package refinedstorage.item; import net.minecraft.block.Block; -import net.minecraft.item.ItemColored; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -public abstract class ItemBlockBase extends ItemColored { - public ItemBlockBase(Block block) { - super(block, true); +public class ItemBlockBase extends ItemBlock { + public ItemBlockBase(Block block, boolean subtypes) { + super(block); setRegistryName(block.getRegistryName()); + + if (subtypes) { + setMaxDamage(0); + setHasSubtypes(true); + } + } + + @Override + public int getMetadata(int damage) { + return damage; } @Override public String getUnlocalizedName(ItemStack stack) { - return getUnlocalizedName() + "." + stack.getItemDamage(); + if (getHasSubtypes()) { + return getUnlocalizedName() + "." + stack.getItemDamage(); + } + + return getUnlocalizedName(); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java deleted file mode 100755 index 0d7c33c41..000000000 --- a/src/main/java/refinedstorage/item/ItemBlockController.java +++ /dev/null @@ -1,9 +0,0 @@ -package refinedstorage.item; - -import refinedstorage.RefinedStorageBlocks; - -public class ItemBlockController extends ItemBlockBase { - public ItemBlockController() { - super(RefinedStorageBlocks.CONTROLLER); - } -} diff --git a/src/main/java/refinedstorage/item/ItemBlockGrid.java b/src/main/java/refinedstorage/item/ItemBlockGrid.java deleted file mode 100755 index 3c813813b..000000000 --- a/src/main/java/refinedstorage/item/ItemBlockGrid.java +++ /dev/null @@ -1,9 +0,0 @@ -package refinedstorage.item; - -import refinedstorage.RefinedStorageBlocks; - -public class ItemBlockGrid extends ItemBlockBase { - public ItemBlockGrid() { - super(RefinedStorageBlocks.GRID); - } -} diff --git a/src/main/java/refinedstorage/item/ItemBlockStorage.java b/src/main/java/refinedstorage/item/ItemBlockStorage.java index 7310b2ffb..9b949ab05 100755 --- a/src/main/java/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/refinedstorage/item/ItemBlockStorage.java @@ -14,7 +14,7 @@ import java.util.List; public class ItemBlockStorage extends ItemBlockBase { public ItemBlockStorage() { - super(RefinedStorageBlocks.STORAGE); + super(RefinedStorageBlocks.STORAGE, true); } @Override diff --git a/src/main/java/refinedstorage/tile/grid/IGrid.java b/src/main/java/refinedstorage/tile/grid/IGrid.java index e44ce3f80..a57a2e022 100755 --- a/src/main/java/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/refinedstorage/tile/grid/IGrid.java @@ -24,6 +24,4 @@ public interface IGrid { IRedstoneModeConfig getRedstoneModeSetting(); boolean isConnected(); - - boolean isWireless(); } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 3f3bb2c7d..bf75e5aee 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -209,11 +209,6 @@ public class TileGrid extends TileMachine implements IGrid { return this; } - @Override - public boolean isWireless() { - return false; - } - public void setSearchBoxMode(int searchBoxMode) { this.searchBoxMode = searchBoxMode; } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 7ff41b239..552515bff 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -1,6 +1,7 @@ package refinedstorage.tile.grid; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -33,9 +34,13 @@ public class WirelessGrid implements IGrid { return EnumGridType.NORMAL; } + public TileEntity getBoundTile() { + return world.getTileEntity(new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack))); + } + @Override public TileController getController() { - return (TileController) world.getTileEntity(new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack))); + return (TileController) getBoundTile(); } @Override @@ -81,11 +86,6 @@ public class WirelessGrid implements IGrid { @Override public boolean isConnected() { - return getController() instanceof TileController && getController().isActiveClientSide(); - } - - @Override - public boolean isWireless() { - return true; + return getBoundTile() instanceof TileController && getController().isActiveClientSide(); } } From 7e7257407427e0681f73cbec705e8cae9b6c1192 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 3 Apr 2016 02:14:07 +0200 Subject: [PATCH 30/30] Fix WG reequip anim bug --- src/main/java/refinedstorage/item/ItemWirelessGrid.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 14e0948ee..d42c86bb9 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -194,7 +194,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - return false; + return slotChanged; } @Override