GUI fixes + add gui for network receiver

This commit is contained in:
Raoul Van den Berge
2016-07-31 16:04:16 +02:00
parent ae72ec15cd
commit e77f106066
13 changed files with 114 additions and 3 deletions

View File

@@ -20,4 +20,5 @@ public final class RefinedStorageGui {
public static final int PROCESSING_PATTERN_ENCODER = 16; public static final int PROCESSING_PATTERN_ENCODER = 16;
public static final int GRID_FILTER = 17; public static final int GRID_FILTER = 17;
public static final int NETWORK_TRANSMITTER = 18; public static final int NETWORK_TRANSMITTER = 18;
public static final int NETWORK_RECEIVER = 19;
} }

View File

@@ -1,8 +1,15 @@
package refinedstorage.block; package refinedstorage.block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileNetworkReceiver; import refinedstorage.tile.TileNetworkReceiver;
public class BlockNetworkReceiver extends BlockNode { public class BlockNetworkReceiver extends BlockNode {
@@ -10,6 +17,15 @@ public class BlockNetworkReceiver extends BlockNode {
super("network_receiver"); super("network_receiver");
} }
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
if (!world.isRemote) {
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.NETWORK_RECEIVER, world, pos.getX(), pos.getY(), pos.getZ());
}
return true;
}
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) { public TileEntity createTileEntity(World world, IBlockState state) {
return new TileNetworkReceiver(); return new TileNetworkReceiver();

View File

@@ -0,0 +1,11 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
public class ContainerNetworkReceiver extends ContainerBase {
public ContainerNetworkReceiver(EntityPlayer player) {
super(player);
addPlayerInventory(8, 50);
}
}

View File

@@ -1,6 +1,8 @@
package refinedstorage.container; package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.items.SlotItemHandler; import net.minecraftforge.items.SlotItemHandler;
import refinedstorage.tile.TileNetworkTransmitter; import refinedstorage.tile.TileNetworkTransmitter;
@@ -12,4 +14,31 @@ public class ContainerNetworkTransmitter extends ContainerBase {
addPlayerInventory(8, 55); addPlayerInventory(8, 55);
} }
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack stack = null;
Slot slot = getSlot(index);
if (slot != null && slot.getHasStack()) {
stack = slot.getStack();
if (index == 0) {
if (!mergeItemStack(stack, 1, inventorySlots.size(), false)) {
return null;
}
} else if (!mergeItemStack(stack, 0, 1, false)) {
return null;
}
if (stack.stackSize == 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
}
return stack;
}
} }

View File

@@ -52,6 +52,8 @@ public class GuiHandler implements IGuiHandler {
return new ContainerProcessingPatternEncoder(player, (TileProcessingPatternEncoder) tile); return new ContainerProcessingPatternEncoder(player, (TileProcessingPatternEncoder) tile);
case RefinedStorageGui.NETWORK_TRANSMITTER: case RefinedStorageGui.NETWORK_TRANSMITTER:
return new ContainerNetworkTransmitter(player, (TileNetworkTransmitter) tile); return new ContainerNetworkTransmitter(player, (TileNetworkTransmitter) tile);
case RefinedStorageGui.NETWORK_RECEIVER:
return new ContainerNetworkReceiver(player);
default: default:
return null; return null;
} }
@@ -111,6 +113,8 @@ public class GuiHandler implements IGuiHandler {
return new GuiGridFilter(getGridFilterContainer(player, x)); return new GuiGridFilter(getGridFilterContainer(player, x));
case RefinedStorageGui.NETWORK_TRANSMITTER: case RefinedStorageGui.NETWORK_TRANSMITTER:
return new GuiNetworkTransmitter((ContainerNetworkTransmitter) getContainer(ID, player, tile), (TileNetworkTransmitter) tile); return new GuiNetworkTransmitter((ContainerNetworkTransmitter) getContainer(ID, player, tile), (TileNetworkTransmitter) tile);
case RefinedStorageGui.NETWORK_RECEIVER:
return new GuiNetworkReceiver((ContainerNetworkReceiver) getContainer(ID, player, tile), (TileNetworkReceiver) tile);
default: default:
return null; return null;
} }

View File

@@ -0,0 +1,37 @@
package refinedstorage.gui;
import refinedstorage.container.ContainerNetworkReceiver;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileNetworkReceiver;
public class GuiNetworkReceiver extends GuiBase {
private TileNetworkReceiver networkReceiver;
public GuiNetworkReceiver(ContainerNetworkReceiver container, TileNetworkReceiver networkReceiver) {
super(container, 176, 131);
this.networkReceiver = networkReceiver;
}
@Override
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(networkReceiver));
}
@Override
public void update(int x, int y) {
}
@Override
public void drawBackground(int x, int y, int mouseX, int mouseY) {
bindTexture("gui/network_receiver.png");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:network_receiver"));
drawString(7, 39, t("container.inventory"));
}
}

View File

