GUI fixes + add gui for network receiver
This commit is contained in:
@@ -20,4 +20,5 @@ public final class RefinedStorageGui {
|
||||
public static final int PROCESSING_PATTERN_ENCODER = 16;
|
||||
public static final int GRID_FILTER = 17;
|
||||
public static final int NETWORK_TRANSMITTER = 18;
|
||||
public static final int NETWORK_RECEIVER = 19;
|
||||
}
|
||||
|
@@ -1,8 +1,15 @@
|
||||
package refinedstorage.block;
|
||||
|
||||
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.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageGui;
|
||||
import refinedstorage.tile.TileNetworkReceiver;
|
||||
|
||||
public class BlockNetworkReceiver extends BlockNode {
|
||||
@@ -10,6 +17,15 @@ public class BlockNetworkReceiver extends BlockNode {
|
||||
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
|
||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
||||
return new TileNetworkReceiver();
|
||||
|
11
src/main/java/refinedstorage/container/ContainerNetworkReceiver.java
Executable file
11
src/main/java/refinedstorage/container/ContainerNetworkReceiver.java
Executable 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);
|
||||
}
|
||||
}
|
@@ -1,6 +1,8 @@
|
||||
package refinedstorage.container;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.SlotItemHandler;
|
||||
import refinedstorage.tile.TileNetworkTransmitter;
|
||||
|
||||
@@ -12,4 +14,31 @@ public class ContainerNetworkTransmitter extends ContainerBase {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@@ -52,6 +52,8 @@ public class GuiHandler implements IGuiHandler {
|
||||
return new ContainerProcessingPatternEncoder(player, (TileProcessingPatternEncoder) tile);
|
||||
case RefinedStorageGui.NETWORK_TRANSMITTER:
|
||||
return new ContainerNetworkTransmitter(player, (TileNetworkTransmitter) tile);
|
||||
case RefinedStorageGui.NETWORK_RECEIVER:
|
||||
return new ContainerNetworkReceiver(player);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -111,6 +113,8 @@ public class GuiHandler implements IGuiHandler {
|
||||
return new GuiGridFilter(getGridFilterContainer(player, x));
|
||||
case RefinedStorageGui.NETWORK_TRANSMITTER:
|
||||
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:
|
||||
return null;
|
||||
}
|
||||
|
37
src/main/java/refinedstorage/gui/GuiNetworkReceiver.java
Executable file
37
src/main/java/refinedstorage/gui/GuiNetworkReceiver.java
Executable 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"));
|
||||
}
|
||||
}
|
@@ -39,6 +39,8 @@ public class GuiNetworkTransmitter extends GuiBase {
|
||||
distance = t("gui.refinedstorage:network_transmitter.different_dimension");
|
||||
} else if (networkTransmitter.getDistance() == -1) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.missing_card");
|
||||
} else if (!networkTransmitter.isReceiverValid()) {
|
||||
distance = t("gui.refinedstorage:network_transmitter.missing_receiver");
|
||||
} else {
|
||||
distance = t("gui.refinedstorage:network_transmitter.distance", networkTransmitter.getDistance());
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.inventory.Container;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerNetworkReceiver;
|
||||
|
||||
public class TileNetworkReceiver extends TileNode {
|
||||
public TileNetworkReceiver() {
|
||||
@@ -19,6 +20,6 @@ public class TileNetworkReceiver extends TileNode {
|
||||
|
||||
@Override
|
||||
public Class<? extends Container> getContainer() {
|
||||
return null;
|
||||
return ContainerNetworkReceiver.class;
|
||||
}
|
||||
}
|
||||
|
@@ -39,6 +39,7 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
// Used clientside
|
||||
private int distance;
|
||||
private boolean inSameDimension;
|
||||
private boolean receiverValid;
|
||||
|
||||
public TileNetworkTransmitter() {
|
||||
rebuildOnUpdateChange = true;
|
||||
@@ -52,8 +53,7 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
return canUpdate()
|
||||
&& receiver != null
|
||||
&& isInSameDimension()
|
||||
&& worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver
|
||||
&& ((TileNetworkReceiver) worldObj.getTileEntity(receiver)).canUpdate();
|
||||
&& isReceiverValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -78,6 +78,7 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
|
||||
buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1);
|
||||
buf.writeBoolean(isInSameDimension());
|
||||
buf.writeBoolean(isReceiverValid());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,6 +87,7 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
|
||||
distance = buf.readInt();
|
||||
inSameDimension = buf.readBoolean();
|
||||
receiverValid = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -121,4 +123,8 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
public boolean isInSameDimension() {
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
@@ -34,7 +34,9 @@ gui.refinedstorage:grid_filter=Grid Filter
|
||||
gui.refinedstorage:network_transmitter=Network Transmitter
|
||||
gui.refinedstorage:network_transmitter.distance=%d blocks
|
||||
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_receiver=Network Receiver
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RS
|
||||
misc.refinedstorage:energy_usage=Usage: %d RS/t
|
||||
|
@@ -34,7 +34,9 @@ gui.refinedstorage:grid_filter=Rooster Filter
|
||||
gui.refinedstorage:network_transmitter=Netwerkzender
|
||||
gui.refinedstorage:network_transmitter.distance=%d blokken
|
||||
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_receiver=Netwerkontvanger
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RS
|
||||
misc.refinedstorage:energy_usage=Vebruik: %d RS/t
|
||||
|
BIN
src/main/resources/assets/refinedstorage/textures/gui/network_receiver.png
Executable file
BIN
src/main/resources/assets/refinedstorage/textures/gui/network_receiver.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
BIN
src/main/resources/assets/refinedstorage/textures/gui/network_transmitter.png
Executable file
BIN
src/main/resources/assets/refinedstorage/textures/gui/network_transmitter.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
Reference in New Issue
Block a user