From 4cd84755d70c8fbdc828192f62b462319edd8201 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sun, 26 Nov 2017 12:20:43 +0100 Subject: [PATCH] Added view type for portable grid as well, to change detailed mode --- .../sidebutton/SideButtonGridViewType.java | 33 ++++++++++++------- .../tile/grid/portable/PortableGrid.java | 10 ++++-- .../tile/grid/portable/TilePortableGrid.java | 18 ++++++++-- 3 files changed, 45 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java index 8a697bf78..49f677601 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java @@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.gui.sidebutton; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.gui.GuiBase; +import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import net.minecraft.util.text.TextFormatting; public class SideButtonGridViewType extends SideButton { @@ -27,18 +28,26 @@ public class SideButtonGridViewType extends SideButton { public void actionPerformed() { int type = grid.getViewType(); - if (type == IGrid.VIEW_TYPE_NORMAL_DETAILED) { - type = IGrid.VIEW_TYPE_NON_CRAFTABLES_DETAILED; - } else if (type == IGrid.VIEW_TYPE_NON_CRAFTABLES_DETAILED) { - type = IGrid.VIEW_TYPE_CRAFTABLES_DETAILED; - } else if (type == IGrid.VIEW_TYPE_CRAFTABLES_DETAILED) { - type = IGrid.VIEW_TYPE_NORMAL; - } else if (type == IGrid.VIEW_TYPE_NORMAL) { - type = IGrid.VIEW_TYPE_NON_CRAFTABLES; - } else if (type == IGrid.VIEW_TYPE_NON_CRAFTABLES) { - type = IGrid.VIEW_TYPE_CRAFTABLES; - } else if (type == IGrid.VIEW_TYPE_CRAFTABLES) { - type = IGrid.VIEW_TYPE_NORMAL_DETAILED; + if (grid instanceof IPortableGrid) { + if (type == IGrid.VIEW_TYPE_NORMAL_DETAILED) { + type = IGrid.VIEW_TYPE_NORMAL; + } else { + type = IGrid.VIEW_TYPE_NORMAL_DETAILED; + } + } else { + if (type == IGrid.VIEW_TYPE_NORMAL_DETAILED) { + type = IGrid.VIEW_TYPE_NON_CRAFTABLES_DETAILED; + } else if (type == IGrid.VIEW_TYPE_NON_CRAFTABLES_DETAILED) { + type = IGrid.VIEW_TYPE_CRAFTABLES_DETAILED; + } else if (type == IGrid.VIEW_TYPE_CRAFTABLES_DETAILED) { + type = IGrid.VIEW_TYPE_NORMAL; + } else if (type == IGrid.VIEW_TYPE_NORMAL) { + type = IGrid.VIEW_TYPE_NON_CRAFTABLES; + } else if (type == IGrid.VIEW_TYPE_NON_CRAFTABLES) { + type = IGrid.VIEW_TYPE_CRAFTABLES; + } else if (type == IGrid.VIEW_TYPE_CRAFTABLES) { + type = IGrid.VIEW_TYPE_NORMAL_DETAILED; + } } grid.onViewTypeChanged(type); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java index 6ded2b518..869da184a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java @@ -55,6 +55,7 @@ public class PortableGrid implements IGrid, IPortableGrid { private EntityPlayer player; private ItemStack stack; + private int viewType; private int sortingType; private int sortingDirection; private int searchBoxMode; @@ -124,6 +125,7 @@ public class PortableGrid implements IGrid, IPortableGrid { this.stack = stack; if (player != null) { + this.viewType = ItemWirelessGrid.getViewType(stack); this.sortingType = ItemWirelessGrid.getSortingType(stack); this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack); this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack); @@ -225,7 +227,7 @@ public class PortableGrid implements IGrid, IPortableGrid { @Override public int getViewType() { - return -1; + return viewType; } @Override @@ -265,7 +267,11 @@ public class PortableGrid implements IGrid, IPortableGrid { @Override public void onViewTypeChanged(int type) { - // NO OP + RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(type, getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage())); + + this.viewType = type; + + GuiGrid.scheduleSort(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index dcbf78abe..f559675ba 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -59,6 +59,12 @@ import java.util.List; public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, IRedstoneConfigurable { public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.energyStorage.getEnergyStored()); + public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getViewType, (t, v) -> { + if (IGrid.isValidViewType(v)) { + t.setViewType(v); + t.markDirty(); + } + }, p -> GuiGrid.scheduleSort()); public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getSortingDirection, (t, v) -> { if (IGrid.isValidSortingDirection(v)) { t.setSortingDirection(v); @@ -117,6 +123,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, private RedstoneMode redstoneMode = RedstoneMode.IGNORE; + private int viewType; private int sortingType; private int sortingDirection; private int searchBoxMode; @@ -190,6 +197,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, public TilePortableGrid() { dataManager.addWatchedParameter(REDSTONE_MODE); dataManager.addWatchedParameter(ENERGY_STORED); + dataManager.addWatchedParameter(VIEW_TYPE); dataManager.addWatchedParameter(SORTING_DIRECTION); dataManager.addWatchedParameter(SORTING_TYPE); dataManager.addWatchedParameter(SEARCH_BOX_MODE); @@ -215,6 +223,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, } public void onPassItemContext(ItemStack stack) { + this.viewType = ItemWirelessGrid.getViewType(stack); this.sortingType = ItemWirelessGrid.getSortingType(stack); this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack); this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack); @@ -252,6 +261,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, stack.setTagCompound(new NBTTagCompound()); + stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_VIEW_TYPE, viewType); stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_SORTING_DIRECTION, sortingDirection); stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_SORTING_TYPE, sortingType); stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_SEARCH_BOX_MODE, searchBoxMode); @@ -298,7 +308,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, @Override public int getViewType() { - return -1; + return world.isRemote ? VIEW_TYPE.getValue() : viewType; } @Override @@ -336,6 +346,10 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, return world.isRemote ? SIZE.getValue() : size; } + public void setViewType(int viewType) { + this.viewType = viewType; + } + public void setSortingType(int sortingType) { this.sortingType = sortingType; } @@ -362,7 +376,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, @Override public void onViewTypeChanged(int type) { - // NO OP + TileDataManager.setParameter(VIEW_TYPE, type); } @Override