From 0f3b9e82174b375cdc2b33bc2d082d34d563ff77 Mon Sep 17 00:00:00 2001 From: LatvianModder Date: Sun, 23 Jun 2024 09:38:00 +0300 Subject: [PATCH] Added dynamic highlight thickness, made `global` immutable from client and server scripts --- .../java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java | 3 ++- .../dev/latvian/mods/kubejs/kubedex/KubedexHighlight.java | 1 + .../assets/minecraft/shaders/program/kubejs/highlight.fsh | 5 +++-- .../assets/minecraft/shaders/program/kubejs/highlight.json | 6 ++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java b/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java index 22cfa089a..cd8b9de9e 100644 --- a/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java +++ b/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java @@ -209,6 +209,7 @@ import java.time.Duration; import java.time.temporal.TemporalAmount; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -375,7 +376,7 @@ public void registerClasses(ClassFilter filter) { @Override public void registerBindings(BindingRegistry bindings) { - bindings.add("global", GLOBAL); + bindings.add("global", bindings.type().isStartup() ? GLOBAL : Collections.unmodifiableMap(GLOBAL)); bindings.add("Platform", PlatformWrapper.class); bindings.add("console", bindings.type().console); diff --git a/src/main/java/dev/latvian/mods/kubejs/kubedex/KubedexHighlight.java b/src/main/java/dev/latvian/mods/kubejs/kubedex/KubedexHighlight.java index 3a03b8731..6d0d576fa 100644 --- a/src/main/java/dev/latvian/mods/kubejs/kubedex/KubedexHighlight.java +++ b/src/main/java/dev/latvian/mods/kubejs/kubedex/KubedexHighlight.java @@ -447,6 +447,7 @@ public void afterEverything(Minecraft mc, GuiGraphics graphics, float delta) { graphics.flush(); + postChain.setUniform("OutlineSize", (float) mc.getWindow().getGuiScale()); postChain.process(delta); mc.getMainRenderTarget().bindWrite(false); diff --git a/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.fsh b/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.fsh index a63c38697..1d2e1b484 100644 --- a/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.fsh +++ b/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.fsh @@ -3,6 +3,7 @@ uniform sampler2D DiffuseSampler; uniform sampler2D DiffuseDepthSampler; uniform sampler2D MCDepthSampler; +uniform float OutlineSize; in vec2 texCoord; in vec2 sampleStep; @@ -32,8 +33,8 @@ void main() { float g = 1.0; float b = 1.0; - for (float i = -2.0; i <= 2.0; i += 1.0) { - for (float j = -2.0; j <= 2.0; j += 1.0) { + for (float i = -OutlineSize; i <= OutlineSize; i += 1.0) { + for (float j = -OutlineSize; j <= OutlineSize; j += 1.0) { vec4 c = texture(DiffuseSampler, texCoord + vec2(i, j) * sampleStep); if (c.a > 0.005) { diff --git a/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.json b/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.json index 88d0429d3..75f95fd6f 100644 --- a/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.json +++ b/src/main/resources/assets/minecraft/shaders/program/kubejs/highlight.json @@ -36,6 +36,12 @@ "type": "float", "count": 2, "values": [1.0, 1.0] + }, + { + "name": "OutlineSize", + "type": "float", + "count": 1, + "values": [1.0] } ] }