Actually set NBT and dmg settings to item
This commit is contained in:
@@ -8,10 +8,12 @@ import refinedstorage.inventory.ItemHandlerGridFilter;
|
|||||||
|
|
||||||
public class ContainerGridFilter extends ContainerBase {
|
public class ContainerGridFilter extends ContainerBase {
|
||||||
private ItemHandlerGridFilter filter;
|
private ItemHandlerGridFilter filter;
|
||||||
|
private ItemStack stack;
|
||||||
|
|
||||||
public ContainerGridFilter(EntityPlayer player, ItemStack stack) {
|
public ContainerGridFilter(EntityPlayer player, ItemStack stack) {
|
||||||
super(player);
|
super(player);
|
||||||
|
|
||||||
|
this.stack = stack;
|
||||||
this.filter = new ItemHandlerGridFilter(stack);
|
this.filter = new ItemHandlerGridFilter(stack);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
@@ -21,6 +23,10 @@ public class ContainerGridFilter extends ContainerBase {
|
|||||||
addPlayerInventory(8, 70);
|
addPlayerInventory(8, 70);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ItemStack getStack() {
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||||
ItemStack stack = null;
|
ItemStack stack = null;
|
||||||
|
|||||||
@@ -1,20 +1,31 @@
|
|||||||
package refinedstorage.gui;
|
package refinedstorage.gui;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.GuiButton;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||||
|
import refinedstorage.RefinedStorage;
|
||||||
|
import refinedstorage.api.storage.CompareUtils;
|
||||||
import refinedstorage.container.ContainerGridFilter;
|
import refinedstorage.container.ContainerGridFilter;
|
||||||
|
import refinedstorage.item.ItemGridFilter;
|
||||||
|
import refinedstorage.network.MessageGridFilterUpdate;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
public class GuiGridFilter extends GuiBase {
|
public class GuiGridFilter extends GuiBase {
|
||||||
|
private int compare;
|
||||||
|
|
||||||
private GuiCheckBox compareDamage;
|
private GuiCheckBox compareDamage;
|
||||||
private GuiCheckBox compareNBT;
|
private GuiCheckBox compareNBT;
|
||||||
|
|
||||||
public GuiGridFilter(ContainerGridFilter container) {
|
public GuiGridFilter(ContainerGridFilter container) {
|
||||||
super(container, 176, 152);
|
super(container, 176, 152);
|
||||||
|
|
||||||
|
this.compare = ItemGridFilter.getCompare(container.getStack());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
compareDamage = addCheckBox(x + 7, y + 41, t("gui.refinedstorage:grid_filter.compare_damage"), false);
|
compareDamage = addCheckBox(x + 7, y + 41, t("gui.refinedstorage:grid_filter.compare_damage"), (compare & CompareUtils.COMPARE_DAMAGE) == CompareUtils.COMPARE_DAMAGE);
|
||||||
compareNBT = addCheckBox(x + 7 + compareDamage.getButtonWidth() + 4, y + 41, t("gui.refinedstorage:grid_filter.compare_nbt"), false);
|
compareNBT = addCheckBox(x + 7 + compareDamage.getButtonWidth() + 4, y + 41, t("gui.refinedstorage:grid_filter.compare_nbt"), (compare & CompareUtils.COMPARE_NBT) == CompareUtils.COMPARE_NBT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -33,4 +44,17 @@ public class GuiGridFilter extends GuiBase {
|
|||||||
drawString(7, 7, t("gui.refinedstorage:grid_filter"));
|
drawString(7, 7, t("gui.refinedstorage:grid_filter"));
|
||||||
drawString(7, 58, t("container.inventory"));
|
drawString(7, 58, t("container.inventory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void actionPerformed(GuiButton button) throws IOException {
|
||||||
|
super.actionPerformed(button);
|
||||||
|
|
||||||
|
if (button == compareDamage) {
|
||||||
|
compare ^= CompareUtils.COMPARE_DAMAGE;
|
||||||
|
} else if (button == compareNBT) {
|
||||||
|
compare ^= CompareUtils.COMPARE_NBT;
|
||||||
|
}
|
||||||
|
|
||||||
|
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridFilterUpdate(compare));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package refinedstorage.item;
|
|||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.EnumActionResult;
|
import net.minecraft.util.EnumActionResult;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
@@ -14,6 +15,8 @@ import refinedstorage.inventory.ItemHandlerGridFilter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemGridFilter extends ItemBase {
|
public class ItemGridFilter extends ItemBase {
|
||||||
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
|
||||||
public ItemGridFilter() {
|
public ItemGridFilter() {
|
||||||
super("grid_filter");
|
super("grid_filter");
|
||||||
|
|
||||||
@@ -43,4 +46,16 @@ public class ItemGridFilter extends ItemBase {
|
|||||||
|
|
||||||
ItemPattern.combineItems(tooltip, items.getFilteredItems());
|
ItemPattern.combineItems(tooltip, items.getFilteredItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getCompare(ItemStack stack) {
|
||||||
|
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_COMPARE)) ? stack.getTagCompound().getInteger(NBT_COMPARE) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCompare(ItemStack stack, int compare) {
|
||||||
|
if (!stack.hasTagCompound()) {
|
||||||
|
stack.setTagCompound(new NBTTagCompound());
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.getTagCompound().setInteger(NBT_COMPARE, compare);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
35
src/main/java/refinedstorage/network/MessageGridFilterUpdate.java
Executable file
35
src/main/java/refinedstorage/network/MessageGridFilterUpdate.java
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
package refinedstorage.network;
|
||||||
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
|
import refinedstorage.container.ContainerGridFilter;
|
||||||
|
import refinedstorage.item.ItemGridFilter;
|
||||||
|
|
||||||
|
public class MessageGridFilterUpdate extends MessageHandlerPlayerToServer<MessageGridFilterUpdate> implements IMessage {
|
||||||
|
private int compare;
|
||||||
|
|
||||||
|
public MessageGridFilterUpdate() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageGridFilterUpdate(int compare) {
|
||||||
|
this.compare = compare;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fromBytes(ByteBuf buf) {
|
||||||
|
compare = buf.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toBytes(ByteBuf buf) {
|
||||||
|
buf.writeInt(compare);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(MessageGridFilterUpdate message, EntityPlayerMP player) {
|
||||||
|
if (player.openContainer instanceof ContainerGridFilter) {
|
||||||
|
ItemGridFilter.setCompare(((ContainerGridFilter) player.openContainer).getStack(), message.compare);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -58,6 +58,7 @@ public class CommonProxy {
|
|||||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridUpdate.class, MessageGridUpdate.class, id++, Side.CLIENT);
|
RefinedStorage.INSTANCE.network.registerMessage(MessageGridUpdate.class, MessageGridUpdate.class, id++, Side.CLIENT);
|
||||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridDelta.class, MessageGridDelta.class, id++, Side.CLIENT);
|
RefinedStorage.INSTANCE.network.registerMessage(MessageGridDelta.class, MessageGridDelta.class, id++, Side.CLIENT);
|
||||||
RefinedStorage.INSTANCE.network.registerMessage(MessageProcessingPatternEncoderClear.class, MessageProcessingPatternEncoderClear.class, id++, Side.SERVER);
|
RefinedStorage.INSTANCE.network.registerMessage(MessageProcessingPatternEncoderClear.class, MessageProcessingPatternEncoderClear.class, id++, Side.SERVER);
|
||||||
|
RefinedStorage.INSTANCE.network.registerMessage(MessageGridFilterUpdate.class, MessageGridFilterUpdate.class, id++, Side.SERVER);
|
||||||
|
|
||||||
NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler());
|
NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user