Fixes to gui
This commit is contained in:
@@ -1,49 +1,43 @@
|
|||||||
package com.raoulvdberge.refinedstorage.gui;
|
package com.raoulvdberge.refinedstorage.gui;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
|
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilter;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilterFluid;
|
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilterFluid;
|
||||||
import com.raoulvdberge.refinedstorage.gui.control.Scrollbar;
|
import com.raoulvdberge.refinedstorage.gui.control.Scrollbar;
|
||||||
import com.raoulvdberge.refinedstorage.gui.control.SideButton;
|
import com.raoulvdberge.refinedstorage.gui.control.SideButton;
|
||||||
import com.raoulvdberge.refinedstorage.integration.jei.IntegrationJEI;
|
|
||||||
import com.raoulvdberge.refinedstorage.integration.jei.RecipeTransferHandlerGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
import net.minecraft.client.gui.widget.Widget;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.gui.widget.button.Button;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.inventory.ClickType;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.container.Container;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.container.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fml.client.FMLClientHandler;
|
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||||
import net.minecraftforge.fml.client.config.GuiUtils;
|
import net.minecraftforge.fml.client.config.GuiUtils;
|
||||||
import org.lwjgl.input.Keyboard;
|
|
||||||
import org.lwjgl.input.Mouse;
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public abstract class GuiBase extends GuiContainer {
|
public abstract class GuiBase<T extends Container> extends ContainerScreen {
|
||||||
private static final Map<String, ResourceLocation> TEXTURE_CACHE = new HashMap<>();
|
private static final Map<String, ResourceLocation> TEXTURE_CACHE = new HashMap<>();
|
||||||
private static final Map<Class, Queue<Consumer>> RUNNABLES = new HashMap<>();
|
private static final Map<Class, Queue<Consumer>> RUNNABLES = new HashMap<>();
|
||||||
|
|
||||||
public static final RenderUtils.FluidRenderer FLUID_RENDERER = new RenderUtils.FluidRenderer(-1, 16, 16);
|
public static final RenderUtils.FluidRenderer FLUID_RENDERER = new RenderUtils.FluidRenderer(-1, 16, 16);
|
||||||
|
|
||||||
public class ElementDrawers implements IElementDrawers {
|
public class ElementDrawers implements IElementDrawers {
|
||||||
private IElementDrawer<FluidStack> fluidDrawer = (x, y, element) -> FLUID_RENDERER.draw(GuiBase.this.mc, x, y, element);
|
private IElementDrawer<FluidStack> fluidDrawer = (x, y, element) -> FLUID_RENDERER.draw(GuiBase.this.minecraft, x, y, element);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IElementDrawer<ItemStack> getItemDrawer() {
|
public IElementDrawer<ItemStack> getItemDrawer() {
|
||||||
@@ -62,7 +56,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FontRenderer getFontRenderer() {
|
public FontRenderer getFontRenderer() {
|
||||||
return fontRenderer;
|
return font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,8 +72,9 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
|
|
||||||
private boolean initializing;
|
private boolean initializing;
|
||||||
|
|
||||||
public GuiBase(Container container, int screenWidth, int screenHeight) {
|
public GuiBase(T container, int screenWidth, int screenHeight, PlayerInventory inventory, ITextComponent title) {
|
||||||
super(container);
|
super(container, inventory, title);
|
||||||
|
|
||||||
|
|
||||||
this.screenWidth = screenWidth;
|
this.screenWidth = screenWidth;
|
||||||
this.screenHeight = screenHeight;
|
this.screenHeight = screenHeight;
|
||||||
@@ -97,7 +92,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
queue = RUNNABLES.get(GuiContainer.class);
|
queue = RUNNABLES.get(ContainerScreen.class);
|
||||||
|
|
||||||
if (queue != null && !queue.isEmpty()) {
|
if (queue != null && !queue.isEmpty()) {
|
||||||
Consumer callback;
|
Consumer callback;
|
||||||
@@ -124,21 +119,21 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initGui() {
|
public void init() {
|
||||||
if (initializing) { // Fix double initialize because of runRunnables
|
if (initializing) { // Fix double initialize because of runRunnables
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
initializing = true;
|
initializing = true;
|
||||||
|
|
||||||
Keyboard.enableRepeatEvents(true);
|
// TODO Keyboard.enableRepeatEvents(true);
|
||||||
|
|
||||||
calcHeight();
|
calcHeight();
|
||||||
|
|
||||||
super.initGui();
|
super.init();
|
||||||
|
|
||||||
if (!buttonList.isEmpty()) {
|
if (!buttons.isEmpty()) {
|
||||||
buttonList.removeIf(b -> !b.getClass().getName().contains("net.blay09.mods.craftingtweaks")); // Prevent crafting tweaks buttons from resetting
|
buttons.removeIf(b -> !b.getClass().getName().contains("net.blay09.mods.craftingtweaks")); // Prevent crafting tweaks buttons from resetting
|
||||||
}
|
}
|
||||||
|
|
||||||
lastButtonId = 0;
|
lastButtonId = 0;
|
||||||
@@ -152,9 +147,10 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onGuiClosed() {
|
public void onClose() {
|
||||||
super.onGuiClosed();
|
super.onClose();
|
||||||
Keyboard.enableRepeatEvents(false);
|
|
||||||
|
// TODO Keyboard.enableRepeatEvents(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void calcHeight() {
|
protected void calcHeight() {
|
||||||
@@ -166,8 +162,8 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateScreen() {
|
public void tick() {
|
||||||
super.updateScreen();
|
super.tick();
|
||||||
|
|
||||||
runRunnables();
|
runRunnables();
|
||||||
|
|
||||||
@@ -175,55 +171,56 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||||
drawDefaultBackground();
|
renderBackground();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
super.render(mouseX, mouseY, partialTicks);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// NO OP: Prevent a MC crash (see #1483)
|
// NO OP: Prevent a MC crash (see #1483)
|
||||||
|
// TODO ^can be removed?
|
||||||
}
|
}
|
||||||
|
|
||||||
renderHoveredToolTip(mouseX, mouseY);
|
renderHoveredToolTip(mouseX, mouseY);
|
||||||
|
|
||||||
// Prevent accidental scrollbar click after clicking recipe transfer button
|
// Prevent accidental scrollbar click after clicking recipe transfer button
|
||||||
if (scrollbar != null && (!IntegrationJEI.isLoaded() || System.currentTimeMillis() - RecipeTransferHandlerGrid.LAST_TRANSFER > RecipeTransferHandlerGrid.TRANSFER_SCROLL_DELAY_MS)) {
|
if (scrollbar != null /* TODO && (!IntegrationJEI.isLoaded() || System.currentTimeMillis() - RecipeTransferHandlerGrid.LAST_TRANSFER > RecipeTransferHandlerGrid.TRANSFER_SCROLL_DELAY_MS)*/) {
|
||||||
scrollbar.update(this, mouseX - guiLeft, mouseY - guiTop);
|
scrollbar.update(this, mouseX - guiLeft, mouseY - guiTop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void drawGuiContainerBackgroundLayer(float renderPartialTicks, int mouseX, int mouseY) {
|
protected void drawGuiContainerBackgroundLayer(float renderPartialTicks, int mouseX, int mouseY) {
|
||||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
|
||||||
drawBackground(guiLeft, guiTop, mouseX, mouseY);
|
drawBackground(guiLeft, guiTop, mouseX, mouseY);
|
||||||
|
|
||||||
this.hoveringFluid = null;
|
this.hoveringFluid = null;
|
||||||
|
|
||||||
for (int i = 0; i < inventorySlots.inventorySlots.size(); ++i) {
|
for (int i = 0; i < this.container.inventorySlots.size(); ++i) {
|
||||||
Slot slot = inventorySlots.inventorySlots.get(i);
|
Slot slot = container.inventorySlots.get(i);
|
||||||
|
|
||||||
if (slot.isEnabled() && slot instanceof SlotFilterFluid) {
|
if (slot.isEnabled() && slot instanceof SlotFilterFluid) {
|
||||||
FluidStack stack = ((SlotFilterFluid) slot).getFluidInventory().getFluid(slot.getSlotIndex());
|
FluidStack stack = ((SlotFilterFluid) slot).getFluidInventory().getFluid(slot.getSlotIndex());
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
FLUID_RENDERER.draw(mc, guiLeft + slot.xPos, guiTop + slot.yPos, stack);
|
FLUID_RENDERER.draw(minecraft, guiLeft + slot.xPos, guiTop + slot.yPos, stack);
|
||||||
|
|
||||||
if (((SlotFilterFluid) slot).isSizeAllowed()) {
|
if (((SlotFilterFluid) slot).isSizeAllowed()) {
|
||||||
drawQuantity(guiLeft + slot.xPos, guiTop + slot.yPos, API.instance().getQuantityFormatter().formatInBucketForm(stack.amount));
|
drawQuantity(guiLeft + slot.xPos, guiTop + slot.yPos, API.instance().getQuantityFormatter().formatInBucketForm(stack.getAmount()));
|
||||||
|
|
||||||
GL11.glDisable(GL11.GL_LIGHTING);
|
GL11.glDisable(GL11.GL_LIGHTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inBounds(guiLeft + slot.xPos, guiTop + slot.yPos, 17, 17, mouseX, mouseY)) {
|
if (inBounds(guiLeft + slot.xPos, guiTop + slot.yPos, 17, 17, mouseX, mouseY)) {
|
||||||
this.hoveringFluid = stack.getLocalizedName();
|
this.hoveringFluid = stack.getDisplayName().getFormattedText(); // TODO wrong
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scrollbar != null) {
|
if (scrollbar != null) {
|
||||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
|
||||||
scrollbar.draw(this);
|
scrollbar.draw(this);
|
||||||
}
|
}
|
||||||
@@ -231,17 +228,17 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
|
||||||
mouseX -= guiLeft;
|
mouseX -= guiLeft;
|
||||||
mouseY -= guiTop;
|
mouseY -= guiTop;
|
||||||
|
|
||||||
String sideButtonTooltip = null;
|
String sideButtonTooltip = null;
|
||||||
|
|
||||||
for (int i = 0; i < buttonList.size(); ++i) {
|
for (int i = 0; i < this.buttons.size(); ++i) {
|
||||||
GuiButton button = buttonList.get(i);
|
Widget button = buttons.get(i);
|
||||||
|
|
||||||
if (button instanceof SideButton && ((SideButton) button).isHovered()) {
|
if (button instanceof SideButton && button.isHovered()) {
|
||||||
sideButtonTooltip = ((SideButton) button).getTooltip();
|
sideButtonTooltip = ((SideButton) button).getTooltip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -253,6 +250,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO
|
||||||
@Override
|
@Override
|
||||||
protected void handleMouseClick(Slot slot, int slotId, int mouseButton, ClickType type) {
|
protected void handleMouseClick(Slot slot, int slotId, int mouseButton, ClickType type) {
|
||||||
boolean valid = type != ClickType.QUICK_MOVE && Minecraft.getMinecraft().player.inventory.getItemStack().isEmpty();
|
boolean valid = type != ClickType.QUICK_MOVE && Minecraft.getMinecraft().player.inventory.getItemStack().isEmpty();
|
||||||
@@ -295,47 +293,38 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
if (scrollbar != null && d != 0) {
|
if (scrollbar != null && d != 0) {
|
||||||
scrollbar.wheel(d);
|
scrollbar.wheel(d);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void actionPerformed(GuiButton button) throws IOException {
|
|
||||||
super.actionPerformed(button);
|
|
||||||
|
|
||||||
if (button instanceof SideButton) {
|
|
||||||
((SideButton) button).actionPerformed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public GuiCheckBox addCheckBox(int x, int y, String text, boolean checked) {
|
public GuiCheckBox addCheckBox(int x, int y, String text, boolean checked) {
|
||||||
GuiCheckBox checkBox = new GuiCheckBox(lastButtonId++, x, y, text, checked);
|
GuiCheckBox checkBox = new GuiCheckBox(x, y, text, checked);
|
||||||
|
|
||||||
buttonList.add(checkBox);
|
buttons.add(checkBox);
|
||||||
|
|
||||||
return checkBox;
|
return checkBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiButton addButton(int x, int y, int w, int h, String text) {
|
public Button addButton(int x, int y, int w, int h, String text) {
|
||||||
return addButton(x, y, w, h, text, true, true);
|
return addButton(x, y, w, h, text, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiButton addButton(int x, int y, int w, int h, String text, boolean enabled, boolean visible) {
|
public Button addButton(int x, int y, int w, int h, String text, boolean enabled, boolean visible) {
|
||||||
GuiButton button = new GuiButton(lastButtonId++, x, y, w, h, text);
|
Button button = new Button(x, y, w, h, text, (btn) -> {
|
||||||
button.enabled = enabled;
|
});
|
||||||
|
button.active = enabled;// TODO is active correct?
|
||||||
button.visible = visible;
|
button.visible = visible;
|
||||||
|
|
||||||
buttonList.add(button);
|
buttons.add(button);
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SideButton addSideButton(SideButton button) {
|
public SideButton addSideButton(SideButton button) {
|
||||||
button.id = lastButtonId++;
|
|
||||||
button.x = guiLeft + -SideButton.WIDTH - 2;
|
button.x = guiLeft + -SideButton.WIDTH - 2;
|
||||||
button.y = guiTop + lastSideButtonY;
|
button.y = guiTop + lastSideButtonY;
|
||||||
|
|
||||||
lastSideButtonY += SideButton.HEIGHT + 2;
|
lastSideButtonY += SideButton.HEIGHT + 2;
|
||||||
|
|
||||||
buttonList.add(button);
|
this.buttons.add(button);
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
@@ -355,7 +344,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
TEXTURE_CACHE.put(id, new ResourceLocation(base, "textures/" + file));
|
TEXTURE_CACHE.put(id, new ResourceLocation(base, "textures/" + file));
|
||||||
}
|
}
|
||||||
|
|
||||||
mc.getTextureManager().bindTexture(TEXTURE_CACHE.get(id));
|
minecraft.getTextureManager().bindTexture(TEXTURE_CACHE.get(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawItem(int x, int y, ItemStack stack) {
|
public void drawItem(int x, int y, ItemStack stack) {
|
||||||
@@ -367,11 +356,11 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void drawItem(int x, int y, ItemStack stack, boolean withOverlay, @Nullable String text) {
|
public void drawItem(int x, int y, ItemStack stack, boolean withOverlay, @Nullable String text) {
|
||||||
zLevel = 200.0F;
|
// TODO zLevel = 200.0F;
|
||||||
itemRender.zLevel = 200.0F;
|
itemRenderer.zLevel = 200.0F;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
itemRender.renderItemIntoGUI(stack, x, y);
|
itemRenderer.renderItemIntoGUI(stack, x, y);
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
// NO OP
|
// NO OP
|
||||||
}
|
}
|
||||||
@@ -380,13 +369,13 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
drawItemOverlay(stack, text, x, y);
|
drawItemOverlay(stack, text, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
zLevel = 0.0F;
|
// TODO zLevel = 0.0F;
|
||||||
itemRender.zLevel = 0.0F;
|
itemRenderer.zLevel = 0.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawItemOverlay(ItemStack stack, @Nullable String text, int x, int y) {
|
public void drawItemOverlay(ItemStack stack, @Nullable String text, int x, int y) {
|
||||||
try {
|
try {
|
||||||
itemRender.renderItemOverlayIntoGUI(fontRenderer, stack, x, y, "");
|
this.itemRenderer.renderItemOverlayIntoGUI(font, stack, x, y, "");
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
// NO OP
|
// NO OP
|
||||||
}
|
}
|
||||||
@@ -397,13 +386,13 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void drawQuantity(int x, int y, String qty) {
|
public void drawQuantity(int x, int y, String qty) {
|
||||||
boolean large = fontRenderer.getUnicodeFlag() || RS.INSTANCE.config.largeFont;
|
boolean large = /* TODO font.getUnicodeFlag() ||*/ RS.INSTANCE.config.largeFont;
|
||||||
|
|
||||||
GlStateManager.pushMatrix();
|
GlStateManager.pushMatrix();
|
||||||
GlStateManager.translate(x, y, 1);
|
GlStateManager.translatef(x, y, 1);
|
||||||
|
|
||||||
if (!large) {
|
if (!large) {
|
||||||
GlStateManager.scale(0.5f, 0.5f, 1);
|
GlStateManager.scalef(0.5f, 0.5f, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
@@ -411,12 +400,12 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
GlStateManager.depthMask(false);
|
GlStateManager.depthMask(false);
|
||||||
GlStateManager.enableBlend();
|
GlStateManager.enableBlend();
|
||||||
GlStateManager.blendFunc(770, 771);
|
GlStateManager.blendFunc(770, 771);
|
||||||
GlStateManager.disableDepth();
|
GlStateManager.disableDepthTest();
|
||||||
|
|
||||||
fontRenderer.drawStringWithShadow(qty, (large ? 16 : 30) - fontRenderer.getStringWidth(qty), large ? 8 : 22, 16777215);
|
font.drawStringWithShadow(qty, (large ? 16 : 30) - font.getStringWidth(qty), large ? 8 : 22, 16777215);
|
||||||
|
|
||||||
GlStateManager.enableDepth();
|
GlStateManager.enableDepthTest();
|
||||||
GlStateManager.enableTexture2D();
|
GlStateManager.enableTexture();
|
||||||
GlStateManager.depthMask(true);
|
GlStateManager.depthMask(true);
|
||||||
GlStateManager.enableLighting();
|
GlStateManager.enableLighting();
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();
|
||||||
@@ -429,7 +418,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
|
|
||||||
public void drawString(int x, int y, String message, int color) {
|
public void drawString(int x, int y, String message, int color) {
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
fontRenderer.drawString(message, x, y, color);
|
font.drawString(message, x, y, color);
|
||||||
GlStateManager.enableLighting();
|
GlStateManager.enableLighting();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,12 +432,13 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
|
|
||||||
public void drawTooltip(@Nonnull ItemStack stack, int x, int y, List<String> lines) {
|
public void drawTooltip(@Nonnull ItemStack stack, int x, int y, List<String> lines) {
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
GuiUtils.drawHoveringText(stack, lines, x, y, width - guiLeft, height, -1, fontRenderer);
|
GuiUtils.drawHoveringText(stack, lines, x, y, width - guiLeft, height, -1, font);
|
||||||
GlStateManager.enableLighting();
|
GlStateManager.enableLighting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Probably can be removed.
|
||||||
public void drawTexture(int x, int y, int textureX, int textureY, int width, int height) {
|
public void drawTexture(int x, int y, int textureX, int textureY, int width, int height) {
|
||||||
drawTexturedModalRect(x, y, textureX, textureY, width, height);
|
this.blit(x, y, textureX, textureY, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String t(String name, Object... format) {
|
public static String t(String name, Object... format) {
|
||||||
@@ -481,7 +471,7 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
queue.add(callback);
|
queue.add(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void executeLater(Consumer<GuiContainer> callback) {
|
public static void executeLater(Consumer<ContainerScreen> callback) {
|
||||||
executeLater(GuiContainer.class, callback);
|
executeLater(ContainerScreen.class, callback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,11 @@ import com.raoulvdberge.refinedstorage.gui.control.SideButtonConstuctorDrop;
|
|||||||
import com.raoulvdberge.refinedstorage.gui.control.SideButtonRedstoneMode;
|
import com.raoulvdberge.refinedstorage.gui.control.SideButtonRedstoneMode;
|
||||||
import com.raoulvdberge.refinedstorage.gui.control.SideButtonType;
|
import com.raoulvdberge.refinedstorage.gui.control.SideButtonType;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileConstructor;
|
import com.raoulvdberge.refinedstorage.tile.TileConstructor;
|
||||||
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
|
||||||
public class GuiConstructor extends GuiBase {
|
public class GuiConstructor extends GuiBase<ContainerConstructor> {
|
||||||
public GuiConstructor(ContainerConstructor container) {
|
public GuiConstructor(ContainerConstructor container, PlayerInventory inventory) {
|
||||||
super(container, 211, 137);
|
super(container, 211, 137, inventory, null); // TODO TextComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -19,7 +20,6 @@ public class GuiConstructor extends GuiBase {
|
|||||||
|
|
||||||
addSideButton(new SideButtonType(this, TileConstructor.TYPE));
|
addSideButton(new SideButtonType(this, TileConstructor.TYPE));
|
||||||
|
|
||||||
addSideButton(new SideButtonCompare(this, TileConstructor.COMPARE, IComparer.COMPARE_DAMAGE));
|
|
||||||
addSideButton(new SideButtonCompare(this, TileConstructor.COMPARE, IComparer.COMPARE_NBT));
|
addSideButton(new SideButtonCompare(this, TileConstructor.COMPARE, IComparer.COMPARE_NBT));
|
||||||
addSideButton(new SideButtonConstuctorDrop(this));
|
addSideButton(new SideButtonConstuctorDrop(this));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,43 +1,40 @@
|
|||||||
package com.raoulvdberge.refinedstorage.gui.control;
|
package com.raoulvdberge.refinedstorage.gui.control;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
import com.raoulvdberge.refinedstorage.gui.GuiBase;
|
import com.raoulvdberge.refinedstorage.gui.GuiBase;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.gui.widget.button.Button;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
public abstract class SideButton extends GuiButton {
|
public abstract class SideButton extends Button {
|
||||||
public static final int WIDTH = 18;
|
public static final int WIDTH = 18;
|
||||||
public static final int HEIGHT = 18;
|
public static final int HEIGHT = 18;
|
||||||
|
|
||||||
protected GuiBase gui;
|
protected GuiBase gui;
|
||||||
|
|
||||||
public SideButton(GuiBase gui) {
|
public SideButton(GuiBase gui) {
|
||||||
super(-1, -1, -1, 18, 18, "");
|
super(-1, -1, 18, 18, "", (btn) -> {
|
||||||
|
// TODO: call ActionPerformed
|
||||||
|
});
|
||||||
|
|
||||||
this.gui = gui;
|
this.gui = gui;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHovered() {
|
|
||||||
return hovered;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) {
|
public void renderButton(int mouseX, int mouseY, float partialTicks) {
|
||||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
GlStateManager.enableAlpha();
|
GlStateManager.enableAlphaTest();
|
||||||
|
|
||||||
hovered = gui.inBounds(x, y, width, height, mouseX, mouseY);
|
isHovered = gui.inBounds(x, y, width, height, mouseX, mouseY);
|
||||||
|
|
||||||
gui.bindTexture("icons.png");
|
gui.bindTexture("icons.png");
|
||||||
gui.drawTexture(x, y, 238, hovered ? 35 : 16, 18, 18);
|
gui.drawTexture(x, y, 238, isHovered ? 35 : 16, 18, 18);
|
||||||
|
|
||||||
drawButtonIcon(x + 1, y + 1);
|
drawButtonIcon(x + 1, y + 1);
|
||||||
|
|
||||||
if (hovered) {
|
if (isHovered) {
|
||||||
GlStateManager.enableBlend();
|
GlStateManager.enableBlend();
|
||||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||||
GlStateManager.color(1.0f, 1.0f, 1.0f, 0.5f);
|
GlStateManager.color4f(1.0f, 1.0f, 1.0f, 0.5f);
|
||||||
gui.drawTexture(x, y, 238, 54, 18, 18);
|
gui.drawTexture(x, y, 238, 54, 18, 18);
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user