ElementRenderer

This commit is contained in:
2026-03-06 11:41:14 +01:00
parent 27c5bafb6b
commit e07ec5a54a
3 changed files with 20 additions and 16 deletions
@@ -17,9 +17,11 @@ import org.saturnclient.config.manager.ConfigManager;
import org.saturnclient.saturnclient.event.KeyInputHandler; import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.saturnclient.impl.SaturnClientProvider; import org.saturnclient.saturnclient.impl.SaturnClientProvider;
import org.saturnclient.saturnclient.mixin.DrawContextAccessor; import org.saturnclient.saturnclient.mixin.DrawContextAccessor;
import org.saturnclient.ui.ElementRenderer;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.RenderScopeImpl; import org.saturnclient.ui.RenderScopeImpl;
import org.saturnclient.ui.SaturnScreen; import org.saturnclient.ui.SaturnScreen;
import org.saturnclient.ui.components.ElementRendererImpl;
import org.saturnclient.ui.elements.ImageTexture; import org.saturnclient.ui.elements.ImageTexture;
import org.saturnclient.ui.resources.Textures; import org.saturnclient.ui.resources.Textures;
import org.saturnclient.ui.screens.TitleMenu; import org.saturnclient.ui.screens.TitleMenu;
@@ -42,6 +44,8 @@ public class SaturnClient implements ModInitializer {
MinecraftProvider.PROVIDER = new SaturnClientProvider(); MinecraftProvider.PROVIDER = new SaturnClientProvider();
ElementRenderer.INSTANCE = new ElementRendererImpl();
Config.init(); Config.init();
ModManager.init(); ModManager.init();
@@ -6,7 +6,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.saturnclient.saturnclient.mixin.DrawContextAccessor; import org.saturnclient.saturnclient.mixin.DrawContextAccessor;
import org.saturnclient.ui.components.ElementRenderer;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gl.PostEffectProcessor; import net.minecraft.client.gl.PostEffectProcessor;
@@ -55,7 +54,7 @@ public abstract class SaturnScreen extends Screen {
} }
public void draw(Element element) { public void draw(Element element) {
ElementRenderer.draw(elements, element); ElementRenderer.INSTANCE.draw(elements, element);
} }
@Override @Override
@@ -101,7 +100,7 @@ public abstract class SaturnScreen extends Screen {
renderScope.getMatrixStack().scale(0.5f, 0.5f, 0.5f); renderScope.getMatrixStack().scale(0.5f, 0.5f, 0.5f);
ElementRenderer.render(new ArrayList<>(elements), elapsed, renderScope, mouseX, mouseY); ElementRenderer.INSTANCE.render(new ArrayList<>(elements), elapsed, renderScope, mouseX, mouseY);
renderScope.getMatrixStack().pop(); renderScope.getMatrixStack().pop();
} }
@@ -111,7 +110,7 @@ public abstract class SaturnScreen extends Screen {
mouseX *= 2; mouseX *= 2;
mouseY *= 2; mouseY *= 2;
ElementRenderer.mouseClicked(elements, mouseX, mouseY, button); ElementRenderer.INSTANCE.mouseClicked(elements, mouseX, mouseY, button);
return false; return false;
} }
@@ -121,7 +120,7 @@ public abstract class SaturnScreen extends Screen {
mouseX *= 2; mouseX *= 2;
mouseY *= 2; mouseY *= 2;
ElementRenderer.mouseDragged(elements, mouseX, mouseY, button, deltaX, deltaY); ElementRenderer.INSTANCE.mouseDragged(elements, mouseX, mouseY, button, deltaX, deltaY);
return super.mouseReleased(mouseX, mouseY, button); return super.mouseReleased(mouseX, mouseY, button);
} }
@@ -131,7 +130,7 @@ public abstract class SaturnScreen extends Screen {
mouseX *= 2; mouseX *= 2;
mouseY *= 2; mouseY *= 2;
ElementRenderer.mouseReleased(elements, mouseX, mouseY, button); ElementRenderer.INSTANCE.mouseReleased(elements, mouseX, mouseY, button);
return super.mouseReleased(mouseX, mouseY, button); return super.mouseReleased(mouseX, mouseY, button);
} }
@@ -145,7 +144,7 @@ public abstract class SaturnScreen extends Screen {
mouseX *= 2; mouseX *= 2;
mouseY *= 2; mouseY *= 2;
ElementRenderer.mouseScrolled(elements, mouseX, mouseY, horizontalAmount, verticalAmount); ElementRenderer.INSTANCE.mouseScrolled(elements, mouseX, mouseY, horizontalAmount, verticalAmount);
return super.mouseScrolled( return super.mouseScrolled(
mouseX, mouseX,
@@ -162,7 +161,7 @@ public abstract class SaturnScreen extends Screen {
@Override @Override
public boolean keyPressed(int keyCode, int scanCode, int modifiers) { public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
ElementRenderer.keyPressed(elements, keyCode, scanCode, modifiers); ElementRenderer.INSTANCE.keyPressed(elements, keyCode, scanCode, modifiers);
return super.keyPressed(keyCode, scanCode, modifiers); return super.keyPressed(keyCode, scanCode, modifiers);
} }
@@ -5,11 +5,12 @@ import java.util.List;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
import org.saturnclient.ui.ElementRenderer;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.Utils; import org.saturnclient.ui.Utils;
public class ElementRenderer { public class ElementRendererImpl extends ElementRenderer {
public static void draw(List<Element> elements, Element element) { public void draw(List<Element> elements, Element element) {
synchronized (elements) { synchronized (elements) {
elements.add(element); elements.add(element);
} }
@@ -19,7 +20,7 @@ public class ElementRenderer {
} }
} }
public static void render(List<Element> elements, long elapsed, RenderScope renderScope, int mouseX, int mouseY) { public void render(List<Element> elements, long elapsed, RenderScope renderScope, int mouseX, int mouseY) {
for (Element element : elements) { for (Element element : elements) {
element.playAnimationFrame(elapsed); element.playAnimationFrame(elapsed);
@@ -32,7 +33,7 @@ public class ElementRenderer {
} }
} }
public static void mouseClicked(List<Element> elements, double mouseX, double mouseY, int button) { public void mouseClicked(List<Element> elements, double mouseX, double mouseY, int button) {
if (button == 0) { if (button == 0) {
for (Element element : new ArrayList<>(elements)) { for (Element element : new ArrayList<>(elements)) {
element.focused = false; element.focused = false;
@@ -51,7 +52,7 @@ public class ElementRenderer {
} }
} }
public static void mouseScrolled( public void mouseScrolled(
List<Element> elements, List<Element> elements,
double mouseX, double mouseX,
double mouseY, double mouseY,
@@ -69,7 +70,7 @@ public class ElementRenderer {
} }
} }
public static void keyPressed(List<Element> elements, int keyCode, int scanCode, int modifiers) { public void keyPressed(List<Element> elements, int keyCode, int scanCode, int modifiers) {
for (Element element : new ArrayList<>(elements)) { for (Element element : new ArrayList<>(elements)) {
if (element.focused && element.opacity > 0) { if (element.focused && element.opacity > 0) {
element.keyPressed(keyCode, scanCode, modifiers); element.keyPressed(keyCode, scanCode, modifiers);
@@ -82,14 +83,14 @@ public class ElementRenderer {
} }
} }
public static void mouseDragged(List<Element> elements, double mouseX, double mouseY, int button, double deltaX, public void mouseDragged(List<Element> elements, double mouseX, double mouseY, int button, double deltaX,
double deltaY) { double deltaY) {
for (Element element : new ArrayList<>(elements)) { for (Element element : new ArrayList<>(elements)) {
element.mouseDragged(mouseX - element.x, mouseY - element.y, button, deltaX, deltaY); element.mouseDragged(mouseX - element.x, mouseY - element.y, button, deltaX, deltaY);
} }
} }
public static void mouseReleased(List<Element> elements, double mouseX, double mouseY, int button) { public void mouseReleased(List<Element> elements, double mouseX, double mouseY, int button) {
for (Element element : new ArrayList<>(elements)) { for (Element element : new ArrayList<>(elements)) {
element.mouseReleased(mouseX - element.x, mouseY - element.y, button); element.mouseReleased(mouseX - element.x, mouseY - element.y, button);
} }