Add priority GUI
This commit is contained in:
83
src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java
Executable file
83
src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java
Executable file
@@ -0,0 +1,83 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.gui;
|
||||||
|
|
||||||
|
import com.google.common.primitives.Ints;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiCraftingStart;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.util.Tuple;
|
||||||
|
|
||||||
|
public class GuiPriority extends GuiCraftingStart {
|
||||||
|
private TileDataParameter<Integer> priority;
|
||||||
|
|
||||||
|
public GuiPriority(GuiBase parent, TileDataParameter<Integer> priority) {
|
||||||
|
super(parent, null, new Container() {
|
||||||
|
@Override
|
||||||
|
public boolean canInteractWith(EntityPlayer playerIn) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}, 164, 92);
|
||||||
|
|
||||||
|
this.priority = priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getAmount() {
|
||||||
|
return priority.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getStartButtonText() {
|
||||||
|
return "Set";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return "Priority";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTexture() {
|
||||||
|
return "gui/priority.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Tuple<Integer, Integer> getAmountPos() {
|
||||||
|
return new Tuple<>(18 + 1, 47 + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Tuple<Integer, Integer> getIncrementButtonPos(int x, int y) {
|
||||||
|
return new Tuple<>(6 + (x * (30 + 3)), y + (y == 0 ? 20 : 64));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Tuple<Integer, Integer> getStartCancelPos() {
|
||||||
|
return new Tuple<>(107, 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean canAmountGoNegative() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int[] getIncrements() {
|
||||||
|
return new int[]{
|
||||||
|
1, 5, 10,
|
||||||
|
-1, -5, -10
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void startRequest() {
|
||||||
|
Integer amount = Ints.tryParse(amountField.getText());
|
||||||
|
|
||||||
|
if (amount != null) {
|
||||||
|
TileDataManager.setParameter(priority, amount);
|
||||||
|
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -5,11 +5,17 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
|||||||
import com.raoulvdberge.refinedstorage.container.ContainerBase;
|
import com.raoulvdberge.refinedstorage.container.ContainerBase;
|
||||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.*;
|
import com.raoulvdberge.refinedstorage.gui.sidebutton.*;
|
||||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||||
|
import net.minecraft.client.gui.GuiButton;
|
||||||
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
public class GuiStorage extends GuiBase {
|
public class GuiStorage extends GuiBase {
|
||||||
private IStorageGui gui;
|
private IStorageGui gui;
|
||||||
private String texture;
|
private String texture;
|
||||||
|
|
||||||
|
private GuiButton priorityButton;
|
||||||
|
|
||||||
private int barX = 8;
|
private int barX = 8;
|
||||||
private int barY = 54;
|
private int barY = 54;
|
||||||
private int barWidth = 16;
|
private int barWidth = 16;
|
||||||
@@ -56,7 +62,7 @@ public class GuiStorage extends GuiBase {
|
|||||||
|
|
||||||
String txt = "Priority"; // @TODO: I18n
|
String txt = "Priority"; // @TODO: I18n
|
||||||
int bw = 10 + fontRendererObj.getStringWidth(txt);
|
int bw = 10 + fontRendererObj.getStringWidth(txt);
|
||||||
addButton(x + 169 - bw, y + 41, bw, 20, txt);
|
priorityButton = addButton(x + 169 - bw, y + 41, bw, 20, txt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -99,7 +105,12 @@ public class GuiStorage extends GuiBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @TODO: Remove
|
@Override
|
||||||
public void updatePriority(int priority) {
|
protected void actionPerformed(GuiButton button) throws IOException {
|
||||||
|
super.actionPerformed(button);
|
||||||
|
|
||||||
|
if (button == priorityButton) {
|
||||||
|
FMLCommonHandler.instance().showGuiScreen(new GuiPriority(this, gui.getPriorityParameter()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,8 @@ import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreview;
|
|||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.GuiButton;
|
||||||
import net.minecraft.client.gui.GuiTextField;
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.util.Tuple;
|
||||||
import net.minecraftforge.fml.client.FMLClientHandler;
|
import net.minecraftforge.fml.client.FMLClientHandler;
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
|
|
||||||
@@ -17,44 +19,90 @@ import java.io.IOException;
|
|||||||
public class GuiCraftingStart extends GuiBase {
|
public class GuiCraftingStart extends GuiBase {
|
||||||
private static final int DEFAULT_AMOUNT = 1;
|
private static final int DEFAULT_AMOUNT = 1;
|
||||||
|
|
||||||
private GuiTextField amountField;
|
protected GuiTextField amountField;
|
||||||
private GuiGrid parent;
|
private GuiBase parent;
|
||||||
private ClientStackItem stack;
|
private ClientStackItem stack;
|
||||||
private GuiButton startButton;
|
private GuiButton startButton;
|
||||||
private GuiButton cancelButton;
|
private GuiButton cancelButton;
|
||||||
private GuiButton[] incrementButtons = new GuiButton[6];
|
private GuiButton[] incrementButtons = new GuiButton[6];
|
||||||
|
|
||||||
public GuiCraftingStart(GuiGrid parent, EntityPlayer player, ClientStackItem stack) {
|
public GuiCraftingStart(GuiBase parent, ClientStackItem stack, Container container, int w, int h) {
|
||||||
super(new ContainerCraftingSettings(player, stack.getStack()), 172, 99);
|
super(container, w, h);
|
||||||
|
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GuiCraftingStart(GuiGrid parent, EntityPlayer player, ClientStackItem stack) {
|
||||||
|
this(parent, stack, new ContainerCraftingSettings(player, stack.getStack()), 172, 99);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getStartButtonText() {
|
||||||
|
return t("misc.refinedstorage:start");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getTitle() {
|
||||||
|
return t("container.crafting");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getTexture() {
|
||||||
|
return "gui/crafting_settings.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int[] getIncrements() {
|
||||||
|
return new int[]{
|
||||||
|
1, 10, 64,
|
||||||
|
-1, -10, -64
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getAmount() {
|
||||||
|
return DEFAULT_AMOUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Tuple<Integer, Integer> getAmountPos() {
|
||||||
|
return new Tuple<>(7 + 1, 50 + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Tuple<Integer, Integer> getIncrementButtonPos(int x, int y) {
|
||||||
|
return new Tuple<>(6 + (x * (30 + 3)), y + (y == 0 ? 20 : 72));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Tuple<Integer, Integer> getStartCancelPos() {
|
||||||
|
return new Tuple<>(114, 33);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean canAmountGoNegative() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
startButton = addButton(x + 114, y + 33, 50, 20, t("misc.refinedstorage:start"));
|
Tuple<Integer, Integer> pos = getStartCancelPos();
|
||||||
cancelButton = addButton(x + 114, y + 57, 50, 20, t("gui.cancel"));
|
|
||||||
|
|
||||||
amountField = new GuiTextField(0, fontRendererObj, x + 7 + 1, y + 50 + 1, 69 - 6, fontRendererObj.FONT_HEIGHT);
|
startButton = addButton(x + pos.getFirst(), y + pos.getSecond(), 50, 20, getStartButtonText());
|
||||||
|
cancelButton = addButton(x + pos.getFirst(), y + pos.getSecond() + 24, 50, 20, t("gui.cancel"));
|
||||||
|
|
||||||
|
amountField = new GuiTextField(0, fontRendererObj, x + getAmountPos().getFirst(), y + getAmountPos().getSecond(), 69 - 6, fontRendererObj.FONT_HEIGHT);
|
||||||
amountField.setEnableBackgroundDrawing(false);
|
amountField.setEnableBackgroundDrawing(false);
|
||||||
amountField.setVisible(true);
|
amountField.setVisible(true);
|
||||||
amountField.setText(String.valueOf(DEFAULT_AMOUNT));
|
amountField.setText(String.valueOf(getAmount()));
|
||||||
amountField.setTextColor(16777215);
|
amountField.setTextColor(16777215);
|
||||||
amountField.setCanLoseFocus(false);
|
amountField.setCanLoseFocus(false);
|
||||||
amountField.setFocused(true);
|
amountField.setFocused(true);
|
||||||
|
|
||||||
int[] increments = new int[]{
|
int[] increments = getIncrements();
|
||||||
1, 10, 64,
|
|
||||||
-1, -10, -64
|
|
||||||
};
|
|
||||||
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
incrementButtons[i] = addButton(x + 6 + (i * (30 + 3)), y + 20, 30, 20, "+" + increments[i]);
|
pos = getIncrementButtonPos(i, 0);
|
||||||
|
|
||||||
|
incrementButtons[i] = addButton(x + pos.getFirst(), y + pos.getSecond(), 30, 20, "+" + increments[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
incrementButtons[3 + i] = addButton(x + 6 + (i * (30 + 3)), y + 72, 30, 20, String.valueOf(increments[3 + i]));
|
pos = getIncrementButtonPos(i, 1);
|
||||||
|
|
||||||
|
incrementButtons[3 + i] = addButton(x + pos.getFirst(), y + pos.getSecond(), 30, 20, String.valueOf(increments[3 + i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +112,7 @@ public class GuiCraftingStart extends GuiBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
||||||
bindTexture("gui/crafting_settings.png");
|
bindTexture(getTexture());
|
||||||
|
|
||||||
drawTexture(x, y, 0, 0, width, height);
|
drawTexture(x, y, 0, 0, width, height);
|
||||||
|
|
||||||
@@ -73,7 +121,7 @@ public class GuiCraftingStart extends GuiBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
public void drawForeground(int mouseX, int mouseY) {
|
||||||
drawString(7, 7, t("container.crafting"));
|
drawString(7, 7, getTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -110,7 +158,11 @@ public class GuiCraftingStart extends GuiBase {
|
|||||||
|
|
||||||
int newAmount = Integer.parseInt(incrementButton.displayString);
|
int newAmount = Integer.parseInt(incrementButton.displayString);
|
||||||
|
|
||||||
newAmount = Math.max(DEFAULT_AMOUNT, ((oldAmount == 1 && newAmount != 1) ? 0 : oldAmount) + newAmount);
|
if (!canAmountGoNegative()) {
|
||||||
|
newAmount = Math.max(DEFAULT_AMOUNT, ((oldAmount == 1 && newAmount != 1) ? 0 : oldAmount) + newAmount);
|
||||||
|
} else {
|
||||||
|
newAmount = oldAmount + newAmount;
|
||||||
|
}
|
||||||
|
|
||||||
amountField.setText(String.valueOf(newAmount));
|
amountField.setText(String.valueOf(newAmount));
|
||||||
|
|
||||||
@@ -120,7 +172,7 @@ public class GuiCraftingStart extends GuiBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startRequest() {
|
protected void startRequest() {
|
||||||
Integer quantity = Ints.tryParse(amountField.getText());
|
Integer quantity = Ints.tryParse(amountField.getText());
|
||||||
|
|
||||||
if (quantity != null && quantity > 0) {
|
if (quantity != null && quantity > 0) {
|
||||||
@@ -130,11 +182,11 @@ public class GuiCraftingStart extends GuiBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void close() {
|
protected void close() {
|
||||||
FMLClientHandler.instance().showGuiScreen(parent);
|
FMLClientHandler.instance().showGuiScreen(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiGrid getParent() {
|
public GuiBase getParent() {
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,16 +8,16 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public interface IAccessType {
|
public interface IAccessType {
|
||||||
static <T extends TileEntity> TileDataParameter<AccessType> createParameter() {
|
static <T extends TileEntity & IAccessType> TileDataParameter<AccessType> createParameter() {
|
||||||
return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.READ_WRITE, new ITileDataProducer<AccessType, T>() {
|
return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.READ_WRITE, new ITileDataProducer<AccessType, T>() {
|
||||||
@Override
|
@Override
|
||||||
public AccessType getValue(T tile) {
|
public AccessType getValue(T tile) {
|
||||||
return ((IAccessType) tile).getAccessType();
|
return tile.getAccessType();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<AccessType, T>() {
|
}, new ITileDataConsumer<AccessType, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, AccessType value) {
|
public void setValue(T tile, AccessType value) {
|
||||||
((IAccessType) tile).setAccessType(value);
|
tile.setAccessType(value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -7,16 +7,16 @@ import net.minecraft.network.datasync.DataSerializers;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public interface IComparable {
|
public interface IComparable {
|
||||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
static <T extends TileEntity & IComparable> TileDataParameter<Integer> createParameter() {
|
||||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
return ((IComparable) tile).getCompare();
|
return tile.getCompare();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<Integer, T>() {
|
}, new ITileDataConsumer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, Integer value) {
|
public void setValue(T tile, Integer value) {
|
||||||
((IComparable) tile).setCompare(value);
|
tile.setCompare(value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -7,16 +7,16 @@ import net.minecraft.network.datasync.DataSerializers;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public interface IExcessVoidable {
|
public interface IExcessVoidable {
|
||||||
static <T extends TileEntity> TileDataParameter<Boolean> createParameter() {
|
static <T extends TileEntity & IExcessVoidable> TileDataParameter<Boolean> createParameter() {
|
||||||
return new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, T>() {
|
return new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Boolean getValue(T tile) {
|
public Boolean getValue(T tile) {
|
||||||
return ((IExcessVoidable) tile).getVoidExcess();
|
return tile.getVoidExcess();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<Boolean, T>() {
|
}, new ITileDataConsumer<Boolean, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, Boolean value) {
|
public void setValue(T tile, Boolean value) {
|
||||||
((IExcessVoidable) tile).setVoidExcess(value);
|
tile.setVoidExcess(value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -15,17 +15,17 @@ public interface IFilterable {
|
|||||||
int WHITELIST = 0;
|
int WHITELIST = 0;
|
||||||
int BLACKLIST = 1;
|
int BLACKLIST = 1;
|
||||||
|
|
||||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
static <T extends TileEntity & IFilterable> TileDataParameter<Integer> createParameter() {
|
||||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
return ((IFilterable) tile).getMode();
|
return tile.getMode();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<Integer, T>() {
|
}, new ITileDataConsumer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, Integer value) {
|
public void setValue(T tile, Integer value) {
|
||||||
if (value == WHITELIST || value == BLACKLIST) {
|
if (value == WHITELIST || value == BLACKLIST) {
|
||||||
((IFilterable) tile).setMode(value);
|
tile.setMode(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -1,28 +1,22 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile.config;
|
package com.raoulvdberge.refinedstorage.tile.config;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.gui.GuiStorage;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
|
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.network.datasync.DataSerializers;
|
import net.minecraft.network.datasync.DataSerializers;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public interface IPrioritizable {
|
public interface IPrioritizable {
|
||||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
static <T extends TileEntity & IPrioritizable> TileDataParameter<Integer> createParameter() {
|
||||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
return ((IPrioritizable) tile).getPriority();
|
return tile.getPriority();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<Integer, T>() {
|
}, new ITileDataConsumer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, Integer value) {
|
public void setValue(T tile, Integer value) {
|
||||||
((IPrioritizable) tile).setPriority(value);
|
tile.setPriority(value);
|
||||||
}
|
|
||||||
}, parameter -> {
|
|
||||||
if (Minecraft.getMinecraft().currentScreen instanceof GuiStorage) {
|
|
||||||
((GuiStorage) Minecraft.getMinecraft().currentScreen).updatePriority(parameter.getValue());
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -12,17 +12,17 @@ public interface IType {
|
|||||||
int ITEMS = 0;
|
int ITEMS = 0;
|
||||||
int FLUIDS = 1;
|
int FLUIDS = 1;
|
||||||
|
|
||||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
static <T extends TileEntity & IType> TileDataParameter<Integer> createParameter() {
|
||||||
return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, new ITileDataProducer<Integer, T>() {
|
return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
return ((IType) tile).getType();
|
return tile.getType();
|
||||||
}
|
}
|
||||||
}, new ITileDataConsumer<Integer, T>() {
|
}, new ITileDataConsumer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(T tile, Integer value) {
|
public void setValue(T tile, Integer value) {
|
||||||
if (value == 0 || value == 1) {
|
if (value == 0 || value == 1) {
|
||||||
((IType) tile).setType(value);
|
tile.setType(value);
|
||||||
|
|
||||||
tile.getWorld().playerEntities.stream()
|
tile.getWorld().playerEntities.stream()
|
||||||
.filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(tile.getPos()))
|
.filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(tile.getPos()))
|
||||||
|
BIN
src/main/resources/assets/refinedstorage/textures/gui/priority.png
Executable file
BIN
src/main/resources/assets/refinedstorage/textures/gui/priority.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
Reference in New Issue
Block a user