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

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

View File

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

View File

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

View File

@@ -1,60 +1,68 @@
package refinedstorage.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.tile.TileGrid;
public class MessageGridSortingUpdate extends MessageHandlerPlayerToServer<MessageGridSortingUpdate> implements IMessage {
private int x;
private int y;
private int z;
private int sortingDirection;
private int sortingType;
public MessageGridSortingUpdate() {
}
public MessageGridSortingUpdate(TileGrid grid, int sortingDirection, int sortingType) {
this.x = grid.getPos().getX();
this.y = grid.getPos().getY();
this.z = grid.getPos().getZ();
this.sortingDirection = sortingDirection;
this.sortingType = sortingType;
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
sortingDirection = buf.readInt();
sortingType = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
buf.writeInt(sortingDirection);
buf.writeInt(sortingType);
}
@Override
public void handle(MessageGridSortingUpdate message, EntityPlayerMP player) {
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
if (tile instanceof TileGrid) {
if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) {
((TileGrid) tile).setSortingDirection(message.sortingDirection);
}
if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) {
((TileGrid) tile).setSortingType(message.sortingType);
}
}
}
}
package refinedstorage.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.tile.TileGrid;
public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageGridSettingsUpdate> implements IMessage {
private int x;
private int y;
private int z;
private int sortingDirection;
private int sortingType;
private int searchBoxMode;
public MessageGridSettingsUpdate() {
}
public MessageGridSettingsUpdate(TileGrid grid, int sortingDirection, int sortingType, int searchBoxMode) {
this.x = grid.getPos().getX();
this.y = grid.getPos().getY();
this.z = grid.getPos().getZ();
this.sortingDirection = sortingDirection;
this.sortingType = sortingType;
this.searchBoxMode = searchBoxMode;
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
sortingDirection = buf.readInt();
sortingType = buf.readInt();
searchBoxMode = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
buf.writeInt(sortingDirection);
buf.writeInt(sortingType);
buf.writeInt(searchBoxMode);
}
@Override
public void handle(MessageGridSettingsUpdate message, EntityPlayerMP player) {
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
if (tile instanceof TileGrid) {
if (message.sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING || message.sortingDirection == TileGrid.SORTING_DIRECTION_DESCENDING) {
((TileGrid) tile).setSortingDirection(message.sortingDirection);
}
if (message.sortingType == TileGrid.SORTING_TYPE_QUANTITY || message.sortingType == TileGrid.SORTING_TYPE_NAME) {
((TileGrid) tile).setSortingType(message.sortingType);
}
if (message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_NORMAL || message.searchBoxMode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) {
((TileGrid) tile).setSearchBoxMode(message.searchBoxMode);
}
}
}
}

View File

@@ -36,7 +36,7 @@ public class CommonProxy {
RefinedStorage.NETWORK.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, 7, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingClear.class, MessageGridCraftingClear.class, 9, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessagePriorityUpdate.class, MessagePriorityUpdate.class, 10, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridSortingUpdate.class, MessageGridSortingUpdate.class, 11, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridSettingsUpdate.class, MessageGridSettingsUpdate.class, 11, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingPush.class, MessageGridCraftingPush.class, 12, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, 13, Side.SERVER);

View File

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