Improved structure and added RenderScope

This commit is contained in:
2026-03-06 00:29:11 +01:00
parent 86d588ffc4
commit 0f41b2786c
15 changed files with 118 additions and 24 deletions
@@ -0,0 +1,9 @@
package org.saturnclient.common.minecraft;
public class MinecraftBinding {
public Object inner;
public MinecraftBinding(Object binding) {
this.inner = binding;
}
}
@@ -1,9 +0,0 @@
package org.saturnclient.common.minecraft;
public class SaturnIdentifier {
public Object id;
public SaturnIdentifier(String namespace, String path) {
this.id = MinecraftProvider.PROVIDER.createIdentifier(namespace, path);
}
}
@@ -0,0 +1,10 @@
package org.saturnclient.common.minecraft.bindings;
import org.saturnclient.common.minecraft.MinecraftBinding;
import org.saturnclient.common.minecraft.MinecraftProvider;
public class SaturnIdentifier extends MinecraftBinding {
public SaturnIdentifier(String namespace, String path) {
super(MinecraftProvider.PROVIDER.createIdentifier(namespace, path));
}
}
@@ -0,0 +1,9 @@
package org.saturnclient.common.minecraft.bindings;
import org.saturnclient.common.minecraft.MinecraftBinding;
public class SaturnItemStack extends MinecraftBinding {
SaturnItemStack(Object binding) {
super(binding);
}
}
@@ -0,0 +1,9 @@
package org.saturnclient.common.minecraft.bindings;
import org.saturnclient.common.minecraft.MinecraftBinding;
public class SaturnSprite extends MinecraftBinding {
SaturnSprite(Object binding) {
super(binding);
}
}
@@ -3,7 +3,7 @@ package org.saturnclient.config;
import java.io.File; import java.io.File;
import org.saturnclient.common.minecraft.MinecraftProvider; import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.manager.ConfigManager; import org.saturnclient.config.manager.ConfigManager;
import org.saturnclient.config.manager.Key; import org.saturnclient.config.manager.Key;
import org.saturnclient.config.manager.Property; import org.saturnclient.config.manager.Property;
@@ -0,0 +1,66 @@
package org.saturnclient.ui;
import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.common.minecraft.bindings.SaturnItemStack;
import org.saturnclient.common.minecraft.bindings.SaturnSprite;
public interface RenderScope {
public void setOpacity(float alpha);
public int getColor(int color);
public void drawRect(int x, int y, int width, int height, int color);
public void drawText(String text, int x, int y, int font, int color);
public void drawText(float scale, String text, int x, int y, int font, int color);
public void drawRoundedRectangle(int x, int y, int width, int height, int radius, int color);
public int getScaledWindowWidth();
public int getScaledWindowHeight();
/* Saturn common sprites */
public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height, int color);
public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height);
public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height,
int regionWith,
int regionHeight, int textureWidth, int textureHeight);
public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height,
int regionWidth,
int regionHeight, int textureWidth, int textureHeight, int color);
public void enableScissor(int x1, int y1, int x2, int y2);
public void disableScissor();
public boolean scissorContains(int x, int y);
public void draw();
public void drawItem(SaturnItemStack item, int x, int y);
public void drawItem(SaturnItemStack stack, int x, int y, int seed);
public void drawItem(SaturnItemStack stack, int x, int y, int seed, int z);
public void drawItemWithoutEntity(SaturnItemStack stack, int x, int y);
public void drawItemWithoutEntity(SaturnItemStack stack, int x, int y, int seed);
public void drawItem(SaturnItemStack entity, SaturnItemStack stack, int x, int y, int seed);
public void drawSpriteStretched(SaturnSprite sprite, int x, int y, int width, int height);
public void drawSpriteStretched(SaturnSprite sprite, int x, int y, int width, int height, int color);
public void fill(int x1, int y1, int x2, int y2, int color);
public void fill(int x1, int y1, int x2, int y2, int z, int color);
public void drawBorder(int x, int y, int width, int height, int color);
}
@@ -1,6 +1,6 @@
package org.saturnclient.ui.resources; package org.saturnclient.ui.resources;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
public class Textures { public class Textures {
public static final SaturnIdentifier CROSSHAIR_RANGE = new SaturnIdentifier("saturnclient", public static final SaturnIdentifier CROSSHAIR_RANGE = new SaturnIdentifier("saturnclient",
@@ -1,6 +1,6 @@
package org.saturnclient.modules; package org.saturnclient.modules;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.manager.ConfigManager; import org.saturnclient.config.manager.ConfigManager;
import org.saturnclient.config.manager.Property.NamedProperty; import org.saturnclient.config.manager.Property.NamedProperty;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
@@ -11,7 +11,7 @@ import org.joml.Matrix4f;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.mixin.DrawContextAccessor; import org.saturnclient.saturnclient.mixin.DrawContextAccessor;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
@@ -224,7 +224,7 @@ public class RenderScope {
public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height, public void drawTexture(SaturnIdentifier sprite, int x, int y, float u, float v, int width, int height,
int regionWidth, int regionWidth,
int regionHeight, int textureWidth, int textureHeight, int color) { int regionHeight, int textureWidth, int textureHeight, int color) {
this.drawTexturedQuad((Identifier) sprite.id, x, x + width, y, y + height, (u + 0.0F) / (float) textureWidth, this.drawTexturedQuad((Identifier) sprite.inner, x, x + width, y, y + height, (u + 0.0F) / (float) textureWidth,
(u + (float) regionWidth) / (float) textureWidth, (v + 0.0F) / (float) textureHeight, (u + (float) regionWidth) / (float) textureWidth, (v + 0.0F) / (float) textureHeight,
(v + (float) regionHeight) / (float) textureHeight, color); (v + (float) regionHeight) / (float) textureHeight, color);
} }
@@ -1,6 +1,6 @@
package org.saturnclient.ui.components; package org.saturnclient.ui.components;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
@@ -17,7 +17,7 @@ public class CosmeticPreview extends Element {
private boolean isSelected; private boolean isSelected;
public CosmeticPreview(boolean isSelected, SaturnIdentifier sprite, Runnable onClick) { public CosmeticPreview(boolean isSelected, SaturnIdentifier sprite, Runnable onClick) {
this.sprite = (Identifier) sprite.id; this.sprite = (Identifier) sprite.inner;
this.onClick = onClick; this.onClick = onClick;
this.isSelected = isSelected; this.isSelected = isSelected;
@@ -1,7 +1,7 @@
package org.saturnclient.ui.components; package org.saturnclient.ui.components;
import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.Config; import org.saturnclient.config.Config;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
@@ -26,7 +26,7 @@ public class Sidebar extends Element {
public SidebarComponent(SaturnIdentifier sprite, Runnable onClick, boolean end) { public SidebarComponent(SaturnIdentifier sprite, Runnable onClick, boolean end) {
this.onClick = onClick; this.onClick = onClick;
this.end = end; this.end = end;
this.sprite = (Identifier) sprite.id; this.sprite = (Identifier) sprite.inner;
} }
} }
@@ -1,6 +1,6 @@
package org.saturnclient.ui.elements; package org.saturnclient.ui.elements;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
@@ -17,7 +17,7 @@ public class ImageTexture extends Element {
} }
public ImageTexture(SaturnIdentifier sprite) { public ImageTexture(SaturnIdentifier sprite) {
this.sprite = (Identifier) sprite.id; this.sprite = (Identifier) sprite.inner;
} }
@Override @Override
@@ -1,6 +1,6 @@
package org.saturnclient.ui.elements; package org.saturnclient.ui.elements;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
@@ -16,7 +16,7 @@ public class TabMenu extends Element {
public TabMenuComponent(SaturnIdentifier sprite, Runnable onClick) { public TabMenuComponent(SaturnIdentifier sprite, Runnable onClick) {
this.onClick = onClick; this.onClick = onClick;
this.sprite = (Identifier) sprite.id; this.sprite = (Identifier) sprite.inner;
} }
} }
@@ -1,6 +1,6 @@
package org.saturnclient.ui.elements; package org.saturnclient.ui.elements;
import org.saturnclient.common.minecraft.SaturnIdentifier; import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
@@ -15,7 +15,7 @@ public class TextureButton extends Element {
static int padding = 14; static int padding = 14;
public TextureButton(SaturnIdentifier sprite, Runnable onClick) { public TextureButton(SaturnIdentifier sprite, Runnable onClick) {
this.sprite = (Identifier) sprite.id; this.sprite = (Identifier) sprite.inner;
this.onClick = onClick; this.onClick = onClick;
} }