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;
|
return TileReader.CHANNEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileDataParameter<Integer> getRedstoneModeParameter() {
|
||||||
|
return TileReader.REDSTONE_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasConnectivityState() {
|
public boolean hasConnectivityState() {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -87,6 +87,11 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
|||||||
return TileWriter.CHANNEL;
|
return TileWriter.CHANNEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileDataParameter<Integer> getRedstoneModeParameter() {
|
||||||
|
return TileWriter.REDSTONE_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasConnectivityState() {
|
public boolean hasConnectivityState() {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import net.minecraft.world.IBlockAccess;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class BlockReader extends BlockCable {
|
public class BlockReader extends BlockCable {
|
||||||
public BlockReader() {
|
public BlockReader() {
|
||||||
@@ -42,7 +41,7 @@ public class BlockReader extends BlockCable {
|
|||||||
IReaderWriterChannel channel = reader.getNetwork().getReaderWriterChannel(reader.getChannel());
|
IReaderWriterChannel channel = reader.getNetwork().getReaderWriterChannel(reader.getChannel());
|
||||||
|
|
||||||
if (channel != null) {
|
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)) {
|
} 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 net.minecraft.world.World;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class BlockWriter extends BlockCable {
|
public class BlockWriter extends BlockCable {
|
||||||
public BlockWriter() {
|
public BlockWriter() {
|
||||||
@@ -43,7 +42,7 @@ public class BlockWriter extends BlockCable {
|
|||||||
IReaderWriterChannel channel = writer.getNetwork().getReaderWriterChannel(writer.getChannel());
|
IReaderWriterChannel channel = writer.getNetwork().getReaderWriterChannel(writer.getChannel());
|
||||||
|
|
||||||
if (channel != null) {
|
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)) {
|
} 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.RS;
|
||||||
import com.raoulvdberge.refinedstorage.container.ContainerReaderWriter;
|
import com.raoulvdberge.refinedstorage.container.ContainerReaderWriter;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelAdd;
|
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelAdd;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelRemove;
|
import com.raoulvdberge.refinedstorage.network.MessageReaderWriterChannelRemove;
|
||||||
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
import com.raoulvdberge.refinedstorage.tile.IReaderWriter;
|
||||||
@@ -42,6 +43,8 @@ public class GuiReaderWriter extends GuiBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
|
addSideButton(new SideButtonRedstoneMode(this, readerWriter.getRedstoneModeParameter()));
|
||||||
|
|
||||||
add = addButton(x + 128, y + 15, 20, 20, "+");
|
add = addButton(x + 128, y + 15, 20, 20, "+");
|
||||||
remove = addButton(x + 150, 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);
|
name = new GuiTextField(0, fontRendererObj, x + 8 + 1, y + 20 + 1, 107, fontRendererObj.FONT_HEIGHT);
|
||||||
@@ -123,28 +126,24 @@ public class GuiReaderWriter extends GuiBase {
|
|||||||
|
|
||||||
name.mouseClicked(mouseX, mouseY, mouseButton);
|
name.mouseClicked(mouseX, mouseY, mouseButton);
|
||||||
|
|
||||||
int itemSelectedOld = itemSelected;
|
if (inBounds(8, 39, 144, 73, mouseX - guiLeft, mouseY - guiTop)) {
|
||||||
|
if (mouseButton == 0) {
|
||||||
|
int item = scrollbar.getOffset();
|
||||||
|
|
||||||
itemSelected = -1;
|
for (int i = 0; i < VISIBLE_ROWS; ++i) {
|
||||||
|
int ix = 8;
|
||||||
|
int iy = 39 + (i * ITEM_HEIGHT);
|
||||||
|
|
||||||
if (mouseButton == 0 && inBounds(8, 39, 144, 73, mouseX - guiLeft, mouseY - guiTop)) {
|
if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < getChannels().size()) {
|
||||||
int item = scrollbar.getOffset();
|
itemSelected = item + i;
|
||||||
|
|
||||||
for (int i = 0; i < VISIBLE_ROWS; ++i) {
|
TileDataManager.setParameter(readerWriter.getChannelParameter(), getChannels().get(itemSelected));
|
||||||
int ix = 8;
|
}
|
||||||
int iy = 39 + (i * ITEM_HEIGHT);
|
|
||||||
|
|
||||||
if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < getChannels().size()) {
|
|
||||||
itemSelected = item + i;
|
|
||||||
|
|
||||||
TileDataManager.setParameter(readerWriter.getChannelParameter(), getChannels().get(itemSelected));
|
|
||||||
}
|
}
|
||||||
|
} else if (itemSelected != -1) {
|
||||||
|
TileDataManager.setParameter(readerWriter.getChannelParameter(), "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemSelectedOld != -1 && itemSelected == -1) {
|
|
||||||
TileDataManager.setParameter(readerWriter.getChannelParameter(), "");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ public interface IReaderWriter extends INetworkNode {
|
|||||||
|
|
||||||
TileDataParameter<String> getChannelParameter();
|
TileDataParameter<String> getChannelParameter();
|
||||||
|
|
||||||
|
TileDataParameter<Integer> getRedstoneModeParameter();
|
||||||
|
|
||||||
default void onAdd(String name) {
|
default void onAdd(String name) {
|
||||||
INetworkMaster network = getNetwork();
|
INetworkMaster network = getNetwork();
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader.getNetwork() == null) {
|
if (reader.getNetwork() == null || !reader.canUpdate()) {
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
return getDummyCapabilityForClient(reader, capability) != null;
|
return getDummyCapabilityForClient(reader, capability) != null;
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ public class TileReader extends TileNode<NetworkNodeReader> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader.getNetwork() == null) {
|
if (reader.getNetwork() == null || !reader.canUpdate()) {
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
return getDummyCapabilityForClient(reader, capability);
|
return getDummyCapabilityForClient(reader, capability);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (writer.getNetwork() == null) {
|
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
return TileReader.getDummyCapabilityForClient(writer, capability) != null;
|
return TileReader.getDummyCapabilityForClient(writer, capability) != null;
|
||||||
}
|
}
|
||||||
@@ -66,7 +66,7 @@ public class TileWriter extends TileNode<NetworkNodeWriter> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (writer.getNetwork() == null) {
|
if (writer.getNetwork() == null || !writer.canUpdate()) {
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||||
return TileReader.getDummyCapabilityForClient(writer, capability);
|
return TileReader.getDummyCapabilityForClient(writer, capability);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user