Improve Reader/Writer GUI clicks, add redstone toggle button to GUI
This commit is contained in:
@@ -49,6 +49,11 @@ public class NetworkNodeReader extends NetworkNode implements IReader {
|
||||
return TileReader.CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getRedstoneModeParameter() {
|
||||
return TileReader.REDSTONE_MODE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectivityState() {
|
||||
return true;
|
||||
|
||||
@@ -87,6 +87,11 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
||||
return TileWriter.CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getRedstoneModeParameter() {
|
||||
return TileWriter.REDSTONE_MODE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectivityState() {
|
||||
return true;
|
||||
|
||||
@@ -16,7 +16,6 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BlockReader extends BlockCable {
|
||||
public BlockReader() {
|
||||
@@ -42,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).collect(Collectors.toList()).forEach(player::sendMessage);
|
||||
channel.getHandlers().stream().map(h -> h.getStatus(reader, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
}
|
||||
}
|
||||
} else if (tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side)) {
|
||||
|
||||
@@ -17,7 +17,6 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BlockWriter extends BlockCable {
|
||||
public BlockWriter() {
|
||||
@@ -43,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).collect(Collectors.toList()).forEach(player::sendMessage);
|
||||
channel.getHandlers().stream().map(h -> h.getStatus(writer, channel)).flatMap(List::stream).forEach(player::sendMessage);
|
||||
}
|
||||
}
|
||||
} else if (tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side)) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
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;
|
||||
@@ -42,6 +43,8 @@ public class GuiReaderWriter extends GuiBase {
|
||||
|
||||
@Override
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonRedstoneMode(this, readerWriter.getRedstoneModeParameter()));
|
||||
|
||||
add = addButton(x + 128, y + 15, 20, 20, "+");
|
||||
remove = addButton(x + 150, y + 15, 20, 20, "-");
|
||||
name = new GuiTextField(0, fontRendererObj, x + 8 + 1, y + 20 + 1, 107, fontRendererObj.FONT_HEIGHT);
|
||||
@@ -123,11 +126,8 @@ public class GuiReaderWriter extends GuiBase {
|
||||
|
||||
name.mouseClicked(mouseX, mouseY, mouseButton);
|
||||
|
||||
int itemSelectedOld = itemSelected;
|
||||
|
||||
itemSelected = -1;
|
||||
|
||||
if (mouseButton == 0 && inBounds(8, 39, 144, 73, mouseX - guiLeft, mouseY - guiTop)) {
|
||||
if (inBounds(8, 39, 144, 73, mouseX - guiLeft, mouseY - guiTop)) {
|
||||
if (mouseButton == 0) {
|
||||
int item = scrollbar.getOffset();
|
||||
|
||||
for (int i = 0; i < VISIBLE_ROWS; ++i) {
|
||||
@@ -140,12 +140,11 @@ public class GuiReaderWriter extends GuiBase {
|
||||
TileDataManager.setParameter(readerWriter.getChannelParameter(), getChannels().get(itemSelected));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (itemSelectedOld != -1 && itemSelected == -1) {
|
||||
} else if (itemSelected != -1) {
|
||||
TileDataManager.setParameter(readerWriter.getChannelParameter(), "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void keyTyped(char character, int keyCode) throws IOException {
|
||||
|
||||
@@ -13,6 +13,8 @@ public interface IReaderWriter extends INetworkNode {
|
||||
|
||||
TileDataParameter<String> getChannelParameter();
|
||||
|
||||
TileDataParameter<Integer> getRedstoneModeParameter();
|
||||
|
||||
default void onAdd(String name) {
|
||||
INetworkMaster network = getNetwork();
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (reader.getNetwork() == null) {
|
||||
if (reader.getNetwork() == null || !reader.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return getDummyCapabilityForClient(reader, capability) != null;
|
||||
}
|
||||
@@ -105,7 +105,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (reader.getNetwork() == null) {
|
||||
if (reader.getNetwork() == null || !reader.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return getDummyCapabilityForClient(reader, capability);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (writer.getNetwork() == null) {
|
||||
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return TileReader.getDummyCapabilityForClient(writer, capability) != null;
|
||||
}
|
||||
@@ -66,7 +66,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (writer.getNetwork() == null) {
|
||||
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
return TileReader.getDummyCapabilityForClient(writer, capability);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user