Added support for more than 4 grid tabs in the Grid by putting filters IN filters, fixes #1448
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
### 1.5.18
|
### 1.5.18
|
||||||
- Added Project E integration for the External Storage on the Transmutation Table (raoulvdberge)
|
- Added Project E integration for the External Storage on the Transmutation Table (raoulvdberge)
|
||||||
- Added Project E integration for the energy values of Solderer items (raoulvdberge)
|
- Added Project E integration for the energy values of Solderer items (raoulvdberge)
|
||||||
|
- Added support for more than 4 grid tabs in the Grid by putting filters IN filters (raoulvdberge)
|
||||||
- Fixed network not disconnecting when Controller is broken (raoulvdberge)
|
- Fixed network not disconnecting when Controller is broken (raoulvdberge)
|
||||||
- Fixed bug where when multiple Fortune Upgrades are inserted, it chooses the first Fortune Upgrade instead of the highest one (raoulvdberge)
|
- Fixed bug where when multiple Fortune Upgrades are inserted, it chooses the first Fortune Upgrade instead of the highest one (raoulvdberge)
|
||||||
- Fixed some translations having too big "Craft" text (raoulvdberge)
|
- Fixed some translations having too big "Craft" text (raoulvdberge)
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import java.util.List;
|
|||||||
* Represents a grid.
|
* Represents a grid.
|
||||||
*/
|
*/
|
||||||
public interface IGrid {
|
public interface IGrid {
|
||||||
|
int TABS_PER_PAGE = 6;
|
||||||
|
|
||||||
int SORTING_DIRECTION_ASCENDING = 0;
|
int SORTING_DIRECTION_ASCENDING = 0;
|
||||||
int SORTING_DIRECTION_DESCENDING = 1;
|
int SORTING_DIRECTION_DESCENDING = 1;
|
||||||
|
|
||||||
@@ -96,6 +98,16 @@ public interface IGrid {
|
|||||||
*/
|
*/
|
||||||
int getTabSelected();
|
int getTabSelected();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the current page that the tab is on
|
||||||
|
*/
|
||||||
|
int getTabPage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the total amount of tab pages
|
||||||
|
*/
|
||||||
|
int getTotalTabPages();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the size mode
|
* @return the size mode
|
||||||
*/
|
*/
|
||||||
@@ -131,6 +143,11 @@ public interface IGrid {
|
|||||||
*/
|
*/
|
||||||
void onTabSelectionChanged(int tab);
|
void onTabSelectionChanged(int tab);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param page the new selected page
|
||||||
|
*/
|
||||||
|
void onTabPageChanged(int page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the filters
|
* @return the filters
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
||||||
public static final String NBT_OREDICT_PATTERN = "OredictPattern";
|
public static final String NBT_OREDICT_PATTERN = "OredictPattern";
|
||||||
public static final String NBT_TAB_SELECTED = "TabSelected";
|
public static final String NBT_TAB_SELECTED = "TabSelected";
|
||||||
|
public static final String NBT_TAB_PAGE = "TabPage";
|
||||||
public static final String NBT_SIZE = "Size";
|
public static final String NBT_SIZE = "Size";
|
||||||
public static final String NBT_PROCESSING_PATTERN = "ProcessingPattern";
|
public static final String NBT_PROCESSING_PATTERN = "ProcessingPattern";
|
||||||
public static final String NBT_BLOCKING_PATTERN = "BlockingPattern";
|
public static final String NBT_BLOCKING_PATTERN = "BlockingPattern";
|
||||||
@@ -90,6 +91,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
private int size = SIZE_STRETCH;
|
private int size = SIZE_STRETCH;
|
||||||
|
|
||||||
private int tabSelected = -1;
|
private int tabSelected = -1;
|
||||||
|
private int tabPage = 0;
|
||||||
|
|
||||||
private boolean oredictPattern = false;
|
private boolean oredictPattern = false;
|
||||||
private boolean processingPattern = false;
|
private boolean processingPattern = false;
|
||||||
@@ -135,6 +137,10 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
this.tabSelected = tabSelected;
|
this.tabSelected = tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTabPage(int page) {
|
||||||
|
this.tabPage = page;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSize(int size) {
|
public void setSize(int size) {
|
||||||
this.size = size;
|
this.size = size;
|
||||||
}
|
}
|
||||||
@@ -522,6 +528,16 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
return world.isRemote ? TileGrid.TAB_SELECTED.getValue() : tabSelected;
|
return world.isRemote ? TileGrid.TAB_SELECTED.getValue() : tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTabPage() {
|
||||||
|
return world.isRemote ? TileGrid.TAB_PAGE.getValue() : Math.min(tabPage, getTotalTabPages());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalTabPages() {
|
||||||
|
return (int) Math.floor((float) tabs.size() / (float) IGrid.TABS_PER_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewTypeChanged(int type) {
|
public void onViewTypeChanged(int type) {
|
||||||
TileDataManager.setParameter(TileGrid.VIEW_TYPE, type);
|
TileDataManager.setParameter(TileGrid.VIEW_TYPE, type);
|
||||||
@@ -552,6 +568,13 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
TileDataManager.setParameter(TileGrid.TAB_SELECTED, tab);
|
TileDataManager.setParameter(TileGrid.TAB_SELECTED, tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTabPageChanged(int page) {
|
||||||
|
if (page >= 0 && page <= getTotalTabPages()) {
|
||||||
|
TileDataManager.setParameter(TileGrid.TAB_PAGE, page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasConnectivityState() {
|
public boolean hasConnectivityState() {
|
||||||
return true;
|
return true;
|
||||||
@@ -569,6 +592,10 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
if (tag.hasKey(NBT_TAB_SELECTED)) {
|
if (tag.hasKey(NBT_TAB_SELECTED)) {
|
||||||
tabSelected = tag.getInteger(NBT_TAB_SELECTED);
|
tabSelected = tag.getInteger(NBT_TAB_SELECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tag.hasKey(NBT_TAB_PAGE)) {
|
||||||
|
tabPage = tag.getInteger(NBT_TAB_PAGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -586,6 +613,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
StackUtils.writeItems(matrixProcessing, 3, tag);
|
StackUtils.writeItems(matrixProcessing, 3, tag);
|
||||||
|
|
||||||
tag.setInteger(NBT_TAB_SELECTED, tabSelected);
|
tag.setInteger(NBT_TAB_SELECTED, tabSelected);
|
||||||
|
tag.setInteger(NBT_TAB_PAGE, tabPage);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,10 +197,6 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiButton addButton(int x, int y, int w, int h, String text) {
|
|
||||||
return addButton(x, y, w, h, text, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GuiCheckBox addCheckBox(int x, int y, String text, boolean checked) {
|
public GuiCheckBox addCheckBox(int x, int y, String text, boolean checked) {
|
||||||
GuiCheckBox checkBox = new GuiCheckBox(lastButtonId++, x, y, text, checked);
|
GuiCheckBox checkBox = new GuiCheckBox(lastButtonId++, x, y, text, checked);
|
||||||
|
|
||||||
@@ -209,9 +205,14 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
return checkBox;
|
return checkBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiButton addButton(int x, int y, int w, int h, String text, boolean enabled) {
|
public GuiButton addButton(int x, int y, int w, int h, String text) {
|
||||||
|
return addButton(x, y, w, h, text, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GuiButton addButton(int x, int y, int w, int h, String text, boolean enabled, boolean visible) {
|
||||||
GuiButton button = new GuiButton(lastButtonId++, x, y, w, h, text);
|
GuiButton button = new GuiButton(lastButtonId++, x, y, w, h, text);
|
||||||
button.enabled = enabled;
|
button.enabled = enabled;
|
||||||
|
button.visible = visible;
|
||||||
|
|
||||||
buttonList.add(button);
|
buttonList.add(button);
|
||||||
|
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
int cancelButtonWidth = 14 + fontRenderer.getStringWidth(cancel);
|
int cancelButtonWidth = 14 + fontRenderer.getStringWidth(cancel);
|
||||||
int cancelAllButtonWidth = 14 + fontRenderer.getStringWidth(cancelAll);
|
int cancelAllButtonWidth = 14 + fontRenderer.getStringWidth(cancelAll);
|
||||||
|
|
||||||
cancelButton = addButton(x + 7, y + 113, cancelButtonWidth, 20, cancel, false);
|
cancelButton = addButton(x + 7, y + 113, cancelButtonWidth, 20, cancel, false, true);
|
||||||
cancelAllButton = addButton(x + 7 + cancelButtonWidth + 4, y + 113, cancelAllButtonWidth, 20, cancelAll, false);
|
cancelAllButton = addButton(x + 7 + cancelButtonWidth + 4, y + 113, cancelAllButtonWidth, 20, cancelAll, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -70,6 +70,9 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
private GuiCheckBox processingPattern;
|
private GuiCheckBox processingPattern;
|
||||||
private GuiCheckBox blockingPattern;
|
private GuiCheckBox blockingPattern;
|
||||||
|
|
||||||
|
private GuiButton tabPageLeft;
|
||||||
|
private GuiButton tabPageRight;
|
||||||
|
|
||||||
private IGrid grid;
|
private IGrid grid;
|
||||||
|
|
||||||
private boolean hadTabs = false;
|
private boolean hadTabs = false;
|
||||||
@@ -121,17 +124,20 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
((ContainerGrid) this.inventorySlots).initSlots();
|
((ContainerGrid) this.inventorySlots).initSlots();
|
||||||
|
|
||||||
this.scrollbar = new Scrollbar(174, getTabDelta() + getHeader(), 12, (getVisibleRows() * 18) - 2);
|
this.scrollbar = new Scrollbar(174, getTabHeight() + getHeader(), 12, (getVisibleRows() * 18) - 2);
|
||||||
|
|
||||||
if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) {
|
if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) {
|
||||||
addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabPageLeft = addButton(getGuiLeft(), getGuiTop() - 22, 20, 20, "<", true, grid.getTotalTabPages() > 0);
|
||||||
|
tabPageRight = addButton(getGuiLeft() + getXSize() - 22 - 32, getGuiTop() - 22, 20, 20, ">", true, grid.getTotalTabPages() > 0);
|
||||||
|
|
||||||
this.konamiOffsetsX = new int[9 * getVisibleRows()];
|
this.konamiOffsetsX = new int[9 * getVisibleRows()];
|
||||||
this.konamiOffsetsY = new int[9 * getVisibleRows()];
|
this.konamiOffsetsY = new int[9 * getVisibleRows()];
|
||||||
|
|
||||||
int sx = x + 80 + 1;
|
int sx = x + 80 + 1;
|
||||||
int sy = y + 6 + 1 + getTabDelta();
|
int sy = y + 6 + 1 + getTabHeight();
|
||||||
|
|
||||||
if (searchField == null) {
|
if (searchField == null) {
|
||||||
searchField = new GuiTextField(0, fontRenderer, sx, sy, 88 - 6, fontRenderer.FONT_HEIGHT);
|
searchField = new GuiTextField(0, fontRenderer, sx, sy, 88 - 6, fontRenderer.FONT_HEIGHT);
|
||||||
@@ -146,11 +152,11 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (grid.getType() == GridType.PATTERN) {
|
if (grid.getType() == GridType.PATTERN) {
|
||||||
processingPattern = addCheckBox(x + 7, y + getTabDelta() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue());
|
processingPattern = addCheckBox(x + 7, y + getTabHeight() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue());
|
||||||
oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + getTabDelta() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue());
|
oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + getTabHeight() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue());
|
||||||
|
|
||||||
if (((NetworkNodeGrid) grid).isProcessingPattern()) {
|
if (((NetworkNodeGrid) grid).isProcessingPattern()) {
|
||||||
blockingPattern = addCheckBox(oredictPattern.x + oredictPattern.width + 5, y + getTabDelta() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:blocking"), TileGrid.BLOCKING_PATTERN.getValue());
|
blockingPattern = addCheckBox(oredictPattern.x + oredictPattern.width + 5, y + getTabHeight() + getHeader() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:blocking"), TileGrid.BLOCKING_PATTERN.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,6 +229,9 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
scrollbar.setEnabled(getRows() > getVisibleRows());
|
scrollbar.setEnabled(getRows() > getVisibleRows());
|
||||||
scrollbar.setMaxOffset(getRows() - getVisibleRows());
|
scrollbar.setMaxOffset(getRows() - getVisibleRows());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabPageLeft.visible = grid.getTotalTabPages() > 0;
|
||||||
|
tabPageRight.visible = grid.getTotalTabPages() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -273,7 +282,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getYPlayerInventory() {
|
public int getYPlayerInventory() {
|
||||||
int yp = getTabDelta() + getHeader() + (getVisibleRows() * 18);
|
int yp = getTabHeight() + getHeader() + (getVisibleRows() * 18);
|
||||||
|
|
||||||
if (grid.getType() == GridType.NORMAL || grid.getType() == GridType.FLUID) {
|
if (grid.getType() == GridType.NORMAL || grid.getType() == GridType.FLUID) {
|
||||||
yp += 16;
|
yp += 16;
|
||||||
@@ -318,11 +327,11 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOverSlotArea(int mouseX, int mouseY) {
|
public boolean isOverSlotArea(int mouseX, int mouseY) {
|
||||||
return inBounds(7, 19 + getTabDelta(), 162, 18 * getVisibleRows(), mouseX, mouseY);
|
return inBounds(7, 19 + getTabHeight(), 162, 18 * getVisibleRows(), mouseX, mouseY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOverClear(int mouseX, int mouseY) {
|
private boolean isOverClear(int mouseX, int mouseY) {
|
||||||
int y = getTabDelta() + getHeader() + (getVisibleRows() * 18) + 4;
|
int y = getTabHeight() + getHeader() + (getVisibleRows() * 18) + 4;
|
||||||
|
|
||||||
switch (grid.getType()) {
|
switch (grid.getType()) {
|
||||||
case CRAFTING:
|
case CRAFTING:
|
||||||
@@ -339,22 +348,21 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOverCreatePattern(int mouseX, int mouseY) {
|
private boolean isOverCreatePattern(int mouseX, int mouseY) {
|
||||||
return grid.getType() == GridType.PATTERN && inBounds(172, getTabDelta() + getHeader() + (getVisibleRows() * 18) + 22, 16, 16, mouseX, mouseY) && ((NetworkNodeGrid) grid).canCreatePattern();
|
return grid.getType() == GridType.PATTERN && inBounds(172, getTabHeight() + getHeader() + (getVisibleRows() * 18) + 22, 16, 16, mouseX, mouseY) && ((NetworkNodeGrid) grid).canCreatePattern();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getTabDelta() {
|
private int getTabHeight() {
|
||||||
return !grid.getTabs().isEmpty() ? ContainerGrid.TAB_HEIGHT - 4 : 0;
|
return !grid.getTabs().isEmpty() ? ContainerGrid.TAB_HEIGHT - 4 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTab(IGridTab tab, boolean foregroundLayer, int x, int y, int mouseX, int mouseY) {
|
private void drawTab(IGridTab tab, boolean foregroundLayer, int x, int y, int mouseX, int mouseY, int index, int num) {
|
||||||
int i = grid.getTabs().indexOf(tab);
|
boolean selected = index == grid.getTabSelected();
|
||||||
boolean selected = i == grid.getTabSelected();
|
|
||||||
|
|
||||||
if ((foregroundLayer && !selected) || (!foregroundLayer && selected)) {
|
if ((foregroundLayer && !selected) || (!foregroundLayer && selected)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tx = x + ((ContainerGrid.TAB_WIDTH + 1) * i);
|
int tx = x + ((ContainerGrid.TAB_WIDTH + 1) * num);
|
||||||
int ty = y;
|
int ty = y;
|
||||||
|
|
||||||
bindTexture("icons.png");
|
bindTexture("icons.png");
|
||||||
@@ -371,7 +379,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
if (selected) {
|
if (selected) {
|
||||||
uvx = 227;
|
uvx = 227;
|
||||||
|
|
||||||
if (i > 0) {
|
if (num > 0) {
|
||||||
uvx = 226;
|
uvx = 226;
|
||||||
uvy = 194;
|
uvy = 194;
|
||||||
tbw++;
|
tbw++;
|
||||||
@@ -385,10 +393,10 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
|
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
|
|
||||||
drawItem(otx + 6, ty + 8 - (!selected ? 2 : 0), tab.getIcon());
|
drawItem(otx + 6, ty + 9 - (!selected ? 3 : 0), tab.getIcon());
|
||||||
|
|
||||||
if (inBounds(tx, ty, ContainerGrid.TAB_WIDTH, ContainerGrid.TAB_HEIGHT, mouseX, mouseY)) {
|
if (inBounds(tx, ty, ContainerGrid.TAB_WIDTH, ContainerGrid.TAB_HEIGHT, mouseX, mouseY)) {
|
||||||
tabHovering = i;
|
tabHovering = index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,8 +404,11 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
||||||
tabHovering = -1;
|
tabHovering = -1;
|
||||||
|
|
||||||
for (IGridTab tab : grid.getTabs()) {
|
int j = 0;
|
||||||
drawTab(tab, false, x, y, mouseX, mouseY);
|
for (int i = grid.getTabPage() * IGrid.TABS_PER_PAGE; i < (grid.getTabPage() * IGrid.TABS_PER_PAGE) + IGrid.TABS_PER_PAGE; ++i) {
|
||||||
|
if (i < grid.getTabs().size()) {
|
||||||
|
drawTab(grid.getTabs().get(i), false, x, y, mouseX, mouseY, i, j++);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grid.getType() == GridType.CRAFTING) {
|
if (grid.getType() == GridType.CRAFTING) {
|
||||||
@@ -410,12 +421,12 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
bindTexture("gui/grid.png");
|
bindTexture("gui/grid.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
int yy = y + getTabDelta();
|
int yy = y + getTabHeight();
|
||||||
|
|
||||||
drawTexture(x, yy, 0, 0, screenWidth - (grid.getType() != GridType.FLUID ? 34 : 0), getHeader());
|
drawTexture(x, yy, 0, 0, screenWidth - (grid.getType() != GridType.FLUID ? 34 : 0), getHeader());
|
||||||
|
|
||||||
if (grid.getType() != GridType.FLUID) {
|
if (grid.getType() != GridType.FLUID) {
|
||||||
drawTexture(x + screenWidth - 34 + 4, y + getTabDelta(), 197, 0, 30, grid instanceof IPortableGrid ? 114 : 82);
|
drawTexture(x + screenWidth - 34 + 4, y + getTabHeight(), 197, 0, 30, grid instanceof IPortableGrid ? 114 : 82);
|
||||||
}
|
}
|
||||||
|
|
||||||
int rows = getVisibleRows();
|
int rows = getVisibleRows();
|
||||||
@@ -441,11 +452,14 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
ty = 2;
|
ty = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawTexture(x + 172, y + getTabDelta() + getHeader() + (getVisibleRows() * 18) + 22, 240, ty * 16, 16, 16);
|
drawTexture(x + 172, y + getTabHeight() + getHeader() + (getVisibleRows() * 18) + 22, 240, ty * 16, 16, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IGridTab tab : grid.getTabs()) {
|
j = 0;
|
||||||
drawTab(tab, true, x, y, mouseX, mouseY);
|
for (int i = grid.getTabPage() * IGrid.TABS_PER_PAGE; i < (grid.getTabPage() * IGrid.TABS_PER_PAGE) + IGrid.TABS_PER_PAGE; ++i) {
|
||||||
|
if (i < grid.getTabs().size()) {
|
||||||
|
drawTab(grid.getTabs().get(i), true, x, y, mouseX, mouseY, i, j++);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchField != null) {
|
if (searchField != null) {
|
||||||
@@ -455,11 +469,17 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
public void drawForeground(int mouseX, int mouseY) {
|
||||||
drawString(7, 7 + getTabDelta(), t(grid.getGuiTitle()));
|
drawString(7, 7 + getTabHeight(), t(grid.getGuiTitle()));
|
||||||
drawString(7, getYPlayerInventory() - 12, t("container.inventory"));
|
drawString(7, getYPlayerInventory() - 12, t("container.inventory"));
|
||||||
|
|
||||||
|
if (grid.getTotalTabPages() > 0) {
|
||||||
|
String text = (grid.getTabPage() + 1) + " / " + (grid.getTotalTabPages() + 1);
|
||||||
|
|
||||||
|
drawString((int) ((193F - (float) fontRenderer.getStringWidth(text)) / 2F), -16, text, 0xFFFFFF);
|
||||||
|
}
|
||||||
|
|
||||||
int x = 8;
|
int x = 8;
|
||||||
int y = 19 + getTabDelta();
|
int y = 19 + getTabHeight();
|
||||||
|
|
||||||
this.slotNumber = -1;
|
this.slotNumber = -1;
|
||||||
|
|
||||||
@@ -532,6 +552,10 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
TileDataManager.setParameter(TileGrid.BLOCKING_PATTERN, blockingPattern.isChecked());
|
TileDataManager.setParameter(TileGrid.BLOCKING_PATTERN, blockingPattern.isChecked());
|
||||||
} else if (button == processingPattern) {
|
} else if (button == processingPattern) {
|
||||||
TileDataManager.setParameter(TileGrid.PROCESSING_PATTERN, processingPattern.isChecked());
|
TileDataManager.setParameter(TileGrid.PROCESSING_PATTERN, processingPattern.isChecked());
|
||||||
|
} else if (button == tabPageLeft) {
|
||||||
|
grid.onTabPageChanged(grid.getTabPage() - 1);
|
||||||
|
} else if (button == tabPageRight) {
|
||||||
|
grid.onTabPageChanged(grid.getTabPage() + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -548,7 +572,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
|
|||||||
|
|
||||||
searchField.mouseClicked(mouseX, mouseY, clickedButton);
|
searchField.mouseClicked(mouseX, mouseY, clickedButton);
|
||||||
|
|
||||||
if (clickedButton == 1 && inBounds(79, 5 + getTabDelta(), 90, 12, mouseX - guiLeft, mouseY - guiTop)) {
|
if (clickedButton == 1 && inBounds(79, 5 + getTabHeight(), 90, 12, mouseX - guiLeft, mouseY - guiTop)) {
|
||||||
searchField.setText("");
|
searchField.setText("");
|
||||||
searchField.setFocused(true);
|
searchField.setFocused(true);
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public abstract class SideButton extends GuiButton {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) {
|
public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) {
|
||||||
|
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
GlStateManager.enableAlpha();
|
GlStateManager.enableAlpha();
|
||||||
|
|
||||||
hovered = gui.inBounds(x, y, width, height, mouseX, mouseY);
|
hovered = gui.inBounds(x, y, width, height, mouseX, mouseY);
|
||||||
|
|||||||
@@ -38,27 +38,7 @@ public class ItemHandlerFilter extends ItemHandlerBase {
|
|||||||
ItemStack filter = getStackInSlot(i);
|
ItemStack filter = getStackInSlot(i);
|
||||||
|
|
||||||
if (!filter.isEmpty()) {
|
if (!filter.isEmpty()) {
|
||||||
int compare = ItemFilter.getCompare(filter);
|
addFilter(filter);
|
||||||
int mode = ItemFilter.getMode(filter);
|
|
||||||
boolean modFilter = ItemFilter.isModFilter(filter);
|
|
||||||
|
|
||||||
ItemHandlerFilterItems items = new ItemHandlerFilterItems(filter);
|
|
||||||
|
|
||||||
List<IFilter> filters = new ArrayList<>();
|
|
||||||
|
|
||||||
for (ItemStack item : items.getFilteredItems()) {
|
|
||||||
if (!item.isEmpty()) {
|
|
||||||
filters.add(new Filter(item, compare, mode, modFilter));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack icon = ItemFilter.getIcon(filter);
|
|
||||||
|
|
||||||
if (icon.isEmpty()) {
|
|
||||||
this.filters.addAll(filters);
|
|
||||||
} else {
|
|
||||||
tabs.add(new GridTab(filters, ItemFilter.getName(filter), icon));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,4 +46,30 @@ public class ItemHandlerFilter extends ItemHandlerBase {
|
|||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addFilter(ItemStack filter) {
|
||||||
|
int compare = ItemFilter.getCompare(filter);
|
||||||
|
int mode = ItemFilter.getMode(filter);
|
||||||
|
boolean modFilter = ItemFilter.isModFilter(filter);
|
||||||
|
|
||||||
|
ItemHandlerFilterItems items = new ItemHandlerFilterItems(filter);
|
||||||
|
|
||||||
|
List<IFilter> filters = new ArrayList<>();
|
||||||
|
|
||||||
|
for (ItemStack stack : items.getFilteredItems()) {
|
||||||
|
if (stack.getItem() == RSItems.FILTER) {
|
||||||
|
addFilter(stack);
|
||||||
|
} else if (!stack.isEmpty()) {
|
||||||
|
filters.add(new Filter(stack, compare, mode, modFilter));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack icon = ItemFilter.getIcon(filter);
|
||||||
|
|
||||||
|
if (icon.isEmpty()) {
|
||||||
|
this.filters.addAll(filters);
|
||||||
|
} else {
|
||||||
|
tabs.add(new GridTab(filters, ItemFilter.getName(filter), icon));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public class ItemBlockPortableGrid extends ItemBlockEnergyItem {
|
|||||||
ItemWirelessGrid.getSortingType(oldStack) == ItemWirelessGrid.getSortingType(newStack) &&
|
ItemWirelessGrid.getSortingType(oldStack) == ItemWirelessGrid.getSortingType(newStack) &&
|
||||||
ItemWirelessGrid.getSearchBoxMode(oldStack) == ItemWirelessGrid.getSearchBoxMode(newStack) &&
|
ItemWirelessGrid.getSearchBoxMode(oldStack) == ItemWirelessGrid.getSearchBoxMode(newStack) &&
|
||||||
ItemWirelessGrid.getTabSelected(oldStack) == ItemWirelessGrid.getTabSelected(newStack) &&
|
ItemWirelessGrid.getTabSelected(oldStack) == ItemWirelessGrid.getTabSelected(newStack) &&
|
||||||
|
ItemWirelessGrid.getTabPage(oldStack) == ItemWirelessGrid.getTabPage(newStack) &&
|
||||||
ItemWirelessGrid.getSize(oldStack) == ItemWirelessGrid.getSize(newStack)) {
|
ItemWirelessGrid.getSize(oldStack) == ItemWirelessGrid.getSize(newStack)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ public class ItemWirelessGrid extends ItemNetworkItem {
|
|||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_TAB_SELECTED)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_TAB_SELECTED) : -1;
|
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_TAB_SELECTED)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_TAB_SELECTED) : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getTabPage(ItemStack stack) {
|
||||||
|
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_TAB_PAGE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_TAB_PAGE) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static int getSize(ItemStack stack) {
|
public static int getSize(ItemStack stack) {
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SIZE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SIZE) : IGrid.SIZE_STRETCH;
|
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SIZE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SIZE) : IGrid.SIZE_STRETCH;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,17 +18,19 @@ public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<Mess
|
|||||||
private int searchBoxMode;
|
private int searchBoxMode;
|
||||||
private int size;
|
private int size;
|
||||||
private int tabSelected;
|
private int tabSelected;
|
||||||
|
private int tabPage;
|
||||||
|
|
||||||
public MessageGridSettingsUpdate() {
|
public MessageGridSettingsUpdate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageGridSettingsUpdate(int viewType, int sortingDirection, int sortingType, int searchBoxMode, int size, int tabSelected) {
|
public MessageGridSettingsUpdate(int viewType, int sortingDirection, int sortingType, int searchBoxMode, int size, int tabSelected, int tabPage) {
|
||||||
this.viewType = viewType;
|
this.viewType = viewType;
|
||||||
this.sortingDirection = sortingDirection;
|
this.sortingDirection = sortingDirection;
|
||||||
this.sortingType = sortingType;
|
this.sortingType = sortingType;
|
||||||
this.searchBoxMode = searchBoxMode;
|
this.searchBoxMode = searchBoxMode;
|
||||||
this.size = size;
|
this.size = size;
|
||||||
this.tabSelected = tabSelected;
|
this.tabSelected = tabSelected;
|
||||||
|
this.tabPage = tabPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,6 +41,7 @@ public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<Mess
|
|||||||
searchBoxMode = buf.readInt();
|
searchBoxMode = buf.readInt();
|
||||||
size = buf.readInt();
|
size = buf.readInt();
|
||||||
tabSelected = buf.readInt();
|
tabSelected = buf.readInt();
|
||||||
|
tabPage = buf.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -49,6 +52,7 @@ public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<Mess
|
|||||||
buf.writeInt(searchBoxMode);
|
buf.writeInt(searchBoxMode);
|
||||||
buf.writeInt(size);
|
buf.writeInt(size);
|
||||||
buf.writeInt(tabSelected);
|
buf.writeInt(tabSelected);
|
||||||
|
buf.writeInt(tabPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -84,6 +88,7 @@ public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, message.tabSelected);
|
stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, message.tabSelected);
|
||||||
|
stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_PAGE, message.tabPage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,12 @@ public class TileGrid extends TileNode<NetworkNodeGrid> {
|
|||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
public static final TileDataParameter<Integer, TileGrid> TAB_PAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getTabPage(), (t, v) -> {
|
||||||
|
if (v >= 0 && v <= t.getNode().getTotalTabPages()) {
|
||||||
|
t.getNode().setTabPage(v);
|
||||||
|
t.getNode().markDirty();
|
||||||
|
}
|
||||||
|
});
|
||||||
public static final TileDataParameter<Boolean, TileGrid> OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isOredictPattern(), (t, v) -> {
|
public static final TileDataParameter<Boolean, TileGrid> OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isOredictPattern(), (t, v) -> {
|
||||||
t.getNode().setOredictPattern(v);
|
t.getNode().setOredictPattern(v);
|
||||||
t.getNode().markDirty();
|
t.getNode().markDirty();
|
||||||
@@ -106,6 +112,7 @@ public class TileGrid extends TileNode<NetworkNodeGrid> {
|
|||||||
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
||||||
dataManager.addWatchedParameter(SIZE);
|
dataManager.addWatchedParameter(SIZE);
|
||||||
dataManager.addWatchedParameter(TAB_SELECTED);
|
dataManager.addWatchedParameter(TAB_SELECTED);
|
||||||
|
dataManager.addWatchedParameter(TAB_PAGE);
|
||||||
dataManager.addWatchedParameter(OREDICT_PATTERN);
|
dataManager.addWatchedParameter(OREDICT_PATTERN);
|
||||||
dataManager.addWatchedParameter(PROCESSING_PATTERN);
|
dataManager.addWatchedParameter(PROCESSING_PATTERN);
|
||||||
dataManager.addWatchedParameter(BLOCKING_PATTERN);
|
dataManager.addWatchedParameter(BLOCKING_PATTERN);
|
||||||
|
|||||||
@@ -102,6 +102,16 @@ public class WirelessFluidGrid implements IGrid {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTabPage() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalTabPages() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSize() {
|
public int getSize() {
|
||||||
return size;
|
return size;
|
||||||
@@ -153,6 +163,11 @@ public class WirelessFluidGrid implements IGrid {
|
|||||||
// NO OP
|
// NO OP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTabPageChanged(int page) {
|
||||||
|
// NO OP
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IFilter> getFilters() {
|
public List<IFilter> getFilters() {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
private int sortingDirection;
|
private int sortingDirection;
|
||||||
private int searchBoxMode;
|
private int searchBoxMode;
|
||||||
private int tabSelected;
|
private int tabSelected;
|
||||||
|
private int tabPage;
|
||||||
private int size;
|
private int size;
|
||||||
|
|
||||||
private List<IFilter> filters = new ArrayList<>();
|
private List<IFilter> filters = new ArrayList<>();
|
||||||
@@ -68,6 +69,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
||||||
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
||||||
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
||||||
|
this.tabPage = ItemWirelessGrid.getTabPage(stack);
|
||||||
this.size = ItemWirelessGrid.getSize(stack);
|
this.size = ItemWirelessGrid.getSize(stack);
|
||||||
|
|
||||||
if (stack.hasTagCompound()) {
|
if (stack.hasTagCompound()) {
|
||||||
@@ -128,6 +130,16 @@ public class WirelessGrid implements IGrid {
|
|||||||
return tabSelected;
|
return tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTabPage() {
|
||||||
|
return tabPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalTabPages() {
|
||||||
|
return (int) Math.floor((float) tabs.size() / (float) IGrid.TABS_PER_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSize() {
|
public int getSize() {
|
||||||
return size;
|
return size;
|
||||||
@@ -135,7 +147,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewTypeChanged(int type) {
|
public void onViewTypeChanged(int type) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(type, getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(type, getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.viewType = type;
|
this.viewType = type;
|
||||||
|
|
||||||
@@ -144,7 +156,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingTypeChanged(int type) {
|
public void onSortingTypeChanged(int type) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingType = type;
|
this.sortingType = type;
|
||||||
|
|
||||||
@@ -153,7 +165,7 @@ public class WirelessGrid implements IGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingDirectionChanged(int direction) {
|
public void onSortingDirectionChanged(int direction) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingDirection = direction;
|
this.sortingDirection = direction;
|
||||||
|
|
||||||
@@ -162,14 +174,14 @@ public class WirelessGrid implements IGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSearchBoxModeChanged(int searchBoxMode) {
|
public void onSearchBoxModeChanged(int searchBoxMode) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.searchBoxMode = searchBoxMode;
|
this.searchBoxMode = searchBoxMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSizeChanged(int size) {
|
public void onSizeChanged(int size) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.size = size;
|
this.size = size;
|
||||||
|
|
||||||
@@ -182,11 +194,20 @@ public class WirelessGrid implements IGrid {
|
|||||||
public void onTabSelectionChanged(int tab) {
|
public void onTabSelectionChanged(int tab) {
|
||||||
this.tabSelected = tab == tabSelected ? -1 : tab;
|
this.tabSelected = tab == tabSelected ? -1 : tab;
|
||||||
|
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage()));
|
||||||
|
|
||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTabPageChanged(int page) {
|
||||||
|
if (page >= 0 && page <= getTotalTabPages()) {
|
||||||
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), page));
|
||||||
|
|
||||||
|
this.tabPage = page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IFilter> getFilters() {
|
public List<IFilter> getFilters() {
|
||||||
return filters;
|
return filters;
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
private int sortingDirection;
|
private int sortingDirection;
|
||||||
private int searchBoxMode;
|
private int searchBoxMode;
|
||||||
private int tabSelected;
|
private int tabSelected;
|
||||||
|
private int tabPage;
|
||||||
private int size;
|
private int size;
|
||||||
|
|
||||||
private List<IFilter> filters = new ArrayList<>();
|
private List<IFilter> filters = new ArrayList<>();
|
||||||
@@ -119,6 +120,7 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
||||||
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
||||||
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
||||||
|
this.tabPage = ItemWirelessGrid.getTabPage(stack);
|
||||||
this.size = ItemWirelessGrid.getSize(stack);
|
this.size = ItemWirelessGrid.getSize(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +236,16 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
return tabSelected;
|
return tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTabPage() {
|
||||||
|
return tabPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalTabPages() {
|
||||||
|
return (int) Math.floor((float) tabs.size() / (float) IGrid.TABS_PER_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSize() {
|
public int getSize() {
|
||||||
return size;
|
return size;
|
||||||
@@ -246,7 +258,7 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingTypeChanged(int type) {
|
public void onSortingTypeChanged(int type) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingType = type;
|
this.sortingType = type;
|
||||||
|
|
||||||
@@ -255,7 +267,7 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingDirectionChanged(int direction) {
|
public void onSortingDirectionChanged(int direction) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingDirection = direction;
|
this.sortingDirection = direction;
|
||||||
|
|
||||||
@@ -264,14 +276,14 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSearchBoxModeChanged(int searchBoxMode) {
|
public void onSearchBoxModeChanged(int searchBoxMode) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.searchBoxMode = searchBoxMode;
|
this.searchBoxMode = searchBoxMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSizeChanged(int size) {
|
public void onSizeChanged(int size) {
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected()));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.size = size;
|
this.size = size;
|
||||||
|
|
||||||
@@ -284,11 +296,20 @@ public class PortableGrid implements IGrid, IPortableGrid {
|
|||||||
public void onTabSelectionChanged(int tab) {
|
public void onTabSelectionChanged(int tab) {
|
||||||
this.tabSelected = tab == tabSelected ? -1 : tab;
|
this.tabSelected = tab == tabSelected ? -1 : tab;
|
||||||
|
|
||||||
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected));
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage()));
|
||||||
|
|
||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTabPageChanged(int page) {
|
||||||
|
if (page >= 0 && page <= getTotalTabPages()) {
|
||||||
|
RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), page));
|
||||||
|
|
||||||
|
this.tabPage = page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IFilter> getFilters() {
|
public List<IFilter> getFilters() {
|
||||||
return filters;
|
return filters;
|
||||||
|
|||||||
@@ -96,6 +96,12 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
GuiGrid.markForSorting();
|
GuiGrid.markForSorting();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
public static final TileDataParameter<Integer, TilePortableGrid> TAB_PAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getTabPage, (t, v) -> {
|
||||||
|
if (v >= 0 && v <= t.getTotalTabPages()) {
|
||||||
|
t.setTabPage(v);
|
||||||
|
t.markDirty();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
private static final String NBT_ENERGY = "Energy";
|
private static final String NBT_ENERGY = "Energy";
|
||||||
private static final String NBT_DISK_STATE = "DiskState";
|
private static final String NBT_DISK_STATE = "DiskState";
|
||||||
@@ -110,6 +116,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
private int sortingDirection;
|
private int sortingDirection;
|
||||||
private int searchBoxMode;
|
private int searchBoxMode;
|
||||||
private int tabSelected;
|
private int tabSelected;
|
||||||
|
private int tabPage;
|
||||||
private int size;
|
private int size;
|
||||||
|
|
||||||
private List<IFilter> filters = new ArrayList<>();
|
private List<IFilter> filters = new ArrayList<>();
|
||||||
@@ -181,6 +188,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
||||||
dataManager.addWatchedParameter(SIZE);
|
dataManager.addWatchedParameter(SIZE);
|
||||||
dataManager.addWatchedParameter(TAB_SELECTED);
|
dataManager.addWatchedParameter(TAB_SELECTED);
|
||||||
|
dataManager.addWatchedParameter(TAB_PAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PortableGridDiskState getDiskState() {
|
public PortableGridDiskState getDiskState() {
|
||||||
@@ -204,6 +212,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
||||||
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
||||||
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
||||||
|
this.tabPage = ItemWirelessGrid.getTabPage(stack);
|
||||||
this.size = ItemWirelessGrid.getSize(stack);
|
this.size = ItemWirelessGrid.getSize(stack);
|
||||||
|
|
||||||
this.energyStorage.setEnergyStored(stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored());
|
this.energyStorage.setEnergyStored(stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored());
|
||||||
@@ -298,6 +307,16 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
return world.isRemote ? TAB_SELECTED.getValue() : tabSelected;
|
return world.isRemote ? TAB_SELECTED.getValue() : tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTabPage() {
|
||||||
|
return world.isRemote ? TAB_PAGE.getValue() : tabPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalTabPages() {
|
||||||
|
return (int) Math.floor((float) tabs.size() / (float) IGrid.TABS_PER_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSize() {
|
public int getSize() {
|
||||||
return world.isRemote ? SIZE.getValue() : size;
|
return world.isRemote ? SIZE.getValue() : size;
|
||||||
@@ -319,6 +338,10 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
this.tabSelected = tabSelected;
|
this.tabSelected = tabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTabPage(int page) {
|
||||||
|
this.tabPage = page;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSize(int size) {
|
public void setSize(int size) {
|
||||||
this.size = size;
|
this.size = size;
|
||||||
}
|
}
|
||||||
@@ -353,6 +376,13 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
TileDataManager.setParameter(TAB_SELECTED, tab);
|
TileDataManager.setParameter(TAB_SELECTED, tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTabPageChanged(int page) {
|
||||||
|
if (page >= 0 && page <= getTotalTabPages()) {
|
||||||
|
TileDataManager.setParameter(TilePortableGrid.TAB_PAGE, page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IFilter> getFilters() {
|
public List<IFilter> getFilters() {
|
||||||
return filters;
|
return filters;
|
||||||
@@ -490,6 +520,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
tag.setInteger(NetworkNodeGrid.NBT_SEARCH_BOX_MODE, searchBoxMode);
|
tag.setInteger(NetworkNodeGrid.NBT_SEARCH_BOX_MODE, searchBoxMode);
|
||||||
tag.setInteger(NetworkNodeGrid.NBT_SIZE, size);
|
tag.setInteger(NetworkNodeGrid.NBT_SIZE, size);
|
||||||
tag.setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, tabSelected);
|
tag.setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, tabSelected);
|
||||||
|
tag.setInteger(NetworkNodeGrid.NBT_TAB_PAGE, tabPage);
|
||||||
|
|
||||||
StackUtils.writeItems(disk, 0, tag);
|
StackUtils.writeItems(disk, 0, tag);
|
||||||
StackUtils.writeItems(filter, 1, tag);
|
StackUtils.writeItems(filter, 1, tag);
|
||||||
@@ -525,6 +556,10 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
|
|||||||
tabSelected = tag.getInteger(NetworkNodeGrid.NBT_TAB_SELECTED);
|
tabSelected = tag.getInteger(NetworkNodeGrid.NBT_TAB_SELECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tag.hasKey(NetworkNodeGrid.NBT_TAB_PAGE)) {
|
||||||
|
tabPage = tag.getInteger(NetworkNodeGrid.NBT_TAB_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
StackUtils.readItems(disk, 0, tag);
|
StackUtils.readItems(disk, 0, tag);
|
||||||
StackUtils.readItems(filter, 1, tag);
|
StackUtils.readItems(filter, 1, tag);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user