From 8802116434d59a699747fe4f4fbd9253839086d9 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 11 Nov 2016 11:54:06 +0100 Subject: [PATCH] Add some neccesary API methods for the Reader Writer GUIs --- .../api/network/INetworkMaster.java | 35 ++++++++++++++++--- .../refinedstorage/tile/TileController.java | 26 ++++++++++++-- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java index 9094048f7..5418f79ff 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java @@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; -import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.storage.fluid.IFluidStorageCache; import com.raoulvdberge.refinedstorage.api.storage.item.IItemStorageCache; import com.raoulvdberge.refinedstorage.api.util.IComparer; @@ -20,7 +19,6 @@ import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; -import java.util.Map; /** * Represents a network master, usually is a controller. @@ -228,9 +226,38 @@ public interface INetworkMaster { void sendCraftingMonitorUpdate(EntityPlayerMP player); /** - * @return a map with the reader and writer channels + * Adds a new reader writer channel. + * + * @param name the name of this channel */ - Map getReaderWriterChannels(); + void addReaderWriterChannel(String name); + + /** + * Renames a reader writer channel. + * + * @param oldName the old name + * @param newName the new name + */ + void renameReaderWriterChannel(String oldName, String newName); + + /** + * Removes a reader writer channel. + * + * @param name the name of the channel to remove + */ + void removeReaderWriterChannel(String name); + + /** + * Sends a reader writer channel update to all players watching a reader or writer. + */ + void sendReaderWriterChannelUpdate(); + + /** + * Sends a reader writer channel update to a specific player. + * + * @param player the player to send to + */ + void sendReaderWriterChannelUpdate(EntityPlayerMP player); /** * Inserts an item in this network. diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 02d5b0612..740fb47d0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -569,8 +569,30 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR } @Override - public Map getReaderWriterChannels() { - return readerWriterChannels; + public void addReaderWriterChannel(String name) { + readerWriterChannels.put(name, API.instance().createReaderWriterChannel(this)); + } + + @Override + public void renameReaderWriterChannel(String oldName, String newName) { + readerWriterChannels.put(newName, readerWriterChannels.get(oldName)); + + removeReaderWriterChannel(oldName); + } + + @Override + public void removeReaderWriterChannel(String name) { + readerWriterChannels.remove(name); + } + + @Override + public void sendReaderWriterChannelUpdate() { + // @TODO + } + + @Override + public void sendReaderWriterChannelUpdate(EntityPlayerMP player) { + // @TODO } private List getElements() {