Remove IReaderWriter interface, use seperate IReader/IWriter
This commit is contained in:
@@ -1,13 +1,23 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.readerwriter;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
|
||||
/**
|
||||
* Represents a reader block in the world.
|
||||
*/
|
||||
public interface IReader extends IReaderWriter {
|
||||
public interface IReader extends INetworkNode {
|
||||
/**
|
||||
* @return the redstone strength this reader is receiving
|
||||
*/
|
||||
int getRedstoneStrength();
|
||||
|
||||
/**
|
||||
* @return the channel
|
||||
*/
|
||||
String getChannel();
|
||||
|
||||
/**
|
||||
* @param channel the channel
|
||||
*/
|
||||
void setChannel(String channel);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.readerwriter;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
@@ -26,18 +25,32 @@ public interface IReaderWriterHandler {
|
||||
void onWriterDisabled(IWriter writer);
|
||||
|
||||
/**
|
||||
* @param readerWriter the reader writer
|
||||
* @param reader the reader
|
||||
* @param capability the capability
|
||||
* @return whether we have the given capability for the reader writer
|
||||
* @return whether we have the given capability for the reader
|
||||
*/
|
||||
boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability);
|
||||
boolean hasCapabilityReader(IReader reader, Capability<?> capability);
|
||||
|
||||
/**
|
||||
* @param readerWriter the reader writer
|
||||
* @param reader the reader
|
||||
* @param capability the capability
|
||||
* @return the capability for the given reader writer
|
||||
* @return the capability for the given reader
|
||||
*/
|
||||
<T> T getCapability(IReaderWriter readerWriter, Capability<T> capability);
|
||||
<T> T getCapabilityReader(IReader reader, Capability<T> capability);
|
||||
|
||||
/**
|
||||
* @param writer the writer
|
||||
* @param capability the capability
|
||||
* @return whether we have the given capability for the writer
|
||||
*/
|
||||
boolean hasCapabilityWriter(IWriter writer, Capability<?> capability);
|
||||
|
||||
/**
|
||||
* @param writer the writer
|
||||
* @param capability the capability
|
||||
* @return the capability for the given writer
|
||||
*/
|
||||
<T> T getCapabilityWriter(IWriter writer, Capability<T> capability);
|
||||
|
||||
/**
|
||||
* Writes this reader writer handler to NBT.
|
||||
@@ -53,9 +66,16 @@ public interface IReaderWriterHandler {
|
||||
String getId();
|
||||
|
||||
/**
|
||||
* @param readerWriter the reader writer
|
||||
* @param reader the reader
|
||||
* @param channel the channel
|
||||
* @return status line(s) displayed when right clicking a reader or writer
|
||||
* @return status line(s) displayed when right clicking a reader
|
||||
*/
|
||||
List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel);
|
||||
List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel);
|
||||
|
||||
/**
|
||||
* @param writer the writer
|
||||
* @param channel the channel
|
||||
* @return status line(s) displayed when right clicking a writer
|
||||
*/
|
||||
List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network.readerwriter;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
/**
|
||||
* Represents a writer block in the world.
|
||||
*/
|
||||
public interface IWriter extends IReaderWriter {
|
||||
public interface IWriter extends INetworkNode {
|
||||
/**
|
||||
* @return the redstone strength this writer block is emitting
|
||||
*/
|
||||
@@ -21,4 +21,14 @@ public interface IWriter extends IReaderWriter {
|
||||
* @return the direction of the writer
|
||||
*/
|
||||
EnumFacing getDirection();
|
||||
|
||||
/**
|
||||
* @return the channel
|
||||
*/
|
||||
String getChannel();
|
||||
|
||||
/**
|
||||
* @param channel the channel
|
||||
*/
|
||||
void setChannel(String channel);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IReaderWriter extends INetworkNode {
|
||||
public interface IGuiReaderWriter {
|
||||
String getTitle();
|
||||
|
||||
String getChannel();
|
||||
@@ -15,6 +14,10 @@ public interface IReaderWriter extends INetworkNode {
|
||||
|
||||
TileDataParameter<Integer> getRedstoneModeParameter();
|
||||
|
||||
INetworkMaster getNetwork();
|
||||
|
||||
boolean canUpdate();
|
||||
|
||||
default void onAdd(String name) {
|
||||
INetworkMaster network = getNetwork();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IStorageGui {
|
||||
public interface IGuiStorage {
|
||||
String getGuiTitle();
|
||||
|
||||
TileDataParameter<Integer> getTypeParameter();
|
||||
@@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.block.BlockFluidStorage;
|
||||
import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
@@ -25,7 +24,7 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public static final String ID = "fluid_storage";
|
||||
|
||||
class StorageFluid extends StorageDiskFluid {
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class NetworkNodeReader extends NetworkNode implements IReader {
|
||||
public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReaderWriter {
|
||||
public static final String ID = "reader";
|
||||
|
||||
private static final String NBT_CHANNEL = "Channel";
|
||||
|
||||
@@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.block.BlockStorage;
|
||||
import com.raoulvdberge.refinedstorage.block.EnumItemStorageType;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileStorage;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
@@ -25,7 +24,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public static final String ID = "storage";
|
||||
|
||||
class StorageItem extends StorageDiskItem {
|
||||
|
||||
@@ -12,7 +12,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
||||
public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReaderWriter {
|
||||
public static final String ID = "writer";
|
||||
|
||||
private static final String NBT_CHANNEL = "Channel";
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskFluid;
|
||||
@@ -19,7 +20,6 @@ import com.raoulvdberge.refinedstorage.inventory.IItemValidator;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileDiskDrive;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
@@ -32,7 +32,7 @@ import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType {
|
||||
public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IStorageProvider, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType {
|
||||
public static final String ID = "disk_drive";
|
||||
|
||||
private static final String NBT_PRIORITY = "Priority";
|
||||
|
||||
@@ -9,13 +9,13 @@ import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.integration.cyclopscore.IntegrationCyclopsCore;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileExternalStorage;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileNode;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||
@@ -31,7 +31,7 @@ import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeExternalStorage extends NetworkNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType {
|
||||
public class NetworkNodeExternalStorage extends NetworkNode implements IStorageProvider, IGuiStorage, IComparable, IFilterable, IPrioritizable, IType, IAccessType {
|
||||
public static final String ID = "external_storage";
|
||||
|
||||
private static final String NBT_PRIORITY = "Priority";
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
@@ -47,18 +46,28 @@ public class ReaderWriterHandlerFluids implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability) {
|
||||
return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY && (readerWriter instanceof IReader || readerWriter instanceof IWriter);
|
||||
public boolean hasCapabilityReader(IReader reader, Capability<?> capability) {
|
||||
return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
public <T> T getCapabilityReader(IReader reader, Capability<T> capability) {
|
||||
if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
|
||||
if (readerWriter instanceof IReader) {
|
||||
return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(tankReader);
|
||||
} else if (readerWriter instanceof IWriter) {
|
||||
return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(tankWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapabilityWriter(IWriter writer, Capability<?> capability) {
|
||||
return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapabilityWriter(IWriter writer, Capability<T> capability) {
|
||||
if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
|
||||
return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(tankWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -77,8 +86,17 @@ public class ReaderWriterHandlerFluids implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel) {
|
||||
FluidStack stack = readerWriter instanceof IReader ? tankReader.getFluid() : tankWriter.getFluid();
|
||||
public List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel) {
|
||||
return getStatus(tankReader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel) {
|
||||
return getStatus(tankWriter);
|
||||
}
|
||||
|
||||
private List<ITextComponent> getStatus(IFluidTank tank) {
|
||||
FluidStack stack = tank.getFluid();
|
||||
|
||||
if (stack == null) {
|
||||
return Collections.emptyList();
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
@@ -48,18 +47,28 @@ public class ReaderWriterHandlerItems implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability) {
|
||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY && (readerWriter instanceof IReader || readerWriter instanceof IWriter);
|
||||
public boolean hasCapabilityReader(IReader reader, Capability<?> capability) {
|
||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
public <T> T getCapabilityReader(IReader reader, Capability<T> capability) {
|
||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||
if (readerWriter instanceof IReader) {
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemsReader);
|
||||
} else if (readerWriter instanceof IWriter) {
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemsWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapabilityWriter(IWriter writer, Capability<?> capability) {
|
||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapabilityWriter(IWriter writer, Capability<T> capability) {
|
||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemsWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -78,10 +87,17 @@ public class ReaderWriterHandlerItems implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel) {
|
||||
List<ITextComponent> components = new ArrayList<>();
|
||||
public List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel) {
|
||||
return getStatus(itemsReader);
|
||||
}
|
||||
|
||||
IItemHandler handler = readerWriter instanceof IReader ? itemsReader : itemsWriter;
|
||||
@Override
|
||||
public List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel) {
|
||||
return getStatus(itemsWriter);
|
||||
}
|
||||
|
||||
private List<ITextComponent> getStatus(IItemHandler handler) {
|
||||
List<ITextComponent> components = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < handler.getSlots(); ++i) {
|
||||
ItemStack stack = handler.getStackInSlot(i);
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
@@ -41,12 +40,22 @@ public class ReaderWriterHandlerRedstone implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability) {
|
||||
public boolean hasCapabilityReader(IReader reader, Capability<?> capability) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
public <T> T getCapabilityReader(IReader reader, Capability<T> capability) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapabilityWriter(IWriter writer, Capability<?> capability) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapabilityWriter(IWriter writer, Capability<T> capability) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -61,7 +70,16 @@ public class ReaderWriterHandlerRedstone implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel) {
|
||||
public List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel) {
|
||||
return getStatus(channel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel) {
|
||||
return getStatus(channel);
|
||||
}
|
||||
|
||||
private List<ITextComponent> getStatus(IReaderWriterChannel channel) {
|
||||
int strength = getStrength(channel);
|
||||
|
||||
if (strength == 0) {
|
||||
|
||||
@@ -41,7 +41,7 @@ public class BlockReader extends BlockCable {
|
||||
IReaderWriterChannel channel = reader.getNetwork().getReaderWriterChannel(reader.getChannel());
|
||||
|
||||
if (channel != null) {
|
||||
channel.getHandlers().stream().map(h -> h.getStatus(reader, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
channel.getHandlers().stream().map(h -> h.getStatusReader(reader, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
}
|
||||
}
|
||||
} else if (tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side)) {
|
||||
|
||||
@@ -42,7 +42,7 @@ public class BlockWriter extends BlockCable {
|
||||
IReaderWriterChannel channel = writer.getNetwork().getReaderWriterChannel(writer.getChannel());
|
||||
|
||||
if (channel != null) {
|
||||
channel.getHandlers().stream().map(h -> h.getStatus(writer, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
channel.getHandlers().stream().map(h -> h.getStatusWriter(writer, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
}
|
||||
}
|
||||
} else if (tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side)) {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.raoulvdberge.refinedstorage.container;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
||||
public class ContainerReaderWriter extends ContainerBase {
|
||||
private IReaderWriter readerWriter;
|
||||
private IGuiReaderWriter readerWriter;
|
||||
|
||||
public ContainerReaderWriter(IReaderWriter readerWriter, TileBase tile, EntityPlayer player) {
|
||||
public ContainerReaderWriter(IGuiReaderWriter readerWriter, TileBase tile, EntityPlayer player) {
|
||||
super(tile, player);
|
||||
|
||||
this.readerWriter = readerWriter;
|
||||
@@ -15,7 +15,7 @@ public class ContainerReaderWriter extends ContainerBase {
|
||||
addPlayerInventory(8, 127);
|
||||
}
|
||||
|
||||
public IReaderWriter getReaderWriter() {
|
||||
public IGuiReaderWriter getReaderWriter() {
|
||||
return readerWriter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.raoulvdberge.refinedstorage.gui;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessFluidGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.container.*;
|
||||
import com.raoulvdberge.refinedstorage.gui.grid.GridDisplayDummy;
|
||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||
@@ -68,7 +69,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
case RSGui.DISK_MANIPULATOR:
|
||||
return new ContainerDiskManipulator((TileDiskManipulator) tile, player);
|
||||
case RSGui.READER_WRITER:
|
||||
return new ContainerReaderWriter((IReaderWriter) ((TileNode) tile).getNode(), (TileBase) tile, player);
|
||||
return new ContainerReaderWriter((IGuiReaderWriter) ((TileNode) tile).getNode(), (TileBase) tile, player);
|
||||
case RSGui.SECURITY_MANAGER:
|
||||
return new ContainerSecurityManager((TileSecurityManager) tile, player);
|
||||
default:
|
||||
@@ -146,7 +147,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
case RSGui.WIRELESS_CRAFTING_MONITOR:
|
||||
return getWirelessCraftingMonitorGui(player, x, y);
|
||||
case RSGui.READER_WRITER:
|
||||
return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IReaderWriter) ((TileNode) tile).getNode());
|
||||
return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IGuiReaderWriter) ((TileNode) tile).getNode());
|
||||
case RSGui.SECURITY_MANAGER:
|
||||
return new GuiSecurityManager((ContainerSecurityManager) getContainer(ID, player, tile), (TileSecurityManager) tile);
|
||||
default:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelAdd;
|
||||
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelRemove;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
@@ -27,14 +27,14 @@ public class GuiReaderWriter extends GuiBase {
|
||||
private GuiButton add;
|
||||
private GuiButton remove;
|
||||
private GuiTextField name;
|
||||
private IReaderWriter readerWriter;
|
||||
private IGuiReaderWriter readerWriter;
|
||||
|
||||
private int itemSelected = -1;
|
||||
|
||||
private int itemSelectedX = -1;
|
||||
private int itemSelectedY = -1;
|
||||
|
||||
public GuiReaderWriter(ContainerReaderWriter container, IReaderWriter readerWriter) {
|
||||
public GuiReaderWriter(ContainerReaderWriter container, IGuiReaderWriter readerWriter) {
|
||||
super(container, 176, 209);
|
||||
|
||||
this.readerWriter = readerWriter;
|
||||
|
||||
@@ -2,16 +2,16 @@ package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage;
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerBase;
|
||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.IStorageGui;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class GuiStorage extends GuiBase {
|
||||
private IStorageGui gui;
|
||||
private IGuiStorage gui;
|
||||
private String texture;
|
||||
|
||||
private GuiButton priorityButton;
|
||||
@@ -21,14 +21,14 @@ public class GuiStorage extends GuiBase {
|
||||
private int barWidth = 16;
|
||||
private int barHeight = 70;
|
||||
|
||||
public GuiStorage(ContainerBase container, IStorageGui gui, String texture) {
|
||||
public GuiStorage(ContainerBase container, IGuiStorage gui, String texture) {
|
||||
super(container, 176, 223);
|
||||
|
||||
this.gui = gui;
|
||||
this.texture = texture;
|
||||
}
|
||||
|
||||
public GuiStorage(ContainerBase container, IStorageGui gui) {
|
||||
public GuiStorage(ContainerBase container, IGuiStorage gui) {
|
||||
this(container, gui, "gui/storage.png");
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
@@ -46,18 +45,28 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability) {
|
||||
return capability == CapabilityEnergy.ENERGY && (readerWriter instanceof IReader || readerWriter instanceof IWriter);
|
||||
public boolean hasCapabilityReader(IReader reader, Capability<?> capability) {
|
||||
return capability == CapabilityEnergy.ENERGY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
public <T> T getCapabilityReader(IReader reader, Capability<T> capability) {
|
||||
if (capability == CapabilityEnergy.ENERGY) {
|
||||
if (readerWriter instanceof IReader) {
|
||||
return CapabilityEnergy.ENERGY.cast(storageReader);
|
||||
} else if (readerWriter instanceof IWriter) {
|
||||
return CapabilityEnergy.ENERGY.cast(storageWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapabilityWriter(IWriter writer, Capability<?> capability) {
|
||||
return capability == CapabilityEnergy.ENERGY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapabilityWriter(IWriter writer, Capability<T> capability) {
|
||||
if (capability == CapabilityEnergy.ENERGY) {
|
||||
return CapabilityEnergy.ENERGY.cast(storageWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -76,9 +85,16 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel) {
|
||||
IEnergyStorage storage = readerWriter instanceof IReader ? storageReader : storageWriter;
|
||||
public List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel) {
|
||||
return getStatus(storageReader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel) {
|
||||
return getStatus(storageWriter);
|
||||
}
|
||||
|
||||
private List<ITextComponent> getStatus(IEnergyStorage storage) {
|
||||
if (storage.getEnergyStored() == 0) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||
import net.darkhax.tesla.api.ITeslaConsumer;
|
||||
import net.darkhax.tesla.api.ITeslaHolder;
|
||||
import net.darkhax.tesla.api.ITeslaProducer;
|
||||
@@ -50,26 +49,32 @@ public class ReaderWriterHandlerTesla implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(IReaderWriter readerWriter, Capability<?> capability) {
|
||||
if (readerWriter instanceof IReader) {
|
||||
public boolean hasCapabilityReader(IReader reader, Capability<?> capability) {
|
||||
return capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER;
|
||||
} else if (readerWriter instanceof IWriter) {
|
||||
return capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_PRODUCER;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
if (readerWriter instanceof IReader || readerWriter instanceof IWriter) {
|
||||
public <T> T getCapabilityReader(IReader reader, Capability<T> capability) {
|
||||
if (capability == TeslaCapabilities.CAPABILITY_HOLDER) {
|
||||
return TeslaCapabilities.CAPABILITY_HOLDER.cast(container);
|
||||
} else if (capability == TeslaCapabilities.CAPABILITY_CONSUMER && readerWriter instanceof IReader) {
|
||||
} else if (capability == TeslaCapabilities.CAPABILITY_CONSUMER) {
|
||||
return TeslaCapabilities.CAPABILITY_CONSUMER.cast(containerReader);
|
||||
} else if (capability == TeslaCapabilities.CAPABILITY_PRODUCER && readerWriter instanceof IWriter) {
|
||||
return TeslaCapabilities.CAPABILITY_PRODUCER.cast(containerWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapabilityWriter(IWriter writer, Capability<?> capability) {
|
||||
return capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_PRODUCER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapabilityWriter(IWriter writer, Capability<T> capability) {
|
||||
if (capability == TeslaCapabilities.CAPABILITY_HOLDER) {
|
||||
return TeslaCapabilities.CAPABILITY_HOLDER.cast(container);
|
||||
} else if (capability == TeslaCapabilities.CAPABILITY_PRODUCER) {
|
||||
return TeslaCapabilities.CAPABILITY_PRODUCER.cast(containerWriter);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -88,9 +93,16 @@ public class ReaderWriterHandlerTesla implements IReaderWriterHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatus(IReaderWriter readerWriter, IReaderWriterChannel channel) {
|
||||
ITeslaHolder holder = readerWriter instanceof IReader ? containerReader : containerWriter;
|
||||
public List<ITextComponent> getStatusReader(IReader reader, IReaderWriterChannel channel) {
|
||||
return getStatus(containerReader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ITextComponent> getStatusWriter(IWriter writer, IReaderWriterChannel channel) {
|
||||
return getStatus(containerWriter);
|
||||
}
|
||||
|
||||
private List<ITextComponent> getStatus(ITeslaHolder holder) {
|
||||
if (holder.getStoredPower() == 0) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterCha
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerFactory;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeReader;
|
||||
import com.raoulvdberge.refinedstorage.gui.GuiReaderWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
|
||||
@@ -25,12 +26,12 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
return new TileDataParameter<>(DataSerializers.STRING, "", new ITileDataProducer<String, T>() {
|
||||
@Override
|
||||
public String getValue(T tile) {
|
||||
return ((IReaderWriter) tile.getNode()).getChannel();
|
||||
return ((IGuiReaderWriter) tile.getNode()).getChannel();
|
||||
}
|
||||
}, new ITileDataConsumer<String, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, String value) {
|
||||
((IReaderWriter) tile.getNode()).setChannel(value);
|
||||
((IGuiReaderWriter) tile.getNode()).setChannel(value);
|
||||
|
||||
tile.getNode().markDirty();
|
||||
}
|
||||
@@ -47,9 +48,9 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
dataManager.addWatchedParameter(CHANNEL);
|
||||
}
|
||||
|
||||
public static <T> T getDummyCapabilityForClient(IReaderWriter readerWriter, Capability<T> capability) {
|
||||
private <T> T getDummyCapabilityForClient(IReader reader, Capability<T> capability) {
|
||||
for (IReaderWriterHandlerFactory factory : API.instance().getReaderWriterHandlerRegistry().all()) {
|
||||
T dummy = factory.create(null).getCapability(readerWriter, capability);
|
||||
T dummy = factory.create(null).getCapabilityReader(reader, capability);
|
||||
|
||||
if (dummy != null) {
|
||||
return dummy;
|
||||
@@ -86,7 +87,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
}
|
||||
|
||||
for (IReaderWriterHandler handler : channel.getHandlers()) {
|
||||
if (handler.hasCapability(reader, capability)) {
|
||||
if (handler.hasCapabilityReader(reader, capability)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -120,7 +121,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
}
|
||||
|
||||
for (IReaderWriterHandler handler : channel.getHandlers()) {
|
||||
foundCapability = handler.getCapability(reader, capability);
|
||||
foundCapability = handler.getCapabilityReader(reader, capability);
|
||||
|
||||
if (foundCapability != null) {
|
||||
return foundCapability;
|
||||
|
||||
@@ -2,7 +2,9 @@ package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerFactory;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeWriter;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -20,6 +22,18 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
dataManager.addWatchedParameter(CHANNEL);
|
||||
}
|
||||
|
||||
private <T> T getDummyCapabilityForClient(IWriter writer, Capability<T> capability) {
|
||||
for (IReaderWriterHandlerFactory factory : API.instance().getReaderWriterHandlerRegistry().all()) {
|
||||
T dummy = factory.create(null).getCapabilityWriter(writer, capability);
|
||||
|
||||
if (dummy != null) {
|
||||
return dummy;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) {
|
||||
if (super.hasCapability(capability, facing)) {
|
||||
@@ -34,7 +48,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
|
||||
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return TileReader.getDummyCapabilityForClient(writer, capability) != null;
|
||||
return getDummyCapabilityForClient(writer, capability) != null;
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -47,7 +61,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
}
|
||||
|
||||
for (IReaderWriterHandler handler : channel.getHandlers()) {
|
||||
if (handler.hasCapability(writer, capability)) {
|
||||
if (handler.hasCapabilityWriter(writer, capability)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -68,7 +82,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
|
||||
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return TileReader.getDummyCapabilityForClient(writer, capability);
|
||||
return getDummyCapabilityForClient(writer, capability);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -81,7 +95,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
}
|
||||
|
||||
for (IReaderWriterHandler handler : channel.getHandlers()) {
|
||||
foundCapability = handler.getCapability(writer, capability);
|
||||
foundCapability = handler.getCapabilityWriter(writer, capability);
|
||||
|
||||
if (foundCapability != null) {
|
||||
return foundCapability;
|
||||
|
||||
Reference in New Issue
Block a user