diff --git a/CHANGELOG.md b/CHANGELOG.md index 84ef1e90b..3c60275eb 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ### 0.8.16 **Bugfixes** - Fixed issue with IC2 integration causing console spam +- Slight performance improvement in GUI's +- Fixed not being able to change some configs in blocks +- Fixed serverside configs not syncing up with clientside sometimes **Features** - Added German translation by ChillUpX diff --git a/src/main/java/refinedstorage/gui/GuiStorage.java b/src/main/java/refinedstorage/gui/GuiStorage.java index 43c7c56fc..b86f64a40 100755 --- a/src/main/java/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/refinedstorage/gui/GuiStorage.java @@ -8,6 +8,7 @@ import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.tile.IStorageGui; +import refinedstorage.tile.data.TileDataManager; import java.io.IOException; @@ -15,7 +16,7 @@ public class GuiStorage extends GuiBase { private IStorageGui gui; private String texture; - private GuiTextField priorityField; + public static GuiTextField PRIORITY; private int barX = 8; private int barY = 54; @@ -35,27 +36,26 @@ public class GuiStorage extends GuiBase { @Override public void init(int x, int y) { - if (gui.getRedstoneModeConfig() != null) { - addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeConfig())); + if (gui.getRedstoneModeParameter() != null) { + addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeParameter())); } - if (gui.getModeConfig() != null) { - addSideButton(new SideButtonMode(gui.getModeConfig())); + if (gui.getFilterParameter() != null) { + addSideButton(new SideButtonMode(gui.getFilterParameter())); } - if (gui.getCompareConfig() != null) { - addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_DAMAGE)); - addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_NBT)); + if (gui.getCompareParameter() != null) { + addSideButton(new SideButtonCompare(gui.getCompareParameter(), CompareUtils.COMPARE_DAMAGE)); + addSideButton(new SideButtonCompare(gui.getCompareParameter(), CompareUtils.COMPARE_NBT)); } - priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT); - // @TODO: Only change this when packet is received - priorityField.setText(String.valueOf(gui.getPriority())); - priorityField.setEnableBackgroundDrawing(false); - priorityField.setVisible(true); - priorityField.setTextColor(16777215); - priorityField.setCanLoseFocus(true); - priorityField.setFocused(false); + PRIORITY = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT); + PRIORITY.setText(String.valueOf(gui.getPriorityParameter().getValue())); + PRIORITY.setEnableBackgroundDrawing(false); + PRIORITY.setVisible(true); + PRIORITY.setTextColor(16777215); + PRIORITY.setCanLoseFocus(true); + PRIORITY.setFocused(false); } @Override @@ -72,7 +72,7 @@ public class GuiStorage extends GuiBase { drawTexture(x + barX, y + barY + barHeight - barHeightNew, 179, barHeight - barHeightNew, barWidth, barHeightNew); - priorityField.drawTextBox(); + PRIORITY.drawTextBox(); } @Override @@ -97,16 +97,16 @@ public class GuiStorage extends GuiBase { protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); - priorityField.mouseClicked(mouseX, mouseY, mouseButton); + PRIORITY.mouseClicked(mouseX, mouseY, mouseButton); } @Override protected void keyTyped(char character, int keyCode) throws IOException { - if (!checkHotbarKeys(keyCode) && priorityField.textboxKeyTyped(character, keyCode)) { - Integer result = Ints.tryParse(priorityField.getText()); + if (!checkHotbarKeys(keyCode) && PRIORITY.textboxKeyTyped(character, keyCode)) { + Integer result = Ints.tryParse(PRIORITY.getText()); if (result != null) { - gui.onPriorityChanged(result); + TileDataManager.setParameter(gui.getPriorityParameter(), result); } } else { super.keyTyped(character, keyCode); diff --git a/src/main/java/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/refinedstorage/gui/grid/GuiGrid.java index 55d8f81ad..942dcd223 100755 --- a/src/main/java/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/grid/GuiGrid.java @@ -37,7 +37,7 @@ public class GuiGrid extends GuiBase { private GridSortingQuantity quantitySorting = new GridSortingQuantity(); private GridSortingName nameSorting = new GridSortingName(); - private GuiTextField searchField; + public static GuiTextField SEARCH_FIELD; private ContainerGrid container; private List items = new ArrayList(); @@ -64,17 +64,15 @@ public class GuiGrid extends GuiBase { int sx = x + 80 + 1; int sy = y + 6 + 1; - if (searchField == null) { - searchField = new GuiTextField(0, fontRendererObj, sx, sy, 88 - 6, fontRendererObj.FONT_HEIGHT); - searchField.setEnableBackgroundDrawing(false); - searchField.setVisible(true); - searchField.setTextColor(16777215); - - // @TODO: Only do this after packet - updateSearchBoxFocus(grid.getSearchBoxMode()); + if (SEARCH_FIELD == null) { + SEARCH_FIELD = new GuiTextField(0, fontRendererObj, sx, sy, 88 - 6, fontRendererObj.FONT_HEIGHT); + SEARCH_FIELD.setEnableBackgroundDrawing(false); + SEARCH_FIELD.setVisible(true); + SEARCH_FIELD.setTextColor(16777215); + updateSearchFieldFocus(grid.getSearchBoxMode()); } else { - searchField.xPosition = sx; - searchField.yPosition = sy; + SEARCH_FIELD.xPosition = sx; + SEARCH_FIELD.yPosition = sy; } addSideButton(new SideButtonGridViewType(grid)); @@ -94,7 +92,7 @@ public class GuiGrid extends GuiBase { if (grid.isConnected()) { items.addAll(RefinedStorage.INSTANCE.items); - String query = searchField.getText().trim().toLowerCase(); + String query = SEARCH_FIELD.getText().trim().toLowerCase(); Iterator t = items.iterator(); @@ -245,7 +243,7 @@ public class GuiGrid extends GuiBase { drawTexture(x + 152, y + 114, 240, ty * 16, 16, 16); } - searchField.drawTextBox(); + SEARCH_FIELD.drawTextBox(); } @Override @@ -330,11 +328,11 @@ public class GuiGrid extends GuiBase { public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException { super.mouseClicked(mouseX, mouseY, clickedButton); - searchField.mouseClicked(mouseX, mouseY, clickedButton); + SEARCH_FIELD.mouseClicked(mouseX, mouseY, clickedButton); if (clickedButton == 1 && inBounds(79, 5, 90, 12, mouseX - guiLeft, mouseY - guiTop)) { - searchField.setText(""); - searchField.setFocused(true); + SEARCH_FIELD.setText(""); + SEARCH_FIELD.setFocused(true); updateJEI(); } @@ -387,7 +385,7 @@ public class GuiGrid extends GuiBase { @Override protected void keyTyped(char character, int keyCode) throws IOException { - if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) { + if (!checkHotbarKeys(keyCode) && SEARCH_FIELD.textboxKeyTyped(character, keyCode)) { updateJEI(); } else { super.keyTyped(character, keyCode); @@ -396,12 +394,12 @@ public class GuiGrid extends GuiBase { private void updateJEI() { if (IntegrationJEI.isLoaded() && (grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED || grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED)) { - IntegrationJEI.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText()); + IntegrationJEI.INSTANCE.getRuntime().getItemListOverlay().setFilterText(SEARCH_FIELD.getText()); } } - public void updateSearchBoxFocus(int mode) { - searchField.setCanLoseFocus(!TileGrid.isSearchBoxModeWithAutoselection(mode)); - searchField.setFocused(TileGrid.isSearchBoxModeWithAutoselection(mode)); + public static void updateSearchFieldFocus(int mode) { + SEARCH_FIELD.setCanLoseFocus(!TileGrid.isSearchBoxModeWithAutoselection(mode)); + SEARCH_FIELD.setFocused(TileGrid.isSearchBoxModeWithAutoselection(mode)); } } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index 7340b91d9..726d83d1c 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -43,7 +43,5 @@ public class SideButtonGridSearchBoxMode extends SideButton { } gui.getGrid().onSearchBoxModeChanged(mode); - - gui.updateSearchBoxFocus(mode); } } diff --git a/src/main/java/refinedstorage/tile/IStorageGui.java b/src/main/java/refinedstorage/tile/IStorageGui.java index 7b512f985..68eb5ae82 100755 --- a/src/main/java/refinedstorage/tile/IStorageGui.java +++ b/src/main/java/refinedstorage/tile/IStorageGui.java @@ -6,17 +6,15 @@ import refinedstorage.tile.data.TileDataParameter; public interface IStorageGui { String getGuiTitle(); - int getPriority(); - - void onPriorityChanged(int priority); - IItemHandler getFilters(); - TileDataParameter getRedstoneModeConfig(); + TileDataParameter getRedstoneModeParameter(); - TileDataParameter getCompareConfig(); + TileDataParameter getCompareParameter(); - TileDataParameter getModeConfig(); + TileDataParameter getFilterParameter(); + + TileDataParameter getPriorityParameter(); int getStored(); diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index e1785415f..9c65a1992 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -48,14 +48,14 @@ public class TileDetector extends TileNode implements IComparable { tile.markDirty(); } - }, new ITileDataListener() { + }, new ITileDataListener() { @Override - public void onChanged() { + public void onChanged(TileDataParameter parameter) { if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { GuiScreen gui = Minecraft.getMinecraft().currentScreen; if (gui instanceof GuiDetector) { - ((GuiDetector) gui).AMOUNT.setText(String.valueOf(AMOUNT.getValue())); + ((GuiDetector) gui).AMOUNT.setText(String.valueOf(parameter.getValue())); } } } diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index fde147909..e4ab58459 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -21,7 +21,6 @@ import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.tile.config.IComparable; import refinedstorage.tile.config.IFilterable; import refinedstorage.tile.config.IPrioritizable; -import refinedstorage.tile.data.TileDataManager; import refinedstorage.tile.data.TileDataParameter; import java.util.List; @@ -284,30 +283,30 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeParameter() { return REDSTONE_MODE; } @Override - public TileDataParameter getCompareConfig() { + public TileDataParameter getCompareParameter() { return COMPARE; } @Override - public TileDataParameter getModeConfig() { + public TileDataParameter getFilterParameter() { return MODE; } + @Override + public TileDataParameter getPriorityParameter() { + return PRIORITY; + } + @Override public int getPriority() { return priority; } - @Override - public void onPriorityChanged(int priority) { - TileDataManager.setParameter(PRIORITY, priority); - } - @Override public void setPriority(int priority) { this.priority = priority; diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index a11a647d2..69fb060d3 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -206,20 +206,25 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeParameter() { return REDSTONE_MODE; } @Override - public TileDataParameter getCompareConfig() { + public TileDataParameter getCompareParameter() { return COMPARE; } @Override - public TileDataParameter getModeConfig() { + public TileDataParameter getFilterParameter() { return MODE; } + @Override + public TileDataParameter getPriorityParameter() { + return PRIORITY; + } + public NBTTagCompound getStorageTag() { return storageTag; } @@ -237,11 +242,6 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG return priority; } - @Override - public void onPriorityChanged(int priority) { - TileDataManager.setParameter(PRIORITY, priority); - } - @Override public void setPriority(int priority) { this.priority = priority; diff --git a/src/main/java/refinedstorage/tile/config/IPrioritizable.java b/src/main/java/refinedstorage/tile/config/IPrioritizable.java index bd6bd3842..54810bb49 100755 --- a/src/main/java/refinedstorage/tile/config/IPrioritizable.java +++ b/src/main/java/refinedstorage/tile/config/IPrioritizable.java @@ -1,11 +1,13 @@ package refinedstorage.tile.config; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; -import refinedstorage.tile.data.ITileDataConsumer; -import refinedstorage.tile.data.ITileDataProducer; -import refinedstorage.tile.data.TileDataManager; -import refinedstorage.tile.data.TileDataParameter; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.relauncher.Side; +import refinedstorage.gui.GuiStorage; +import refinedstorage.tile.data.*; public interface IPrioritizable { static TileDataParameter createParameter() { @@ -19,6 +21,17 @@ public interface IPrioritizable { public void setValue(T tile, Integer value) { ((IPrioritizable) tile).setPriority(value); } + }, new ITileDataListener() { + @Override + public void onChanged(TileDataParameter parameter) { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { + GuiScreen gui = Minecraft.getMinecraft().currentScreen; + + if (gui instanceof GuiStorage) { + ((GuiStorage) gui).PRIORITY.setText(String.valueOf(parameter.getValue())); + } + } + } }); } diff --git a/src/main/java/refinedstorage/tile/data/ITileDataListener.java b/src/main/java/refinedstorage/tile/data/ITileDataListener.java index 1786a5a60..79114d194 100755 --- a/src/main/java/refinedstorage/tile/data/ITileDataListener.java +++ b/src/main/java/refinedstorage/tile/data/ITileDataListener.java @@ -1,5 +1,5 @@ package refinedstorage.tile.data; -public interface ITileDataListener { - void onChanged(); +public interface ITileDataListener { + void onChanged(TileDataParameter parameter); } diff --git a/src/main/java/refinedstorage/tile/data/TileDataParameter.java b/src/main/java/refinedstorage/tile/data/TileDataParameter.java index b7e0911ca..bc63ca651 100755 --- a/src/main/java/refinedstorage/tile/data/TileDataParameter.java +++ b/src/main/java/refinedstorage/tile/data/TileDataParameter.java @@ -35,15 +35,11 @@ public class TileDataParameter { return valueConsumer; } - public ITileDataListener getListener() { - return listener; - } - public void setValue(T value) { this.value = value; if (listener != null) { - listener.onChanged(); + listener.onChanged(this); } } diff --git a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java index d75034b0f..aedb3c872 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -170,11 +170,6 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I return priority; } - @Override - public void onPriorityChanged(int priority) { - TileDataManager.setParameter(PRIORITY, priority); - } - @Override public void setPriority(int priority) { this.priority = priority; @@ -221,20 +216,25 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeParameter() { return REDSTONE_MODE; } @Override - public TileDataParameter getCompareConfig() { + public TileDataParameter getCompareParameter() { return COMPARE; } @Override - public TileDataParameter getModeConfig() { + public TileDataParameter getFilterParameter() { return MODE; } + @Override + public TileDataParameter getPriorityParameter() { + return PRIORITY; + } + @Override public int getStored() { int stored = 0; diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 93cc1e1bc..d3199fac5 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -8,6 +8,8 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.InvWrapper; @@ -21,15 +23,13 @@ import refinedstorage.block.BlockGrid; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; import refinedstorage.gui.grid.GridFilteredItem; +import refinedstorage.gui.grid.GuiGrid; import refinedstorage.inventory.ItemHandlerBasic; import refinedstorage.inventory.ItemHandlerGridFilterInGrid; import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.item.ItemPattern; import refinedstorage.tile.TileNode; -import refinedstorage.tile.data.ITileDataConsumer; -import refinedstorage.tile.data.ITileDataProducer; -import refinedstorage.tile.data.TileDataManager; -import refinedstorage.tile.data.TileDataParameter; +import refinedstorage.tile.data.*; import java.util.ArrayList; import java.util.List; @@ -97,6 +97,13 @@ public class TileGrid extends TileNode implements IGrid { tile.markDirty(); } } + }, new ITileDataListener() { + @Override + public void onChanged(TileDataParameter parameter) { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { + GuiGrid.updateSearchFieldFocus(parameter.getValue()); + } + } }); public static final String NBT_VIEW_TYPE = "ViewType"; diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 82d33441e..0ec5255ee 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -10,6 +10,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.api.network.IGridHandler; import refinedstorage.block.EnumGridType; import refinedstorage.gui.grid.GridFilteredItem; +import refinedstorage.gui.grid.GuiGrid; import refinedstorage.inventory.ItemHandlerBasic; import refinedstorage.inventory.ItemHandlerGridFilterInGrid; import refinedstorage.item.ItemWirelessGrid; @@ -135,6 +136,8 @@ public class WirelessGrid implements IGrid { RefinedStorage.INSTANCE.network.sendToServer(new MessageWirelessGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode)); this.searchBoxMode = searchBoxMode; + + GuiGrid.updateSearchFieldFocus(searchBoxMode); } @Override