JEI synchronization, doesn't actually sync yet though... JEI bug?

This commit is contained in:
Raoul Van den Berge
2016-03-30 12:38:45 +02:00
parent 094343f875
commit 292403e6c1
11 changed files with 190 additions and 85 deletions

View File

@@ -10,9 +10,11 @@ import net.minecraft.inventory.Slot;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import refinedstorage.gui.sidebutton.SideButtonGridSearchBoxMode;
import refinedstorage.gui.sidebutton.SideButtonGridSortingDirection; import refinedstorage.gui.sidebutton.SideButtonGridSortingDirection;
import refinedstorage.gui.sidebutton.SideButtonGridSortingType; import refinedstorage.gui.sidebutton.SideButtonGridSortingType;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.jei.PluginRefinedStorage;
import refinedstorage.network.MessageGridCraftingClear; import refinedstorage.network.MessageGridCraftingClear;
import refinedstorage.network.MessageGridCraftingPush; import refinedstorage.network.MessageGridCraftingPush;
import refinedstorage.network.MessageStoragePull; import refinedstorage.network.MessageStoragePull;
@@ -52,6 +54,10 @@ public class GuiGrid extends GuiBase {
addSideButton(new SideButtonGridSortingDirection(grid)); addSideButton(new SideButtonGridSortingDirection(grid));
addSideButton(new SideButtonGridSortingType(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 = new GuiTextField(0, fontRendererObj, x + 80 + 1, y + 6 + 1, 88 - 6, fontRendererObj.FONT_HEIGHT);
searchField.setEnableBackgroundDrawing(false); searchField.setEnableBackgroundDrawing(false);
searchField.setVisible(true); searchField.setVisible(true);
@@ -287,6 +293,9 @@ public class GuiGrid extends GuiBase {
@Override @Override
protected void keyTyped(char character, int keyCode) throws IOException { protected void keyTyped(char character, int keyCode) throws IOException {
if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) { if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) {
if (PluginRefinedStorage.isJeiLoaded()) {
PluginRefinedStorage.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText());
}
} else { } else {
super.keyTyped(character, keyCode); super.keyTyped(character, keyCode);
} }

View File

@@ -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));
}
}

View File

@@ -3,7 +3,7 @@ package refinedstorage.gui.sidebutton;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate; import refinedstorage.network.MessageGridSettingsUpdate;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingDirection extends SideButton { public class SideButtonGridSortingDirection extends SideButton {
@@ -17,8 +17,8 @@ public class SideButtonGridSortingDirection extends SideButton {
public String getTooltip(GuiBase gui) { public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.direction")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.direction")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:sorting.direction." + grid.getSortingDirection())); builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection()));
return builder.toString(); return builder.toString();
} }
@@ -39,6 +39,6 @@ public class SideButtonGridSortingDirection extends SideButton {
dir = TileGrid.SORTING_DIRECTION_ASCENDING; 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()));
} }
} }

View File

@@ -3,7 +3,7 @@ package refinedstorage.gui.sidebutton;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate; import refinedstorage.network.MessageGridSettingsUpdate;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingType extends SideButton { public class SideButtonGridSortingType extends SideButton {
@@ -17,8 +17,8 @@ public class SideButtonGridSortingType extends SideButton {
public String getTooltip(GuiBase gui) { public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.type")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:grid.sorting.type")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:sorting.type." + grid.getSortingType())); builder.append(gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType()));
return builder.toString(); return builder.toString();
} }
@@ -39,6 +39,6 @@ public class SideButtonGridSortingType extends SideButton {
type = TileGrid.SORTING_TYPE_QUANTITY; 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()));
} }
} }

View File

