Make client stacks an interface
This commit is contained in:
@@ -1,47 +0,0 @@
|
||||
package refinedstorage.gui.grid;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.NetworkUtils;
|
||||
|
||||
public class ClientStack {
|
||||
private int id;
|
||||
private ItemStack stack;
|
||||
private boolean craftable;
|
||||
|
||||
public ClientStack(ByteBuf buf) {
|
||||
stack = new ItemStack(Item.getItemById(buf.readInt()), buf.readInt(), buf.readInt());
|
||||
stack.setTagCompound(ByteBufUtils.readTag(buf));
|
||||
id = buf.readInt();
|
||||
craftable = buf.readBoolean();
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public ItemStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
public boolean isCraftable() {
|
||||
return craftable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof ClientStack && ((ClientStack) obj).getId() == id;
|
||||
}
|
||||
|
||||
public static void write(ByteBuf buf, INetworkMaster network, ItemStack stack) {
|
||||
buf.writeInt(Item.getIdFromItem(stack.getItem()));
|
||||
buf.writeInt(stack.stackSize);
|
||||
buf.writeInt(stack.getItemDamage());
|
||||
ByteBufUtils.writeTag(buf, stack.getTagCompound());
|
||||
buf.writeInt(NetworkUtils.getItemStackHashCode(stack));
|
||||
buf.writeBoolean(NetworkUtils.hasPattern(network, stack));
|
||||
}
|
||||
}
|
@@ -10,6 +10,7 @@ import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.apiimpl.network.grid.ItemGridHandler;
|
||||
import refinedstorage.container.ContainerCraftingSettings;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.gui.grid.stack.ClientStackItem;
|
||||
import refinedstorage.network.MessageGridCraftingStart;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -19,12 +20,12 @@ public class GuiCraftingSettings extends GuiBase {
|
||||
|
||||
private GuiTextField amountField;
|
||||
private GuiGrid gui;
|
||||
private ClientStack stack;
|
||||
private ClientStackItem stack;
|
||||
private GuiButton startButton;
|
||||
private GuiButton cancelButton;
|
||||
private GuiButton[] incrementButtons = new GuiButton[6];
|
||||
|
||||
public GuiCraftingSettings(GuiGrid gui, EntityPlayer player, ClientStack stack) {
|
||||
public GuiCraftingSettings(GuiGrid gui, EntityPlayer player, ClientStackItem stack) {
|
||||
super(new ContainerCraftingSettings(player, stack.getStack()), 172, 99);
|
||||
|
||||
this.gui = gui;
|
||||
@@ -124,7 +125,7 @@ public class GuiCraftingSettings extends GuiBase {
|
||||
Integer quantity = Ints.tryParse(amountField.getText());
|
||||
|
||||
if (quantity != null && quantity > 0 && quantity <= ItemGridHandler.MAX_CRAFTING_PER_REQUEST) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridCraftingStart(stack.getId(), quantity));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridCraftingStart(stack.getHash(), quantity));
|
||||
|
||||
close();
|
||||
}
|
||||
|
@@ -21,6 +21,8 @@ import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.gui.Scrollbar;
|
||||
import refinedstorage.gui.grid.sorting.GridSortingName;
|
||||
import refinedstorage.gui.grid.sorting.GridSortingQuantity;
|
||||
import refinedstorage.gui.grid.stack.ClientStackItem;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
import refinedstorage.gui.sidebutton.*;
|
||||
import refinedstorage.integration.jei.IntegrationJEI;
|
||||
import refinedstorage.network.MessageGridCraftingClear;
|
||||
@@ -32,14 +34,17 @@ import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.tile.grid.WirelessGrid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class GuiGrid extends GuiBase {
|
||||
public static final GridSortingQuantity SORTING_QUANTITY = new GridSortingQuantity();
|
||||
public static final GridSortingName SORTING_NAME = new GridSortingName();
|
||||
|
||||
public static Multimap<Item, ClientStack> ITEMS = ArrayListMultimap.create();
|
||||
public static List<ClientStack> SORTED_ITEMS = new ArrayList<>();
|
||||
public static Multimap<Item, IClientStack> ITEMS = ArrayListMultimap.create();
|
||||
public static List<IClientStack> SORTED_ITEMS = new ArrayList<>();
|
||||
|
||||
private static boolean markedForSorting;
|
||||
|
||||
@@ -97,24 +102,24 @@ public class GuiGrid extends GuiBase {
|
||||
}
|
||||
|
||||
private void sortItems() {
|
||||
List<ClientStack> sortedItems = new ArrayList<>();
|
||||
List<IClientStack> sortedItems = new ArrayList<>();
|
||||
|
||||
if (grid.isConnected()) {
|
||||
sortedItems.addAll(ITEMS.values());
|
||||
|
||||
String query = searchField.getText().trim().toLowerCase();
|
||||
|
||||
Iterator<ClientStack> t = sortedItems.iterator();
|
||||
Iterator<IClientStack> t = sortedItems.iterator();
|
||||
|
||||
while (t.hasNext()) {
|
||||
ClientStack stack = t.next();
|
||||
IClientStack stack = t.next();
|
||||
|
||||
List<GridFilteredItem> filteredItems = grid.getFilteredItems();
|
||||
|
||||
boolean found = filteredItems.isEmpty();
|
||||
|
||||
for (GridFilteredItem filteredItem : filteredItems) {
|
||||
if (CompareUtils.compareStack(stack.getStack(), filteredItem.getStack(), filteredItem.getCompare())) {
|
||||
if (CompareUtils.compareStack(((ClientStackItem) stack).getStack(), filteredItem.getStack(), filteredItem.getCompare())) {
|
||||
found = true;
|
||||
|
||||
break;
|
||||
@@ -141,7 +146,7 @@ public class GuiGrid extends GuiBase {
|
||||
String[] parts = query.split(" ");
|
||||
|
||||
String modId = parts[0].substring(1);
|
||||
String modIdFromItem = Item.REGISTRY.getNameForObject(stack.getStack().getItem()).getResourceDomain();
|
||||
String modIdFromItem = stack.getModId();
|
||||
|
||||
if (!modIdFromItem.contains(modId)) {
|
||||
t.remove();
|
||||
@@ -156,11 +161,11 @@ public class GuiGrid extends GuiBase {
|
||||
}
|
||||
}
|
||||
|
||||
if (!stack.getStack().getDisplayName().toLowerCase().contains(itemFromMod.toString())) {
|
||||
if (!stack.getName().toLowerCase().contains(itemFromMod.toString())) {
|
||||
t.remove();
|
||||
}
|
||||
}
|
||||
} else if (!stack.getStack().getDisplayName().toLowerCase().contains(query)) {
|
||||
} else if (!stack.getName().toLowerCase().contains(query)) {
|
||||
t.remove();
|
||||
}
|
||||
}
|
||||
@@ -274,7 +279,7 @@ public class GuiGrid extends GuiBase {
|
||||
}
|
||||
|
||||
if (slot < SORTED_ITEMS.size()) {
|
||||
drawItem(x, y, SORTED_ITEMS.get(slot).getStack(), true, formatQuantity(SORTED_ITEMS.get(slot).getStack().stackSize, slot));
|
||||
SORTED_ITEMS.get(slot).draw(this, x, y, GuiScreen.isShiftKeyDown() && slotNumber == slot);
|
||||
}
|
||||
|
||||
if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) {
|
||||
@@ -302,7 +307,7 @@ public class GuiGrid extends GuiBase {
|
||||
}
|
||||
|
||||
if (isOverSlotWithItem()) {
|
||||
drawTooltip(mouseX, mouseY, SORTED_ITEMS.get(slotNumber).getStack());
|
||||
drawTooltip(mouseX, mouseY, SORTED_ITEMS.get(slotNumber).getTooltip());
|
||||
}
|
||||
|
||||
if (isOverClear(mouseX, mouseY)) {
|
||||
@@ -314,24 +319,6 @@ public class GuiGrid extends GuiBase {
|
||||
}
|
||||
}
|
||||
|
||||
private String formatQuantity(int qty, int slot) {
|
||||
if (slotNumber == slot && GuiScreen.isShiftKeyDown() && qty > 1) {
|
||||
return String.valueOf(qty);
|
||||
}
|
||||
|
||||
if (qty >= 1000000) {
|
||||
return String.format(Locale.US, "%.1f", (float) qty / 1000000).replace(".0", "") + "M";
|
||||
} else if (qty >= 1000) {
|
||||
return String.format(Locale.US, "%.1f", (float) qty / 1000).replace(".0", "") + "K";
|
||||
} else if (qty == 1) {
|
||||
return null;
|
||||
} else if (qty == 0) {
|
||||
return t("gui.refinedstorage:grid.craft");
|
||||
} else {
|
||||
return String.valueOf(qty);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException {
|
||||
super.mouseClicked(mouseX, mouseY, clickedButton);
|
||||
@@ -361,13 +348,15 @@ public class GuiGrid extends GuiBase {
|
||||
|
||||
ItemStack held = container.getPlayer().inventory.getItemStack();
|
||||
|
||||
ClientStackItem stack = (ClientStackItem) SORTED_ITEMS.get(slotNumber);
|
||||
|
||||
if (isOverSlotArea(mouseX - guiLeft, mouseY - guiTop) && held != null && (clickedButton == 0 || clickedButton == 1)) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridInsertHeld(clickedButton == 1));
|
||||
}
|
||||
|
||||
if (isOverSlotWithItem() && (held == null || (held != null && clickedButton == 2))) {
|
||||
if (SORTED_ITEMS.get(slotNumber).isCraftable() && (SORTED_ITEMS.get(slotNumber).getStack().stackSize == 0 || (GuiScreen.isShiftKeyDown() && GuiScreen.isCtrlKeyDown()))) {
|
||||
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings(this, container.getPlayer(), SORTED_ITEMS.get(slotNumber)));
|
||||
if (SORTED_ITEMS.get(slotNumber).isCraftable() && (stack.getQuantity() == 0 || (GuiScreen.isShiftKeyDown() && GuiScreen.isCtrlKeyDown()))) {
|
||||
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingSettings(this, container.getPlayer(), stack));
|
||||
} else {
|
||||
int flags = 0;
|
||||
|
||||
@@ -383,7 +372,7 @@ public class GuiGrid extends GuiBase {
|
||||
flags |= IItemGridHandler.EXTRACT_SINGLE;
|
||||
}
|
||||
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridPull(SORTED_ITEMS.get(slotNumber).getId(), flags));
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridPull(stack.getHash(), flags));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package refinedstorage.gui.grid.sorting;
|
||||
|
||||
import refinedstorage.gui.grid.ClientStack;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public abstract class GridSorting implements Comparator<ClientStack> {
|
||||
public abstract class GridSorting implements Comparator<IClientStack> {
|
||||
protected int sortingDirection;
|
||||
|
||||
public void setSortingDirection(int sortingDirection) {
|
||||
|
@@ -1,13 +1,13 @@
|
||||
package refinedstorage.gui.grid.sorting;
|
||||
|
||||
import refinedstorage.gui.grid.ClientStack;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class GridSortingName extends GridSorting {
|
||||
@Override
|
||||
public int compare(ClientStack left, ClientStack right) {
|
||||
String leftName = left.getStack().getDisplayName();
|
||||
String rightName = right.getStack().getDisplayName();
|
||||
public int compare(IClientStack left, IClientStack right) {
|
||||
String leftName = left.getName();
|
||||
String rightName = right.getName();
|
||||
|
||||
if (sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING) {
|
||||
return leftName.compareTo(rightName);
|
||||
|
@@ -1,13 +1,13 @@
|
||||
package refinedstorage.gui.grid.sorting;
|
||||
|
||||
import refinedstorage.gui.grid.ClientStack;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class GridSortingQuantity extends GridSorting {
|
||||
@Override
|
||||
public int compare(ClientStack left, ClientStack right) {
|
||||
int leftSize = left.getStack().stackSize;
|
||||
int rightSize = right.getStack().stackSize;
|
||||
public int compare(IClientStack left, IClientStack right) {
|
||||
int leftSize = left.getQuantity();
|
||||
int rightSize = right.getQuantity();
|
||||
|
||||
if (leftSize != rightSize) {
|
||||
if (sortingDirection == TileGrid.SORTING_DIRECTION_ASCENDING) {
|
||||
|
98
src/main/java/refinedstorage/gui/grid/stack/ClientStackItem.java
Executable file
98
src/main/java/refinedstorage/gui/grid/stack/ClientStackItem.java
Executable file
@@ -0,0 +1,98 @@
|
||||
package refinedstorage.gui.grid.stack;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import joptsimple.internal.Strings;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.NetworkUtils;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class ClientStackItem implements IClientStack {
|
||||
private int hash;
|
||||
private ItemStack stack;
|
||||
private boolean craftable;
|
||||
|
||||
public ClientStackItem(ByteBuf buf) {
|
||||
stack = new ItemStack(Item.getItemById(buf.readInt()), buf.readInt(), buf.readInt());
|
||||
stack.setTagCompound(ByteBufUtils.readTag(buf));
|
||||
hash = buf.readInt();
|
||||
craftable = buf.readBoolean();
|
||||
}
|
||||
|
||||
public int getHash() {
|
||||
return hash;
|
||||
}
|
||||
|
||||
public ItemStack getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCraftable() {
|
||||
return craftable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return stack.getDisplayName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getModId() {
|
||||
return Item.REGISTRY.getNameForObject(stack.getItem()).getResourceDomain();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTooltip() {
|
||||
return Strings.join(stack.getTooltip(null, true), "\n");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getQuantity() {
|
||||
return stack.stackSize;
|
||||
}
|
||||
|
||||
private String getQuantityForDisplay(boolean advanced) {
|
||||
int qty = stack.stackSize;
|
||||
|
||||
if (advanced && qty > 1) {
|
||||
return String.valueOf(qty);
|
||||
}
|
||||
|
||||
if (qty >= 1000000) {
|
||||
return String.format(Locale.US, "%.1f", (float) qty / 1000000).replace(".0", "") + "M";
|
||||
} else if (qty >= 1000) {
|
||||
return String.format(Locale.US, "%.1f", (float) qty / 1000).replace(".0", "") + "K";
|
||||
} else if (qty == 1) {
|
||||
return null;
|
||||
} else if (qty == 0) {
|
||||
return I18n.format("gui.refinedstorage:grid.craft");
|
||||
}
|
||||
|
||||
return String.valueOf(qty);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(GuiBase gui, int x, int y, boolean isOverWithShift) {
|
||||
gui.drawItem(x, y, stack, true, getQuantityForDisplay(isOverWithShift));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof IClientStack && ((ClientStackItem) obj).getHash() == hash;
|
||||
}
|
||||
|
||||
public static void write(ByteBuf buf, INetworkMaster network, ItemStack stack) {
|
||||
buf.writeInt(Item.getIdFromItem(stack.getItem()));
|
||||
buf.writeInt(stack.stackSize);
|
||||
buf.writeInt(stack.getItemDamage());
|
||||
ByteBufUtils.writeTag(buf, stack.getTagCompound());
|
||||
buf.writeInt(NetworkUtils.getItemStackHashCode(stack));
|
||||
buf.writeBoolean(NetworkUtils.hasPattern(network, stack));
|
||||
}
|
||||
}
|
17
src/main/java/refinedstorage/gui/grid/stack/IClientStack.java
Executable file
17
src/main/java/refinedstorage/gui/grid/stack/IClientStack.java
Executable file
@@ -0,0 +1,17 @@
|
||||
package refinedstorage.gui.grid.stack;
|
||||
|
||||
import refinedstorage.gui.GuiBase;
|
||||
|
||||
public interface IClientStack {
|
||||
boolean isCraftable();
|
||||
|
||||
String getName();
|
||||
|
||||
String getModId();
|
||||
|
||||
String getTooltip();
|
||||
|
||||
int getQuantity();
|
||||
|
||||
void draw(GuiBase gui, int x, int y, boolean isOverWithShift);
|
||||
}
|
@@ -8,26 +8,26 @@ import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage {
|
||||
private int id;
|
||||
private int hash;
|
||||
private int quantity;
|
||||
|
||||
public MessageGridCraftingStart() {
|
||||
}
|
||||
|
||||
public MessageGridCraftingStart(int id, int quantity) {
|
||||
this.id = id;
|
||||
public MessageGridCraftingStart(int hash, int quantity) {
|
||||
this.hash = hash;
|
||||
this.quantity = quantity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
id = buf.readInt();
|
||||
hash = buf.readInt();
|
||||
quantity = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(id);
|
||||
buf.writeInt(hash);
|
||||
buf.writeInt(quantity);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onCraftingRequested(message.id, message.quantity);
|
||||
handler.onCraftingRequested(message.hash, message.quantity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,15 +7,16 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.gui.grid.ClientStack;
|
||||
import refinedstorage.gui.grid.GuiGrid;
|
||||
import refinedstorage.gui.grid.stack.ClientStackItem;
|
||||
import refinedstorage.gui.grid.stack.IClientStack;
|
||||
|
||||
public class MessageGridDelta implements IMessage, IMessageHandler<MessageGridDelta, IMessage> {
|
||||
private INetworkMaster network;
|
||||
private ItemStack stack;
|
||||
private int delta;
|
||||
|
||||
private ClientStack clientStack;
|
||||
private ClientStackItem clientStack;
|
||||
|
||||
public MessageGridDelta() {
|
||||
}
|
||||
@@ -28,13 +29,13 @@ public class MessageGridDelta implements IMessage, IMessageHandler<MessageGridDe
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
clientStack = new ClientStack(buf);
|
||||
clientStack = new ClientStackItem(buf);
|
||||
delta = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
ClientStack.write(buf, network, stack);
|
||||
ClientStackItem.write(buf, network, stack);
|
||||
buf.writeInt(delta);
|
||||
}
|
||||
|
||||
@@ -42,7 +43,9 @@ public class MessageGridDelta implements IMessage, IMessageHandler<MessageGridDe
|
||||
public IMessage onMessage(MessageGridDelta message, MessageContext ctx) {
|
||||
Item item = message.clientStack.getStack().getItem();
|
||||
|
||||
for (ClientStack stack : GuiGrid.ITEMS.get(item)) {
|
||||
for (IClientStack anyStack : GuiGrid.ITEMS.get(item)) {
|
||||
ClientStackItem stack = (ClientStackItem) anyStack;
|
||||
|
||||
if (stack.equals(message.clientStack)) {
|
||||
if (stack.getStack().stackSize + message.delta == 0 && !message.clientStack.isCraftable()) {
|
||||
GuiGrid.ITEMS.remove(item, stack);
|
||||
|
@@ -8,26 +8,26 @@ import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
|
||||
public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPull> implements IMessage {
|
||||
private int id;
|
||||
private int hash;
|
||||
private int flags;
|
||||
|
||||
public MessageGridPull() {
|
||||
}
|
||||
|
||||
public MessageGridPull(int id, int flags) {
|
||||
this.id = id;
|
||||
public MessageGridPull(int hash, int flags) {
|
||||
this.hash = hash;
|
||||
this.flags = flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
id = buf.readInt();
|
||||
hash = buf.readInt();
|
||||
flags = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(id);
|
||||
buf.writeInt(hash);
|
||||
buf.writeInt(flags);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPul
|
||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getHandler();
|
||||
|
||||
if (handler != null) {
|
||||
handler.onExtract(message.id, message.flags, player);
|
||||
handler.onExtract(message.hash, message.flags, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,15 +6,15 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.gui.grid.ClientStack;
|
||||
import refinedstorage.gui.grid.GuiGrid;
|
||||
import refinedstorage.gui.grid.stack.ClientStackItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MessageGridUpdate implements IMessage, IMessageHandler<MessageGridUpdate, IMessage> {
|
||||
private INetworkMaster network;
|
||||
private List<ClientStack> items = new ArrayList<>();
|
||||
private List<ClientStackItem> items = new ArrayList<>();
|
||||
|
||||
public MessageGridUpdate() {
|
||||
}
|
||||
@@ -28,7 +28,7 @@ public class MessageGridUpdate implements IMessage, IMessageHandler<MessageGridU
|
||||
int items = buf.readInt();
|
||||
|
||||
for (int i = 0; i < items; ++i) {
|
||||
this.items.add(new ClientStack(buf));
|
||||
this.items.add(new ClientStackItem(buf));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class MessageGridUpdate implements IMessage, IMessageHandler<MessageGridU
|
||||
buf.writeInt(network.getItemStorage().getStacks().size());
|
||||
|
||||
for (ItemStack stack : network.getItemStorage().getStacks()) {
|
||||
ClientStack.write(buf, network, stack);
|
||||
ClientStackItem.write(buf, network, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class MessageGridUpdate implements IMessage, IMessageHandler<MessageGridU
|
||||
public IMessage onMessage(MessageGridUpdate message, MessageContext ctx) {
|
||||
GuiGrid.ITEMS.clear();
|
||||
|
||||
for (ClientStack item : message.items) {
|
||||
for (ClientStackItem item : message.items) {
|
||||
GuiGrid.ITEMS.put(item.getStack().getItem(), item);
|
||||
}
|
||||
|
||||
|
@@ -14,6 +14,7 @@ import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.Constants;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
@@ -175,6 +176,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
dataManager.addParameter(ENERGY_CAPACITY);
|
||||
dataManager.addParameter(NODES);
|
||||
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.WATER, 1000 * 32), false);
|
||||
fluidStorage.add(new FluidStack(FluidRegistry.LAVA, 1000 * 32), false);
|
||||
|
||||
if (IntegrationIC2.isLoaded()) {
|
||||
this.energyEU = new ControllerEnergyIC2(this);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user