More fixes.

This commit is contained in:
Raoul Van den Berge
2016-10-11 00:11:09 +02:00
parent 2aab253a68
commit 4e209b04eb
9 changed files with 65 additions and 47 deletions

View File

@@ -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));
}
}

View File

@@ -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();

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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);
}
});
}

View File

@@ -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;
}
};
}

View File

@@ -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();
}

View File

@@ -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