@@ -1,6 +1,7 @@
package refinedstorage.jei; 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.IModRegistry;
import mezz.jei.api.JEIPlugin; import mezz.jei.api.JEIPlugin;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@@ -10,9 +11,15 @@ import refinedstorage.storage.DiskStorage;
import refinedstorage.tile.TileStorage; import refinedstorage.tile.TileStorage;
@JEIPlugin @JEIPlugin
public class PluginRefinedStorage extends BlankModPlugin { public class PluginRefinedStorage implements IModPlugin {
public static PluginRefinedStorage INSTANCE;
private IJeiRuntime runtime;
@Override @Override
public void register(IModRegistry registry) { public void register(IModRegistry registry) {
INSTANCE = this;
registry.getRecipeTransferRegistry().addRecipeTransferHandler(new GridRecipeTransferHandler()); registry.getRecipeTransferRegistry().addRecipeTransferHandler(new GridRecipeTransferHandler());
registry.addRecipeCategories(new SoldererRecipeCategory(registry.getJeiHelpers().getGuiHelper())); 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(RefinedStorageItems.STORAGE_DISK, DiskStorage.NBT_ITEMS, DiskStorage.NBT_STORED);
registry.getJeiHelpers().getNbtIgnoreList().ignoreNbtTagNames(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), TileStorage.NBT_STORAGE); 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;
}
} }

View File

@@ -7,22 +7,24 @@ import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer<MessageGridSortingUpdate> implements IMessage { public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageGridSettingsUpdate> implements IMessage {
private int x; private int x;
private int y; private int y;
private int z; private int z;
private int sortingDirection; private int sortingDirection;
private int sortingType; private int sortingType;
private int searchBoxMode;
public MessageGridSortingUpdate() { public MessageGridSettingsUpdate() {
} }
public MessageGridSortingUpdate(TileGrid grid, int sortingDirection, int sortingType) { public MessageGridSettingsUpdate(TileGrid grid, int sortingDirection, int sortingType, int searchBoxMode) {
this.x = grid.getPos().getX(); this.x = grid.getPos().getX();
this.y = grid.getPos().getY(); this.y = grid.getPos().getY();
this.z = grid.getPos().getZ(); this.z = grid.getPos().getZ();
this.sortingDirection = sortingDirection; this.sortingDirection = sortingDirection;
this.sortingType = sortingType; this.sortingType = sortingType;
this.searchBoxMode = searchBoxMode;
} }
@Override @Override
@@ -32,6 +34,7 @@ public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer<Messa
z = buf.readInt(); z = buf.readInt();
sortingDirection = buf.readInt(); sortingDirection = buf.readInt();
sortingType = buf.readInt(); sortingType = buf.readInt();
searchBoxMode = buf.readInt();
} }
@Override @Override
@@ -41,10 +44,11 @@ public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer<Messa
buf.writeInt(z); buf.writeInt(z);
buf.writeInt(sortingDirection); buf.writeInt(sortingDirection);
buf.writeInt(sortingType); buf.writeInt(sortingType);
buf.writeInt(searchBoxMode);
} }
@Override @Override
public void handle(MessageGridSortingUpdate message, EntityPlayerMP player) { public void handle(MessageGridSettingsUpdate message, EntityPlayerMP player) {
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
if (tile instanceof TileGrid) { if (tile instanceof TileGrid) {
@@ -55,6 +59,10 @@ public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer<Messa
if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) { if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) {
((TileGrid) tile).setSortingType(message.sortingType); ((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);
}
} }
} }
} }

View File

