Improve Reader/Writer GUI clicks, add redstone toggle button to GUI

This commit is contained in:
raoulvdberge
2017-02-02 23:12:57 +01:00
parent 57af1d886a
commit d625098e5b
8 changed files with 33 additions and 24 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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,28 +126,24 @@ public class GuiReaderWriter extends GuiBase {
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)) {
int item = scrollbar.getOffset();
if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < getChannels().size()) {
itemSelected = item + i;
for (int i = 0; i < VISIBLE_ROWS; ++i) {
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));
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

View File

@@ -13,6 +13,8 @@ public interface IReaderWriter extends INetworkNode {
TileDataParameter<String> getChannelParameter();
TileDataParameter<Integer> getRedstoneModeParameter();
default void onAdd(String name) {
INetworkMaster network = getNetwork();

View File

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

View File

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