diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/SpellbookScreen.java b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/SpellbookScreen.java index 52442026..95ab9631 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/SpellbookScreen.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/SpellbookScreen.java @@ -10,7 +10,6 @@ import com.minelittlepony.common.client.gui.IViewRoot; import com.minelittlepony.common.client.gui.dimension.Bounds; import com.minelittlepony.common.client.gui.element.Button; import com.minelittlepony.common.client.gui.sprite.TextureSprite; -import com.minelittlepony.unicopia.Debug; import com.minelittlepony.unicopia.USounds; import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.ability.magic.spell.effect.CustomisedSpellType; @@ -147,10 +146,6 @@ public class SpellbookScreen extends HandledScreen imple context.drawTexture(TEXTURE, x, y, 0, 0, backgroundWidth, backgroundHeight, 512, 256); - if (Debug.SPELLBOOK_CHAPTERS) { - clearAndInit(); - } - tabs.getAllTabs().forEach(tab -> { Bounds bounds = tab.bounds(); boolean hover = bounds.contains(mouseX, mouseY); diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/DynamicContent.java b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/DynamicContent.java index d6895e75..fbe1647d 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/DynamicContent.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/DynamicContent.java @@ -144,7 +144,6 @@ public class DynamicContent implements Content { } public void drawHeader(DrawContext context, int mouseX, int mouseY) { - if (elements.isEmpty()) { return; } diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Panel.java b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Panel.java index 315e1f7b..8fd946b6 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Panel.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Panel.java @@ -5,6 +5,7 @@ import java.util.Optional; import com.minelittlepony.common.client.gui.IViewRoot; import com.minelittlepony.common.client.gui.ScrollContainer; import com.minelittlepony.common.client.gui.dimension.Bounds; +import com.minelittlepony.common.client.gui.dimension.Padding; import com.minelittlepony.unicopia.client.gui.spellbook.SpellbookScreen; import com.minelittlepony.unicopia.client.gui.spellbook.element.DynamicContent.Page; @@ -26,7 +27,7 @@ class Panel extends ScrollContainer { int width = screen.getBackgroundWidth() / 2; margin.top = screen.getY() + 35; - margin.bottom = screen.height - screen.getBackgroundHeight() - screen.getY() + 40; + margin.bottom = screen.height - screen.getBackgroundHeight() - screen.getY() + 20; margin.left = screen.getX() + 30; if (pageIndex % 2 == 1) { @@ -42,6 +43,15 @@ class Panel extends ScrollContainer { @Override protected void renderContents(DrawContext context, int mouseX, int mouseY, float partialTicks) { + var scissorBounds = getBounds(); + + context.disableScissor(); + context.enableScissor( + scissorBounds.left, + scissorBounds.top, + scissorBounds.right(), + scissorBounds.bottom() + ); page.ifPresent(p -> { int oldHeight = p.getBounds().height; p.draw(context, mouseX, mouseY, this); @@ -55,15 +65,22 @@ class Panel extends ScrollContainer { @Override public Bounds getContentBounds() { return page == null ? Bounds.empty() : page.map(page -> { - return new Bounds(0, 0, 1, page.getBounds().height); - }).orElse(Bounds.empty()); + return page.getBounds(); + }).orElse(Bounds.empty()).offset(new Padding( + getBounds().top + getScrollY(), + getBounds().left + getScrollX(), 0, 0) + ).offset(getContentPadding()); } @Override - protected void drawBackground(DrawContext context, int mouseX, int mouseY, float partialTicks) { } + protected void drawBackground(DrawContext context, int mouseX, int mouseY, float partialTicks) { + + } @Override - protected void drawDecorations(DrawContext context, int mouseX, int mouseY, float partialTicks) { } + protected void drawDecorations(DrawContext context, int mouseX, int mouseY, float partialTicks) { + + } @Override protected void drawOverlays(DrawContext context, int mouseX, int mouseY, float partialTicks) { diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Structure.java b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Structure.java index 0e66e009..e08688a0 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Structure.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/spellbook/element/Structure.java @@ -28,8 +28,8 @@ public record Structure(Bounds bounds, Schematic schematic) implements PageEleme matrices.push(); if (container != null) { - matrices.translate(container.getBounds().width / 2, container.getBounds().height / 2, 100); - float minDimensions = Math.min(container.getBounds().width, container.getBounds().height) - 30; + matrices.translate(container.getBounds().width / 2, container.getBounds().height / 2 - 20, 100); + float minDimensions = Math.min(container.getBounds().width * 0.7F, container.getBounds().height) - 30; int minSize = (Math.max(schematic.dx(), Math.max(schematic.dy(), schematic.dz())) + 1) * 16; float scale = minDimensions / minSize; matrices.scale(scale, scale, 1);