@@ -36,7 +36,7 @@ public class CommonProxy {
RefinedStorage.NETWORK.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, 7, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, 7, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingClear.class, MessageGridCraftingClear.class, 9, 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(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(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER);

View File

@@ -21,6 +21,7 @@ import java.util.List;
public class TileGrid extends TileMachine { public class TileGrid extends TileMachine {
public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SORTING_DIRECTION = "SortingDirection";
public static final String NBT_SORTING_TYPE = "SortingType"; 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_ASCENDING = 0;
public static final int SORTING_DIRECTION_DESCENDING = 1; 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_QUANTITY = 0;
public static final int SORTING_TYPE_NAME = 1; 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() { private Container craftingContainer = new Container() {
@Override @Override
public boolean canInteractWith(EntityPlayer player) { public boolean canInteractWith(EntityPlayer player) {
@@ -44,6 +48,7 @@ public class TileGrid extends TileMachine {
private int sortingDirection = SORTING_DIRECTION_DESCENDING; private int sortingDirection = SORTING_DIRECTION_DESCENDING;
private int sortingType = SORTING_TYPE_NAME; private int sortingType = SORTING_TYPE_NAME;
private int searchBoxMode = SEARCH_BOX_MODE_NORMAL;
@Override @Override
public int getEnergyUsage() { public int getEnergyUsage() {
@@ -176,6 +181,14 @@ public class TileGrid extends TileMachine {
this.sortingType = sortingType; this.sortingType = sortingType;
} }
public int getSearchBoxMode() {
return searchBoxMode;
}
public void setSearchBoxMode(int searchBoxMode) {
this.searchBoxMode = searchBoxMode;
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);
@@ -189,6 +202,10 @@ public class TileGrid extends TileMachine {
if (nbt.hasKey(NBT_SORTING_TYPE)) { if (nbt.hasKey(NBT_SORTING_TYPE)) {
sortingType = nbt.getInteger(NBT_SORTING_TYPE); sortingType = nbt.getInteger(NBT_SORTING_TYPE);
} }
if (nbt.hasKey(NBT_SEARCH_BOX_MODE)) {
searchBoxMode = nbt.getInteger(NBT_SEARCH_BOX_MODE);
}
} }
@Override @Override
@@ -199,6 +216,7 @@ public class TileGrid extends TileMachine {
nbt.setInteger(NBT_SORTING_DIRECTION, sortingDirection); nbt.setInteger(NBT_SORTING_DIRECTION, sortingDirection);
nbt.setInteger(NBT_SORTING_TYPE, sortingType); nbt.setInteger(NBT_SORTING_TYPE, sortingType);
nbt.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode);
} }
@Override @Override
@@ -207,6 +225,7 @@ public class TileGrid extends TileMachine {
buf.writeInt(sortingDirection); buf.writeInt(sortingDirection);
buf.writeInt(sortingType); buf.writeInt(sortingType);
buf.writeInt(searchBoxMode);
} }
@Override @Override
@@ -215,6 +234,7 @@ public class TileGrid extends TileMachine {
sortingDirection = buf.readInt(); sortingDirection = buf.readInt();
sortingType = buf.readInt(); sortingType = buf.readInt();
searchBoxMode = buf.readInt();
} }
@Override @Override

View File

@@ -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.1=Only work with redstone signal
sidebutton.refinedstorage:redstone_mode.2=Only work without redstone signal sidebutton.refinedstorage:redstone_mode.2=Only work without redstone signal
sidebutton.refinedstorage:sorting.direction=Sorting Direction sidebutton.refinedstorage:grid.sorting.direction=Sorting Direction
sidebutton.refinedstorage:sorting.direction.0=Ascending sidebutton.refinedstorage:grid.sorting.direction.0=Ascending
sidebutton.refinedstorage:sorting.direction.1=Descending sidebutton.refinedstorage:grid.sorting.direction.1=Descending
sidebutton.refinedstorage:grid.sorting.type=Sorting Type
sidebutton.refinedstorage:sorting.type=Sorting Type sidebutton.refinedstorage:grid.sorting.type.0=Quantity
sidebutton.refinedstorage:sorting.type.0=Quantity sidebutton.refinedstorage:grid.sorting.type.1=Name
sidebutton.refinedstorage: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=Mode
sidebutton.refinedstorage:mode.whitelist=Whitelist sidebutton.refinedstorage:mode.whitelist=Whitelist

View File

@@ -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.1=Alleen werken met redstone signaal
sidebutton.refinedstorage:redstone_mode.2=Alleen werken zonder redstone signaal sidebutton.refinedstorage:redstone_mode.2=Alleen werken zonder redstone signaal
sidebutton.refinedstorage:sorting.direction=Sorteer Richting sidebutton.refinedstorage:grid.sorting.direction=Sorteer Richting
sidebutton.refinedstorage:sorting.direction.0=Oplopend sidebutton.refinedstorage:grid.sorting.direction.0=Oplopend
sidebutton.refinedstorage:sorting.direction.1=Aflopend sidebutton.refinedstorage:grid.sorting.direction.1=Aflopend
sidebutton.refinedstorage:grid.sorting.type=Sorteer Type
sidebutton.refinedstorage:sorting.type=Sorteer Type sidebutton.refinedstorage:grid.sorting.type.0=Hoeveelheid
sidebutton.refinedstorage:sorting.type.0=Hoeveelheid sidebutton.refinedstorage:grid.sorting.type.1=Naam
sidebutton.refinedstorage: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=Mode
sidebutton.refinedstorage:mode.whitelist=Whitelist sidebutton.refinedstorage:mode.whitelist=Whitelist

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB