diff --git a/src/main/java/gregtech/api/gui/resources/ItemStackTexture.java b/src/main/java/gregtech/api/gui/resources/ItemStackTexture.java index 81181d0537b..5718ab90a77 100644 --- a/src/main/java/gregtech/api/gui/resources/ItemStackTexture.java +++ b/src/main/java/gregtech/api/gui/resources/ItemStackTexture.java @@ -1,14 +1,11 @@ package gregtech.api.gui.resources; -import gregtech.api.gui.widgets.SlotWidget; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import org.lwjgl.opengl.GL14; public class ItemStackTexture implements IGuiTexture{ private final ItemStack[] itemStack; diff --git a/src/main/java/gregtech/api/terminal/TerminalRegistry.java b/src/main/java/gregtech/api/terminal/TerminalRegistry.java index 246bff99767..10780c0e5d0 100644 --- a/src/main/java/gregtech/api/terminal/TerminalRegistry.java +++ b/src/main/java/gregtech/api/terminal/TerminalRegistry.java @@ -92,7 +92,7 @@ public static void init() { .device(DeviceHardware.DEVICE.WIRELESS) .build(); AppRegistryBuilder.create(new BatteryManagerApp()).defaultApp() - .battery(GTValues.ULV, 10) + .battery(GTValues.ULV, 0) .build(); AppRegistryBuilder.create(new HardwareManagerApp()).defaultApp().build(); AppRegistryBuilder.create(new AppStoreApp()).defaultApp().build(); diff --git a/src/main/java/gregtech/common/terminal/app/hardwaremanager/HardwareSlotWidget.java b/src/main/java/gregtech/common/terminal/app/hardwaremanager/HardwareSlotWidget.java index 79c360d0138..5c2c9dafbfa 100644 --- a/src/main/java/gregtech/common/terminal/app/hardwaremanager/HardwareSlotWidget.java +++ b/src/main/java/gregtech/common/terminal/app/hardwaremanager/HardwareSlotWidget.java @@ -9,6 +9,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; +import java.util.Arrays; import java.util.Collections; public class HardwareSlotWidget extends WidgetGroup { @@ -77,9 +78,9 @@ public void drawInForeground(int mouseX, int mouseY) { } else { String info = hardware.addInformation(); if (info == null) { - drawHoveringText(null, Collections.singletonList(hardware.getLocalizedName()), 300, mouseX, mouseY); + drawHoveringText(null, Arrays.asList(hardware.getLocalizedName(), I18n.format("terminal.hardware.tip.remove")), 300, mouseX, mouseY); } else { - drawHoveringText(null, Collections.singletonList(String.format("%s (%s)", hardware.getLocalizedName(), info)), 300, mouseX, mouseY); + drawHoveringText(null, Arrays.asList(String.format("%s (%s)", hardware.getLocalizedName(), info), I18n.format("terminal.hardware.tip.remove")), 300, mouseX, mouseY); } } } diff --git a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoPage.java b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoPage.java index bbc872e011a..f4a6ea2b394 100644 --- a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoPage.java +++ b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoPage.java @@ -43,9 +43,7 @@ public float getDefaultZoom() { } public List informationText() { - - return Stream.of("gregtech.multiblock.preview.tilt", "gregtech.multiblock.preview.zoom", - "gregtech.multiblock.preview.pan", "gregtech.multiblock.preview.move", "gregtech.multiblock.preview.reset") + return Stream.of("gregtech.multiblock.preview.zoom", "gregtech.multiblock.preview.rotate") .map(I18n::format) .collect(Collectors.toList()); } diff --git a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoRecipeWrapper.java b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoRecipeWrapper.java index 22d8c8576f8..65528959e1a 100755 --- a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoRecipeWrapper.java +++ b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoRecipeWrapper.java @@ -28,6 +28,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.resources.I18n; @@ -44,7 +45,6 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; -import net.minecraftforge.client.model.pipeline.LightUtil; import net.minecraftforge.fml.client.config.GuiUtils; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -89,7 +89,6 @@ public MBPattern(final WorldSceneRenderer sceneRenderer, final List p private Vector3f center; private float rotationYaw; private float rotationPitch; - private float maxZoom; private float zoom; private GuiButton buttonPreviousPattern; @@ -122,6 +121,8 @@ public MultiblockInfoPage getInfoPage() { return infoPage; } + private static MultiblockInfoRecipeWrapper lastWrapper; + public void setRecipeLayout(RecipeLayout layout, IGuiHelper guiHelper) { this.recipeLayout = layout; @@ -130,29 +131,29 @@ public void setRecipeLayout(RecipeLayout layout, IGuiHelper guiHelper) { IDrawable border = layout.getRecipeCategory().getBackground(); preparePlaceForParts(border.getHeight()); - this.buttons.clear(); - this.nextLayerButton = new GuiButton(0, border.getWidth() - (ICON_SIZE + RIGHT_PADDING), 70, ICON_SIZE, ICON_SIZE, ""); - this.buttonPreviousPattern = new GuiButton(0, border.getWidth() - ((2 * ICON_SIZE) + RIGHT_PADDING + 1), 90, ICON_SIZE, ICON_SIZE, "<"); - this.buttonNextPattern = new GuiButton(0, border.getWidth() - (ICON_SIZE + RIGHT_PADDING), 90, ICON_SIZE, ICON_SIZE, ">"); - this.buttons.put(nextLayerButton, this::toggleNextLayer); - this.buttons.put(buttonPreviousPattern, () -> switchRenderPage(-1)); - this.buttons.put(buttonNextPattern, () -> switchRenderPage(1)); - - boolean isPagesDisabled = patterns.length == 1; - this.buttonPreviousPattern.visible = !isPagesDisabled; - this.buttonNextPattern.visible = !isPagesDisabled; - this.buttonPreviousPattern.enabled = false; - this.buttonNextPattern.enabled = patterns.length > 1; - - if (Mouse.getEventDWheel() == 0) { - this.maxZoom = infoPage.getDefaultZoom() * 15; - this.zoom = this.maxZoom; + if (Mouse.getEventDWheel() == 0 || lastWrapper != this) { + lastWrapper = this; + this.buttons.clear(); + this.nextLayerButton = new GuiButton(0, border.getWidth() - (ICON_SIZE + RIGHT_PADDING), 70, ICON_SIZE, ICON_SIZE, ""); + this.buttonPreviousPattern = new GuiButton(0, border.getWidth() - ((2 * ICON_SIZE) + RIGHT_PADDING + 1), 90, ICON_SIZE, ICON_SIZE, "<"); + this.buttonNextPattern = new GuiButton(0, border.getWidth() - (ICON_SIZE + RIGHT_PADDING), 90, ICON_SIZE, ICON_SIZE, ">"); + this.buttons.put(nextLayerButton, this::toggleNextLayer); + this.buttons.put(buttonPreviousPattern, () -> switchRenderPage(-1)); + this.buttons.put(buttonNextPattern, () -> switchRenderPage(1)); + + boolean isPagesDisabled = patterns.length == 1; + this.buttonPreviousPattern.visible = !isPagesDisabled; + this.buttonNextPattern.visible = !isPagesDisabled; + this.buttonPreviousPattern.enabled = false; + this.buttonNextPattern.enabled = patterns.length > 1; + + this.zoom = infoPage.getDefaultZoom() * 15; this.rotationYaw = 20.0f; this.rotationPitch = 135.0f; this.currentRendererPage = 0; setNextLayer(-1); } else { - zoom = (float) MathHelper.clamp(zoom + (Mouse.getEventDWheel() < 0 ? 0.5 : -0.5), 3, maxZoom); + zoom = (float) MathHelper.clamp(zoom + (Mouse.getEventDWheel() < 0 ? 0.5 : -0.5), 3, 999); setNextLayer(getLayerIndex()); } if (center != null) { @@ -205,7 +206,9 @@ private void switchRenderPage(int amount) { this.currentRendererPage = newIndex; this.buttonNextPattern.enabled = newIndex < maxIndex; this.buttonPreviousPattern.enabled = newIndex > 0; + setNextLayer(-1); updateParts(); + getCurrentRenderer().setCameraLookAt(center, zoom, Math.toRadians(rotationPitch), Math.toRadians(rotationYaw)); } } @@ -249,14 +252,20 @@ public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHe button.drawButton(minecraft, mouseX, mouseY, 0.0f); } - drawHoveringInformationText(minecraft, infoPage.informationText(), mouseX, mouseY); - this.tooltipBlockStack = null; RayTraceResult rayTraceResult = renderer.getLastTraceResult(); boolean insideView = mouseX >= 0 && mouseY >= 0 && mouseX < recipeWidth && mouseY < sceneHeight; boolean leftClickHeld = Mouse.isButtonDown(0); boolean rightClickHeld = Mouse.isButtonDown(1); + if (insideView) { + for (GuiButton button : buttons.keySet()) { + if (button.isMouseOver()) { + insideView = false; + break; + } + } + } if (insideView) { if (leftClickHeld) { rotationPitch += mouseX - lastMouseX + 360; @@ -265,13 +274,13 @@ public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHe } else if (rightClickHeld) { int mouseDeltaY = mouseY - lastMouseY; if (Math.abs(mouseDeltaY) > 1) { - this.zoom = (float) MathHelper.clamp(zoom + (mouseDeltaY > 0 ? 0.5 : -0.5), 3, maxZoom); + this.zoom = (float) MathHelper.clamp(zoom + (mouseDeltaY > 0 ? 0.5 : -0.5), 3, 999); } } renderer.setCameraLookAt(center, zoom, Math.toRadians(rotationPitch), Math.toRadians(rotationYaw)); } - if (!(leftClickHeld || rightClickHeld) && rayTraceResult != null && !renderer.world.isAirBlock(rayTraceResult.getBlockPos())) { + if (!drawHoveringInformationText(minecraft, infoPage.informationText(), mouseX, mouseY) && !(leftClickHeld || rightClickHeld) && rayTraceResult != null && !renderer.world.isAirBlock(rayTraceResult.getBlockPos())) { IBlockState blockState = renderer.world.getBlockState(rayTraceResult.getBlockPos()); ItemStack itemStack = blockState.getBlock().getPickBlock(blockState, rayTraceResult, renderer.world, rayTraceResult.getBlockPos(), minecraft.player); if (itemStack != null && !itemStack.isEmpty()) { @@ -281,10 +290,14 @@ public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHe this.lastMouseX = mouseX; this.lastMouseY = mouseY; + + GlStateManager.disableRescaleNormal(); + GlStateManager.disableLighting(); + RenderHelper.disableStandardItemLighting(); } @SideOnly(Side.CLIENT) - protected void drawHoveringInformationText(Minecraft minecraft, List tooltip, int mouseX, int mouseY) { + protected boolean drawHoveringInformationText(Minecraft minecraft, List tooltip, int mouseX, int mouseY) { int minX = recipeLayout.getRecipeCategory().getBackground().getWidth(); int[] yRange = new int[]{49, 69}; int[] xRange = new int[]{minX - (ICON_SIZE + RIGHT_PADDING), minX - RIGHT_PADDING}; @@ -292,7 +305,9 @@ protected void drawHoveringInformationText(Minecraft minecraft, List too if (isMouseWithinRange(yRange, xRange, mouseY, mouseX)) { GuiUtils.drawHoveringText(tooltip, mouseX, mouseY, 176, 176, -1, minecraft.fontRenderer); + return true; } + return false; } private boolean isMouseWithinRange(int[] yRange, int[] xRange, int mouseY, int mouseX) { @@ -451,6 +466,10 @@ private MBPattern initializePattern(MultiblockShapeInfo shapeInfo, Set