More fixes.
This commit is contained in:
@@ -1,36 +1,32 @@
|
||||
package refinedstorage.gui.sidebutton;
|
||||
|
||||
import refinedstorage.RSUtils;
|
||||
import refinedstorage.api.storage.AccessType;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.tile.config.IAccessType;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class SideButtonAccessType extends SideButton {
|
||||
private TileDataParameter<Integer> parameter;
|
||||
private TileDataParameter<AccessType> parameter;
|
||||
|
||||
public SideButtonAccessType(GuiBase gui, TileDataParameter<Integer> parameter) {
|
||||
public SideButtonAccessType(GuiBase gui, TileDataParameter<AccessType> parameter) {
|
||||
super(gui);
|
||||
|
||||
this.parameter = parameter;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawButtonIcon(int x, int y) {
|
||||
//TODO
|
||||
// @TODO
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTooltip() {
|
||||
switch (parameter.getValue()) {
|
||||
case IAccessType.READ:
|
||||
return gui.t("sidebutton.refinedstorage:access_type.read");
|
||||
case IAccessType.WRITE:
|
||||
return gui.t("sidebutton.refinedstorage:access_type.write");
|
||||
default:
|
||||
case IAccessType.READ_WRITE:
|
||||
return gui.t("sidebutton.refinedstorage:access_type.read_write");
|
||||
}
|
||||
return gui.t("sidebutton.refinedstorage:access_type." + parameter.getValue().getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
TileDataManager.setParameter(parameter, ((parameter.getValue() + 1 > IAccessType.READ_WRITE) ? IAccessType.READ : parameter.getValue() + 1));
|
||||
TileDataManager.setParameter(parameter, RSUtils.getAccessType(parameter.getValue().getId() + 1));
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import refinedstorage.api.storage.AccessType;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IStorageGui {
|
||||
@@ -15,9 +16,9 @@ public interface IStorageGui {
|
||||
|
||||
TileDataParameter<Integer> getPriorityParameter();
|
||||
|
||||
TileDataParameter<Boolean> getVoidExcessParameter();
|
||||
TileDataParameter<AccessType> getAccessTypeParameter();
|
||||
|
||||
TileDataParameter<Integer> getAccessTypeParameter();
|
||||
TileDataParameter<Boolean> getVoidExcessParameter();
|
||||
|
||||
String getVoidExcessType();
|
||||
|
||||
|
@@ -38,7 +38,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||
public static final TileDataParameter<Boolean> VOID_EXCESS = IExcessVoidable.createParameter();
|
||||
public static final TileDataParameter<Integer> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||
|
||||
public class ItemStorage extends ItemStorageNBT {
|
||||
public ItemStorage(ItemStack disk) {
|
||||
@@ -342,7 +342,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getAccessTypeParameter() {
|
||||
public TileDataParameter<AccessType> getAccessTypeParameter() {
|
||||
return ACCESS_TYPE;
|
||||
}
|
||||
|
||||
@@ -360,8 +360,10 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
||||
public void setAccessType(AccessType value) {
|
||||
this.accessType = value;
|
||||
|
||||
network.getFluidStorageCache().invalidate();
|
||||
network.getItemStorageCache().invalidate();
|
||||
if (network != null) {
|
||||
network.getFluidStorageCache().invalidate();
|
||||
network.getItemStorageCache().invalidate();
|
||||
}
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider,
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
public static final TileDataParameter<Boolean> VOID_EXCESS = IExcessVoidable.createParameter();
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
public static final TileDataParameter<Integer> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileFluidStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileFluidStorage tile) {
|
||||
@@ -257,7 +257,7 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider,
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getAccessTypeParameter() {
|
||||
public TileDataParameter<AccessType> getAccessTypeParameter() {
|
||||
return ACCESS_TYPE;
|
||||
}
|
||||
|
||||
@@ -291,7 +291,9 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider,
|
||||
public void setAccessType(AccessType value) {
|
||||
this.accessType = value;
|
||||
|
||||
network.getFluidStorageCache().invalidate();
|
||||
if (network != null) {
|
||||
network.getFluidStorageCache().invalidate();
|
||||
}
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor
|
||||
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> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileStorage tile) {
|
||||
@@ -270,7 +270,7 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getAccessTypeParameter() {
|
||||
public TileDataParameter<AccessType> getAccessTypeParameter() {
|
||||
return ACCESS_TYPE;
|
||||
}
|
||||
|
||||
@@ -304,7 +304,9 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor
|
||||
public void setAccessType(AccessType value) {
|
||||
this.accessType = value;
|
||||
|
||||
network.getItemStorageCache().invalidate();
|
||||
if (network != null) {
|
||||
network.getItemStorageCache().invalidate();
|
||||
}
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
@@ -1,29 +1,23 @@
|
||||
package refinedstorage.tile.config;
|
||||
|
||||
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.RSUtils;
|
||||
import refinedstorage.api.storage.AccessType;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.RSSerializers;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IAccessType {
|
||||
int READ = 0;
|
||||
int WRITE = 1;
|
||||
int READ_WRITE = 2;
|
||||
|
||||
static <T extends TileEntity> TileDataParameter<Integer> createParameter() {
|
||||
return new TileDataParameter<>(DataSerializers.VARINT, READ_WRITE, new ITileDataProducer<Integer, T>() {
|
||||
static <T extends TileEntity> TileDataParameter<AccessType> createParameter() {
|
||||
return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.READ_WRITE, new ITileDataProducer<AccessType, T>() {
|
||||
@Override
|
||||
public Integer getValue(T tile) {
|
||||
return ((IAccessType) tile).getAccessType().getId();
|
||||
public AccessType getValue(T tile) {
|
||||
return ((IAccessType) tile).getAccessType();
|
||||
}
|
||||
}, new ITileDataConsumer<Integer, T>() {
|
||||
}, new ITileDataConsumer<AccessType, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, Integer value) {
|
||||
((IAccessType) tile).setAccessType(RSUtils.getAccessType(value));
|
||||
public void setValue(T tile, AccessType value) {
|
||||
((IAccessType) tile).setAccessType(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -7,7 +7,9 @@ import net.minecraft.network.datasync.DataSerializer;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||
import refinedstorage.RSUtils;
|
||||
import refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
||||
import refinedstorage.api.storage.AccessType;
|
||||
import refinedstorage.apiimpl.API;
|
||||
import refinedstorage.tile.ClientNode;
|
||||
|
||||
@@ -114,4 +116,21 @@ public final class RSSerializers {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
public static final DataSerializer<AccessType> ACCESS_TYPE_SERIALIZER = new DataSerializer<AccessType>() {
|
||||
@Override
|
||||
public void write(PacketBuffer buf, AccessType value) {
|
||||
buf.writeInt(value.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessType read(PacketBuffer buf) throws IOException {
|
||||
return RSUtils.getAccessType(buf.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataParameter<AccessType> createKey(int id) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||
public static final TileDataParameter<Integer> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
@@ -317,7 +317,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getAccessTypeParameter() {
|
||||
public TileDataParameter<AccessType> getAccessTypeParameter() {
|
||||
return ACCESS_TYPE;
|
||||
}
|
||||
|
||||
@@ -345,8 +345,10 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
public void setAccessType(AccessType type) {
|
||||
this.accessType = type;
|
||||
|
||||
network.getItemStorageCache().invalidate();
|
||||
network.getFluidStorageCache().invalidate();
|
||||
if (network != null) {
|
||||
network.getItemStorageCache().invalidate();
|
||||
network.getFluidStorageCache().invalidate();
|
||||
}
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
@@ -123,9 +123,9 @@ sidebutton.refinedstorage:void_excess.items_fluids=Void excess items and fluids
|
||||
|
||||
sidebutton.refinedstorage:constructor.drop=Drop blocks instead of placing
|
||||
|
||||
sidebutton.refinedstorage:access_type.read=Read
|
||||
sidebutton.refinedstorage:access_type.write=Write
|
||||
sidebutton.refinedstorage:access_type.read_write=Read and write
|
||||
sidebutton.refinedstorage:access_type.0=Read and write
|
||||
sidebutton.refinedstorage:access_type.1=Read
|
||||
sidebutton.refinedstorage:access_type.2=Write
|
||||
|
||||
block.refinedstorage:controller.0.name=Controller
|
||||
block.refinedstorage:controller.1.name=Creative Controller
|
||||
|
Reference in New Issue
Block a user