Fix client / server desync between tile parameters
This commit is contained in:
@@ -27,14 +27,13 @@ import refinedstorage.item.*;
|
||||
import refinedstorage.network.*;
|
||||
import refinedstorage.tile.*;
|
||||
import refinedstorage.tile.data.ContainerListener;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.externalstorage.TileExternalStorage;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static refinedstorage.RefinedStorage.ID;
|
||||
|
||||
public class CommonProxy {
|
||||
protected List<BlockCable> cables = new ArrayList<>();
|
||||
|
||||
@@ -62,26 +61,26 @@ public class CommonProxy {
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(new ContainerListener());
|
||||
|
||||
GameRegistry.registerTileEntity(TileController.class, ID + ":controller");
|
||||
GameRegistry.registerTileEntity(TileGrid.class, ID + ":grid");
|
||||
GameRegistry.registerTileEntity(TileDiskDrive.class, ID + ":disk_drive");
|
||||
GameRegistry.registerTileEntity(TileExternalStorage.class, ID + ":external_storage");
|
||||
GameRegistry.registerTileEntity(TileImporter.class, ID + ":importer");
|
||||
GameRegistry.registerTileEntity(TileExporter.class, ID + ":exporter");
|
||||
GameRegistry.registerTileEntity(TileDetector.class, ID + ":detector");
|
||||
GameRegistry.registerTileEntity(TileSolderer.class, ID + ":solderer");
|
||||
GameRegistry.registerTileEntity(TileDestructor.class, ID + ":destructor");
|
||||
GameRegistry.registerTileEntity(TileConstructor.class, ID + ":constructor");
|
||||
GameRegistry.registerTileEntity(TileStorage.class, ID + ":storage");
|
||||
GameRegistry.registerTileEntity(TileRelay.class, ID + ":relay");
|
||||
GameRegistry.registerTileEntity(TileInterface.class, ID + ":interface");
|
||||
GameRegistry.registerTileEntity(TileCraftingMonitor.class, ID + ":crafting_monitor");
|
||||
GameRegistry.registerTileEntity(TileWirelessTransmitter.class, ID + ":wireless_transmitter");
|
||||
GameRegistry.registerTileEntity(TileCrafter.class, ID + ":crafter");
|
||||
GameRegistry.registerTileEntity(TileProcessingPatternEncoder.class, ID + ":processing_pattern_encoder");
|
||||
GameRegistry.registerTileEntity(TileCable.class, ID + ":cable");
|
||||
GameRegistry.registerTileEntity(TileNetworkReceiver.class, ID + ":network_receiver");
|
||||
GameRegistry.registerTileEntity(TileNetworkTransmitter.class, ID + ":network_transmitter");
|
||||
registerTile(TileController.class, "controller");
|
||||
registerTile(TileGrid.class, "grid");
|
||||
registerTile(TileDiskDrive.class, "disk_drive");
|
||||
registerTile(TileExternalStorage.class, "external_storage");
|
||||
registerTile(TileImporter.class, "importer");
|
||||
registerTile(TileExporter.class, "exporter");
|
||||
registerTile(TileDetector.class, "detector");
|
||||
registerTile(TileSolderer.class, "solderer");
|
||||
registerTile(TileDestructor.class, "destructor");
|
||||
registerTile(TileConstructor.class, "constructor");
|
||||
registerTile(TileStorage.class, "storage");
|
||||
registerTile(TileRelay.class, "relay");
|
||||
registerTile(TileInterface.class, "interface");
|
||||
registerTile(TileCraftingMonitor.class, "crafting_monitor");
|
||||
registerTile(TileWirelessTransmitter.class, "wireless_transmitter");
|
||||
registerTile(TileCrafter.class, "crafter");
|
||||
registerTile(TileProcessingPatternEncoder.class, "processing_pattern_encoder");
|
||||
registerTile(TileCable.class, "cable");
|
||||
registerTile(TileNetworkReceiver.class, "network_receiver");
|
||||
registerTile(TileNetworkTransmitter.class, "network_transmitter");
|
||||
|
||||
registerBlock(RefinedStorageBlocks.CONTROLLER);
|
||||
registerBlock(RefinedStorageBlocks.GRID);
|
||||
@@ -538,6 +537,18 @@ public class CommonProxy {
|
||||
cables.add(cable);
|
||||
}
|
||||
|
||||
private void registerTile(Class<? extends TileBase> tile, String id) {
|
||||
GameRegistry.registerTileEntity(tile, RefinedStorage.ID + ":" + id);
|
||||
|
||||
try {
|
||||
TileBase tileInstance = tile.newInstance();
|
||||
|
||||
tileInstance.getDataManager().getParameters().forEach(TileDataManager::registerParameter);
|
||||
} catch (InstantiationException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void registerItem(Item item) {
|
||||
GameRegistry.register(item);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,6 @@ import refinedstorage.tile.config.IRedstoneConfigurable;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.RefinedStorageSerializers;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
import refinedstorage.tile.externalstorage.ExternalStorage;
|
||||
|
||||
@@ -56,28 +55,28 @@ import java.util.*;
|
||||
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, IRedstoneConfigurable {
|
||||
public static final TileDataParameter<Integer> REDSTONE_MODE = RedstoneMode.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> ENERGY_USAGE = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
public static final TileDataParameter<Integer> ENERGY_USAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@Override
|
||||
public Integer getValue(TileController tile) {
|
||||
return tile.getEnergyUsage();
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> ENERGY_STORED = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
public static final TileDataParameter<Integer> ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@Override
|
||||
public Integer getValue(TileController tile) {
|
||||
return tile.getEnergy().getEnergyStored();
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> ENERGY_CAPACITY = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
public static final TileDataParameter<Integer> ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@Override
|
||||
public Integer getValue(TileController tile) {
|
||||
return tile.getEnergy().getMaxEnergyStored();
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<List<ClientNode>> NODES = TileDataManager.createParameter(RefinedStorageSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), new ITileDataProducer<List<ClientNode>, TileController>() {
|
||||
public static final TileDataParameter<List<ClientNode>> NODES = new TileDataParameter<>(RefinedStorageSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), new ITileDataProducer<List<ClientNode>, TileController>() {
|
||||
@Override
|
||||
public List<ClientNode> getValue(TileController tile) {
|
||||
List<ClientNode> nodes = new ArrayList<>();
|
||||
|
||||
@@ -3,7 +3,6 @@ package refinedstorage.tile;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.RefinedStorageSerializers;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -12,7 +11,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class TileCraftingMonitor extends TileNode {
|
||||
public static final TileDataParameter<List<ClientCraftingTask>> TASKS = TileDataManager.createParameter(RefinedStorageSerializers.CLIENT_CRAFTING_TASK_SERIALIZER, new ArrayList<>(), new ITileDataProducer<List<ClientCraftingTask>, TileCraftingMonitor>() {
|
||||
public static final TileDataParameter<List<ClientCraftingTask>> TASKS = new TileDataParameter<>(RefinedStorageSerializers.CLIENT_CRAFTING_TASK_SERIALIZER, new ArrayList<>(), new ITileDataProducer<List<ClientCraftingTask>, TileCraftingMonitor>() {
|
||||
@Override
|
||||
public List<ClientCraftingTask> getValue(TileCraftingMonitor tile) {
|
||||
if (tile.connected) {
|
||||
|
||||
@@ -17,13 +17,12 @@ import refinedstorage.tile.config.IComparable;
|
||||
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 IComparable {
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> MODE = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDetector>() {
|
||||
public static final TileDataParameter<Integer> MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public Integer getValue(TileDetector tile) {
|
||||
return tile.mode;
|
||||
@@ -39,7 +38,7 @@ public class TileDetector extends TileNode implements IComparable {
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> AMOUNT = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDetector>() {
|
||||
public static final TileDataParameter<Integer> AMOUNT = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDetector>() {
|
||||
@Override
|
||||
public Integer getValue(TileDetector tile) {
|
||||
return tile.amount;
|
||||
|
||||
@@ -13,25 +13,24 @@ 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<Integer> DISTANCE = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileNetworkTransmitter>() {
|
||||
public static final TileDataParameter<Integer> DISTANCE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileNetworkTransmitter>() {
|
||||
@Override
|
||||
public Integer getValue(TileNetworkTransmitter tile) {
|
||||
return (tile.receiver != null && tile.isSameDimension()) ? tile.getDistance() : -1;
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> RECEIVER_DIMENSION = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileNetworkTransmitter>() {
|
||||
public static final TileDataParameter<Integer> RECEIVER_DIMENSION = new TileDataParameter<>(DataSerializers.VARINT, 0, 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, false, new ITileDataProducer<Boolean, TileNetworkTransmitter>() {
|
||||
public static final TileDataParameter<Boolean> RECEIVER_DIMENSION_SUPPORTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, TileNetworkTransmitter>() {
|
||||
@Override
|
||||
public Boolean getValue(TileNetworkTransmitter tile) {
|
||||
return tile.isDimensionSupported();
|
||||
|
||||
@@ -17,18 +17,17 @@ 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, 0, new ITileDataProducer<Integer, TileSolderer>() {
|
||||
public static final TileDataParameter<Integer> DURATION = new TileDataParameter<>(DataSerializers.VARINT, 0, 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, 0, new ITileDataProducer<Integer, TileSolderer>() {
|
||||
public static final TileDataParameter<Integer> PROGRESS = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileSolderer>() {
|
||||
@Override
|
||||
public Integer getValue(TileSolderer tile) {
|
||||
return tile.progress;
|
||||
|
||||
@@ -18,7 +18,6 @@ import refinedstorage.tile.config.IComparable;
|
||||
import refinedstorage.tile.config.IFilterable;
|
||||
import refinedstorage.tile.config.IPrioritizable;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.List;
|
||||
@@ -27,7 +26,7 @@ public class TileStorage extends TileNode implements IStorageProvider, IStorageG
|
||||
public static final TileDataParameter<Integer> PRIORITY = IPrioritizable.createParameter();
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
public static final TileDataParameter<Integer> STORED = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileStorage>() {
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileStorage tile) {
|
||||
return NBTStorage.getStoredFromNBT(tile.storageTag);
|
||||
|
||||
@@ -13,11 +13,10 @@ 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, 0, new ITileDataProducer<Integer, TileWirelessTransmitter>() {
|
||||
public static final TileDataParameter<Integer> RANGE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileWirelessTransmitter>() {
|
||||
@Override
|
||||
public Integer getValue(TileWirelessTransmitter tile) {
|
||||
return tile.getRange();
|
||||
|
||||
@@ -4,12 +4,11 @@ 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 IComparable {
|
||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IComparable) tile).getCompare();
|
||||
|
||||
@@ -7,7 +7,6 @@ import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IFilterable {
|
||||
@@ -15,7 +14,7 @@ public interface IFilterable {
|
||||
int BLACKLIST = 1;
|
||||
|
||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IFilterable) tile).getMode();
|
||||
|
||||
@@ -6,12 +6,11 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.gui.GuiStorage;
|
||||
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<Integer> createParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IPrioritizable) tile).getPriority();
|
||||
|
||||
@@ -6,7 +6,6 @@ import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public enum RedstoneMode {
|
||||
@@ -32,7 +31,7 @@ public enum RedstoneMode {
|
||||
}
|
||||
|
||||
public static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||
return TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IRedstoneConfigurable) tile).getRedstoneMode().ordinal();
|
||||
|
||||
@@ -3,7 +3,6 @@ package refinedstorage.tile.data;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.network.datasync.DataSerializer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerBase;
|
||||
@@ -17,32 +16,22 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class TileDataManager {
|
||||
private static int PARAMETER_ID = 0;
|
||||
private static Map<Integer, TileDataParameter> PARAMETER_MAP = new HashMap<>();
|
||||
private static int LAST_ID = 0;
|
||||
private static Map<Integer, TileDataParameter> REGISTRY = new HashMap<>();
|
||||
|
||||
private List<TileDataParameter> parameters = new ArrayList<>();
|
||||
|
||||
private List<TileDataParameter> watchedParameters = new ArrayList<>();
|
||||
private List<Object> watchedParametersCache = new ArrayList<>();
|
||||
|
||||
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer producer) {
|
||||
return createParameter(serializer, defaultValue, producer, null);
|
||||
public static void registerParameter(TileDataParameter<?> parameter) {
|
||||
parameter.setId(LAST_ID);
|
||||
|
||||
REGISTRY.put(LAST_ID++, parameter);
|
||||
}
|
||||
|
||||
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer producer, ITileDataConsumer consumer) {
|
||||
return createParameter(serializer, defaultValue, producer, consumer, null);
|
||||
}
|
||||
|
||||
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer producer, ITileDataConsumer consumer, ITileDataListener<T> listener) {
|
||||
TileDataParameter<T> parameter = new TileDataParameter<>(PARAMETER_ID++, defaultValue, serializer, producer, consumer, listener);
|
||||
|
||||
PARAMETER_MAP.put(parameter.getId(), parameter);
|
||||
|
||||
return parameter;
|
||||
}
|
||||
|
||||
public static TileDataParameter getParameter(int id) {
|
||||
return PARAMETER_MAP.get(id);
|
||||
public static TileDataParameter<?> getParameter(int id) {
|
||||
return REGISTRY.get(id);
|
||||
}
|
||||
|
||||
public static <T> void setParameter(TileDataParameter<T> parameter, T value) {
|
||||
@@ -59,6 +48,10 @@ public class TileDataManager {
|
||||
parameters.add(parameter);
|
||||
}
|
||||
|
||||
public List<TileDataParameter> getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public void addWatchedParameter(TileDataParameter<?> parameter) {
|
||||
addParameter(parameter);
|
||||
|
||||
|
||||
@@ -11,8 +11,15 @@ public class TileDataParameter<T> {
|
||||
private ITileDataListener<T> listener;
|
||||
private T value;
|
||||
|
||||
public TileDataParameter(int id, T defaultValue, DataSerializer<T> serializer, ITileDataProducer<T, ? extends TileEntity> producer, ITileDataConsumer<T, ? extends TileEntity> consumer, ITileDataListener<T> listener) {
|
||||
this.id = id;
|
||||
public TileDataParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer<T, ? extends TileEntity> producer) {
|
||||
this(serializer, defaultValue, producer, null);
|
||||
}
|
||||
|
||||
public TileDataParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer<T, ? extends TileEntity> producer, ITileDataConsumer<T, ? extends TileEntity> consumer) {
|
||||
this(serializer, defaultValue, producer, consumer, null);
|
||||
}
|
||||
|
||||
public TileDataParameter(DataSerializer<T> serializer, T defaultValue, ITileDataProducer<T, ? extends TileEntity> producer, ITileDataConsumer<T, ? extends TileEntity> consumer, ITileDataListener<T> listener) {
|
||||
this.value = defaultValue;
|
||||
this.serializer = serializer;
|
||||
this.valueProducer = producer;
|
||||
@@ -20,6 +27,10 @@ public class TileDataParameter<T> {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ import refinedstorage.tile.config.IComparable;
|
||||
import refinedstorage.tile.config.IFilterable;
|
||||
import refinedstorage.tile.config.IPrioritizable;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -30,7 +29,7 @@ public class TileExternalStorage extends TileMultipartNode implements IStoragePr
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> STORED = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
int stored = 0;
|
||||
@@ -43,7 +42,7 @@ public class TileExternalStorage extends TileMultipartNode implements IStoragePr
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> CAPACITY = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
public static final TileDataParameter<Integer> CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
int capacity = 0;
|
||||
|
||||
@@ -37,7 +37,7 @@ 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, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
public static final TileDataParameter<Integer> VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.viewType;
|
||||
@@ -53,7 +53,7 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
}
|
||||
}, parameter -> GuiGrid.sortItems());
|
||||
|
||||
public static final TileDataParameter<Integer> SORTING_DIRECTION = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
public static final TileDataParameter<Integer> SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.sortingDirection;
|
||||
@@ -69,7 +69,7 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
}
|
||||
}, parameter -> GuiGrid.sortItems());
|
||||
|
||||
public static final TileDataParameter<Integer> SORTING_TYPE = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
public static final TileDataParameter<Integer> SORTING_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.sortingType;
|
||||
@@ -85,7 +85,7 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
}
|
||||
}, parameter -> GuiGrid.sortItems());
|
||||
|
||||
public static final TileDataParameter<Integer> SEARCH_BOX_MODE = TileDataManager.createParameter(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
public static final TileDataParameter<Integer> SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@Override
|
||||
public Integer getValue(TileGrid tile) {
|
||||
return tile.searchBoxMode;
|
||||
|
||||
Reference in New Issue
Block a user