Unify warning tooltips.
This commit is contained in:
@@ -5,13 +5,11 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.DeviceTypes;
|
||||
import li.cil.oc2.client.gui.util.GuiUtils;
|
||||
import li.cil.oc2.common.Constants;
|
||||
import li.cil.oc2.common.container.ComputerInventoryContainer;
|
||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TranslationTextComponent;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
@@ -37,9 +35,9 @@ public final class ComputerInventoryScreen extends ContainerScreen<ComputerInven
|
||||
GuiUtils.renderMissingDeviceInfoIcon(matrixStack, this, DeviceTypes.MEMORY, GuiUtils.WARN_ICON);
|
||||
GuiUtils.renderMissingDeviceInfoIcon(matrixStack, this, DeviceTypes.HARD_DRIVE, GuiUtils.INFO_ICON);
|
||||
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.FLASH_MEMORY, new TranslationTextComponent(Constants.TOOLTIP_FLASH_MEMORY_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.MEMORY, new TranslationTextComponent(Constants.TOOLTIP_MEMORY_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.HARD_DRIVE, new TranslationTextComponent(Constants.TOOLTIP_HARD_DRIVE_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.FLASH_MEMORY);
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.MEMORY);
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.HARD_DRIVE);
|
||||
|
||||
renderTooltip(matrixStack, mouseX, mouseY);
|
||||
}
|
||||
|
||||
@@ -5,14 +5,12 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.DeviceTypes;
|
||||
import li.cil.oc2.client.gui.util.GuiUtils;
|
||||
import li.cil.oc2.common.Constants;
|
||||
import li.cil.oc2.common.container.RobotContainer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TranslationTextComponent;
|
||||
|
||||
public final class RobotContainerScreen extends ContainerScreen<RobotContainer> {
|
||||
private static final ResourceLocation BACKGROUND = new ResourceLocation(API.MOD_ID, "textures/gui/container/robot.png");
|
||||
@@ -53,9 +51,9 @@ public final class RobotContainerScreen extends ContainerScreen<RobotContainer>
|
||||
GuiUtils.renderMissingDeviceInfoIcon(matrixStack, this, DeviceTypes.MEMORY, GuiUtils.WARN_ICON);
|
||||
GuiUtils.renderMissingDeviceInfoIcon(matrixStack, this, DeviceTypes.HARD_DRIVE, GuiUtils.INFO_ICON);
|
||||
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.FLASH_MEMORY, new TranslationTextComponent(Constants.TOOLTIP_FLASH_MEMORY_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.MEMORY, new TranslationTextComponent(Constants.TOOLTIP_MEMORY_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.HARD_DRIVE, new TranslationTextComponent(Constants.TOOLTIP_HARD_DRIVE_MISSING));
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.FLASH_MEMORY);
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.MEMORY);
|
||||
GuiUtils.renderMissingDeviceInfoTooltip(matrixStack, this, mouseX, mouseY, DeviceTypes.HARD_DRIVE);
|
||||
|
||||
renderTooltip(matrixStack, mouseX, mouseY);
|
||||
}
|
||||
|
||||
@@ -3,20 +3,36 @@ package li.cil.oc2.client.gui.util;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.DeviceType;
|
||||
import li.cil.oc2.api.bus.device.DeviceTypes;
|
||||
import li.cil.oc2.common.container.TypedSlotItemHandler;
|
||||
import net.minecraft.client.gui.AbstractGui;
|
||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
import net.minecraft.inventory.container.Slot;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TranslationTextComponent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
public final class GuiUtils {
|
||||
public static final ResourceLocation WARN_ICON = new ResourceLocation(API.MOD_ID, "textures/gui/overlay/slot_warn.png");
|
||||
public static final ResourceLocation INFO_ICON = new ResourceLocation(API.MOD_ID, "textures/gui/overlay/slot_info.png");
|
||||
|
||||
private static final Map<DeviceType, ITextComponent> WARNING_BY_DEVICE_TYPE = Util.make(() -> {
|
||||
final HashMap<DeviceType, ITextComponent> map = new HashMap<>();
|
||||
|
||||
map.put(DeviceTypes.FLASH_MEMORY, new TranslationTextComponent("tooltip.oc2.flash_memory_missing"));
|
||||
map.put(DeviceTypes.MEMORY, new TranslationTextComponent("tooltip.oc2.memory_missing"));
|
||||
map.put(DeviceTypes.HARD_DRIVE, new TranslationTextComponent("tooltip.oc2.hard_drive_missing"));
|
||||
|
||||
return map;
|
||||
});
|
||||
|
||||
private static final int SLOT_SIZE = 18;
|
||||
private static final int DEVICE_INFO_ICON_SIZE = 28;
|
||||
private static final int RELATIVE_ICON_POSITION = (SLOT_SIZE - DEVICE_INFO_ICON_SIZE) / 2;
|
||||
@@ -39,6 +55,10 @@ public final class GuiUtils {
|
||||
});
|
||||
}
|
||||
|
||||
public static <TContainer extends Container> void renderMissingDeviceInfoTooltip(final MatrixStack matrixStack, final ContainerScreen<TContainer> screen, final int mouseX, final int mouseY, final DeviceType type) {
|
||||
renderMissingDeviceInfoTooltip(matrixStack, screen, mouseX, mouseY, type, Objects.requireNonNull(WARNING_BY_DEVICE_TYPE.get(type)));
|
||||
}
|
||||
|
||||
public static <TContainer extends Container> void renderMissingDeviceInfoTooltip(final MatrixStack matrixStack, final ContainerScreen<TContainer> screen, final int mouseX, final int mouseY, final DeviceType type, final ITextComponent tooltip) {
|
||||
final boolean isCursorHoldingStack = !screen.getMinecraft().player.inventory.items.isEmpty();
|
||||
if (isCursorHoldingStack) {
|
||||
|
||||
@@ -27,9 +27,6 @@ public final class Constants {
|
||||
|
||||
public static final String TOOLTIP_DESCRIPTION_SUFFIX = ".desc";
|
||||
public static final String TOOLTIP_DEVICE_NEEDS_REBOOT = "tooltip.oc2.device_needs_reboot";
|
||||
public static final String TOOLTIP_FLASH_MEMORY_MISSING = "tooltip.oc2.flash_memory_missing";
|
||||
public static final String TOOLTIP_MEMORY_MISSING = "tooltip.oc2.memory_missing";
|
||||
public static final String TOOLTIP_HARD_DRIVE_MISSING = "tooltip.oc2.hard_drive_missing";
|
||||
public static final String TOOLTIP_ENERGY = "tooltip.oc2.energy";
|
||||
public static final String TOOLTIP_ENERGY_CONSUMPTION = "tooltip.oc2.energyConsumption";
|
||||
public static final String TOOLTIP_CONFIRM = "tooltip.oc2.confirm";
|
||||
|
||||
Reference in New Issue
Block a user