From 4e209b04eb7eff1d98f60a11077cb495d43d10f9 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 11 Oct 2016 00:11:09 +0200 Subject: [PATCH] More fixes. --- .../gui/sidebutton/SideButtonAccessType.java | 24 ++++++++----------- .../java/refinedstorage/tile/IStorageGui.java | 5 ++-- .../refinedstorage/tile/TileDiskDrive.java | 10 ++++---- .../refinedstorage/tile/TileFluidStorage.java | 8 ++++--- .../java/refinedstorage/tile/TileStorage.java | 8 ++++--- .../tile/config/IAccessType.java | 22 +++++++---------- .../tile/data/RSSerializers.java | 19 +++++++++++++++ .../externalstorage/TileExternalStorage.java | 10 ++++---- .../assets/refinedstorage/lang/en_US.lang | 6 ++--- 9 files changed, 65 insertions(+), 47 deletions(-) diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonAccessType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonAccessType.java index 384b1b897..c227e219a 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonAccessType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonAccessType.java @@ -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 parameter; + private TileDataParameter parameter; - public SideButtonAccessType(GuiBase gui, TileDataParameter parameter) { + public SideButtonAccessType(GuiBase gui, TileDataParameter 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)); } } diff --git a/src/main/java/refinedstorage/tile/IStorageGui.java b/src/main/java/refinedstorage/tile/IStorageGui.java index 9e8329064..420ac2a5e 100755 --- a/src/main/java/refinedstorage/tile/IStorageGui.java +++ b/src/main/java/refinedstorage/tile/IStorageGui.java @@ -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 getPriorityParameter(); - TileDataParameter getVoidExcessParameter(); + TileDataParameter getAccessTypeParameter(); - TileDataParameter getAccessTypeParameter(); + TileDataParameter getVoidExcessParameter(); String getVoidExcessType(); diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 559eff309..08da1dcfb 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -38,7 +38,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter 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 getAccessTypeParameter() { + public TileDataParameter 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(); } diff --git a/src/main/java/refinedstorage/tile/TileFluidStorage.java b/src/main/java/refinedstorage/tile/TileFluidStorage.java index e2fe1c0bc..441ea4d5c 100755 --- a/src/main/java/refinedstorage/tile/TileFluidStorage.java +++ b/src/main/java/refinedstorage/tile/TileFluidStorage.java @@ -26,7 +26,7 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { @Override public Integer getValue(TileFluidStorage tile) { @@ -257,7 +257,7 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter 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(); } diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index e9dae1222..b46980145 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -26,7 +26,7 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { @Override public Integer getValue(TileStorage tile) { @@ -270,7 +270,7 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter 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(); } diff --git a/src/main/java/refinedstorage/tile/config/IAccessType.java b/src/main/java/refinedstorage/tile/config/IAccessType.java index 36b1169a6..ac4da6acd 100755 --- a/src/main/java/refinedstorage/tile/config/IAccessType.java +++ b/src/main/java/refinedstorage/tile/config/IAccessType.java @@ -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 TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, READ_WRITE, new ITileDataProducer() { + static TileDataParameter createParameter() { + return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.READ_WRITE, new ITileDataProducer() { @Override - public Integer getValue(T tile) { - return ((IAccessType) tile).getAccessType().getId(); + public AccessType getValue(T tile) { + return ((IAccessType) tile).getAccessType(); } - }, new ITileDataConsumer() { + }, new ITileDataConsumer() { @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); } }); } diff --git a/src/main/java/refinedstorage/tile/data/RSSerializers.java b/src/main/java/refinedstorage/tile/data/RSSerializers.java index 13c20d172..8b9c413de 100755 --- a/src/main/java/refinedstorage/tile/data/RSSerializers.java +++ b/src/main/java/refinedstorage/tile/data/RSSerializers.java @@ -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 ACCESS_TYPE_SERIALIZER = new DataSerializer() { + @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 createKey(int id) { + return null; + } + }; } diff --git a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java index 4b19d4d91..c5e0f8fe8 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -35,7 +35,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { @Override @@ -317,7 +317,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter 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(); } diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index a814158de..1d5e6b4e0 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -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