Switch to new GUI sync system, very buggy and untested
This commit is contained in:
@@ -13,6 +13,7 @@ import refinedstorage.tile.TileCraftingMonitor;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
// @TODO: Make it work
|
||||
public class GuiCraftingMonitor extends GuiBase {
|
||||
private static final int VISIBLE_ROWS = 3;
|
||||
|
||||
|
@@ -2,13 +2,12 @@ package refinedstorage.gui;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerDetector;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonDetectorMode;
|
||||
import refinedstorage.network.MessageDetectorAmountUpdate;
|
||||
import refinedstorage.tile.TileDetector;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -31,7 +30,8 @@ public class GuiDetector extends GuiBase {
|
||||
addSideButton(new SideButtonDetectorMode(detector));
|
||||
|
||||
amountField = new GuiTextField(0, fontRendererObj, x + 62 + 1, y + 23 + 1, 25, fontRendererObj.FONT_HEIGHT);
|
||||
amountField.setText(String.valueOf(detector.getAmount()));
|
||||
// @TODO: Change when the packet is received instead
|
||||
amountField.setText(String.valueOf(TileDetector.AMOUNT.getValue()));
|
||||
amountField.setEnableBackgroundDrawing(false);
|
||||
amountField.setVisible(true);
|
||||
amountField.setTextColor(16777215);
|
||||
@@ -64,7 +64,7 @@ public class GuiDetector extends GuiBase {
|
||||
Integer result = Ints.tryParse(amountField.getText());
|
||||
|
||||
if (result != null) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageDetectorAmountUpdate(detector, result));
|
||||
TileDataManager.setParameter(TileDetector.AMOUNT, result);
|
||||
}
|
||||
} else {
|
||||
super.keyTyped(character, keyCode);
|
||||
|
@@ -37,9 +37,9 @@ public class GuiNetworkTransmitter extends GuiBase {
|
||||
|
||||
if (networkTransmitter.getNetworkCard().getStackInSlot(0) == null) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.missing_card");
|
||||
} else if (!networkTransmitter.isDimensionSupported()) {
|
||||
} else if (!TileNetworkTransmitter.RECEIVER_DIMENSION_SUPPORTED.getValue()) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.missing_upgrade");
|
||||
} else if (!networkTransmitter.isSameDimension()) {
|
||||
} else if (!networkTransmitter.isSameDimension()) { // @TODO: Wtf?
|
||||
distance = t("gui.refinedstorage:network_transmitter.dimension", networkTransmitter.getReceiverDimension());
|
||||
} else {
|
||||
distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance());
|
||||
|
@@ -29,7 +29,7 @@ public class GuiSolderer extends GuiBase {
|
||||
drawTexture(x, y, 0, 0, width, height);
|
||||
|
||||
if (solderer.isWorking()) {
|
||||
drawTexture(x + 83, y + 38 - 1, 212, 0, solderer.getProgressScaled(22), 15);
|
||||
drawTexture(x + 83, y + 38 - 1, 212, 0, getProgressScaled(22), 15);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,18 @@ public class GuiSolderer extends GuiBase {
|
||||
drawString(7, 77, t("container.inventory"));
|
||||
|
||||
if (inBounds(83, 38, 22, 15, mouseX, mouseY) && solderer.isWorking()) {
|
||||
drawTooltip(mouseX, mouseY, t("gui.refinedstorage:solderer.progress", solderer.getProgressScaled(100)));
|
||||
drawTooltip(mouseX, mouseY, t("gui.refinedstorage:solderer.progress", getProgressScaled(100)));
|
||||
}
|
||||
}
|
||||
|
||||
private int getProgressScaled(int scale) {
|
||||
float progress = TileSolderer.PROGRESS.getValue();
|
||||
float duration = TileSolderer.DURATION.getValue();
|
||||
|
||||
if (progress > duration) {
|
||||
return scale;
|
||||
}
|
||||
|
||||
return (int) (progress / duration * (float) scale);
|
||||
}
|
||||
}
|
||||
|
@@ -49,6 +49,7 @@ public class GuiStorage extends GuiBase {
|
||||
}
|
||||
|
||||
priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT);
|
||||
// @TODO: Only change this when packet is received
|
||||
priorityField.setText(String.valueOf(gui.getPriority()));
|
||||
priorityField.setEnableBackgroundDrawing(false);
|
||||
priorityField.setVisible(true);
|
||||
|
@@ -32,7 +32,7 @@ public class GuiWirelessTransmitter extends GuiBase {
|
||||
@Override
|
||||
public void drawForeground(int mouseX, int mouseY) {
|
||||
drawString(7, 7, t("gui.refinedstorage:wireless_transmitter"));
|
||||
drawString(28, 25, t("gui.refinedstorage:wireless_transmitter.distance", wirelessTransmitter.getRange()));
|
||||
drawString(28, 25, t("gui.refinedstorage:wireless_transmitter.distance", TileWirelessTransmitter.RANGE.getValue()));
|
||||
drawString(7, 43, t("container.inventory"));
|
||||
}
|
||||
}
|
||||
|
@@ -70,6 +70,7 @@ public class GuiGrid extends GuiBase {
|
||||
searchField.setVisible(true);
|
||||
searchField.setTextColor(16777215);
|
||||
|
||||
// @TODO: Only do this after packet
|
||||
updateSearchBoxFocus(grid.getSearchBoxMode());
|
||||
} else {
|
||||
searchField.xPosition = sx;
|
||||
|
@@ -1,10 +1,8 @@
|
||||
package refinedstorage.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.network.MessageCompareUpdate;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
|
||||
public class SideButtonCompare extends SideButton {
|
||||
@@ -48,6 +46,6 @@ public class SideButtonCompare extends SideButton {
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageCompareUpdate(config, config.getCompare() ^ mask));
|
||||
config.setCompare(config.getCompare() ^ mask);
|
||||
}
|
||||
}
|
||||
|
@@ -3,9 +3,7 @@ package refinedstorage.gui.sidebutton;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.network.MessageDetectorModeUpdate;
|
||||
import refinedstorage.tile.TileDetector;
|
||||
|
||||
public class SideButtonDetectorMode extends SideButton {
|
||||
@@ -17,7 +15,7 @@ public class SideButtonDetectorMode extends SideButton {
|
||||
|
||||
@Override
|
||||
public String getTooltip(GuiBase gui) {
|
||||
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + detector.getMode());
|
||||
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + TileDetector.MODE.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -27,6 +25,16 @@ public class SideButtonDetectorMode extends SideButton {
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageDetectorModeUpdate(detector));
|
||||
int mode = TileDetector.MODE.getValue();
|
||||
|
||||
if (mode == TileDetector.MODE_EQUAL) {
|
||||
mode = TileDetector.MODE_ABOVE;
|
||||
} else if (mode == TileDetector.MODE_ABOVE) {
|
||||
mode = TileDetector.MODE_UNDER;
|
||||
} else if (mode == TileDetector.MODE_UNDER) {
|
||||
mode = TileDetector.MODE_EQUAL;
|
||||
}
|
||||
|
||||
TileDetector.MODE.setValue(mode);
|
||||
}
|
||||
}
|
||||
|
@@ -1,11 +1,8 @@
|
||||
package refinedstorage.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.network.MessageModeToggle;
|
||||
import refinedstorage.tile.config.IModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
|
||||
public class SideButtonMode extends SideButton {
|
||||
private IModeConfig config;
|
||||
@@ -16,7 +13,7 @@ public class SideButtonMode extends SideButton {
|
||||
|
||||
@Override
|
||||
public String getTooltip(GuiBase gui) {
|
||||
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (config.getMode() == ModeConstants.WHITELIST ? "whitelist" : "blacklist"));
|
||||
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (config.getMode() == IModeConfig.WHITELIST ? "whitelist" : "blacklist"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -25,9 +22,9 @@ public class SideButtonMode extends SideButton {
|
||||
|
||||
int tx = 0;
|
||||
|
||||
if (config.getMode() == ModeConstants.WHITELIST) {
|
||||
if (config.getMode() == IModeConfig.WHITELIST) {
|
||||
tx = 0;
|
||||
} else if (config.getMode() == ModeConstants.BLACKLIST) {
|
||||
} else if (config.getMode() == IModeConfig.BLACKLIST) {
|
||||
tx = 16;
|
||||
}
|
||||
|
||||
@@ -36,6 +33,6 @@ public class SideButtonMode extends SideButton {
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageModeToggle(config));
|
||||
config.setMode(config.getMode() == IModeConfig.WHITELIST ? IModeConfig.BLACKLIST : IModeConfig.WHITELIST);
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package refinedstorage.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.network.MessageRedstoneModeUpdate;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
|
||||
public class SideButtonRedstoneMode extends SideButton {
|
||||
@@ -26,6 +24,6 @@ public class SideButtonRedstoneMode extends SideButton {
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageRedstoneModeUpdate(config));
|
||||
config.setRedstoneMode(config.getRedstoneMode().next());
|
||||
}
|
||||
}
|
||||
|
@@ -1,50 +0,0 @@
|
||||
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.config.ICompareConfig;
|
||||
|
||||
public class MessageCompareUpdate extends MessageHandlerPlayerToServer<MessageCompareUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int compare;
|
||||
|
||||
public MessageCompareUpdate() {
|
||||
}
|
||||
|
||||
public MessageCompareUpdate(ICompareConfig setting, int compare) {
|
||||
this.x = ((TileEntity) setting).getPos().getX();
|
||||
this.y = ((TileEntity) setting).getPos().getY();
|
||||
this.z = ((TileEntity) setting).getPos().getZ();
|
||||
this.compare = compare;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
compare = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(compare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageCompareUpdate message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof ICompareConfig) {
|
||||
((ICompareConfig) tile).setCompare(message.compare);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,50 +0,0 @@
|
||||
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.TileDetector;
|
||||
|
||||
public class MessageDetectorAmountUpdate extends MessageHandlerPlayerToServer<MessageDetectorAmountUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int amount;
|
||||
|
||||
public MessageDetectorAmountUpdate() {
|
||||
}
|
||||
|
||||
public MessageDetectorAmountUpdate(TileDetector detector, int amount) {
|
||||
this.x = detector.getPos().getX();
|
||||
this.y = detector.getPos().getY();
|
||||
this.z = detector.getPos().getZ();
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
amount = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageDetectorAmountUpdate message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileDetector && message.amount >= 0) {
|
||||
((TileDetector) tile).setAmount(message.amount);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
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.TileDetector;
|
||||
|
||||
public class MessageDetectorModeUpdate extends MessageHandlerPlayerToServer<MessageDetectorModeUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
|
||||
public MessageDetectorModeUpdate() {
|
||||
}
|
||||
|
||||
public MessageDetectorModeUpdate(TileDetector detector) {
|
||||
this.x = detector.getPos().getX();
|
||||
this.y = detector.getPos().getY();
|
||||
this.z = detector.getPos().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageDetectorModeUpdate message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileDetector) {
|
||||
TileDetector detector = (TileDetector) tile;
|
||||
|
||||
switch (detector.getMode()) {
|
||||
case TileDetector.MODE_UNDER:
|
||||
detector.setMode(TileDetector.MODE_EQUAL);
|
||||
break;
|
||||
case TileDetector.MODE_EQUAL:
|
||||
detector.setMode(TileDetector.MODE_ABOVE);
|
||||
break;
|
||||
case TileDetector.MODE_ABOVE:
|
||||
detector.setMode(TileDetector.MODE_UNDER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,76 +0,0 @@
|
||||
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.grid.TileGrid;
|
||||
|
||||
public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageGridSettingsUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int viewType;
|
||||
private int sortingDirection;
|
||||
private int sortingType;
|
||||
private int searchBoxMode;
|
||||
|
||||
public MessageGridSettingsUpdate() {
|
||||
}
|
||||
|
||||
public MessageGridSettingsUpdate(TileGrid grid, int viewType, int sortingDirection, int sortingType, int searchBoxMode) {
|
||||
this.x = grid.getPos().getX();
|
||||
this.y = grid.getPos().getY();
|
||||
this.z = grid.getPos().getZ();
|
||||
this.viewType = viewType;
|
||||
this.sortingDirection = sortingDirection;
|
||||
this.sortingType = sortingType;
|
||||
this.searchBoxMode = searchBoxMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
viewType = 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(viewType);
|
||||
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 (TileGrid.isValidViewType(message.viewType)) {
|
||||
((TileGrid) tile).setViewType(message.viewType);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSortingDirection(message.sortingDirection)) {
|
||||
((TileGrid) tile).setSortingDirection(message.sortingDirection);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSortingType(message.sortingType)) {
|
||||
((TileGrid) tile).setSortingType(message.sortingType);
|
||||
}
|
||||
|
||||
if (TileGrid.isValidSearchBoxMode(message.searchBoxMode)) {
|
||||
((TileGrid) tile).setSearchBoxMode(message.searchBoxMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,53 +0,0 @@
|
||||
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.config.IModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
|
||||
public class MessageModeToggle extends MessageHandlerPlayerToServer<MessageModeToggle> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
|
||||
public MessageModeToggle() {
|
||||
}
|
||||
|
||||
public MessageModeToggle(IModeConfig mode) {
|
||||
this.x = ((TileEntity) mode).getPos().getX();
|
||||
this.y = ((TileEntity) mode).getPos().getY();
|
||||
this.z = ((TileEntity) mode).getPos().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageModeToggle message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof IModeConfig) {
|
||||
IModeConfig mode = (IModeConfig) tile;
|
||||
|
||||
if (mode.getMode() == ModeConstants.WHITELIST) {
|
||||
mode.setMode(ModeConstants.BLACKLIST);
|
||||
} else {
|
||||
mode.setMode(ModeConstants.WHITELIST);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
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.TileDiskDrive;
|
||||
import refinedstorage.tile.TileStorage;
|
||||
import refinedstorage.tile.externalstorage.TileExternalStorage;
|
||||
|
||||
public class MessagePriorityUpdate extends MessageHandlerPlayerToServer<MessagePriorityUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int priority;
|
||||
|
||||
public MessagePriorityUpdate() {
|
||||
}
|
||||
|
||||
public MessagePriorityUpdate(BlockPos pos, int priority) {
|
||||
this.x = pos.getX();
|
||||
this.y = pos.getY();
|
||||
this.z = pos.getZ();
|
||||
this.priority = priority;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
priority = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(priority);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessagePriorityUpdate message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileStorage) {
|
||||
((TileStorage) tile).setPriority(message.priority);
|
||||
} else if (tile instanceof TileExternalStorage) {
|
||||
((TileExternalStorage) tile).setPriority(message.priority);
|
||||
} else if (tile instanceof TileDiskDrive) {
|
||||
((TileDiskDrive) tile).setPriority(message.priority);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,48 +0,0 @@
|
||||
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.config.IRedstoneModeConfig;
|
||||
|
||||
public class MessageRedstoneModeUpdate extends MessageHandlerPlayerToServer<MessageRedstoneModeUpdate> implements IMessage {
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
|
||||
public MessageRedstoneModeUpdate() {
|
||||
}
|
||||
|
||||
public MessageRedstoneModeUpdate(IRedstoneModeConfig setting) {
|
||||
this.x = ((TileEntity) setting).getPos().getX();
|
||||
this.y = ((TileEntity) setting).getPos().getY();
|
||||
this.z = ((TileEntity) setting).getPos().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageRedstoneModeUpdate message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof IRedstoneModeConfig) {
|
||||
IRedstoneModeConfig setting = (IRedstoneModeConfig) tile;
|
||||
|
||||
setting.setRedstoneMode(setting.getRedstoneMode().next());
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,53 +0,0 @@
|
||||
package refinedstorage.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
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.proxy.ClientProxy;
|
||||
import refinedstorage.tile.ISynchronizedContainer;
|
||||
|
||||
public class MessageTileContainerUpdate implements IMessage, IMessageHandler<MessageTileContainerUpdate, IMessage> {
|
||||
private TileEntity tile;
|
||||
|
||||
public MessageTileContainerUpdate() {
|
||||
}
|
||||
|
||||
public MessageTileContainerUpdate(TileEntity tile) {
|
||||
this.tile = tile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
int x = buf.readInt();
|
||||
int y = buf.readInt();
|
||||
int z = buf.readInt();
|
||||
|
||||
if (Minecraft.getMinecraft().theWorld != null) {
|
||||
tile = ClientProxy.getWorld().getTileEntity(new BlockPos(x, y, z));
|
||||
|
||||
if (tile instanceof ISynchronizedContainer) {
|
||||
((ISynchronizedContainer) tile).readContainerData(buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(tile.getPos().getX());
|
||||
buf.writeInt(tile.getPos().getY());
|
||||
buf.writeInt(tile.getPos().getZ());
|
||||
|
||||
if (tile instanceof ISynchronizedContainer) {
|
||||
((ISynchronizedContainer) tile).writeContainerData(buf);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(MessageTileContainerUpdate message, MessageContext ctx) {
|
||||
return null;
|
||||
}
|
||||
}
|
@@ -42,17 +42,9 @@ public class CommonProxy {
|
||||
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageTileDataParameter.class, MessageTileDataParameter.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageTileDataParameterUpdate.class, MessageTileDataParameterUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageTileContainerUpdate.class, MessageTileContainerUpdate.class, id++, Side.CLIENT);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageRedstoneModeUpdate.class, MessageRedstoneModeUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridInsertHeld.class, MessageGridInsertHeld.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridPull.class, MessageGridPull.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageCompareUpdate.class, MessageCompareUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageModeToggle.class, MessageModeToggle.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageDetectorModeUpdate.class, MessageDetectorModeUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridCraftingClear.class, MessageGridCraftingClear.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessagePriorityUpdate.class, MessagePriorityUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridSettingsUpdate.class, MessageGridSettingsUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridCraftingTransfer.class, MessageGridCraftingTransfer.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageWirelessGridSettingsUpdate.class, MessageWirelessGridSettingsUpdate.class, id++, Side.SERVER);
|
||||
RefinedStorage.INSTANCE.network.registerMessage(MessageGridCraftingStart.class, MessageGridCraftingStart.class, id++, Side.SERVER);
|
||||
|
@@ -1,12 +0,0 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
|
||||
public interface ISynchronizedContainer {
|
||||
void readContainerData(ByteBuf buf);
|
||||
|
||||
void writeContainerData(ByteBuf buf);
|
||||
|
||||
Class<? extends Container> getContainer();
|
||||
}
|
@@ -1,8 +1,6 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -20,8 +18,6 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||
import net.minecraftforge.items.wrapper.SidedInvWrapper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.network.MessageTileContainerUpdate;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@@ -42,13 +38,7 @@ public abstract class TileBase extends TileEntity implements ITickable {
|
||||
if (!worldObj.isRemote) {
|
||||
ticks++;
|
||||
|
||||
if (this instanceof ISynchronizedContainer) {
|
||||
for (EntityPlayer player : worldObj.playerEntities) {
|
||||
if (((ISynchronizedContainer) this).getContainer() == player.openContainer.getClass()) {
|
||||
RefinedStorage.INSTANCE.network.sendTo(new MessageTileContainerUpdate(this), (EntityPlayerMP) player);
|
||||
}
|
||||
}
|
||||
}
|
||||
dataManager.detectAndSendChanges();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import refinedstorage.RefinedStorage;
|
||||
|
||||
public class TileCable extends TileNode {
|
||||
@@ -13,9 +12,4 @@ public class TileCable extends TileNode {
|
||||
public void updateNode() {
|
||||
// NO OP
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -14,14 +12,17 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler;
|
||||
import refinedstorage.container.ContainerConstructor;
|
||||
import refinedstorage.container.slot.SlotSpecimen;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileConstructor extends TileNode implements ICompareConfig {
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
|
||||
private static final int BASE_SPEED = 20;
|
||||
@@ -34,6 +35,7 @@ public class TileConstructor extends TileNode implements ICompareConfig {
|
||||
block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0));
|
||||
}
|
||||
};
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING);
|
||||
|
||||
private int compare = 0;
|
||||
@@ -41,6 +43,10 @@ public class TileConstructor extends TileNode implements ICompareConfig {
|
||||
|
||||
private CraftingTaskScheduler scheduler = new CraftingTaskScheduler(this);
|
||||
|
||||
public TileConstructor() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.constructorUsage + upgrades.getEnergyUsage();
|
||||
@@ -78,9 +84,13 @@ public class TileConstructor extends TileNode implements ICompareConfig {
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,25 +121,6 @@ public class TileConstructor extends TileNode implements ICompareConfig {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerConstructor.class;
|
||||
}
|
||||
|
||||
public IItemHandler getUpgrades() {
|
||||
return upgrades;
|
||||
}
|
||||
|
@@ -2,12 +2,9 @@ package refinedstorage.tile;
|
||||
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import cofh.api.energy.IEnergyReceiver;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.darkhax.tesla.capability.TeslaCapabilities;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
@@ -15,7 +12,6 @@ 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.fml.common.network.ByteBufUtils;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
@@ -35,7 +31,6 @@ import refinedstorage.apiimpl.network.WirelessGridHandler;
|
||||
import refinedstorage.apiimpl.storage.GroupedStorage;
|
||||
import refinedstorage.block.BlockController;
|
||||
import refinedstorage.block.EnumControllerType;
|
||||
import refinedstorage.container.ContainerController;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
import refinedstorage.integration.ic2.ControllerEnergyIC2;
|
||||
import refinedstorage.integration.ic2.ControllerEnergyIC2None;
|
||||
@@ -52,32 +47,26 @@ import refinedstorage.tile.externalstorage.ExternalStorage;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig {
|
||||
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, IRedstoneModeConfig {
|
||||
public static final String NBT_ENERGY = "Energy";
|
||||
public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity";
|
||||
|
||||
private static final String NBT_CRAFTING_TASKS = "CraftingTasks";
|
||||
|
||||
private static final Comparator<IStorage> SIZE_COMPARATOR = new Comparator<IStorage>() {
|
||||
@Override
|
||||
public int compare(IStorage left, IStorage right) {
|
||||
if (left.getStored() == right.getStored()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (left.getStored() > right.getStored()) ? -1 : 1;
|
||||
private static final Comparator<IStorage> SIZE_COMPARATOR = (left, right) -> {
|
||||
if (left.getStored() == right.getStored()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (left.getStored() > right.getStored()) ? -1 : 1;
|
||||
};
|
||||
|
||||
private static final Comparator<IStorage> PRIORITY_COMPARATOR = new Comparator<IStorage>() {
|
||||
@Override
|
||||
public int compare(IStorage left, IStorage right) {
|
||||
if (left.getPriority() == right.getPriority()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (left.getPriority() > right.getPriority()) ? -1 : 1;
|
||||
private static final Comparator<IStorage> PRIORITY_COMPARATOR = (left, right) -> {
|
||||
if (left.getPriority() == right.getPriority()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (left.getPriority() > right.getPriority()) ? -1 : 1;
|
||||
};
|
||||
|
||||
private GridHandler gridHandler = new GridHandler(this);
|
||||
@@ -613,7 +602,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
return type == null ? EnumControllerType.NORMAL : type;
|
||||
}
|
||||
|
||||
@Override
|
||||
// @TODO: Make this work as well
|
||||
/*@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
energy.setEnergyStored(buf.readInt());
|
||||
this.energyUsage = buf.readInt();
|
||||
@@ -683,7 +673,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerController.class;
|
||||
}
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
@@ -13,20 +11,13 @@ import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.container.ContainerCrafter;
|
||||
import refinedstorage.inventory.IItemValidator;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemPattern;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
|
||||
public class TileCrafter extends TileNode implements ICraftingPatternContainer {
|
||||
private ItemHandlerBasic patterns = new ItemHandlerBasic(9, this, new IItemValidator() {
|
||||
@Override
|
||||
public boolean isValid(ItemStack stack) {
|
||||
return stack.getItem() == RefinedStorageItems.PATTERN && ItemPattern.isValid(stack);
|
||||
}
|
||||
}) {
|
||||
private ItemHandlerBasic patterns = new ItemHandlerBasic(9, this, stack -> (stack.getItem() == RefinedStorageItems.PATTERN && ItemPattern.isValid(stack))) {
|
||||
@Override
|
||||
protected void onContentsChanged(int slot) {
|
||||
super.onContentsChanged(slot);
|
||||
@@ -56,11 +47,6 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer {
|
||||
public void updateNode() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerCrafter.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnectionChange(INetworkMaster network, boolean state) {
|
||||
if (!state) {
|
||||
|
@@ -1,17 +1,12 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.container.ContainerCraftingMonitor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
// @TODO: Make this work!
|
||||
public class TileCraftingMonitor extends TileNode {
|
||||
private List<ClientSideCraftingTask> tasks = new ArrayList<ClientSideCraftingTask>();
|
||||
|
||||
@@ -24,7 +19,7 @@ public class TileCraftingMonitor extends TileNode {
|
||||
public void updateNode() {
|
||||
}
|
||||
|
||||
@Override
|
||||
/*@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
@@ -66,17 +61,12 @@ public class TileCraftingMonitor extends TileNode {
|
||||
Collections.reverse(newTasks);
|
||||
|
||||
tasks = newTasks;
|
||||
}
|
||||
}*/
|
||||
|
||||
public List<ClientSideCraftingTask> getTasks() {
|
||||
return tasks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerCraftingMonitor.class;
|
||||
}
|
||||
|
||||
public class ClientSideCraftingTask {
|
||||
public ItemStack output;
|
||||
public int id;
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.InventoryHelper;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -13,18 +11,21 @@ import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerDestructor;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.config.IModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileDestructor extends TileNode implements ICompareConfig, IModeConfig {
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
public static final TileDataParameter MODE = IModeConfig.createConfigParameter();
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
private static final String NBT_MODE = "Mode";
|
||||
|
||||
@@ -34,7 +35,12 @@ public class TileDestructor extends TileNode implements ICompareConfig, IModeCon
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED);
|
||||
|
||||
private int compare = 0;
|
||||
private int mode = ModeConstants.WHITELIST;
|
||||
private int mode = IModeConfig.WHITELIST;
|
||||
|
||||
public TileDestructor() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
@@ -81,9 +87,13 @@ public class TileDestructor extends TileNode implements ICompareConfig, IModeCon
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,9 +103,13 @@ public class TileDestructor extends TileNode implements ICompareConfig, IModeCon
|
||||
|
||||
@Override
|
||||
public void setMode(int mode) {
|
||||
this.mode = mode;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(MODE, mode);
|
||||
} else {
|
||||
this.mode = mode;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -127,26 +141,6 @@ public class TileDestructor extends TileNode implements ICompareConfig, IModeCon
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
}
|
||||
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerDestructor.class;
|
||||
}
|
||||
|
||||
public IItemHandler getUpgrades() {
|
||||
return upgrades;
|
||||
}
|
||||
|
@@ -1,20 +1,54 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.container.ContainerDetector;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileDetector extends TileNode implements ICompareConfig {
|
||||
public static final int SPEED = 5;
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> MODE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public Integer getValue(TileDetector tile) {
|
||||
return tile.mode;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public void setValue(TileDetector tile, Integer value) {
|
||||
if (value == MODE_UNDER || value == MODE_EQUAL || value == MODE_ABOVE) {
|
||||
tile.mode = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter AMOUNT = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public Integer getValue(TileDetector tile) {
|
||||
return tile.amount;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public void setValue(TileDetector tile, Integer value) {
|
||||
tile.amount = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
});
|
||||
|
||||
private static final int SPEED = 5;
|
||||
|
||||
public static final int MODE_UNDER = 0;
|
||||
public static final int MODE_EQUAL = 1;
|
||||
@@ -34,6 +68,12 @@ public class TileDetector extends TileNode implements ICompareConfig {
|
||||
private boolean powered = false;
|
||||
private boolean wasPowered;
|
||||
|
||||
public TileDetector() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
dataManager.addWatchedParameter(AMOUNT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.detectorUsage;
|
||||
@@ -107,29 +147,13 @@ public class TileDetector extends TileNode implements ICompareConfig {
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
||||
public int getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(int mode) {
|
||||
this.mode = mode;
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
||||
public int getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void setAmount(int amount) {
|
||||
this.amount = amount;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -180,29 +204,6 @@ public class TileDetector extends TileNode implements ICompareConfig {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
buf.writeInt(amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
amount = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerDetector.class;
|
||||
}
|
||||
|
||||
public IItemHandler getInventory() {
|
||||
return filter;
|
||||
}
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -18,15 +16,19 @@ import refinedstorage.api.storage.IStorage;
|
||||
import refinedstorage.api.storage.IStorageProvider;
|
||||
import refinedstorage.apiimpl.storage.NBTStorage;
|
||||
import refinedstorage.block.EnumStorageType;
|
||||
import refinedstorage.container.ContainerDiskDrive;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemValidatorBasic;
|
||||
import refinedstorage.network.MessagePriorityUpdate;
|
||||
import refinedstorage.tile.config.*;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileDiskDrive extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
public class TileDiskDrive extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig, IPrioritizable {
|
||||
public static final TileDataParameter PRIORITY = IPrioritizable.createConfigParameter();
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
public static final TileDataParameter MODE = IModeConfig.createConfigParameter();
|
||||
|
||||
public class Storage extends NBTStorage {
|
||||
public Storage(ItemStack disk) {
|
||||
super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
|
||||
@@ -89,15 +91,22 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
|
||||
return super.extractItem(slot, amount, simulate);
|
||||
}
|
||||
};
|
||||
|
||||
private ItemHandlerBasic filters = new ItemHandlerBasic(9, this);
|
||||
|
||||
private Storage storages[] = new Storage[8];
|
||||
|
||||
private int priority = 0;
|
||||
private int compare = 0;
|
||||
private int mode = ModeConstants.WHITELIST;
|
||||
private int mode = IModeConfig.WHITELIST;
|
||||
private int stored = 0;
|
||||
|
||||
public TileDiskDrive() {
|
||||
dataManager.addWatchedParameter(PRIORITY);
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
if (!worldObj.isRemote) {
|
||||
@@ -208,29 +217,6 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
|
||||
super.readUpdate(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(priority);
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
priority = buf.readInt();
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerDiskDrive.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCompare() {
|
||||
return compare;
|
||||
@@ -238,9 +224,13 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -250,9 +240,13 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
|
||||
|
||||
@Override
|
||||
public void setMode(int mode) {
|
||||
this.mode = mode;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(MODE, mode);
|
||||
} else {
|
||||
this.mode = mode;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
public int getStoredForDisplayServer() {
|
||||
@@ -310,16 +304,17 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessagePriorityUpdate(pos, priority));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
TileDataManager.setParameter(PRIORITY, priority);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPriority(int priority) {
|
||||
this.priority = priority;
|
||||
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -11,13 +9,16 @@ import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler;
|
||||
import refinedstorage.container.ContainerExporter;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileExporter extends TileNode implements ICompareConfig {
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
|
||||
private ItemHandlerBasic filters = new ItemHandlerBasic(9, this);
|
||||
@@ -27,6 +28,10 @@ public class TileExporter extends TileNode implements ICompareConfig {
|
||||
|
||||
private CraftingTaskScheduler scheduler = new CraftingTaskScheduler(this);
|
||||
|
||||
public TileExporter() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.exporterUsage + upgrades.getEnergyUsage();
|
||||
@@ -70,9 +75,13 @@ public class TileExporter extends TileNode implements ICompareConfig {
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -103,25 +112,6 @@ public class TileExporter extends TileNode implements ICompareConfig {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerExporter.class;
|
||||
}
|
||||
|
||||
public IItemHandler getFilters() {
|
||||
return filters;
|
||||
}
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -9,16 +7,19 @@ import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerImporter;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.config.IModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileImporter extends TileNode implements ICompareConfig, IModeConfig {
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
public static final TileDataParameter MODE = IModeConfig.createConfigParameter();
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
private static final String NBT_MODE = "Mode";
|
||||
|
||||
@@ -26,10 +27,15 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
|
||||
|
||||
private int compare = 0;
|
||||
private int mode = ModeConstants.WHITELIST;
|
||||
private int mode = IModeConfig.WHITELIST;
|
||||
|
||||
private int currentSlot;
|
||||
|
||||
public TileImporter() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.importerUsage + upgrades.getEnergyUsage();
|
||||
@@ -75,9 +81,13 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,9 +97,13 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi
|
||||
|
||||
@Override
|
||||
public void setMode(int mode) {
|
||||
this.mode = mode;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(MODE, mode);
|
||||
} else {
|
||||
this.mode = mode;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -121,27 +135,6 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerImporter.class;
|
||||
}
|
||||
|
||||
public IItemHandler getUpgrades() {
|
||||
return upgrades;
|
||||
}
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -10,13 +8,16 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerInterface;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileInterface extends TileNode implements ICompareConfig {
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
|
||||
private ItemHandlerBasic importItems = new ItemHandlerBasic(9, this);
|
||||
@@ -28,6 +29,10 @@ public class TileInterface extends TileNode implements ICompareConfig {
|
||||
|
||||
private int currentSlot = 0;
|
||||
|
||||
public TileInterface() {
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.interfaceUsage + upgrades.getEnergyUsage();
|
||||
@@ -96,9 +101,13 @@ public class TileInterface extends TileNode implements ICompareConfig {
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -129,26 +138,6 @@ public class TileInterface extends TileNode implements ICompareConfig {
|
||||
return tag;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
compare = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(compare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerInterface.class;
|
||||
}
|
||||
|
||||
public IItemHandler getImportItems() {
|
||||
return importItems;
|
||||
}
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
|
||||
@@ -14,11 +13,6 @@ public class TileNetworkReceiver extends TileNode {
|
||||
return RefinedStorage.INSTANCE.networkReceiverUsage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRedstoneMode(RedstoneMode mode) {
|
||||
// NO OP
|
||||
|
@@ -1,21 +1,43 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.api.network.NetworkUtils;
|
||||
import refinedstorage.container.ContainerNetworkTransmitter;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.inventory.ItemValidatorBasic;
|
||||
import refinedstorage.item.ItemNetworkCard;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileNetworkTransmitter extends TileNode {
|
||||
public static final TileDataParameter DISTANCE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileNetworkTransmitter>() {
|
||||
@Override
|
||||
public Integer getValue(TileNetworkTransmitter tile) {
|
||||
return (tile.receiver != null && tile.isSameDimension()) ? tile.getDistance() : -1;
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter RECEIVER_DIMENSION = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileNetworkTransmitter>() {
|
||||
@Override
|
||||
public Integer getValue(TileNetworkTransmitter tile) {
|
||||
return tile.receiverDimension;
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Boolean> RECEIVER_DIMENSION_SUPPORTED = TileDataManager.createParameter(DataSerializers.BOOLEAN, new ITileDataProducer<Boolean, TileNetworkTransmitter>() {
|
||||
@Override
|
||||
public Boolean getValue(TileNetworkTransmitter tile) {
|
||||
return tile.isDimensionSupported();
|
||||
}
|
||||
});
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, this, ItemUpgrade.TYPE_INTERDIMENSIONAL) {
|
||||
@Override
|
||||
protected void onContentsChanged(int slot) {
|
||||
@@ -50,11 +72,11 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
private BlockPos receiver;
|
||||
private int receiverDimension;
|
||||
|
||||
// Used clientside
|
||||
private int distance;
|
||||
private boolean dimensionSupported;
|
||||
|
||||
public TileNetworkTransmitter() {
|
||||
dataManager.addWatchedParameter(DISTANCE);
|
||||
dataManager.addWatchedParameter(RECEIVER_DIMENSION);
|
||||
dataManager.addWatchedParameter(RECEIVER_DIMENSION_SUPPORTED);
|
||||
|
||||
rebuildOnUpdateChange = true;
|
||||
}
|
||||
|
||||
@@ -84,34 +106,11 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt((receiver != null && isSameDimension()) ? getDistance() : -1);
|
||||
buf.writeInt(receiverDimension);
|
||||
buf.writeBoolean(isDimensionSupported());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
distance = buf.readInt();
|
||||
receiverDimension = buf.readInt();
|
||||
dimensionSupported = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.networkTransmitterUsage + (isSameDimension() ? (int) Math.ceil(RefinedStorage.INSTANCE.networkTransmitterPerBlockUsage * getDistance()) : 0) + upgrades.getEnergyUsage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerNetworkTransmitter.class;
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getNetworkCard() {
|
||||
return networkCard;
|
||||
}
|
||||
@@ -129,10 +128,6 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
}
|
||||
|
||||
public int getDistance() {
|
||||
if (worldObj.isRemote) {
|
||||
return distance;
|
||||
}
|
||||
|
||||
if (receiver == null) {
|
||||
return 0;
|
||||
}
|
||||
@@ -145,6 +140,6 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
}
|
||||
|
||||
public boolean isDimensionSupported() {
|
||||
return worldObj.isRemote ? dimensionSupported : (isSameDimension() || upgrades.hasUpgrade(ItemUpgrade.TYPE_INTERDIMENSIONAL));
|
||||
return isSameDimension() || upgrades.hasUpgrade(ItemUpgrade.TYPE_INTERDIMENSIONAL);
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
@@ -11,8 +11,28 @@ import refinedstorage.api.network.NetworkUtils;
|
||||
import refinedstorage.block.BlockNode;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public abstract class TileNode extends TileBase implements INetworkNode, IRedstoneModeConfig {
|
||||
public static final TileDataParameter REDSTONE_MODE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileNode>() {
|
||||
@Override
|
||||
public Integer getValue(TileNode tile) {
|
||||
return tile.redstoneMode.id;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileNode>() {
|
||||
@Override
|
||||
public void setValue(TileNode tile, Integer value) {
|
||||
RedstoneMode mode = RedstoneMode.getById(value);
|
||||
|
||||
if (mode != null) {
|
||||
tile.redstoneMode = mode;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public abstract class TileNode extends TileBase implements INetworkNode, ISynchronizedContainer, IRedstoneModeConfig {
|
||||
private static final String NBT_CONNECTED = "Connected";
|
||||
|
||||
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
||||
@@ -23,6 +43,10 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr
|
||||
protected boolean connected;
|
||||
protected INetworkMaster network;
|
||||
|
||||
public TileNode() {
|
||||
dataManager.addWatchedParameter(REDSTONE_MODE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUpdate() {
|
||||
return redstoneMode.isEnabled(worldObj, pos);
|
||||
@@ -127,16 +151,6 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr
|
||||
markDirty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
redstoneMode = RedstoneMode.getById(buf.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
buf.writeInt(redstoneMode.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(NBTTagCompound tag) {
|
||||
super.read(tag);
|
||||
|
@@ -1,8 +1,6 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerRelay;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
|
||||
public class TileRelay extends TileNode {
|
||||
@@ -25,9 +23,4 @@ public class TileRelay extends TileNode {
|
||||
public boolean canConduct() {
|
||||
return canUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerRelay.class;
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,7 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
@@ -13,13 +12,29 @@ import refinedstorage.api.RefinedStorageAPI;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.solderer.ISoldererRecipe;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerSolderer;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerSolderer;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileSolderer extends TileNode {
|
||||
public static final TileDataParameter<Integer> DURATION = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileSolderer>() {
|
||||
@Override
|
||||
public Integer getValue(TileSolderer tile) {
|
||||
return tile.recipe != null ? tile.recipe.getDuration() : 0;
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> PROGRESS = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileSolderer>() {
|
||||
@Override
|
||||
public Integer getValue(TileSolderer tile) {
|
||||
return tile.progress;
|
||||
}
|
||||
});
|
||||
|
||||
private static final String NBT_WORKING = "Working";
|
||||
private static final String NBT_PROGRESS = "Progress";
|
||||
|
||||
@@ -31,7 +46,11 @@ public class TileSolderer extends TileNode {
|
||||
|
||||
private boolean working = false;
|
||||
private int progress = 0;
|
||||
private int duration;
|
||||
|
||||
public TileSolderer() {
|
||||
dataManager.addWatchedParameter(DURATION);
|
||||
dataManager.addWatchedParameter(PROGRESS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
@@ -153,39 +172,10 @@ public class TileSolderer extends TileNode {
|
||||
super.readUpdate(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
progress = buf.readInt();
|
||||
duration = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(progress);
|
||||
buf.writeInt(recipe != null ? recipe.getDuration() : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerSolderer.class;
|
||||
}
|
||||
|
||||
public boolean isWorking() {
|
||||
return working;
|
||||
}
|
||||
|
||||
public int getProgressScaled(int i) {
|
||||
if (progress > duration) {
|
||||
return i;
|
||||
}
|
||||
|
||||
return (int) ((float) progress / (float) duration * (float) i);
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getItems() {
|
||||
return items;
|
||||
}
|
||||
|
@@ -1,9 +1,8 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
@@ -14,14 +13,25 @@ import refinedstorage.api.storage.IStorageProvider;
|
||||
import refinedstorage.apiimpl.storage.NBTStorage;
|
||||
import refinedstorage.block.BlockStorage;
|
||||
import refinedstorage.block.EnumStorageType;
|
||||
import refinedstorage.container.ContainerStorage;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.network.MessagePriorityUpdate;
|
||||
import refinedstorage.tile.config.*;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileStorage extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
public class TileStorage extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig, IPrioritizable {
|
||||
public static final TileDataParameter PRIORITY = IPrioritizable.createConfigParameter();
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
public static final TileDataParameter MODE = IModeConfig.createConfigParameter();
|
||||
public static final TileDataParameter STORED = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileStorage tile) {
|
||||
return NBTStorage.getStoredFromNBT(tile.storageTag);
|
||||
}
|
||||
});
|
||||
|
||||
class Storage extends NBTStorage {
|
||||
public Storage() {
|
||||
super(TileStorage.this.getStorageTag(), TileStorage.this.getCapacity(), TileStorage.this);
|
||||
@@ -58,8 +68,14 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
|
||||
private int priority = 0;
|
||||
private int compare = 0;
|
||||
private int mode = ModeConstants.WHITELIST;
|
||||
private int stored;
|
||||
private int mode = IModeConfig.WHITELIST;
|
||||
|
||||
public TileStorage() {
|
||||
dataManager.addWatchedParameter(PRIORITY);
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
dataManager.addWatchedParameter(STORED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
@@ -153,31 +169,6 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
return type == null ? EnumStorageType.TYPE_1K : type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(NBTStorage.getStoredFromNBT(storageTag));
|
||||
buf.writeInt(priority);
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
stored = buf.readInt();
|
||||
priority = buf.readInt();
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerStorage.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCompare() {
|
||||
return compare;
|
||||
@@ -185,9 +176,13 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
|
||||
@Override
|
||||
public void setCompare(int compare) {
|
||||
this.compare = compare;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(COMPARE, compare);
|
||||
} else {
|
||||
this.compare = compare;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -197,9 +192,13 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
|
||||
@Override
|
||||
public void setMode(int mode) {
|
||||
this.mode = mode;
|
||||
if (worldObj.isRemote) {
|
||||
TileDataManager.setParameter(MODE, mode);
|
||||
} else {
|
||||
this.mode = mode;
|
||||
|
||||
markDirty();
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -227,11 +226,6 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessagePriorityUpdate(pos, priority));
|
||||
}
|
||||
|
||||
public NBTTagCompound getStorageTag() {
|
||||
return storageTag;
|
||||
}
|
||||
@@ -249,6 +243,12 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
return priority;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
TileDataManager.setParameter(PRIORITY, priority);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPriority(int priority) {
|
||||
this.priority = priority;
|
||||
|
||||
@@ -257,7 +257,7 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
|
||||
@Override
|
||||
public int getStored() {
|
||||
return stored;
|
||||
return (int) STORED.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
@@ -9,12 +9,21 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.network.IWirelessTransmitter;
|
||||
import refinedstorage.container.ContainerWirelessTransmitter;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import refinedstorage.item.ItemUpgrade;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileWirelessTransmitter extends TileNode implements IWirelessTransmitter {
|
||||
public static final TileDataParameter<Integer> RANGE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileWirelessTransmitter>() {
|
||||
@Override
|
||||
public Integer getValue(TileWirelessTransmitter tile) {
|
||||
return tile.getRange();
|
||||
}
|
||||
});
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_RANGE);
|
||||
|
||||
@Override
|
||||
@@ -56,11 +65,6 @@ public class TileWirelessTransmitter extends TileNode implements IWirelessTransm
|
||||
return upgrades;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerWirelessTransmitter.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getDroppedItems() {
|
||||
return upgrades;
|
||||
|
@@ -1,6 +1,27 @@
|
||||
package refinedstorage.tile.config;
|
||||
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface ICompareConfig {
|
||||
static <T extends TileEntity> TileDataParameter createConfigParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((ICompareConfig) tile).getCompare();
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, Integer value) {
|
||||
((ICompareConfig) tile).setCompare(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
int getCompare();
|
||||
|
||||
void setCompare(int compare);
|
||||
|
@@ -1,6 +1,32 @@
|
||||
package refinedstorage.tile.config;
|
||||
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IModeConfig {
|
||||
int WHITELIST = 0;
|
||||
int BLACKLIST = 1;
|
||||
|
||||
static <T extends TileEntity> TileDataParameter createConfigParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IModeConfig) tile).getMode();
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, Integer value) {
|
||||
if (value == WHITELIST || value == BLACKLIST) {
|
||||
((IModeConfig) tile).setMode(value);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void setMode(int mode);
|
||||
|
||||
int getMode();
|
||||
|
28
src/main/java/refinedstorage/tile/config/IPrioritizable.java
Executable file
28
src/main/java/refinedstorage/tile/config/IPrioritizable.java
Executable file
@@ -0,0 +1,28 @@
|
||||
package refinedstorage.tile.config;
|
||||
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IPrioritizable {
|
||||
static <T extends TileEntity> TileDataParameter createConfigParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IPrioritizable) tile).getPriority();
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, Integer value) {
|
||||
((IPrioritizable) tile).setPriority(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
int getPriority();
|
||||
|
||||
void setPriority(int priority);
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
package refinedstorage.tile.config;
|
||||
|
||||
public final class ModeConstants {
|
||||
public static final int WHITELIST = 0;
|
||||
public static final int BLACKLIST = 1;
|
||||
}
|
@@ -6,7 +6,7 @@ import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public final class ModeFilter {
|
||||
public static boolean respectsMode(IItemHandler filters, IModeConfig mode, int compare, ItemStack stack) {
|
||||
if (mode.getMode() == ModeConstants.WHITELIST) {
|
||||
if (mode.getMode() == IModeConfig.WHITELIST) {
|
||||
int slots = 0;
|
||||
|
||||
for (int i = 0; i < filters.getSlots(); ++i) {
|
||||
@@ -22,7 +22,7 @@ public final class ModeFilter {
|
||||
}
|
||||
|
||||
return slots == 0;
|
||||
} else if (mode.getMode() == ModeConstants.BLACKLIST) {
|
||||
} else if (mode.getMode() == IModeConfig.BLACKLIST) {
|
||||
for (int i = 0; i < filters.getSlots(); ++i) {
|
||||
ItemStack slot = filters.getStackInSlot(i);
|
||||
|
||||
|
@@ -2,9 +2,8 @@ package refinedstorage.tile.externalstorage;
|
||||
|
||||
import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawer;
|
||||
import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawerGroup;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
|
||||
@@ -12,20 +11,39 @@ import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
import refinedstorage.api.storage.IStorageProvider;
|
||||
import refinedstorage.container.ContainerStorage;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.network.MessagePriorityUpdate;
|
||||
import refinedstorage.tile.IStorageGui;
|
||||
import refinedstorage.tile.TileNode;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
import refinedstorage.tile.config.IModeConfig;
|
||||
import refinedstorage.tile.config.IPrioritizable;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TileExternalStorage extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
public class TileExternalStorage extends TileNode implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig, IPrioritizable {
|
||||
public static final TileDataParameter PRIORITY = IPrioritizable.createConfigParameter();
|
||||
public static final TileDataParameter COMPARE = ICompareConfig.createConfigParameter();
|
||||
public static final TileDataParameter MODE = IModeConfig.createConfigParameter();
|
||||
|
||||
public static final TileDataParameter STORED = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
return tile.getStored();
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter CAPACITY = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
return tile.getCapacity();
|
||||
}
|
||||
});
|
||||
|
||||
private static final String NBT_PRIORITY = "Priority";
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
private static final String NBT_MODE = "Mode";
|
||||
@@ -34,14 +52,19 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I
|
||||
|
||||
private int priority = 0;
|
||||
private int compare = 0;
|
||||
private int mode = ModeConstants.WHITELIST;
|
||||
|
||||
private int stored;
|
||||
private int capacity;
|
||||
private int mode = IModeConfig.WHITELIST;
|
||||
|
||||
private List<ExternalStorage> storages = new ArrayList<ExternalStorage>();
|
||||
private int lastDrawerCount;
|
||||
|
||||
public TileExternalStorage() {
|
||||
dataManager.addWatchedParameter(PRIORITY);
|
||||
dataManager.addWatchedParameter(COMPARE);
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
dataManager.addWatchedParameter(STORED);
|
||||
dataManager.addWatchedParameter(CAPACITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.externalStorageUsage + (storages.size() * RefinedStorage.INSTANCE.externalStoragePerStorageUsage);
|
||||
@@ -87,33 +110,6 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I
|
||||
super.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(priority);
|
||||
buf.writeInt(getStored());
|
||||
buf.writeInt(getCapacity());
|
||||
buf.writeInt(compare);
|
||||
buf.writeInt(mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
priority = buf.readInt();
|
||||
stored = buf.readInt();
|
||||
capacity = buf.readInt();
|
||||
compare = buf.readInt();
|
||||
mode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerStorage.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(NBTTagCompound tag) {
|
||||
super.read(tag);
|
||||
@@ -175,6 +171,12 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I
|
||||
return priority;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
TileDataManager.setParameter(PRIORITY, priority);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPriority(int priority) {
|
||||
this.priority = priority;
|
||||
|
||||
@@ -236,14 +238,10 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I
|
||||
|
||||
@Override
|
||||
public int getStored() {
|
||||
if (!worldObj.isRemote) {
|
||||
int stored = 0;
|
||||
int stored = 0;
|
||||
|
||||
for (ExternalStorage storage : storages) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
|
||||
return stored;
|
||||
for (ExternalStorage storage : storages) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
|
||||
return stored;
|
||||
@@ -251,24 +249,15 @@ public class TileExternalStorage extends TileNode implements IStorageProvider, I
|
||||
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
if (!worldObj.isRemote) {
|
||||
int capacity = 0;
|
||||
int capacity = 0;
|
||||
|
||||
for (ExternalStorage storage : storages) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
|
||||
return capacity;
|
||||
for (ExternalStorage storage : storages) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
|
||||
return capacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriorityChanged(int priority) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessagePriorityUpdate(pos, priority));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getFilters() {
|
||||
return filters;
|
||||
|
@@ -1,12 +1,12 @@
|
||||
package refinedstorage.tile.grid;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.*;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
@@ -25,14 +25,81 @@ import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerGridFilterInGrid;
|
||||
import refinedstorage.inventory.ItemValidatorBasic;
|
||||
import refinedstorage.item.ItemPattern;
|
||||
import refinedstorage.network.MessageGridSettingsUpdate;
|
||||
import refinedstorage.tile.TileNode;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TileGrid extends TileNode implements IGrid {
|
||||
public static final TileDataParameter<Integer> VIEW_TYPE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.viewType;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public void setValue(TileGrid tile, Integer value) {
|
||||
if (isValidViewType(value)) {
|
||||
tile.viewType = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> SORTING_DIRECTION = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.sortingDirection;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public void setValue(TileGrid tile, Integer value) {
|
||||
if (isValidSortingDirection(value)) {
|
||||
tile.sortingDirection = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> SORTING_TYPE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.sortingType;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public void setValue(TileGrid tile, Integer value) {
|
||||
if (isValidSortingType(value)) {
|
||||
tile.sortingType = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> SEARCH_BOX_MODE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.searchBoxMode;
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public void setValue(TileGrid tile, Integer value) {
|
||||
if (isValidSearchBoxMode(value)) {
|
||||
tile.searchBoxMode = value;
|
||||
|
||||
tile.markDirty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static final String NBT_VIEW_TYPE = "ViewType";
|
||||
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
||||
public static final String NBT_SORTING_TYPE = "SortingType";
|
||||
@@ -78,6 +145,13 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
private int sortingType = SORTING_TYPE_NAME;
|
||||
private int searchBoxMode = SEARCH_BOX_MODE_NORMAL;
|
||||
|
||||
public TileGrid() {
|
||||
dataManager.addWatchedParameter(VIEW_TYPE);
|
||||
dataManager.addWatchedParameter(SORTING_DIRECTION);
|
||||
dataManager.addWatchedParameter(SORTING_TYPE);
|
||||
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
switch (getType()) {
|
||||
@@ -279,63 +353,42 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
|
||||
@Override
|
||||
public int getViewType() {
|
||||
return viewType;
|
||||
}
|
||||
|
||||
public void setViewType(int type) {
|
||||
this.viewType = type;
|
||||
|
||||
markDirty();
|
||||
return worldObj.isRemote ? VIEW_TYPE.getValue() : viewType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSortingDirection() {
|
||||
return sortingDirection;
|
||||
}
|
||||
|
||||
public void setSortingDirection(int sortingDirection) {
|
||||
this.sortingDirection = sortingDirection;
|
||||
|
||||
markDirty();
|
||||
return worldObj.isRemote ? SORTING_DIRECTION.getValue() : sortingDirection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSortingType() {
|
||||
return sortingType;
|
||||
}
|
||||
|
||||
public void setSortingType(int sortingType) {
|
||||
this.sortingType = sortingType;
|
||||
|
||||
markDirty();
|
||||
return worldObj.isRemote ? SORTING_TYPE.getValue() : sortingType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSearchBoxMode() {
|
||||
return searchBoxMode;
|
||||
}
|
||||
|
||||
public void setSearchBoxMode(int searchBoxMode) {
|
||||
this.searchBoxMode = searchBoxMode;
|
||||
|
||||
markDirty();
|
||||
return worldObj.isRemote ? SEARCH_BOX_MODE.getValue() : searchBoxMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewTypeChanged(int type) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(this, type, sortingDirection, sortingType, searchBoxMode));
|
||||
TileDataManager.setParameter(VIEW_TYPE, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSortingTypeChanged(int type) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(this, viewType, sortingDirection, type, searchBoxMode));
|
||||
TileDataManager.setParameter(SORTING_TYPE, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSortingDirectionChanged(int direction) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(this, viewType, direction, sortingType, searchBoxMode));
|
||||
TileDataManager.setParameter(SORTING_DIRECTION, direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSearchBoxModeChanged(int searchBoxMode) {
|
||||
RefinedStorage.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(this, viewType, sortingDirection, sortingType, searchBoxMode));
|
||||
TileDataManager.setParameter(SEARCH_BOX_MODE, searchBoxMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -384,31 +437,6 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeContainerData(ByteBuf buf) {
|
||||
super.writeContainerData(buf);
|
||||
|
||||
buf.writeInt(viewType);
|
||||
buf.writeInt(sortingDirection);
|
||||
buf.writeInt(sortingType);
|
||||
buf.writeInt(searchBoxMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readContainerData(ByteBuf buf) {
|
||||
super.readContainerData(buf);
|
||||
|
||||
viewType = buf.readInt();
|
||||
sortingDirection = buf.readInt();
|
||||
sortingType = buf.readInt();
|
||||
searchBoxMode = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return ContainerGrid.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getDroppedItems() {
|
||||
switch (getType()) {
|
||||
|
Reference in New Issue
Block a user