Generic safety
This commit is contained in:
@@ -20,7 +20,7 @@ import refinedstorage.tile.config.IComparable;
|
|||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileConstructor extends TileNode implements IComparable {
|
public class TileConstructor extends TileNode implements IComparable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
|
||||||
|
@@ -52,7 +52,7 @@ import refinedstorage.tile.externalstorage.ExternalStorage;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, IRedstoneConfigurable {
|
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, IRedstoneConfigurable {
|
||||||
public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter();
|
public static final TileDataParameter<Integer> REDSTONE_MODE = RedstoneMode.createParameter();
|
||||||
|
|
||||||
public static final TileDataParameter<Integer> ENERGY_USAGE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileController>() {
|
public static final TileDataParameter<Integer> ENERGY_USAGE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileController>() {
|
||||||
@Override
|
@Override
|
||||||
|
@@ -21,8 +21,8 @@ import refinedstorage.tile.data.TileDataParameter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TileDestructor extends TileNode implements IComparable, IFilterable {
|
public class TileDestructor extends TileNode implements IComparable, IFilterable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
|
@@ -15,10 +15,13 @@ import refinedstorage.gui.GuiDetector;
|
|||||||
import refinedstorage.inventory.ItemHandlerBasic;
|
import refinedstorage.inventory.ItemHandlerBasic;
|
||||||
import refinedstorage.tile.config.IComparable;
|
import refinedstorage.tile.config.IComparable;
|
||||||
import refinedstorage.tile.config.RedstoneMode;
|
import refinedstorage.tile.config.RedstoneMode;
|
||||||
import refinedstorage.tile.data.*;
|
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 class TileDetector extends TileNode implements IComparable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
public static final TileDataParameter<Integer> MODE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileDetector>() {
|
public static final TileDataParameter<Integer> MODE = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileDetector>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -48,15 +51,12 @@ public class TileDetector extends TileNode implements IComparable {
|
|||||||
|
|
||||||
tile.markDirty();
|
tile.markDirty();
|
||||||
}
|
}
|
||||||
}, new ITileDataListener<Integer>() {
|
}, parameter -> {
|
||||||
@Override
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
public void onChanged(TileDataParameter<Integer> parameter) {
|
GuiScreen gui = Minecraft.getMinecraft().currentScreen;
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
|
||||||
GuiScreen gui = Minecraft.getMinecraft().currentScreen;
|
|
||||||
|
|
||||||
if (gui instanceof GuiDetector) {
|
if (gui instanceof GuiDetector) {
|
||||||
((GuiDetector) gui).AMOUNT.setText(String.valueOf(parameter.getValue()));
|
((GuiDetector) gui).AMOUNT.setText(String.valueOf(parameter.getValue()));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -26,9 +26,9 @@ import refinedstorage.tile.data.TileDataParameter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TileDiskDrive extends TileNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable {
|
public class TileDiskDrive extends TileNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable {
|
||||||
public static final TileDataParameter PRIORITY = IPrioritizable.createParameter();
|
public static final TileDataParameter<Integer> PRIORITY = IPrioritizable.createParameter();
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
|
|
||||||
public class Storage extends NBTStorage {
|
public class Storage extends NBTStorage {
|
||||||
public Storage(ItemStack disk) {
|
public Storage(ItemStack disk) {
|
||||||
|
@@ -16,7 +16,7 @@ import refinedstorage.tile.config.IComparable;
|
|||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileExporter extends TileNode implements IComparable {
|
public class TileExporter extends TileNode implements IComparable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
|
||||||
|
@@ -15,8 +15,8 @@ import refinedstorage.tile.config.IFilterable;
|
|||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileImporter extends TileNode implements IComparable, IFilterable {
|
public class TileImporter extends TileNode implements IComparable, IFilterable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
|
@@ -15,7 +15,7 @@ import refinedstorage.tile.config.IComparable;
|
|||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public class TileInterface extends TileNode implements IComparable {
|
public class TileInterface extends TileNode implements IComparable {
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
|
||||||
|
@@ -24,10 +24,10 @@ import refinedstorage.tile.data.TileDataParameter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TileStorage extends TileNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable {
|
public class TileStorage extends TileNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable {
|
||||||
public static final TileDataParameter PRIORITY = IPrioritizable.createParameter();
|
public static final TileDataParameter<Integer> PRIORITY = IPrioritizable.createParameter();
|
||||||
public static final TileDataParameter COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||||
public static final TileDataParameter MODE = IFilterable.createParameter();
|
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||||
public static final TileDataParameter STORED = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileStorage>() {
|
public static final TileDataParameter<Integer> STORED = TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, TileStorage>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(TileStorage tile) {
|
public Integer getValue(TileStorage tile) {
|
||||||
return NBTStorage.getStoredFromNBT(tile.storageTag);
|
return NBTStorage.getStoredFromNBT(tile.storageTag);
|
||||||
|
@@ -8,7 +8,7 @@ import refinedstorage.tile.data.TileDataManager;
|
|||||||
import refinedstorage.tile.data.TileDataParameter;
|
import refinedstorage.tile.data.TileDataParameter;
|
||||||
|
|
||||||
public interface IComparable {
|
public interface IComparable {
|
||||||
static <T extends TileEntity> TileDataParameter createParameter() {
|
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
|
@@ -14,7 +14,7 @@ public interface IFilterable {
|
|||||||
int WHITELIST = 0;
|
int WHITELIST = 0;
|
||||||
int BLACKLIST = 1;
|
int BLACKLIST = 1;
|
||||||
|
|
||||||
static <T extends TileEntity> TileDataParameter createParameter() {
|
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
|
@@ -31,7 +31,7 @@ public enum RedstoneMode {
|
|||||||
return id < 0 || id >= values().length ? IGNORE : values()[id];
|
return id < 0 || id >= values().length ? IGNORE : values()[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T extends TileEntity> TileDataParameter createParameter() {
|
public static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||||
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
return TileDataManager.createParameter(DataSerializers.VARINT, new ITileDataProducer<Integer, T>() {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue(T tile) {
|
public Integer getValue(T tile) {
|
||||||
|
@@ -24,16 +24,16 @@ public class TileDataManager {
|
|||||||
private List<TileDataParameter> watchedParameters = new ArrayList<TileDataParameter>();
|
private List<TileDataParameter> watchedParameters = new ArrayList<TileDataParameter>();
|
||||||
private List<Object> watchedParametersCache = new ArrayList<Object>();
|
private List<Object> watchedParametersCache = new ArrayList<Object>();
|
||||||
|
|
||||||
public static TileDataParameter createParameter(DataSerializer serializer, ITileDataProducer producer) {
|
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, ITileDataProducer producer) {
|
||||||
return createParameter(serializer, producer, null);
|
return createParameter(serializer, producer, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TileDataParameter createParameter(DataSerializer serializer, ITileDataProducer producer, ITileDataConsumer consumer) {
|
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, ITileDataProducer producer, ITileDataConsumer consumer) {
|
||||||
return createParameter(serializer, producer, consumer, null);
|
return createParameter(serializer, producer, consumer, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TileDataParameter createParameter(DataSerializer serializer, ITileDataProducer producer, ITileDataConsumer consumer, ITileDataListener listener) {
|
public static <T> TileDataParameter<T> createParameter(DataSerializer<T> serializer, ITileDataProducer producer, ITileDataConsumer consumer, ITileDataListener<T> listener) {
|
||||||
TileDataParameter parameter = new TileDataParameter(PARAMETER_ID++, serializer, producer, consumer, listener);
|
TileDataParameter<T> parameter = new TileDataParameter<>(PARAMETER_ID++, serializer, producer, consumer, listener);
|
||||||
|
|
||||||
PARAMETER_MAP.put(parameter.getId(), parameter);
|
PARAMETER_MAP.put(parameter.getId(), parameter);
|
||||||
|
|
||||||
|
@@ -2,7 +2,6 @@ package refinedstorage.tile.data;
|
|||||||
|
|
||||||
import net.minecraft.network.datasync.DataSerializer;
|
import net.minecraft.network.datasync.DataSerializer;
|
||||||
|
|
||||||
// @TODO: Annotate me better!
|
|
||||||
public class TileDataParameter<T> {
|
public class TileDataParameter<T> {
|
||||||
private int id;
|
private int id;
|
||||||
private DataSerializer<T> serializer;
|
private DataSerializer<T> serializer;
|
||||||
|
@@ -29,7 +29,10 @@ import refinedstorage.inventory.ItemHandlerGridFilterInGrid;
|
|||||||
import refinedstorage.inventory.ItemValidatorBasic;
|
import refinedstorage.inventory.ItemValidatorBasic;
|
||||||
import refinedstorage.item.ItemPattern;
|
import refinedstorage.item.ItemPattern;
|
||||||
import refinedstorage.tile.TileNode;
|
import refinedstorage.tile.TileNode;
|
||||||
import refinedstorage.tile.data.*;
|
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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -97,12 +100,9 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
tile.markDirty();
|
tile.markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, new ITileDataListener<Integer>() {
|
}, parameter -> {
|
||||||
@Override
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
public void onChanged(TileDataParameter<Integer> parameter) {
|
GuiGrid.updateSearchFieldFocus(parameter.getValue());
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
|
||||||
GuiGrid.updateSearchFieldFocus(parameter.getValue());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user