Fix access to client-only type on server. Fixes #72.
This commit is contained in:
@@ -13,12 +13,15 @@ import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.FormattedText;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static li.cil.oc2.common.util.TooltipUtils.withColor;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public abstract class AbstractMachineInventoryScreen<T extends AbstractMachineTerminalContainer> extends AbstractModContainerScreen<T> {
|
||||
private static final int CONTROLS_TOP = 8;
|
||||
private static final int ENERGY_TOP = CONTROLS_TOP + Sprites.SIDEBAR_2.height + 4;
|
||||
|
||||
@@ -14,12 +14,15 @@ import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.FormattedText;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static li.cil.oc2.common.util.TooltipUtils.withColor;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public abstract class AbstractMachineTerminalScreen<T extends AbstractMachineTerminalContainer> extends AbstractModContainerScreen<T> {
|
||||
private static final int CONTROLS_TOP = 8;
|
||||
private static final int ENERGY_TOP = CONTROLS_TOP + Sprites.SIDEBAR_3.height + 4;
|
||||
|
||||
@@ -4,7 +4,10 @@ import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public abstract class AbstractModContainerScreen<T extends AbstractContainerMenu> extends AbstractContainerScreen<T> {
|
||||
public AbstractModContainerScreen(final T container, final Inventory playerInventory, final Component title) {
|
||||
super(container, playerInventory, title);
|
||||
|
||||
@@ -6,7 +6,10 @@ import li.cil.oc2.common.container.ComputerInventoryContainer;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public final class ComputerContainerScreen extends AbstractMachineInventoryScreen<ComputerInventoryContainer> {
|
||||
public ComputerContainerScreen(final ComputerInventoryContainer container, final Inventory inventory, final Component title) {
|
||||
super(container, inventory, title);
|
||||
|
||||
@@ -3,7 +3,10 @@ package li.cil.oc2.client.gui;
|
||||
import li.cil.oc2.common.container.ComputerTerminalContainer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public final class ComputerTerminalScreen extends AbstractMachineTerminalScreen<ComputerTerminalContainer> {
|
||||
public ComputerTerminalScreen(final ComputerTerminalContainer container, final Inventory playerInventory, final Component title) {
|
||||
super(container, playerInventory, title);
|
||||
|
||||
@@ -8,18 +8,21 @@ import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.gui.GuiComponent;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public final class MachineTerminalWidget extends GuiComponent {
|
||||
public static final int TERMINAL_WIDTH = Terminal.WIDTH * Terminal.CHAR_WIDTH / 2;
|
||||
public static final int TERMINAL_HEIGHT = Terminal.HEIGHT * Terminal.CHAR_HEIGHT / 2;
|
||||
private static final int TERMINAL_WIDTH = Terminal.WIDTH * Terminal.CHAR_WIDTH / 2;
|
||||
private static final int TERMINAL_HEIGHT = Terminal.HEIGHT * Terminal.CHAR_HEIGHT / 2;
|
||||
|
||||
public static final int MARGIN_SIZE = 8;
|
||||
public static final int TERMINAL_X = MARGIN_SIZE;
|
||||
public static final int TERMINAL_Y = MARGIN_SIZE;
|
||||
private static final int MARGIN_SIZE = 8;
|
||||
private static final int TERMINAL_X = MARGIN_SIZE;
|
||||
private static final int TERMINAL_Y = MARGIN_SIZE;
|
||||
|
||||
public static final int WIDTH = Sprites.TERMINAL_SCREEN.width;
|
||||
public static final int HEIGHT = Sprites.TERMINAL_SCREEN.height;
|
||||
|
||||
@@ -6,7 +6,10 @@ import li.cil.oc2.common.container.RobotInventoryContainer;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public final class RobotContainerScreen extends AbstractMachineInventoryScreen<RobotInventoryContainer> {
|
||||
private static final int SLOT_SIZE = 18;
|
||||
|
||||
|
||||
@@ -6,7 +6,10 @@ import li.cil.oc2.common.container.RobotTerminalContainer;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public final class RobotTerminalScreen extends AbstractMachineTerminalScreen<RobotTerminalContainer> {
|
||||
private static final int SLOTS_X = (MachineTerminalWidget.WIDTH - Sprites.HOTBAR.width) / 2;
|
||||
private static final int SLOTS_Y = MachineTerminalWidget.HEIGHT - 1;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package li.cil.oc2.common.container;
|
||||
|
||||
import li.cil.oc2.client.gui.MachineTerminalWidget;
|
||||
import li.cil.oc2.client.gui.Sprites;
|
||||
import li.cil.oc2.common.bus.CommonDeviceBusController;
|
||||
import li.cil.oc2.common.energy.FixedEnergyStorage;
|
||||
import li.cil.oc2.common.entity.RobotEntity;
|
||||
@@ -47,10 +47,15 @@ public final class RobotTerminalContainer extends AbstractRobotContainer {
|
||||
private RobotTerminalContainer(final int id, final RobotEntity robot, final ContainerData energyInfo) {
|
||||
super(Containers.ROBOT_TERMINAL.get(), id, robot, energyInfo);
|
||||
|
||||
// It's kinda dumb we need to access technically-client-side stuff here, but that's the nature of containers
|
||||
// needing to specify display positions for some reason.
|
||||
final int terminalScreenWidth = Sprites.TERMINAL_SCREEN.width;
|
||||
final int terminalScreenHeight = Sprites.TERMINAL_SCREEN.height;
|
||||
|
||||
final ItemStackHandler inventory = robot.getInventory();
|
||||
for (int slot = 0; slot < inventory.getSlots(); slot++) {
|
||||
final int x = (MachineTerminalWidget.WIDTH - inventory.getSlots() * SLOT_SIZE) / 2 + 1 + slot * SLOT_SIZE;
|
||||
addSlot(new SlotItemHandler(inventory, slot, x, MachineTerminalWidget.HEIGHT + 4));
|
||||
final int x = (terminalScreenWidth - inventory.getSlots() * SLOT_SIZE) / 2 + 1 + slot * SLOT_SIZE;
|
||||
addSlot(new SlotItemHandler(inventory, slot, x, terminalScreenHeight + 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user