diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/render/SkinElement.java b/src/main/java/ru/dbotthepony/mc/otm/client/render/SkinElement.java deleted file mode 100644 index 7739e0892..000000000 --- a/src/main/java/ru/dbotthepony/mc/otm/client/render/SkinElement.java +++ /dev/null @@ -1,114 +0,0 @@ -package ru.dbotthepony.mc.otm.client.render; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.resources.ResourceLocation; -import ru.dbotthepony.mc.otm.client.render.RenderHelper; - -/** - * Represents a texture element on atlas - */ -public record SkinElement(ResourceLocation texture, float image_x, float image_y, float rect_w, float rect_h, - float defined_width, float defined_height) { - public void render(PoseStack stack, float x, float y, float width, float height) { - RenderSystem.setShaderTexture(0, texture); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - width, - height, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } - - public void render(PoseStack stack) { - render(stack, 0, 0); - } - - public void render(PoseStack stack, float x, float y) { - RenderSystem.setShaderTexture(0, texture); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - rect_w, - rect_h, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } - - public void renderW(PoseStack stack, float x, float y, float width) { - RenderSystem.setShaderTexture(0, texture); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - width, - rect_h, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } - - public void renderH(PoseStack stack, float x, float y, float height) { - RenderSystem.setShaderTexture(0, texture); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - rect_w, - height, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } - - public void renderRaw(PoseStack stack, float x, float y, float width, float height) { - // RenderSystem.setShader(GameRenderer::getPositionTexShader); - // RenderSystem.setShaderTexture(0, texture); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - width, - height, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } - - public void renderRaw(PoseStack stack, float x, float y) { - // RenderSystem.setShader(GameRenderer::getPositionTexShader); - // RenderSystem.setShaderTexture(0, texture); - - RenderHelper.drawTexturedRectUV( - stack, - x, - y, - rect_w, - rect_h, - image_x / defined_width, - image_y / defined_height, - (image_x + rect_w) / defined_width, - (image_y + rect_h) / defined_height); - } -} diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.java index cd49db89c..1fd33fd6a 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.java @@ -13,9 +13,9 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability; import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer; import ru.dbotthepony.mc.otm.client.render.RGBAColor; import ru.dbotthepony.mc.otm.client.render.RenderHelper; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; import ru.dbotthepony.mc.otm.menu.AndroidStationMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.*; import javax.annotation.Nullable; @@ -73,7 +73,7 @@ public class AndroidStationScreen extends MatteryScreen impl @Override protected boolean innerRenderTooltips(PoseStack stack, float mouse_x, float mouse_y, float flag) { - if (is_hovered) { + if (isHovered()) { var list = new ArrayList<>(node.getTooltip()); if (node.isResearched()) { @@ -87,7 +87,7 @@ public class AndroidStationScreen extends MatteryScreen impl renderComponentTooltip(stack, list, (int) mouse_x, (int) mouse_y); } - return is_hovered; + return isHovered(); } } @@ -100,8 +100,8 @@ public class AndroidStationScreen extends MatteryScreen impl } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override @@ -112,7 +112,7 @@ public class AndroidStationScreen extends MatteryScreen impl private final EditablePanel[] rows = new EditablePanel[100]; private final Set> seen = new HashSet<>(); private float next_x = 0; - private float[] rows_width = new float[100]; + private final float[] rows_width = new float[100]; private final AndroidResearchButton[][] created_buttons = new AndroidResearchButton[100][1000]; private final int[] created_buttons_idx = new int[100]; diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.java index 2f8288875..779b9bd46 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.java @@ -2,8 +2,9 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; import ru.dbotthepony.mc.otm.menu.BatteryBankMenu; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.FlexGridPanel; import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel; @@ -15,8 +16,8 @@ public class BatteryBankScreen extends MatteryScreen implements } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.java index c945eed03..34438b148 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.java @@ -2,11 +2,12 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel; import ru.dbotthepony.mc.otm.client.screen.panels.FlexGridPanel; import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; import ru.dbotthepony.mc.otm.menu.DriveRackMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import java.util.List; @@ -16,8 +17,8 @@ public class DriveRackScreen extends MatteryScreen implements Mat } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.java index 3678532c7..540930e7d 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.java @@ -1,19 +1,15 @@ package ru.dbotthepony.mc.otm.client.screen; -import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.ClickAction; -import net.minecraft.world.inventory.ClickType; import net.minecraft.world.item.ItemStack; +import ru.dbotthepony.mc.otm.client.screen.panels.*; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; import ru.dbotthepony.mc.otm.item.ItemPortableCondensationDrive; import ru.dbotthepony.mc.otm.menu.DriveViewerMenu; -import ru.dbotthepony.mc.otm.menu.data.InteractPacket; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.network.MatteryNetworking; -import ru.dbotthepony.mc.otm.client.screen.panels.*; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -32,8 +28,8 @@ public class DriveViewerScreen extends MatteryScreen implements } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.java index 4e3f4fa5d..8c4d3910d 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.java @@ -1,24 +1,15 @@ package ru.dbotthepony.mc.otm.client.screen; -import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.ClickAction; -import net.minecraft.world.inventory.ClickType; import net.minecraft.world.item.ItemStack; import ru.dbotthepony.mc.otm.client.screen.panels.*; -import ru.dbotthepony.mc.otm.item.ItemPortableCondensationDrive; -import ru.dbotthepony.mc.otm.menu.DriveViewerMenu; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; import ru.dbotthepony.mc.otm.menu.ItemMonitorMenu; -import ru.dbotthepony.mc.otm.menu.data.InteractPacket; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; -import ru.dbotthepony.mc.otm.network.MatteryNetworking; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; public class ItemMonitorScreen extends MatteryScreen implements MatteryScreen.IMatteryScreenGaugeGetter, MatteryScreen.IMatteryScreenBatteryGetter { @@ -33,8 +24,8 @@ public class ItemMonitorScreen extends MatteryScreen implements } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.java index 3846aa796..cbe86c8e4 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.java @@ -3,10 +3,12 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.panels.*; +import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel; import ru.dbotthepony.mc.otm.menu.MatterBottlerMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; -import ru.dbotthepony.mc.otm.client.screen.panels.*; import javax.annotation.Nullable; import java.util.List; @@ -17,8 +19,8 @@ public class MatterBottlerScreen extends MatteryScreen implem } @Override - public List getGauges() { - return List.of(menu.battery_widget, menu.matter_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget), new MatterGaugePanel(this, null, menu.matter_widget)); } @Override @@ -31,7 +33,7 @@ public class MatterBottlerScreen extends MatteryScreen implem new SlotPanel<>(this, grid, menu.work_slots[0]); new SlotPanel<>(this, grid, menu.work_slots[1]); new SlotPanel<>(this, grid, menu.work_slots[2]); - new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); + new ProgressGaugePanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); new SlotPanel<>(this, grid, menu.work_slots[3]); new SlotPanel<>(this, grid, menu.work_slots[4]); new SlotPanel<>(this, grid, menu.work_slots[5]); diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.java index de413e728..5afd004ef 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.java @@ -2,8 +2,8 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel; import ru.dbotthepony.mc.otm.menu.MatterCapacitorBankMenu; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.*; import java.util.List; @@ -14,8 +14,8 @@ public class MatterCapacitorBankScreen extends MatteryScreen getGauges() { - return List.of(menu.matter_widget, menu.total_matter_widget); + public List getGauges() { + return List.of(new MatterGaugePanel(this, null, menu.matter_widget), new MatterGaugePanel(this, null, menu.total_matter_widget)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.java index 8d5fee650..0925f2085 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.java @@ -2,10 +2,14 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel; +import ru.dbotthepony.mc.otm.client.screen.panels.FlexGridPanel; +import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel; +import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel; import ru.dbotthepony.mc.otm.menu.MatterDecomposerMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; -import ru.dbotthepony.mc.otm.client.screen.panels.*; import java.util.List; @@ -15,8 +19,8 @@ public class MatterDecomposerScreen extends MatteryScreen } @Override - public List getGauges() { - return List.of(menu.battery_widget, menu.matter_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget), new MatterGaugePanel(this, null, menu.matter_widget)); } @Override @@ -27,7 +31,7 @@ public class MatterDecomposerScreen extends MatteryScreen @Override public void createGridPanels(FlexGridPanel grid) { new SlotPanel<>(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); - new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); + new ProgressGaugePanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); new SlotPanel<>(this, grid, 0, 0, menu.output).setDockMargin(2, 0, 2, 0); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.java index d04bda4d2..7f1ff1fb0 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.java @@ -2,9 +2,11 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel; import ru.dbotthepony.mc.otm.menu.MatterReplicatorMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.*; import java.util.List; @@ -15,8 +17,8 @@ public class MatterReplicatorScreen extends MatteryScreen } @Override - public List getGauges() { - return List.of(menu.battery_widget, menu.matter_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget), new MatterGaugePanel(this, null, menu.matter_widget)); } @Override @@ -26,7 +28,7 @@ public class MatterReplicatorScreen extends MatteryScreen @Override public void createGridPanels(FlexGridPanel grid) { - new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); + new ProgressGaugePanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); for (var slot : menu.output_slots) { new SlotPanel<>(this, grid, 0, 0, slot); diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.java index e80cce666..e3f3c7177 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.java @@ -2,10 +2,13 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel; +import ru.dbotthepony.mc.otm.client.screen.panels.FlexGridPanel; +import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel; +import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel; +import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel; import ru.dbotthepony.mc.otm.menu.MatterScannerMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; -import ru.dbotthepony.mc.otm.client.screen.panels.*; import java.util.List; @@ -15,8 +18,8 @@ public class MatterScannerScreen extends MatteryScreen implem } @Override - public List getGauges() { - return List.of(menu.battery_widget); + public List getGauges() { + return List.of(new PowerGaugePanel(this, null, menu.battery_widget)); } @Override @@ -27,6 +30,6 @@ public class MatterScannerScreen extends MatteryScreen implem @Override public void createGridPanels(FlexGridPanel grid) { new SlotPanel<>(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); - new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); + new ProgressGaugePanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java index 000f15547..30abec18e 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java @@ -8,6 +8,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.Widget; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.renderer.entity.ItemRenderer; @@ -21,7 +22,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraftforge.client.event.ContainerScreenEvent; import ru.dbotthepony.mc.otm.menu.MatteryMenu; import ru.dbotthepony.mc.otm.menu.slot.MatterySlot; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.*; import javax.annotation.Nonnull; @@ -50,7 +50,7 @@ public abstract class MatteryScreen extends AbstractConta public interface IMatteryScreenLeftPanel {} public interface IMatteryScreenGaugeGetter extends IMatteryScreenLeftPanel { - List getGauges(); + List getGauges(); } public interface IMatteryScreenBatteryGetter extends IMatteryScreenLeftPanel { @@ -178,8 +178,8 @@ public abstract class MatteryScreen extends AbstractConta float height = 0; for (var gauge : gauges.getGauges()) { - width += gauge.getImageWidth(); - height = Math.max(height, gauge.getImageHeight()); + width += gauge.getWidth(); + height = Math.max(height, gauge.getHeight()); } width += 2; @@ -192,7 +192,7 @@ public abstract class MatteryScreen extends AbstractConta grid_gauges.setDock(Dock.TOP); for (var gauge : gauges.getGauges()) { - new MatteryWidgetPanel(this, grid_gauges, gauge); + gauge.setParent(grid_gauges); } reserve.setWidth(Math.max(width, reserve.getWidth())); @@ -426,11 +426,6 @@ public abstract class MatteryScreen extends AbstractConta if (main_frame != null) { addPanel(main_frame); - for (var widget : menu.mattery_widgets) { - if (widget.auto_parent) - new MatteryWidgetPanel(this, main_frame, widget); - } - for (var slot : menu.main_slots) { new SlotPanel<>(this, main_frame, slot); } @@ -453,7 +448,7 @@ public abstract class MatteryScreen extends AbstractConta var panel = panels.get(i); if (hovered) { - panel.unsetHover(); + panel.unsetHovered(); } else if (panel.tickHover(mouse_x, mouse_y)) { hovered = true; } @@ -470,7 +465,7 @@ public abstract class MatteryScreen extends AbstractConta for (var panel : panels) { RenderSystem.depthFunc(GL_ALWAYS); - panel.set3DDepth(depth); + panel.setAccumulatedDepth(depth); RenderSystem.setShaderColor(1F, 1F, 1F, 1F); depth = Math.max(depth, panel.render(pose, mouse_x, mouse_y, flag)); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.java index 0aa4372b7..c51042d41 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.java @@ -2,8 +2,8 @@ package ru.dbotthepony.mc.otm.client.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; +import ru.dbotthepony.mc.otm.client.screen.widget.PatternGaugePanel; import ru.dbotthepony.mc.otm.menu.PatternStorageMenu; -import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; import ru.dbotthepony.mc.otm.client.screen.panels.*; import java.util.List; @@ -14,8 +14,8 @@ public class PatternStorageScreen extends MatteryScreen impl } @Override - public List getGauges() { - return List.of(menu.stored_this, menu.stored_grid); + public List getGauges() { + return List.of(new PatternGaugePanel(this, null, menu.stored_this), new PatternGaugePanel(this, null, menu.stored_grid)); } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.java index b60f18c3d..4f85de5de 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.java @@ -7,7 +7,6 @@ import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.client.gui.GuiUtils; import ru.dbotthepony.mc.otm.client.screen.MatteryScreen; import ru.dbotthepony.mc.otm.client.render.RGBAColor; import ru.dbotthepony.mc.otm.client.render.RenderHelper; @@ -52,7 +51,7 @@ public abstract class AbstractSlotPanel extends EditablePanel { var system_stack = RenderSystem.getModelViewStack(); system_stack.pushPose(); - system_stack.translate(parent_x + 1, parent_y + 1, 0); + system_stack.translate(getAbsoluteX() + 1, getAbsoluteY() + 1, 0); RenderSystem.applyModelViewMatrix(); RenderSystem.depthFunc(GL_LESS); @@ -60,8 +59,8 @@ public abstract class AbstractSlotPanel extends EditablePanel { // Thanks Mojang // Very cool // (for int x, int y, which are then cast into doubles anyway) - screen.getItemRenderer().blitOffset = accumulated_depth - 100; // force item to draw only 50 units "above" background - screen.getItemRenderer().renderAndDecorateItem(Minecraft.getInstance().player, itemstack, 0, 0, (int) (parent_x + parent_y * 1000) /* some kind of indexing ? */); + screen.getItemRenderer().blitOffset = getAccumulatedDepth() - 100; // force item to draw only 50 units "above" background + screen.getItemRenderer().renderAndDecorateItem(Minecraft.getInstance().player, itemstack, 0, 0, (int) (getAbsoluteX() + getAbsoluteY() * 1000) /* some kind of indexing ? */); RenderSystem.depthFunc(GL_ALWAYS); screen.getItemRenderer().renderGuiItemDecorations(screen.getFont(), itemstack, 0, 0, count_override); @@ -76,7 +75,7 @@ public abstract class AbstractSlotPanel extends EditablePanel { RenderSystem.applyModelViewMatrix(); } - if (is_hovered) { + if (isHovered()) { stack.pushPose(); stack.translate(0, 0, height); RenderHelper.setDrawColor(SLOT_HIGHLIGHT); @@ -101,7 +100,7 @@ public abstract class AbstractSlotPanel extends EditablePanel { @Override protected boolean innerRenderTooltips(PoseStack stack, float mouse_x, float mouse_y, float flag) { - if (is_hovered) { + if (isHovered()) { var itemstack = getItemStack(); if (!itemstack.isEmpty()) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.java index c31541ce2..bfd73ca46 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.java @@ -16,7 +16,7 @@ public class ButtonPanel extends MinecraftWidgetPanel