@@ -39,6 +39,8 @@ public class GuiNetworkTransmitter extends GuiBase {
distance = t("gui.refinedstorage:network_transmitter.different_dimension"); distance = t("gui.refinedstorage:network_transmitter.different_dimension");
} else if (networkTransmitter.getDistance() == -1) { } else if (networkTransmitter.getDistance() == -1) {
distance = t("gui.refinedstorage:network_transmitter.missing_card"); distance = t("gui.refinedstorage:network_transmitter.missing_card");
} else if (!networkTransmitter.isReceiverValid()) {
distance = t("gui.refinedstorage:network_transmitter.missing_receiver");
} else { } else {
distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance()); distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance());
} }

View File

@@ -2,6 +2,7 @@ package refinedstorage.tile;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.container.ContainerNetworkReceiver;
public class TileNetworkReceiver extends TileNode { public class TileNetworkReceiver extends TileNode {
public TileNetworkReceiver() { public TileNetworkReceiver() {
@@ -19,6 +20,6 @@ public class TileNetworkReceiver extends TileNode {
@Override @Override
public Class<? extends Container> getContainer() { public Class<? extends Container> getContainer() {
return null; return ContainerNetworkReceiver.class;
} }
} }

View File

@@ -39,6 +39,7 @@ public class TileNetworkTransmitter extends TileNode {
// Used clientside // Used clientside
private int distance; private int distance;
private boolean inSameDimension; private boolean inSameDimension;
private boolean receiverValid;
public TileNetworkTransmitter() { public TileNetworkTransmitter() {
rebuildOnUpdateChange = true; rebuildOnUpdateChange = true;
@@ -52,8 +53,7 @@ public class TileNetworkTransmitter extends TileNode {
return canUpdate() return canUpdate()
&& receiver != null && receiver != null
&& isInSameDimension() && isInSameDimension()
&& worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && isReceiverValid();
&& ((TileNetworkReceiver) worldObj.getTileEntity(receiver)).canUpdate();
} }
@Override @Override
@@ -78,6 +78,7 @@ public class TileNetworkTransmitter extends TileNode {
buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1); buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1);
buf.writeBoolean(isInSameDimension()); buf.writeBoolean(isInSameDimension());
buf.writeBoolean(isReceiverValid());
} }
@Override @Override
@@ -86,6 +87,7 @@ public class TileNetworkTransmitter extends TileNode {
distance = buf.readInt(); distance = buf.readInt();
inSameDimension = buf.readBoolean(); inSameDimension = buf.readBoolean();
receiverValid = buf.readBoolean();
} }
@Override @Override
@@ -121,4 +123,8 @@ public class TileNetworkTransmitter extends TileNode {
public boolean isInSameDimension() { public boolean isInSameDimension() {
return worldObj.isRemote ? inSameDimension : worldObj.provider.getDimension() == receiverDimension; return worldObj.isRemote ? inSameDimension : worldObj.provider.getDimension() == receiverDimension;
} }
public boolean isReceiverValid() {
return worldObj.isRemote ? receiverValid : (receiver != null && isInSameDimension() && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && ((TileNetworkReceiver) worldObj.getTileEntity(receiver)).canUpdate());
}
} }

View File

@@ -34,7 +34,9 @@ gui.refinedstorage:grid_filter=Grid Filter
gui.refinedstorage:network_transmitter=Network Transmitter gui.refinedstorage:network_transmitter=Network Transmitter
gui.refinedstorage:network_transmitter.distance=%d blocks gui.refinedstorage:network_transmitter.distance=%d blocks
gui.refinedstorage:network_transmitter.missing_card=Missing Network Card gui.refinedstorage:network_transmitter.missing_card=Missing Network Card
gui.refinedstorage:network_transmitter.missing_receiver=Receiver not found
gui.refinedstorage:network_transmitter.different_dimension=Different dimension gui.refinedstorage:network_transmitter.different_dimension=Different dimension
gui.refinedstorage:network_receiver=Network Receiver
misc.refinedstorage:energy_stored=%d / %d RS misc.refinedstorage:energy_stored=%d / %d RS
misc.refinedstorage:energy_usage=Usage: %d RS/t misc.refinedstorage:energy_usage=Usage: %d RS/t

View File

@@ -34,7 +34,9 @@ gui.refinedstorage:grid_filter=Rooster Filter
gui.refinedstorage:network_transmitter=Netwerkzender gui.refinedstorage:network_transmitter=Netwerkzender
gui.refinedstorage:network_transmitter.distance=%d blokken gui.refinedstorage:network_transmitter.distance=%d blokken
gui.refinedstorage:network_transmitter.missing_card=Geen Netwerkkaart gui.refinedstorage:network_transmitter.missing_card=Geen Netwerkkaart
gui.refinedstorage:network_transmitter.missing_receiver=Ontvanger niet gevonden
gui.refinedstorage:network_transmitter.different_dimension=Andere dimensie gui.refinedstorage:network_transmitter.different_dimension=Andere dimensie
gui.refinedstorage:network_receiver=Netwerkontvanger
misc.refinedstorage:energy_stored=%d / %d RS misc.refinedstorage:energy_stored=%d / %d RS
misc.refinedstorage:energy_usage=Vebruik: %d RS/t misc.refinedstorage:energy_usage=Vebruik: %d RS/t

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB