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 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.Key;
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;
import org.saturnclient.common.minecraft.SaturnIdentifier;
import org.saturnclient.common.minecraft.bindings.SaturnIdentifier;
public class Textures {
public static final SaturnIdentifier CROSSHAIR_RANGE = new SaturnIdentifier("saturnclient",
@@ -1,6 +1,6 @@
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.Property.NamedProperty;
import org.saturnclient.ui.RenderScope;
@@ -11,7 +11,7 @@ import org.joml.Matrix4f;
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.mixin.DrawContextAccessor;
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,
int regionWidth,
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,
(v + (float) regionHeight) / (float) textureHeight, color);
}
@@ -1,6 +1,6 @@
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.ui.Element;
import org.saturnclient.ui.ElementContext;
@@ -17,7 +17,7 @@ public class CosmeticPreview extends Element {
private boolean isSelected;
public CosmeticPreview(boolean isSelected, SaturnIdentifier sprite, Runnable onClick) {
this.sprite = (Identifier) sprite.id;
this.sprite = (Identifier) sprite.inner;
this.onClick = onClick;
this.isSelected = isSelected;
@@ -1,7 +1,7 @@
package org.saturnclient.ui.components;
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.Theme;
import org.saturnclient.ui.Element;
@@ -26,7 +26,7 @@ public class Sidebar extends Element {
public SidebarComponent(SaturnIdentifier sprite, Runnable onClick, boolean end) {
this.onClick = onClick;
this.end = end;
this.sprite = (Identifier) sprite.id;
this.sprite = (Identifier) sprite.inner;
}
}
@@ -1,6 +1,6 @@
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.ElementContext;
import org.saturnclient.ui.RenderScope;
@@ -17,7 +17,7 @@ public class ImageTexture extends Element {
}
public ImageTexture(SaturnIdentifier sprite) {
this.sprite = (Identifier) sprite.id;
this.sprite = (Identifier) sprite.inner;
}
@Override
@@ -1,6 +1,6 @@
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.ui.Element;
import org.saturnclient.ui.ElementContext;
@@ -16,7 +16,7 @@ public class TabMenu extends Element {
public TabMenuComponent(SaturnIdentifier sprite, Runnable onClick) {
this.onClick = onClick;
this.sprite = (Identifier) sprite.id;
this.sprite = (Identifier) sprite.inner;
}
}
@@ -1,6 +1,6 @@
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.ui.Element;
import org.saturnclient.ui.ElementContext;
@@ -15,7 +15,7 @@ public class TextureButton extends Element {
static int padding = 14;
public TextureButton(SaturnIdentifier sprite, Runnable onClick) {
this.sprite = (Identifier) sprite.id;
this.sprite = (Identifier) sprite.inner;
this.onClick = onClick;
}