From 701f9be40451cd303137283f6646d730c7d4f567 Mon Sep 17 00:00:00 2001 From: Little1Yuan <3435578673@qq.com> Date: Sat, 11 Jul 2026 19:34:08 +0800 Subject: [PATCH] refactor: migrate from custom preprocessor to StoneCutter standard syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove Groovy-based preprocessing logic from build.gradle to eliminate duplicate generated files in versions/*/build/generated/java, which caused IDE errors (resources remain handled by existing text processing) - Convert all legacy preprocessor directives to StoneCutter-compatible syntax: - //#if MC >= xx → //? if >= xx { - //#elseif MC >= xx → //? } elif >= xx { (Applied via regex batch replacement with manual fixes for edge cases) - Bump StoneCutter plugin from 0.9.2 to 0.9.6 With these changes, the StoneCutter Dev plugin can now correctly resolve conditional code blocks. Switching the active version via the plugin's tool window automatically comments out other versions' code, preventing IDE red-underlines and ensuring a smooth development experience. --- build.gradle | 8 - gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 45457 -> 48462 bytes gradle/wrapper/gradle-wrapper.properties | 2 + gradlew | 2 +- gradlew.bat | 31 +- settings.gradle | 10 +- .../reglass/client/ContainerColorContext.java | 8 +- .../reglass/client/LiquidGlassPipelines.java | 52 +- .../client/LiquidGlassPrecomputeRuntime.java | 216 ++++---- .../reglass/client/LiquidGlassUniforms.java | 222 ++++---- .../reglass/client/LiquidGlassWidget.java | 64 +-- .../reglass/client/ReGlassClient.java | 194 +++---- .../reglass/client/api/ReGlassApi.java | 88 ++-- .../gui/LiquidGlassGuiElementRenderState.java | 40 +- .../gui/LiquidGlassGuiElementRenderer.java | 32 +- .../screen/config/ReGlassConfigScreen.java | 484 +++++++++--------- .../screen/widget/ClickableEntryWidget.java | 24 +- .../screen/widget/ScrollableListWidget.java | 80 +-- .../widget/world/WorldListEntryWidget.java | 112 ++-- .../screen/world/CustomWorldSelectScreen.java | 192 +++---- .../reglass/client/ui/MappedSlider.java | 56 +- .../accessor/BeaconScreenButtonAccessor.java | 30 +- .../mixin/accessor/DrawContextAccessor.java | 24 +- .../mixin/accessor/GameRendererAccessor.java | 8 +- .../accessor/GuiRenderStateAccessor.java | 8 +- .../mixin/accessor/GuiRendererAccessor.java | 16 +- .../mixin/accessor/OptionsAccessor.java | 24 +- .../accessor/ShulkerBoxMenuAccessor.java | 24 +- .../mixin/accessor/SliderWidgetAccessor.java | 16 +- .../reglass/mixin/accessor/SlotAccessor.java | 8 +- .../TextIconButtonWidgetAccessor.java | 8 +- .../client/AbstractContainerScreenMixin.java | 350 ++++++------- .../mixin/client/AnvilScreenMixin.java | 56 +- .../mixin/client/BeaconPowerButtonMixin.java | 72 +-- .../mixin/client/BeaconScreenMixin.java | 188 +++---- .../mixin/client/BrewingStandScreenMixin.java | 64 +-- .../CreativeModeInventoryScreenMixin.java | 124 ++--- .../mixin/client/EnchantmentScreenMixin.java | 36 +- .../mixin/client/GuiRendererMixin.java | 24 +- .../reglass/mixin/client/InGameHudMixin.java | 172 +++---- .../mixin/client/InventoryScreenMixin.java | 32 +- .../reglass/mixin/client/LoomScreenMixin.java | 44 +- .../mixin/client/MerchantScreenMixin.java | 92 ++-- .../mixin/client/MinecraftClientMixin.java | 16 +- .../client/RecipeBookComponentMixin.java | 64 +-- .../client/RecipeBookTabButtonMixin.java | 72 +-- .../reglass/mixin/client/ScreenMixin.java | 44 +- .../mixin/client/ShulkerBoxBlockMixin.java | 16 +- .../mixin/client/StonecutterScreenMixin.java | 36 +- .../mixin/client/TitleScreenMixin.java | 24 +- .../mixin/logical/GameRendererMixin.java | 166 +++--- .../mixin/widgets/DrawContextMixin.java | 296 +++++------ .../mixin/widgets/GuiRendererMixin.java | 24 +- .../mixin/widgets/SliderWidgetMixin.java | 64 +-- .../mixin/widgets/TooltipStateMixin.java | 18 +- 56 files changed, 2085 insertions(+), 2094 deletions(-) diff --git a/build.gradle b/build.gradle index 3e2f3c9..c14518a 100644 --- a/build.gradle +++ b/build.gradle @@ -52,9 +52,7 @@ dependencies { sourceSets { main { - def generatedJava = layout.buildDirectory.dir("generated/reglass/main/java") def generatedResources = layout.buildDirectory.dir("generated/reglass/main/resources") - java.setSrcDirs(files(generatedJava)) resources.setSrcDirs(files(generatedResources)) if (!project.minecraft_version.startsWith("1.")) { java { @@ -163,18 +161,12 @@ def preprocessReglassTree = { File input, File output, String minecraftVersion - } def preprocessReglassSources = tasks.register('preprocessReglassSources') { - def generatedJava = layout.buildDirectory.dir("generated/reglass/main/java") def generatedResources = layout.buildDirectory.dir("generated/reglass/main/resources") - inputs.dir(rootProject.file('src/main/java')) inputs.dir(rootProject.file('src/main/resources')) - outputs.dir(generatedJava) outputs.dir(generatedResources) doLast { - def javaOutput = generatedJava.get().asFile def resourcesOutput = generatedResources.get().asFile - javaOutput.deleteDir() resourcesOutput.deleteDir() - preprocessReglassTree(rootProject.file('src/main/java'), javaOutput, project.minecraft_version) preprocessReglassTree(rootProject.file('src/main/resources'), resourcesOutput, project.minecraft_version) } } diff --git a/gradle.properties b/gradle.properties index 4830eae..6dfe06b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false dev.kikugie.stonecutter.hard_mode=true # Build Plugins -stonecutter_version=0.9.3 +stonecutter_version=0.9.6 # Mod Properties mod_version=2.0 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8bdaf60c75ab801e22807dde59e12a8735a34077..b1b8ef56b44f16b14dc800fa8103a6d89abb526f 100644 GIT binary patch delta 39796 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ɵ=r6CZm*ctobRli@Q9X4qo$){P6@xZ0Eq-I) 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%0Aonjyf`q#Bg+;H(_UceX22V^&|e4K_eG#r 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 I`1hxO0p@%Q`v3p{ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1a70468..b52fb7e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,6 +2,8 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index adff685..b9bb139 100755 --- a/gradlew +++ b/gradlew @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/gradlew.bat b/gradlew.bat index c4bdd3a..24c62d5 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -23,8 +23,8 @@ @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. @@ -51,7 +51,7 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% @@ -65,7 +65,7 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :execute @rem Setup the command line @@ -73,21 +73,10 @@ goto fail @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/settings.gradle b/settings.gradle index 3806737..943c648 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,6 +6,10 @@ pluginManagement { } mavenCentral() gradlePluginPortal() + maven { + url = "https://maven.kikugie.dev/snapshots" + name = "KikuGie Snapshots" + } } } @@ -16,7 +20,11 @@ plugins { rootProject.name = 'ReGlass' stonecutter { + // Enable Groovy DSL, as Stonecutter uses Kotlin by default + kotlinController = false + centralScript = "build.gradle" + create(getRootProject()) { versions '26.2', '26.1', '1.21.11' } -} +} \ No newline at end of file diff --git a/src/main/java/restudio/reglass/client/ContainerColorContext.java b/src/main/java/restudio/reglass/client/ContainerColorContext.java index 62e39d4..bd7b4cf 100644 --- a/src/main/java/restudio/reglass/client/ContainerColorContext.java +++ b/src/main/java/restudio/reglass/client/ContainerColorContext.java @@ -1,10 +1,10 @@ package restudio.reglass.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.world.item.DyeColor; -//#else -import net.minecraft.util.DyeColor; -//#endif +//? } else { +/*import net.minecraft.util.DyeColor; +*///? } public final class ContainerColorContext { private static DyeColor lastShulkerColor; diff --git a/src/main/java/restudio/reglass/client/LiquidGlassPipelines.java b/src/main/java/restudio/reglass/client/LiquidGlassPipelines.java index e2f5fe9..f815235 100644 --- a/src/main/java/restudio/reglass/client/LiquidGlassPipelines.java +++ b/src/main/java/restudio/reglass/client/LiquidGlassPipelines.java @@ -1,27 +1,27 @@ package restudio.reglass.client; import com.mojang.blaze3d.pipeline.RenderPipeline; -//#if MC >= 26.2 +//? if >= 26.2 { import com.mojang.blaze3d.PrimitiveTopology; import com.mojang.blaze3d.pipeline.BindGroupLayout; import com.mojang.blaze3d.pipeline.ColorTargetState; -//#elseif MC >= 26 -import com.mojang.blaze3d.pipeline.DepthStencilState; +//? } elif >= 26 { +/*import com.mojang.blaze3d.pipeline.DepthStencilState; import com.mojang.blaze3d.platform.CompareOp; -//#else -import com.mojang.blaze3d.platform.DepthTestFunction; -//#endif +*///? } else { +/*import com.mojang.blaze3d.platform.DepthTestFunction; +*///? } import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexFormat; -//#if MC >= 26 +//? if >= 26 { import com.mojang.blaze3d.shaders.UniformType; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import net.minecraft.resources.Identifier; -//#else -import net.minecraft.client.gl.UniformType; +//? } else { +/*import net.minecraft.client.gl.UniformType; import net.minecraft.client.render.VertexFormats; import net.minecraft.util.Identifier; -//#endif +*///? } public final class LiquidGlassPipelines { private static RenderPipeline LIQUID_GLASS_GUI; @@ -31,16 +31,16 @@ private LiquidGlassPipelines() {} public static synchronized RenderPipeline getGuiPipeline() { if (LIQUID_GLASS_GUI == null) { RenderPipeline.Builder b = RenderPipeline.builder() -//#if MC >= 26 +//? if >= 26 { .withLocation(Identifier.fromNamespaceAndPath("reglass", "pipeline/liquid_glass_gui")) .withVertexShader(Identifier.fromNamespaceAndPath("reglass", "core/blit_fullscreen")) .withFragmentShader(Identifier.fromNamespaceAndPath("reglass", "program/liquid_glass_gui")) -//#else - .withLocation(Identifier.of("reglass", "pipeline/liquid_glass_gui")) +//? } else { + /*.withLocation(Identifier.of("reglass", "pipeline/liquid_glass_gui")) .withVertexShader(Identifier.of("reglass", "core/blit_fullscreen")) .withFragmentShader(Identifier.of("reglass", "program/liquid_glass_gui")) -//#endif -//#if MC >= 26.2 +*///? } +//? if >= 26.2 { //Vulkan requires pipeline layouts to match actual shader bindings //unused entries can break pipeline creation .withBindGroupLayout( @@ -62,8 +62,8 @@ public static synchronized RenderPipeline getGuiPipeline() { //Minecraft leaves the no-depth Vulkan pipeline variant invalid, which can crash when bound. //the blend attachment still has to match the color target format .withColorTargetState(ColorTargetState.DEFAULT); -//#else - .withUniform("Projection", UniformType.UNIFORM_BUFFER) +//? } else { + /*.withUniform("Projection", UniformType.UNIFORM_BUFFER) .withUniform("SamplerInfo", UniformType.UNIFORM_BUFFER) .withUniform("CustomUniforms", UniformType.UNIFORM_BUFFER) .withUniform("WidgetInfo", UniformType.UNIFORM_BUFFER) @@ -74,22 +74,22 @@ public static synchronized RenderPipeline getGuiPipeline() { .withSampler("Sampler3") .withSampler("Sampler4") .withSampler("Sampler5") -//#if MC >= 26 +//? if >= 26 { .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) .withVertexFormat(DefaultVertexFormat.POSITION, VertexFormat.Mode.QUADS); -//#else - .withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST) +//? } else { + /^.withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST) .withDepthWrite(false) .withVertexFormat(VertexFormats.POSITION, VertexFormat.DrawMode.QUADS); -//#endif -//#endif +^///? } +*///? } LIQUID_GLASS_GUI = b.build(); -//#if MC >= 26.2 +//? if >= 26.2 { RenderSystem.getDevice().precompilePipeline(LIQUID_GLASS_GUI); -//#else - RenderSystem.getDevice().precompilePipeline(LIQUID_GLASS_GUI, null); -//#endif +//? } else { + /*RenderSystem.getDevice().precompilePipeline(LIQUID_GLASS_GUI, null); +*///? } } return LIQUID_GLASS_GUI; } diff --git a/src/main/java/restudio/reglass/client/LiquidGlassPrecomputeRuntime.java b/src/main/java/restudio/reglass/client/LiquidGlassPrecomputeRuntime.java index 3a0471b..db986b3 100644 --- a/src/main/java/restudio/reglass/client/LiquidGlassPrecomputeRuntime.java +++ b/src/main/java/restudio/reglass/client/LiquidGlassPrecomputeRuntime.java @@ -2,53 +2,53 @@ import com.mojang.blaze3d.buffers.GpuBuffer; import com.mojang.blaze3d.buffers.Std140Builder; -//#if MC >= 26.2 +//? if >= 26.2 { import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.PrimitiveTopology; import com.mojang.blaze3d.pipeline.BindGroupLayout; import com.mojang.blaze3d.pipeline.ColorTargetState; -//#elseif MC >= 26 -import com.mojang.blaze3d.pipeline.DepthStencilState; +//? } elif >= 26 { +/*import com.mojang.blaze3d.pipeline.DepthStencilState; import com.mojang.blaze3d.platform.CompareOp; -//#endif +*///? } import com.mojang.blaze3d.pipeline.RenderPipeline; -//#if MC < 26 -import com.mojang.blaze3d.platform.DepthTestFunction; -//#endif +//? if < 26 { +/*import com.mojang.blaze3d.platform.DepthTestFunction; +*///? } import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.FilterMode; import com.mojang.blaze3d.textures.GpuTexture; import com.mojang.blaze3d.textures.GpuTextureView; -//#if MC < 26.2 -import com.mojang.blaze3d.textures.TextureFormat; -//#endif +//? if < 26.2 { +/*import com.mojang.blaze3d.textures.TextureFormat; +*///? } import com.mojang.blaze3d.vertex.VertexFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -//#if MC >= 26.2 +//? if >= 26.2 { import java.util.Optional; -//#else -import java.util.OptionalInt; -//#endif -//#if MC >= 26 +//? } else { +/*import java.util.OptionalInt; +*///? } +//? if >= 26 { import net.minecraft.client.Minecraft; import com.mojang.blaze3d.shaders.UniformType; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.UniformType; -//#endif +*///? } import net.minecraft.client.gui.render.GuiRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.GameRenderer; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import net.minecraft.resources.Identifier; -//#else -import net.minecraft.client.render.GameRenderer; +//? } else { +/*import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.VertexFormats; import net.minecraft.util.Identifier; -//#endif +*///? } import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.gui.QuadVertexBufferProvider; import restudio.reglass.mixin.accessor.GameRendererAccessor; @@ -77,27 +77,27 @@ public static LiquidGlassPrecomputeRuntime get() { private List requestedRadii = new ArrayList<>(); -//#if MC >= 26 +//? if >= 26 { private static final Identifier VS_ID = Identifier.fromNamespaceAndPath("reglass", "core/blit_fullscreen"); private static final Identifier BLUR_ID = Identifier.fromNamespaceAndPath("reglass", "program/blur"); -//#else - private static final Identifier VS_ID = Identifier.of("reglass", "core/blit_fullscreen"); +//? } else { + /*private static final Identifier VS_ID = Identifier.of("reglass", "core/blit_fullscreen"); private static final Identifier BLUR_ID = Identifier.of("reglass", "program/blur"); -//#endif +*///? } private LiquidGlassPrecomputeRuntime() {} private void ensurePipelines() { if (blurPipeline == null) { blurPipeline = RenderPipeline.builder() -//#if MC >= 26 +//? if >= 26 { .withLocation(Identifier.fromNamespaceAndPath("reglass", "pipeline/blur")) -//#else - .withLocation(Identifier.of("reglass", "pipeline/blur")) -//#endif +//? } else { + /*.withLocation(Identifier.of("reglass", "pipeline/blur")) +*///? } .withVertexShader(VS_ID) .withFragmentShader(BLUR_ID) -//#if MC >= 26.2 +//? if >= 26.2 { .withBindGroupLayout( BindGroupLayout.builder() .withUniform("SamplerInfo", UniformType.UNIFORM_BUFFER) @@ -108,26 +108,26 @@ private void ensurePipelines() { .withVertexBinding(0, DefaultVertexFormat.POSITION) .withPrimitiveTopology(PrimitiveTopology.QUADS) .withColorTargetState(ColorTargetState.DEFAULT) -//#else - .withUniform("Projection", UniformType.UNIFORM_BUFFER) +//? } else { + /*.withUniform("Projection", UniformType.UNIFORM_BUFFER) .withUniform("SamplerInfo", UniformType.UNIFORM_BUFFER) .withUniform("Config", UniformType.UNIFORM_BUFFER) .withSampler("DiffuseSampler") -//#if MC >= 26 +//? if >= 26 { .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) .withVertexFormat(DefaultVertexFormat.POSITION, VertexFormat.Mode.QUADS) -//#else - .withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST) +//? } else { + /^.withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST) .withDepthWrite(false) .withVertexFormat(VertexFormats.POSITION, VertexFormat.DrawMode.QUADS) -//#endif -//#endif +^///? } +*///? } .build(); -//#if MC >= 26.2 +//? if >= 26.2 { RenderSystem.getDevice().precompilePipeline(blurPipeline); -//#else - RenderSystem.getDevice().precompilePipeline(blurPipeline, null); -//#endif +//? } else { + /*RenderSystem.getDevice().precompilePipeline(blurPipeline, null); +*///? } } if (samplerInfoUbo == null) { @@ -149,11 +149,11 @@ private void ensureTempTarget(int w, int h) { if (blurTempView != null) blurTempView.close(); blurTempTex.close(); } -//#if MC >= 26.2 +//? if >= 26.2 { blurTempTex = RenderSystem.getDevice().createTexture("reglass blurTemp", 12, GpuFormat.RGBA8_UNORM, w, h, 1, 1); -//#else - blurTempTex = RenderSystem.getDevice().createTexture("reglass blurTemp", 12, TextureFormat.RGBA8, w, h, 1, 1); -//#endif +//? } else { + /*blurTempTex = RenderSystem.getDevice().createTexture("reglass blurTemp", 12, TextureFormat.RGBA8, w, h, 1, 1); +*///? } blurTempView = RenderSystem.getDevice().createTextureView(blurTempTex); } } @@ -166,11 +166,11 @@ private void ensureOutputForRadius(int w, int h, int radius) { if (old != null) old.close(); tex.close(); } -//#if MC >= 26.2 +//? if >= 26.2 { GpuTexture newTex = RenderSystem.getDevice().createTexture("reglass blurred r=" + radius, 12, GpuFormat.RGBA8_UNORM, w, h, 1, 1); -//#else - GpuTexture newTex = RenderSystem.getDevice().createTexture("reglass blurred r=" + radius, 12, TextureFormat.RGBA8, w, h, 1, 1); -//#endif +//? } else { + /*GpuTexture newTex = RenderSystem.getDevice().createTexture("reglass blurred r=" + radius, 12, TextureFormat.RGBA8, w, h, 1, 1); +*///? } GpuTextureView newView = RenderSystem.getDevice().createTextureView(newTex); blurredByRadius.put(radius, newTex); blurredViewByRadius.put(radius, newView); @@ -195,11 +195,11 @@ private static float[] gaussian(int radius) { private void uploadBlur(GpuBuffer ubo, float dx, float dy, int radius) { radius = Math.max(0, Math.min(radius, MAX_RADIUS)); float[] weights = gaussian(radius); -//#if MC >= 26.2 +//? if >= 26.2 { try (var map = ubo.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(ubo, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(ubo, false, true)) { +*///? } Std140Builder b = Std140Builder.intoBuffer(map.data()); b.putVec4(dx, dy, (float) radius, 0f); for (int i = 0; i <= MAX_RADIUS; i++) { @@ -217,30 +217,30 @@ public void setRequestedRadii(List ordered) { public void run() { ensurePipelines(); -//#if MC >= 26.2 +//? if >= 26.2 { var mc = Minecraft.getInstance(); var main = mc.gameRenderer.mainRenderTarget(); int w = main.width; int h = main.height; -//#elseif MC >= 26 - var mc = Minecraft.getInstance(); +//? } elif >= 26 { + /*var mc = Minecraft.getInstance(); var main = mc.getMainRenderTarget(); int w = main.width; int h = main.height; -//#else - var mc = MinecraftClient.getInstance(); +*///? } else { + /*var mc = MinecraftClient.getInstance(); var main = mc.getFramebuffer(); int w = main.textureWidth; int h = main.textureHeight; -//#endif +*///? } ensureTempTarget(w, h); -//#if MC >= 26.2 +//? if >= 26.2 { try (var map = samplerInfoUbo.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(samplerInfoUbo, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(samplerInfoUbo, false, true)) { +*///? } Std140Builder.intoBuffer(map.data()).putVec2((float) w, (float) h).putVec2((float) w, (float) h); } @@ -248,98 +248,98 @@ public void run() { GameRenderer gameRenderer = mc.gameRenderer; GuiRenderer guiRenderer = ((GameRendererAccessor) gameRenderer).getGuiRenderer(); var quadVB = ((QuadVertexBufferProvider) guiRenderer).getQuadVertexBuffer(); -//#if MC >= 26.2 +//? if >= 26.2 { var idxInfo = RenderSystem.getSequentialBuffer(PrimitiveTopology.QUADS); var ib = idxInfo.getBuffer(6); var it = idxInfo.type(); -//#elseif MC >= 26 - var idxInfo = RenderSystem.getSequentialBuffer(VertexFormat.Mode.QUADS); +//? } elif >= 26 { + /*var idxInfo = RenderSystem.getSequentialBuffer(VertexFormat.Mode.QUADS); var ib = idxInfo.getBuffer(6); var it = idxInfo.type(); -//#else - var idxInfo = RenderSystem.getSequentialBuffer(VertexFormat.DrawMode.QUADS); +*///? } else { + /*var idxInfo = RenderSystem.getSequentialBuffer(VertexFormat.DrawMode.QUADS); var ib = idxInfo.getIndexBuffer(6); var it = idxInfo.getIndexType(); -//#endif +*///? } int max = Math.min(LiquidGlassUniforms.MAX_BLUR_LEVELS, requestedRadii == null ? 0 : requestedRadii.size()); if (max == 0) { -//#if MC >= 26 +//? if >= 26 { int r = Math.max(1, ReGlassConfig.INSTANCE.defaultBlurRadius); -//#else - int r = ReGlassConfig.INSTANCE.defaultBlurRadius; -//#endif +//? } else { + /*int r = ReGlassConfig.INSTANCE.defaultBlurRadius; +*///? } requestedRadii = List.of(r); max = 1; } for (int k = 0; k < max; k++) { -//#if MC >= 26 +//? if >= 26 { int radius = Math.max(1, requestedRadii.get(k)); -//#else - int radius = requestedRadii.get(k); +//? } else { + /*int radius = requestedRadii.get(k); if (radius <= 0) { continue; } -//#endif +*///? } ensureOutputForRadius(w, h, radius); uploadBlur(blurConfigUboX, 1f, 0f, radius); uploadBlur(blurConfigUboY, 0f, 1f, radius); -//#if MC >= 26.2 +//? if >= 26.2 { try (RenderPass pass = ce.createRenderPass(() -> "reglass blur X r=" + radius, blurTempView, Optional.empty())) { -//#else - try (RenderPass pass = ce.createRenderPass(() -> "reglass blur X r=" + radius, blurTempView, OptionalInt.empty())) { -//#endif +//? } else { + /*try (RenderPass pass = ce.createRenderPass(() -> "reglass blur X r=" + radius, blurTempView, OptionalInt.empty())) { +*///? } pass.setPipeline(blurPipeline); -//#if MC < 26.2 - RenderSystem.bindDefaultUniforms(pass); -//#endif +//? if < 26.2 { + /*RenderSystem.bindDefaultUniforms(pass); +*///? } pass.setUniform("SamplerInfo", samplerInfoUbo); pass.setUniform("Config", blurConfigUboX); -//#if MC >= 26 +//? if >= 26 { pass.bindTexture("DiffuseSampler", main.getColorTextureView(), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); -//#else - pass.bindTexture("DiffuseSampler", main.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); -//#endif -//#if MC >= 26.2 +//? } else { + /*pass.bindTexture("DiffuseSampler", main.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); +*///? } +//? if >= 26.2 { pass.setVertexBuffer(0, quadVB.slice()); pass.setIndexBuffer(ib, it); pass.drawIndexed(6, 1, 0, 0, 0); -//#else - pass.setVertexBuffer(0, quadVB); +//? } else { + /*pass.setVertexBuffer(0, quadVB); pass.setIndexBuffer(ib, it); pass.drawIndexed(0, 0, 6, 1); -//#endif +*///? } } -//#if MC >= 26.2 +//? if >= 26.2 { try (RenderPass pass = ce.createRenderPass(() -> "reglass blur Y r=" + radius, blurredViewByRadius.get(radius), Optional.empty())) { -//#else - try (RenderPass pass = ce.createRenderPass(() -> "reglass blur Y r=" + radius, blurredViewByRadius.get(radius), OptionalInt.empty())) { -//#endif +//? } else { + /*try (RenderPass pass = ce.createRenderPass(() -> "reglass blur Y r=" + radius, blurredViewByRadius.get(radius), OptionalInt.empty())) { +*///? } pass.setPipeline(blurPipeline); -//#if MC < 26.2 - RenderSystem.bindDefaultUniforms(pass); -//#endif +//? if < 26.2 { + /*RenderSystem.bindDefaultUniforms(pass); +*///? } pass.setUniform("SamplerInfo", samplerInfoUbo); pass.setUniform("Config", blurConfigUboY); -//#if MC >= 26 +//? if >= 26 { pass.bindTexture("DiffuseSampler", blurTempView, RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); -//#else - pass.bindTexture("DiffuseSampler", blurTempView, RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); -//#endif -//#if MC >= 26.2 +//? } else { + /*pass.bindTexture("DiffuseSampler", blurTempView, RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); +*///? } +//? if >= 26.2 { pass.setVertexBuffer(0, quadVB.slice()); pass.setIndexBuffer(ib, it); pass.drawIndexed(6, 1, 0, 0, 0); -//#else - pass.setVertexBuffer(0, quadVB); +//? } else { + /*pass.setVertexBuffer(0, quadVB); pass.setIndexBuffer(ib, it); pass.drawIndexed(0, 0, 6, 1); -//#endif +*///? } } } } diff --git a/src/main/java/restudio/reglass/client/LiquidGlassUniforms.java b/src/main/java/restudio/reglass/client/LiquidGlassUniforms.java index bc6835d..86161ff 100644 --- a/src/main/java/restudio/reglass/client/LiquidGlassUniforms.java +++ b/src/main/java/restudio/reglass/client/LiquidGlassUniforms.java @@ -8,18 +8,18 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.util.ARGB; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.ScreenRect; import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.util.math.ColorHelper; -//#endif +*///? } import org.joml.Vector3f; import org.joml.Vector4f; import org.lwjgl.glfw.GLFW; @@ -27,17 +27,17 @@ import restudio.reglass.client.api.WidgetStyle; import restudio.reglass.client.gui.LiquidGlassGuiElementRenderState; import restudio.reglass.client.runtime.ReGlassAnim; -//#if MC < 26 -import restudio.reglass.mixin.accessor.GuiRenderStateAccessor; -//#endif +//? if < 26 { +/*import restudio.reglass.mixin.accessor.GuiRenderStateAccessor; +*///? } public final class LiquidGlassUniforms { private static final LiquidGlassUniforms INSTANCE = new LiquidGlassUniforms(); public static final int MAX_WIDGETS = 64; -//#if MC < 26 - public static final int MAX_LAYERS = 16; -//#endif +//? if < 26 { + /*public static final int MAX_LAYERS = 16; +*///? } public static final int MAX_BLUR_LEVELS = 5; public static LiquidGlassUniforms get() { return INSTANCE; } @@ -52,9 +52,9 @@ public final class LiquidGlassUniforms { private List usedBlurRadiiOrdered = new ArrayList<>(); private final HashMap blurRadiusToIndex = new HashMap<>(); -//#if MC >= 26 +//? if >= 26 { private static final int MAX_LAYERS = 16; -//#endif +//? } private static final class FadeState { float hover; @@ -107,33 +107,33 @@ public void beginFrame(double dtSeconds) { this.dtSeconds = Math.max(0.0, dtSeconds); } -//#if MC >= 26 +//? if >= 26 { public boolean screenWantsBlur() { return this.screenWantsBlur; } -//#endif +//? } public void setScreenWantsBlur(boolean wantsBlur) { this.screenWantsBlur = wantsBlur; } public void uploadSharedUniforms() { -//#if MC >= 26 +//? if >= 26 { Minecraft mc = Minecraft.getInstance(); -//#if MC >= 26.2 +//? if >= 26.2 { int outW = mc.gameRenderer.mainRenderTarget().width; int outH = mc.gameRenderer.mainRenderTarget().height; -//#else - int outW = mc.getMainRenderTarget().width; +//? } else { + /*int outW = mc.getMainRenderTarget().width; int outH = mc.getMainRenderTarget().height; -//#endif -//#else - MinecraftClient mc = MinecraftClient.getInstance(); +*///? } +//? } else { + /*MinecraftClient mc = MinecraftClient.getInstance(); int outW = mc.getFramebuffer().textureWidth; int outH = mc.getFramebuffer().textureHeight; -//#endif +*///? } -//#if MC >= 26.2 +//? if >= 26.2 { try (var map = samplerInfo.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(samplerInfo, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(samplerInfo, false, true)) { +*///? } Std140Builder b = Std140Builder.intoBuffer(map.data()); b.putVec2((float) outW, (float) outH); b.putVec2((float) outW, (float) outH); @@ -141,28 +141,28 @@ public void uploadSharedUniforms() { double[] mx = new double[1]; double[] my = new double[1]; -//#if MC >= 26 +//? if >= 26 { GLFW.glfwGetCursorPos(mc.getWindow().handle(), mx, my); float scale = (float) mc.getWindow().getGuiScale(); -//#if MC >= 26.2 +//? if >= 26.2 { int fbH = mc.gameRenderer.mainRenderTarget().height; -//#else - int fbH = mc.getMainRenderTarget().height; -//#endif -//#else - GLFW.glfwGetCursorPos(mc.getWindow().getHandle(), mx, my); +//? } else { + /*int fbH = mc.getMainRenderTarget().height; +*///? } +//? } else { + /*GLFW.glfwGetCursorPos(mc.getWindow().getHandle(), mx, my); float scale = (float) mc.getWindow().getScaleFactor(); int fbH = mc.getFramebuffer().textureHeight; -//#endif +*///? } float time = (float) GLFW.glfwGetTime(); ReGlassConfig config = ReGlassConfig.INSTANCE; -//#if MC >= 26.2 +//? if >= 26.2 { try (var map = customUniforms.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(customUniforms, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(customUniforms, false, true)) { +*///? } Std140Builder b = Std140Builder.intoBuffer(map.data()); b.putFloat(time); b.align(16); @@ -175,11 +175,11 @@ public void uploadSharedUniforms() { b.putVec3(new Vector3f(dir2.x, dir2.y, 0.0f)); b.align(16); int rc = config.rimLight.color(); -//#if MC >= 26 +//? if >= 26 { b.putVec4(ARGB.red(rc) / 255f, ARGB.green(rc) / 255f, ARGB.blue(rc) / 255f, config.rimLight.intensity()); -//#else - b.putVec4(ColorHelper.getRed(rc) / 255f, ColorHelper.getGreen(rc) / 255f, ColorHelper.getBlue(rc) / 255f, config.rimLight.intensity()); -//#endif +//? } else { + /*b.putVec4(ColorHelper.getRed(rc) / 255f, ColorHelper.getGreen(rc) / 255f, ColorHelper.getBlue(rc) / 255f, config.rimLight.intensity()); +*///? } b.putFloat(config.pixelEpsilon); b.putFloat(ReGlassAnim.INSTANCE.debugStep()); b.putFloat(config.features.pixelatedGrid ? 1.0f : 0.0f); @@ -191,35 +191,35 @@ public void uploadSharedUniforms() { b.putFloat(ReGlassAnim.INSTANCE.focusBorderSpeed()); } -//#if MC >= 26.2 +//? if >= 26.2 { try (var map = bgConfig.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(bgConfig, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(bgConfig, false, true)) { +*///? } Std140Builder b = Std140Builder.intoBuffer(map.data()); b.putFloat(ReGlassAnim.INSTANCE.shadowExpand()); b.putFloat(ReGlassAnim.INSTANCE.shadowFactor()); -//#if MC >= 26 +//? if >= 26 { float s = (float) mc.getWindow().getGuiScale(); -//#else - float s = (float) mc.getWindow().getScaleFactor(); -//#endif +//? } else { + /*float s = (float) mc.getWindow().getScaleFactor(); +*///? } b.putVec2(ReGlassAnim.INSTANCE.shadowOffsetX() * s, ReGlassAnim.INSTANCE.shadowOffsetY() * s); } } -//#if MC >= 26 +//? if >= 26 { public void tryApplyBlur(GuiGraphicsExtractor context) { if (!screenWantsBlur) { context.blurBeforeThisStratum(); screenWantsBlur = true; } -//#else - public void tryApplyBlur(DrawContext context) { +//? } else { + /*public void tryApplyBlur(DrawContext context) { GuiRenderState state = context.state; int blurLayer = ((GuiRenderStateAccessor) state).getBlurLayer(); if (blurLayer == Integer.MAX_VALUE) state.applyBlur(); -//#endif +*///? } } public void addWidget(LiquidGlassGuiElementRenderState element) { @@ -245,13 +245,13 @@ private float smoothToward(float current, float target, double dt, float tau) { } public void uploadWidgetInfo() { -//#if MC >= 26 +//? if >= 26 { Minecraft mc = Minecraft.getInstance(); -//#if MC >= 26.2 +//? if >= 26.2 { int fbH = mc.gameRenderer.mainRenderTarget().height; -//#else - int fbH = mc.getMainRenderTarget().height; -//#endif +//? } else { + /*int fbH = mc.getMainRenderTarget().height; +*///? } float scale = (float) mc.getWindow().getGuiScale(); List renderWidgets = new ArrayList<>(widgets); renderWidgets.sort((a, b) -> Integer.compare(a.style().getLayer(), b.style().getLayer())); @@ -271,24 +271,24 @@ public void uploadWidgetInfo() { } layerCounts[layer]++; } -//#else - MinecraftClient mc = MinecraftClient.getInstance(); +//? } else { + /*MinecraftClient mc = MinecraftClient.getInstance(); int fbH = mc.getFramebuffer().textureHeight; float scale = (float) mc.getWindow().getScaleFactor(); -//#endif +*///? } HashSet requested = new HashSet<>(); -//#if MC >= 26 +//? if >= 26 { for (LiquidGlassGuiElementRenderState w : renderWidgets) { -//#else - for (LiquidGlassGuiElementRenderState w : widgets) { -//#endif +//? } else { + /*for (LiquidGlassGuiElementRenderState w : widgets) { +*///? } WidgetStyle s = w.style(); -//#if MC >= 26 +//? if >= 26 { requested.add(Math.max(1, s.getBlurRadius())); -//#else - requested.add(Math.max(0, s.getBlurRadius())); -//#endif +//? } else { + /*requested.add(Math.max(0, s.getBlurRadius())); +*///? } } List sorted = requested.stream().sorted().toList(); usedBlurRadiiOrdered = new ArrayList<>(); @@ -297,8 +297,8 @@ public void uploadWidgetInfo() { blurRadiusToIndex.clear(); for (int i = 0; i < usedBlurRadiiOrdered.size(); i++) blurRadiusToIndex.put(usedBlurRadiiOrdered.get(i), i); -//#if MC < 26 - List renderWidgets = new ArrayList<>(widgets); +//? if < 26 { + /*List renderWidgets = new ArrayList<>(widgets); renderWidgets.sort((a, b0) -> Integer.compare(a.style().getLayer(), b0.style().getLayer())); int[] layerStarts = new int[MAX_LAYERS]; @@ -314,23 +314,23 @@ public void uploadWidgetInfo() { layerCounts[layer]++; } -//#endif -//#if MC >= 26.2 +*///? } +//? if >= 26.2 { try (var map = widgetInfo.map(false, true)) { -//#else - try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(widgetInfo, false, true)) { -//#endif +//? } else { + /*try (var map = RenderSystem.getDevice().createCommandEncoder().mapBuffer(widgetInfo, false, true)) { +*///? } Std140Builder b = Std140Builder.intoBuffer(map.data()); b.putFloat((float) renderWidgets.size()); b.align(16); for (int i = 0; i < MAX_LAYERS; i++) { -//#if MC >= 26 +//? if >= 26 { int start = layerStarts[i] < 0 ? 0 : layerStarts[i]; b.putVec4((float) start, (float) layerCounts[i], 0f, 0f); -//#else - b.putVec4((float) layerStarts[i], (float) layerCounts[i], 0f, 0f); -//#endif +//? } else { + /*b.putVec4((float) layerStarts[i], (float) layerCounts[i], 0f, 0f); +*///? } } for (int i = 0; i < MAX_WIDGETS; i++) { @@ -363,11 +363,11 @@ public void uploadWidgetInfo() { if (i < renderWidgets.size()) { var style = renderWidgets.get(i).style(); int c = style.getTintColor(); -//#if MC >= 26 +//? if >= 26 { b.putVec4(ARGB.red(c) / 255f, ARGB.green(c) / 255f, ARGB.blue(c) / 255f, style.getTintAlpha()); -//#else - b.putVec4(ColorHelper.getRed(c) / 255f, ColorHelper.getGreen(c) / 255f, ColorHelper.getBlue(c) / 255f, style.getTintAlpha()); -//#endif +//? } else { + /*b.putVec4(ColorHelper.getRed(c) / 255f, ColorHelper.getGreen(c) / 255f, ColorHelper.getBlue(c) / 255f, style.getTintAlpha()); +*///? } } else b.putVec4(0f, 0f, 0f, 0f); } @@ -400,31 +400,31 @@ public void uploadWidgetInfo() { for (int i = 0; i < MAX_WIDGETS; i++) { if (i < renderWidgets.size()) { var w = renderWidgets.get(i); -//#if MC >= 26 +//? if >= 26 { ScreenRectangle sc = w.scissorArea(); -//#else - ScreenRect sc = w.scissorArea(); -//#endif +//? } else { + /*ScreenRect sc = w.scissorArea(); +*///? } if (sc != null) { -//#if MC >= 26 +//? if >= 26 { float sL = sc.left() * scale; float sR = sc.right() * scale; float sT = sc.top() * scale; float sB = sc.bottom() * scale; -//#else - float sL = sc.getLeft() * scale; +//? } else { + /*float sL = sc.getLeft() * scale; float sR = sc.getRight() * scale; float sT = sc.getTop() * scale; float sB = sc.getBottom() * scale; -//#endif +*///? } b.putVec4(sL, fbH - sB, sR, fbH - sT); -//#if MC >= 26.2 +//? if >= 26.2 { } else b.putVec4(0f, 0f, (float) mc.gameRenderer.mainRenderTarget().width, (float) mc.gameRenderer.mainRenderTarget().height); -//#elseif MC >= 26 - } else b.putVec4(0f, 0f, (float) mc.getMainRenderTarget().width, (float) mc.getMainRenderTarget().height); -//#else - } else b.putVec4(0f, 0f, (float) mc.getFramebuffer().textureWidth, (float) mc.getFramebuffer().textureHeight); -//#endif +//? } elif >= 26 { + /*} else b.putVec4(0f, 0f, (float) mc.getMainRenderTarget().width, (float) mc.getMainRenderTarget().height); +*///? } else { + /*} else b.putVec4(0f, 0f, (float) mc.getFramebuffer().textureWidth, (float) mc.getFramebuffer().textureHeight); +*///? } } else b.putVec4(0f, 0f, 0f, 0f); } @@ -441,22 +441,22 @@ public void uploadWidgetInfo() { if (i < renderWidgets.size()) { WidgetStyle s = renderWidgets.get(i).style(); int col = s.getShadowColor(); -//#if MC >= 26 +//? if >= 26 { b.putVec4(ARGB.red(col) / 255f, ARGB.green(col) / 255f, ARGB.blue(col) / 255f, s.getShadowColorAlpha()); -//#else - b.putVec4(ColorHelper.getRed(col) / 255f, ColorHelper.getGreen(col) / 255f, ColorHelper.getBlue(col) / 255f, s.getShadowColorAlpha()); -//#endif +//? } else { + /*b.putVec4(ColorHelper.getRed(col) / 255f, ColorHelper.getGreen(col) / 255f, ColorHelper.getBlue(col) / 255f, s.getShadowColorAlpha()); +*///? } } else b.putVec4(0f, 0f, 0f, 0f); } for (int i = 0; i < MAX_WIDGETS; i++) { if (i < renderWidgets.size()) { WidgetStyle s = renderWidgets.get(i).style(); -//#if MC >= 26 +//? if >= 26 { int radius = Math.max(1, s.getBlurRadius()); -//#else - int radius = Math.max(0, s.getBlurRadius()); -//#endif +//? } else { + /*int radius = Math.max(0, s.getBlurRadius()); +*///? } Integer idx = blurRadiusToIndex.get(radius); if (idx == null) idx = 0; var w = renderWidgets.get(i); @@ -464,13 +464,13 @@ public void uploadWidgetInfo() { FadeState fs = fades.computeIfAbsent(key, k -> new FadeState()); fs.hover = smoothToward(fs.hover, Math.max(0f, Math.min(1f, w.hover())), dtSeconds, 0.12f); fs.focus = smoothToward(fs.focus, Math.max(0f, Math.min(1f, w.focus())), dtSeconds, 0.18f); -//#if MC >= 26 +//? if >= 26 { b.putVec4((float) idx, fs.hover, fs.focus, (float) s.getLayer()); -//#else - double h = Math.sin(w.x1() * 12.9898 + w.y1() * 78.233 + i * 37.719); +//? } else { + /*double h = Math.sin(w.x1() * 12.9898 + w.y1() * 78.233 + i * 37.719); float seed = (float) (h - Math.floor(h)); b.putVec4((float) idx, fs.hover, fs.focus, seed); -//#endif +*///? } } else b.putVec4(0f, 0f, 0f, 0f); } } diff --git a/src/main/java/restudio/reglass/client/LiquidGlassWidget.java b/src/main/java/restudio/reglass/client/LiquidGlassWidget.java index f554027..9497b02 100644 --- a/src/main/java/restudio/reglass/client/LiquidGlassWidget.java +++ b/src/main/java/restudio/reglass/client/LiquidGlassWidget.java @@ -1,26 +1,26 @@ package restudio.reglass.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.Click; +//? } else { +/*import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.text.Text; -//#endif +*///? } import restudio.reglass.client.api.ReGlassApi; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { public class LiquidGlassWidget extends AbstractWidget { -//#else -public class LiquidGlassWidget extends ClickableWidget { -//#endif +//? } else { +/*public class LiquidGlassWidget extends ClickableWidget { +*///? } private float cornerRadiusPx; private boolean moveable; private boolean dragging; @@ -29,11 +29,11 @@ public class LiquidGlassWidget extends ClickableWidget { public WidgetStyle style = new WidgetStyle(); public LiquidGlassWidget(int x, int y, int width, int height, WidgetStyle style) { -//#if MC >= 26 +//? if >= 26 { super(x, y, width, height, Component.empty()); -//#else - super(x, y, width, height, Text.empty()); -//#endif +//? } else { + /*super(x, y, width, height, Text.empty()); +*///? } this.cornerRadiusPx = 0.5f * Math.min(width, height); if (style != null) this.style = style; } @@ -49,21 +49,21 @@ public LiquidGlassWidget setMoveable(boolean moveable) { } @Override -//#if MC >= 26 +//? if >= 26 { public void extractWidgetRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { -//#else - public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { -//#endif +//? } else { + /*public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { +*///? } ReGlassApi.create(context).fromWidget(this).cornerRadius(cornerRadiusPx).style(this.style).render(); LiquidGlassUniforms.get().tryApplyBlur(context); } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseClicked(MouseButtonEvent click, boolean isDouble) { -//#else - public boolean mouseClicked(Click click, boolean isDouble) { -//#endif +//? } else { + /*public boolean mouseClicked(Click click, boolean isDouble) { +*///? } if (!this.moveable) return super.mouseClicked(click, isDouble); if (click.button() == 0 && click.x() >= this.getX() && click.x() < this.getX() + this.getWidth() && click.y() >= this.getY() && click.y() < this.getY() + this.getHeight()) { this.dragging = true; @@ -75,11 +75,11 @@ public boolean mouseClicked(Click click, boolean isDouble) { } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseDragged(MouseButtonEvent click, double offsetX, double offsetY) { -//#else - public boolean mouseDragged(Click click, double offsetX, double offsetY) { -//#endif +//? } else { + /*public boolean mouseDragged(Click click, double offsetX, double offsetY) { +*///? } if (this.dragging && click.button() == 0) { int newX = (int) (click.x() - this.dragOffsetX); int newY = (int) (click.y() - this.dragOffsetY); @@ -91,11 +91,11 @@ public boolean mouseDragged(Click click, double offsetX, double offsetY) { } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseReleased(MouseButtonEvent click) { -//#else - public boolean mouseReleased(Click click) { -//#endif +//? } else { + /*public boolean mouseReleased(Click click) { +*///? } if (this.dragging && click.button() == 0) { this.dragging = false; } @@ -103,9 +103,9 @@ public boolean mouseReleased(Click click) { return super.mouseReleased(click); } -//#if MC >= 26 +//? if >= 26 { @Override protected void updateWidgetNarration(NarrationElementOutput builder) {} -//#else - @Override protected void appendClickableNarrations(NarrationMessageBuilder builder) {} -//#endif +//? } else { + /*@Override protected void appendClickableNarrations(NarrationMessageBuilder builder) {} +*///? } } diff --git a/src/main/java/restudio/reglass/client/ReGlassClient.java b/src/main/java/restudio/reglass/client/ReGlassClient.java index aa1e374..5b55c31 100644 --- a/src/main/java/restudio/reglass/client/ReGlassClient.java +++ b/src/main/java/restudio/reglass/client/ReGlassClient.java @@ -1,11 +1,11 @@ package restudio.reglass.client; -//#if MC < 26 -import java.util.Arrays; -//#endif +//? if < 26 { +/*import java.util.Arrays; +*///? } import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; import net.minecraft.client.input.MouseButtonEvent; @@ -14,12 +14,12 @@ import net.minecraft.client.gui.components.Button; import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.network.chat.Component; -//#if MC < 26.2 -import net.minecraft.ChatFormatting; -//#endif +//? if < 26.2 { +/*import net.minecraft.ChatFormatting; +*///? } import net.minecraft.resources.Identifier; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; @@ -29,49 +29,49 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; -//#endif +*///? } import org.lwjgl.glfw.GLFW; import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; import restudio.reglass.client.config.ReGlassSettingsIO; -//#if MC < 26 -import restudio.reglass.client.screen.config.ReGlassConfigScreen; -//#endif +//? if < 26 { +/*import restudio.reglass.client.screen.config.ReGlassConfigScreen; +*///? } import restudio.reglass.mixin.accessor.OptionsAccessor; -//#if MC >= 26 +//? if >= 26 { import restudio.reglass.client.screen.config.ReGlassConfigScreen; import java.util.Arrays; -//#endif +//? } public class ReGlassClient implements ClientModInitializer { -//#if MC >= 26 +//? if >= 26 { private static final KeyMapping.Category KEY_CATEGORY = KeyMapping.Category.register(Identifier.fromNamespaceAndPath("reglass", "main")); private static final KeyMapping CONFIG_KEY = new KeyMapping("key.reglass.config", InputConstants.UNKNOWN.getValue(), KEY_CATEGORY); private static final KeyMapping PLAYGROUND_KEY = new KeyMapping("key.reglass.playground", InputConstants.UNKNOWN.getValue(), KEY_CATEGORY); private static final KeyMapping TOGGLE_REDESIGN_KEY = new KeyMapping("key.reglass.toggle_redesign", InputConstants.UNKNOWN.getValue(), KEY_CATEGORY); -//#else - private static final KeyBinding.Category KEY_CATEGORY = KeyBinding.Category.create(Identifier.of("reglass", "main")); +//? } else { + /*private static final KeyBinding.Category KEY_CATEGORY = KeyBinding.Category.create(Identifier.of("reglass", "main")); private static final KeyBinding CONFIG_KEY = new KeyBinding("key.reglass.config", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN, KEY_CATEGORY); private static final KeyBinding PLAYGROUND_KEY = new KeyBinding("key.reglass.playground", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN, KEY_CATEGORY); private static final KeyBinding TOGGLE_REDESIGN_KEY = new KeyBinding("key.reglass.toggle_redesign", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN, KEY_CATEGORY); -//#endif +*///? } private static boolean keyMappingsRegistered; private static boolean toggleRedesignWasDown; -//#if MC >= 26 +//? if >= 26 { public static Minecraft minecraftClient; -//#else - public static MinecraftClient minecraftClient; -//#endif +//? } else { + /*public static MinecraftClient minecraftClient; +*///? } @Override public void onInitializeClient() { -//#if MC >= 26 +//? if >= 26 { minecraftClient = Minecraft.getInstance(); -//#else - minecraftClient = MinecraftClient.getInstance(); -//#endif +//? } else { + /*minecraftClient = MinecraftClient.getInstance(); +*///? } ReGlassSettingsIO.loadIntoMemory(); @@ -83,70 +83,70 @@ public void onInitializeClient() { registerKeyMappings(client); } handleGlobalToggleRedesignKey(client); -//#if MC >= 26.2 +//? if >= 26.2 { while (CONFIG_KEY.consumeClick()) { if (client.gui.screen() == null) { -//#elseif MC >= 26 - while (CONFIG_KEY.consumeClick()) { +//? } elif >= 26 { + /*while (CONFIG_KEY.consumeClick()) { if (client.screen == null) { -//#else - while (CONFIG_KEY.wasPressed()) { +*///? } else { + /*while (CONFIG_KEY.wasPressed()) { if (client.currentScreen == null) { -//#endif -//#if MC >= 26.2 +*///? } +//? if >= 26.2 { client.gui.setScreen(new ReGlassConfigScreen(null)); -//#else - client.setScreen(new ReGlassConfigScreen(null)); -//#endif +//? } else { + /*client.setScreen(new ReGlassConfigScreen(null)); +*///? } } } -//#if MC >= 26.2 +//? if >= 26.2 { while (PLAYGROUND_KEY.consumeClick()) { if (client.gui.screen() == null) { -//#elseif MC >= 26 - while (PLAYGROUND_KEY.consumeClick()) { +//? } elif >= 26 { + /*while (PLAYGROUND_KEY.consumeClick()) { if (client.screen == null) { -//#else - while (PLAYGROUND_KEY.wasPressed()) { +*///? } else { + /*while (PLAYGROUND_KEY.wasPressed()) { if (client.currentScreen == null) { -//#endif -//#if MC >= 26.2 +*///? } +//? if >= 26.2 { client.gui.setScreen(new PlaygroundScreen()); -//#else - client.setScreen(new PlaygroundScreen()); -//#endif +//? } else { + /*client.setScreen(new PlaygroundScreen()); +*///? } } } }); } -//#if MC >= 26 +//? if >= 26 { private static void registerKeyMappings(Minecraft client) { KeyMapping[] existingMappings = client.options.keyMappings; KeyMapping[] mappings = Arrays.copyOf(existingMappings, existingMappings.length + 3); -//#else - private static void registerKeyMappings(MinecraftClient client) { +//? } else { + /*private static void registerKeyMappings(MinecraftClient client) { KeyBinding[] existingMappings = client.options.allKeys; KeyBinding[] mappings = Arrays.copyOf(existingMappings, existingMappings.length + 3); -//#endif +*///? } mappings[existingMappings.length] = CONFIG_KEY; mappings[existingMappings.length + 1] = PLAYGROUND_KEY; mappings[existingMappings.length + 2] = TOGGLE_REDESIGN_KEY; ((OptionsAccessor) client.options).setKeyMappings(mappings); -//#if MC >= 26 +//? if >= 26 { KeyMapping.resetMapping(); -//#else - KeyBinding.updateKeysByCode(); -//#endif +//? } else { + /*KeyBinding.updateKeysByCode(); +*///? } client.options.load(); keyMappingsRegistered = true; } -//#if MC >= 26 +//? if >= 26 { private static void handleGlobalToggleRedesignKey(Minecraft client) { -//#else - private static void handleGlobalToggleRedesignKey(MinecraftClient client) { -//#endif +//? } else { + /*private static void handleGlobalToggleRedesignKey(MinecraftClient client) { +*///? } boolean down = isGlobalKeyDown(client, TOGGLE_REDESIGN_KEY); if (down && !toggleRedesignWasDown) { ReGlassConfig.INSTANCE.features.enableRedesign = !ReGlassConfig.INSTANCE.features.enableRedesign; @@ -155,95 +155,95 @@ private static void handleGlobalToggleRedesignKey(MinecraftClient client) { toggleRedesignWasDown = down; } -//#if MC >= 26 +//? if >= 26 { private static boolean isGlobalKeyDown(Minecraft client, KeyMapping keyMapping) { if (keyMapping.isUnbound()) { -//#else - private static boolean isGlobalKeyDown(MinecraftClient client, KeyBinding keyBinding) { +//? } else { + /*private static boolean isGlobalKeyDown(MinecraftClient client, KeyBinding keyBinding) { if (keyBinding.isUnbound()) { -//#endif +*///? } return false; } -//#if MC >= 26 +//? if >= 26 { InputConstants.Key key = InputConstants.getKey(keyMapping.saveString()); if (key.getType() == InputConstants.Type.MOUSE) { return GLFW.glfwGetMouseButton(client.getWindow().handle(), key.getValue()) == GLFW.GLFW_PRESS; -//#else - InputUtil.Key key = InputUtil.fromTranslationKey(keyBinding.getBoundKeyTranslationKey()); +//? } else { + /*InputUtil.Key key = InputUtil.fromTranslationKey(keyBinding.getBoundKeyTranslationKey()); if (key.getCategory() == InputUtil.Type.MOUSE) { return GLFW.glfwGetMouseButton(client.getWindow().getHandle(), key.getCode()) == GLFW.GLFW_PRESS; -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { return InputConstants.isKeyDown(client.getWindow(), key.getValue()); -//#else - return InputUtil.isKeyPressed(client.getWindow(), key.getCode()); -//#endif +//? } else { + /*return InputUtil.isKeyPressed(client.getWindow(), key.getCode()); +*///? } } public static class PlaygroundScreen extends Screen { private boolean blur; public PlaygroundScreen() { -//#if MC >= 26 +//? if >= 26 { super(Component.literal("ReGlass Playground")); -//#else - super(Text.literal("ReGlass Playground")); -//#endif +//? } else { + /*super(Text.literal("ReGlass Playground")); +*///? } } @Override protected void init() { super.init(); -//#if MC >= 26.2 +//? if >= 26.2 { WidgetStyle customStyle = WidgetStyle.create().tint(0xFFAA00, 0.4f).blurRadius(0).shadow(25f, 0.2f, 0f, 3f).smoothing(.05f).shadowColor(0x000000, 1.0f); addRenderableWidget(new LiquidGlassWidget(width / 2 - 75, height / 2 - 25, 150, 50, customStyle).setMoveable(true)); -//#elseif MC >= 26 - WidgetStyle customStyle = WidgetStyle.create().tint(ChatFormatting.GOLD.getColor(), 0.4f).blurRadius(0).shadow(25f, 0.2f, 0f, 3f).smoothing(.05f).shadowColor(0x000000, 1.0f); +//? } elif >= 26 { + /*WidgetStyle customStyle = WidgetStyle.create().tint(ChatFormatting.GOLD.getColor(), 0.4f).blurRadius(0).shadow(25f, 0.2f, 0f, 3f).smoothing(.05f).shadowColor(0x000000, 1.0f); addRenderableWidget(new LiquidGlassWidget(width / 2 - 75, height / 2 - 25, 150, 50, customStyle).setMoveable(true)); addRenderableWidget(Button.builder(Component.literal("Toggle BG Blur"), b -> blur = !blur).bounds(10, 10, 120, 20).build()); -//#else - WidgetStyle customStyle = WidgetStyle.create().tint(Formatting.GOLD.getColorValue(), 0.4f).blurRadius(0).shadow(25f, 0.2f, 0f, 3f).smoothing(.05f).shadowColor(0x000000, 1.0f); +*///? } else { + /*WidgetStyle customStyle = WidgetStyle.create().tint(Formatting.GOLD.getColorValue(), 0.4f).blurRadius(0).shadow(25f, 0.2f, 0f, 3f).smoothing(.05f).shadowColor(0x000000, 1.0f); addDrawableChild(new LiquidGlassWidget(width / 2 - 75, height / 2 - 25, 150, 50, customStyle).setMoveable(true)); addDrawableChild(ButtonWidget.builder(Text.literal("Toggle BG Blur"), b -> blur = !blur).dimensions(10, 10, 120, 20).build()); -//#endif +*///? } } @Override -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { context.text(minecraftClient.font, Component.literal("This is a Minecraft Screen"), width / 2 - 70, 10, 0xFFFFFFFF, true); super.extractRenderState(context, mouseX, mouseY, delta); -//#else - public void render(DrawContext context, int mouseX, int mouseY, float delta) { +//? } else { + /*public void render(DrawContext context, int mouseX, int mouseY, float delta) { context.drawText(minecraftClient.textRenderer, Text.literal("This is a Minecraft Screen"), width / 2 - 70, 10, 0xFFFFFFFF, true); super.render(context, mouseX, mouseY, delta); -//#endif +*///? } } @Override -//#if MC >= 26 +//? if >= 26 { public void extractBackground(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { if (blur) super.extractBackground(context, mouseX, mouseY, delta); -//#else - public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) { +//? } else { + /*public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) { if (blur) super.renderBackground(context, mouseX, mouseY, delta); -//#endif +*///? } } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseClicked(MouseButtonEvent click, boolean isDouble) { -//#else - public boolean mouseClicked(Click click, boolean isDouble) { -//#endif +//? } else { + /*public boolean mouseClicked(Click click, boolean isDouble) { +*///? } if (click.button() == 1) { -//#if MC >= 26 +//? if >= 26 { addRenderableWidget(new LiquidGlassWidget((int) click.x() - 50, (int) click.y() - 50, 100, 100, WidgetStyle.create().smoothing(.05f))).setMoveable(true); -//#else - addDrawableChild(new LiquidGlassWidget((int) click.x() - 50, (int) click.y() - 50, 100, 100, WidgetStyle.create().smoothing(.05f))).setMoveable(true); -//#endif +//? } else { + /*addDrawableChild(new LiquidGlassWidget((int) click.x() - 50, (int) click.y() - 50, 100, 100, WidgetStyle.create().smoothing(.05f))).setMoveable(true); +*///? } return true; } return super.mouseClicked(click, isDouble); diff --git a/src/main/java/restudio/reglass/client/api/ReGlassApi.java b/src/main/java/restudio/reglass/client/api/ReGlassApi.java index c4a74cc..e3b95e3 100644 --- a/src/main/java/restudio/reglass/client/api/ReGlassApi.java +++ b/src/main/java/restudio/reglass/client/api/ReGlassApi.java @@ -1,26 +1,26 @@ package restudio.reglass.client.api; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.ScreenRect; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.text.Text; -//#endif +*///? } import org.jetbrains.annotations.Nullable; import org.joml.Matrix3x2f; -//#if MC >= 26 +//? if >= 26 { import restudio.reglass.client.LiquidGlassUniforms; -//#endif +//? } import restudio.reglass.client.gui.LiquidGlassGuiElementRenderState; import restudio.reglass.mixin.accessor.DrawContextAccessor; -//#if MC >= 26 +//? if >= 26 { import restudio.reglass.mixin.accessor.ScissorStackAccessor; -//#endif +//? } public final class ReGlassApi { private ReGlassApi() {} @@ -30,47 +30,47 @@ public static ReGlassConfig getGlobalConfig() { return ReGlassConfig.INSTANCE; } -//#if MC >= 26 +//? if >= 26 { public static Builder create(GuiGraphicsExtractor context) { -//#else - public static Builder create(DrawContext context) { -//#endif +//? } else { + /*public static Builder create(DrawContext context) { +*///? } return new Builder(context); } public static class Builder { -//#if MC >= 26 +//? if >= 26 { private final GuiGraphicsExtractor context; -//#else - private final DrawContext context; -//#endif +//? } else { + /*private final DrawContext context; +*///? } private int x, y, width, height; private float cornerRadius = -1f; -//#if MC >= 26 +//? if >= 26 { @Nullable private Component text = null; -//#else - @Nullable private Text text = null; -//#endif +//? } else { + /*@Nullable private Text text = null; +*///? } private WidgetStyle style = new WidgetStyle(); private float hoverAmount = 0f; private float focusAmount = 0f; -//#if MC >= 26 +//? if >= 26 { private boolean screenSpace = false; -//#endif +//? } -//#if MC >= 26 +//? if >= 26 { private Builder(GuiGraphicsExtractor context) { -//#else - private Builder(DrawContext context) { -//#endif +//? } else { + /*private Builder(DrawContext context) { +*///? } this.context = context; } -//#if MC >= 26 +//? if >= 26 { public Builder fromWidget(AbstractWidget widget) { -//#else - public Builder fromWidget(ClickableWidget widget) { -//#endif +//? } else { + /*public Builder fromWidget(ClickableWidget widget) { +*///? } this.position(widget.getX(), widget.getY()); this.size(widget.getWidth(), widget.getHeight()); this.text(widget.getMessage()); @@ -98,11 +98,11 @@ public Builder cornerRadius(float radius) { return this; } -//#if MC >= 26 +//? if >= 26 { public Builder text(Component text) { -//#else - public Builder text(Text text) { -//#endif +//? } else { + /*public Builder text(Text text) { +*///? } this.text = text; return this; } @@ -128,35 +128,35 @@ public Builder selected(float amount) { return this.focus(amount); } -//#if MC >= 26 +//? if >= 26 { public Builder screenSpace() { this.screenSpace = true; return this; } -//#endif +//? } public void render() { float finalCornerRadius = this.cornerRadius < 0 ? 0.5f * Math.min(this.width, this.height) : this.cornerRadius; -//#if MC >= 26 +//? if >= 26 { Matrix3x2f pose = this.screenSpace ? new Matrix3x2f() : new Matrix3x2f(context.pose()); ScreenRectangle scissorRect = ((ScissorStackAccessor) ((DrawContextAccessor) context).getScissorStack()).reglass$peek(); LiquidGlassUniforms.get().tryApplyBlur(context); LiquidGlassGuiElementRenderState element = new LiquidGlassGuiElementRenderState( -//#else - Matrix3x2f pose = new Matrix3x2f(context.getMatrices()); +//? } else { + /*Matrix3x2f pose = new Matrix3x2f(context.getMatrices()); ScreenRect scissorRect = ((DrawContextAccessor) context).getScissorStack().peekLast(); context.state.addSpecialElement(new LiquidGlassGuiElementRenderState( -//#endif +*///? } this.x, this.y, this.x + this.width, this.y + this.height, finalCornerRadius, this.text, this.style, pose, scissorRect, this.hoverAmount, this.focusAmount -//#if MC >= 26 +//? if >= 26 { ); LiquidGlassUniforms.get().addWidget(element); ((DrawContextAccessor) context).getGuiRenderState().addGuiElement(element); -//#else - )); -//#endif +//? } else { + /*)); +*///? } } } } diff --git a/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderState.java b/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderState.java index 2c4508e..23effa6 100644 --- a/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderState.java +++ b/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderState.java @@ -1,6 +1,6 @@ package restudio.reglass.client.gui; -//#if MC >= 26 +//? if >= 26 { import com.mojang.blaze3d.pipeline.RenderPipeline; import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.gui.navigation.ScreenRectangle; @@ -8,23 +8,23 @@ import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.state.gui.GuiElementRenderState; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.ScreenRect; +//? } else { +/*import net.minecraft.client.gui.ScreenRect; import net.minecraft.client.gui.render.state.special.SpecialGuiElementRenderState; import net.minecraft.text.Text; -//#endif +*///? } import org.jetbrains.annotations.Nullable; import org.joml.Matrix3x2f; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { public record LiquidGlassGuiElementRenderState(int x1, int y1, int x2, int y2, float cornerRadius, @Nullable Component text, WidgetStyle style, Matrix3x2f pose, @Nullable ScreenRectangle scissorArea, float hover, float focus) implements GuiElementRenderState { -//#else -public record LiquidGlassGuiElementRenderState(int x1, int y1, int x2, int y2, float cornerRadius, @Nullable Text text, WidgetStyle style, Matrix3x2f pose, @Nullable ScreenRect scissorArea, float hover, float focus) implements SpecialGuiElementRenderState { -//#endif +//? } else { +/*public record LiquidGlassGuiElementRenderState(int x1, int y1, int x2, int y2, float cornerRadius, @Nullable Text text, WidgetStyle style, Matrix3x2f pose, @Nullable ScreenRect scissorArea, float hover, float focus) implements SpecialGuiElementRenderState { +*///? } @Override -//#if MC >= 26 +//? if >= 26 { public void buildVertices(VertexConsumer vertexConsumer) { vertexConsumer.addVertexWith2DPose(pose, x1, y1).setColor(0); vertexConsumer.addVertexWith2DPose(pose, x1, y2).setColor(0); @@ -40,30 +40,30 @@ public RenderPipeline pipeline() { @Override public TextureSetup textureSetup() { return TextureSetup.noTexture(); -//#else - public float scale() { +//? } else { + /*public float scale() { return 1.0f; -//#endif +*///? } } @Nullable @Override -//#if MC >= 26 +//? if >= 26 { public ScreenRectangle scissorArea() { -//#else - public ScreenRect scissorArea() { -//#endif +//? } else { + /*public ScreenRect scissorArea() { +*///? } return this.scissorArea; } @Override -//#if MC >= 26 +//? if >= 26 { public @Nullable ScreenRectangle bounds() { ScreenRectangle ownBounds = new ScreenRectangle(x1, y1, x2 - x1, y2 - y1).transformMaxBounds(pose); -//#else - public @Nullable ScreenRect bounds() { +//? } else { + /*public @Nullable ScreenRect bounds() { ScreenRect ownBounds = new ScreenRect(x1, y1, x2 - x1, y2 - y1).transformEachVertex(pose); -//#endif +*///? } return scissorArea != null ? scissorArea.intersection(ownBounds) : ownBounds; } } diff --git a/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderer.java b/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderer.java index 289d196..0405958 100644 --- a/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderer.java +++ b/src/main/java/restudio/reglass/client/gui/LiquidGlassGuiElementRenderer.java @@ -1,33 +1,33 @@ package restudio.reglass.client.gui; import net.minecraft.client.gui.render.SpecialGuiElementRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.state.gui.GuiRenderState; import net.minecraft.client.renderer.MultiBufferSource; import com.mojang.blaze3d.vertex.PoseStack; -//#else -import net.minecraft.client.gui.render.state.GuiRenderState; +//? } else { +/*import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; -//#endif +*///? } import restudio.reglass.client.LiquidGlassUniforms; public class LiquidGlassGuiElementRenderer extends SpecialGuiElementRenderer { -//#if MC >= 26 +//? if >= 26 { public LiquidGlassGuiElementRenderer(MultiBufferSource.BufferSource vertexConsumers) { -//#else - public LiquidGlassGuiElementRenderer(VertexConsumerProvider.Immediate vertexConsumers) { -//#endif +//? } else { + /*public LiquidGlassGuiElementRenderer(VertexConsumerProvider.Immediate vertexConsumers) { +*///? } super(vertexConsumers); } @Override -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(LiquidGlassGuiElementRenderState element, GuiRenderState state, int scale) { -//#else - public void render(LiquidGlassGuiElementRenderState element, GuiRenderState state, int scale) { -//#endif +//? } else { + /*public void render(LiquidGlassGuiElementRenderState element, GuiRenderState state, int scale) { +*///? } LiquidGlassUniforms.get().addWidget(element); } @@ -37,11 +37,11 @@ public Class getElementClass() { } @Override -//#if MC >= 26 +//? if >= 26 { protected void render(LiquidGlassGuiElementRenderState element, PoseStack matrices) { -//#else - protected void render(LiquidGlassGuiElementRenderState element, MatrixStack matrices) { -//#endif +//? } else { + /*protected void render(LiquidGlassGuiElementRenderState element, MatrixStack matrices) { +*///? } } @Override diff --git a/src/main/java/restudio/reglass/client/screen/config/ReGlassConfigScreen.java b/src/main/java/restudio/reglass/client/screen/config/ReGlassConfigScreen.java index 56454f1..024bae9 100644 --- a/src/main/java/restudio/reglass/client/screen/config/ReGlassConfigScreen.java +++ b/src/main/java/restudio/reglass/client/screen/config/ReGlassConfigScreen.java @@ -2,7 +2,7 @@ import java.util.ArrayList; import java.util.List; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -10,15 +10,15 @@ import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; -//#endif +*///? } import restudio.reglass.client.LiquidGlassWidget; import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; @@ -33,18 +33,18 @@ public class ReGlassConfigScreen extends Screen { private double scrollPosition; private int totalListHeight; -//#if MC >= 26 +//? if >= 26 { private record PositionedWidget(AbstractWidget widget, int y) {} -//#else - private record PositionedWidget(ClickableWidget widget, int y) {} -//#endif +//? } else { + /*private record PositionedWidget(ClickableWidget widget, int y) {} +*///? } public ReGlassConfigScreen(Screen parent) { -//#if MC >= 26 +//? if >= 26 { super(Component.literal("ReGlass Configuration")); -//#else - super(Text.literal("ReGlass Configuration")); -//#endif +//? } else { + /*super(Text.literal("ReGlass Configuration")); +*///? } this.parent = parent; } @@ -66,74 +66,74 @@ protected void init() { addTitle("General", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { Button enableRedesignButton = Button.builder(getEnableRedesignText(), button -> { -//#else - ButtonWidget enableRedesignButton = ButtonWidget.builder(getEnableRedesignText(), button -> { -//#endif +//? } else { + /*ButtonWidget enableRedesignButton = ButtonWidget.builder(getEnableRedesignText(), button -> { +*///? } cfg.features.enableRedesign = !cfg.features.enableRedesign; button.setMessage(getEnableRedesignText()); -//#if MC >= 26.2 +//? if >= 26.2 { this.minecraft.gui.setScreen(new ReGlassConfigScreen(this.parent)); -//#elseif MC >= 26 - this.minecraft.setScreen(new ReGlassConfigScreen(this.parent)); -//#else - this.client.setScreen(new ReGlassConfigScreen(this.parent)); -//#endif -//#if MC >= 26 +//? } elif >= 26 { + /*this.minecraft.setScreen(new ReGlassConfigScreen(this.parent)); +*///? } else { + /*this.client.setScreen(new ReGlassConfigScreen(this.parent)); +*///? } +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(enableRedesignButton, y); y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { Button enableButtonsButton = Button.builder(getFeatureText("Buttons", cfg.features.buttons), button -> { -//#else - ButtonWidget enableButtonsButton = ButtonWidget.builder(getFeatureText("Buttons", cfg.features.buttons), button -> { -//#endif +//? } else { + /*ButtonWidget enableButtonsButton = ButtonWidget.builder(getFeatureText("Buttons", cfg.features.buttons), button -> { +*///? } cfg.features.buttons = !cfg.features.buttons; button.setMessage(getFeatureText("Buttons", cfg.features.buttons)); -//#if MC >= 26 +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(enableButtonsButton, y).active = cfg.features.enableRedesign; y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { Button enableSlidersButton = Button.builder(getFeatureText("Sliders", cfg.features.sliders), button -> { -//#else - ButtonWidget enableSlidersButton = ButtonWidget.builder(getFeatureText("Sliders", cfg.features.sliders), button -> { -//#endif +//? } else { + /*ButtonWidget enableSlidersButton = ButtonWidget.builder(getFeatureText("Sliders", cfg.features.sliders), button -> { +*///? } cfg.features.sliders = !cfg.features.sliders; button.setMessage(getFeatureText("Sliders", cfg.features.sliders)); -//#if MC >= 26 +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(enableSlidersButton, y).active = cfg.features.enableRedesign; y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { Button enableHotbarButton = Button.builder(getFeatureText("Hotbar", cfg.features.hotbar), button -> { -//#else - ButtonWidget enableHotbarButton = ButtonWidget.builder(getFeatureText("Hotbar", cfg.features.hotbar), button -> { -//#endif +//? } else { + /*ButtonWidget enableHotbarButton = ButtonWidget.builder(getFeatureText("Hotbar", cfg.features.hotbar), button -> { +*///? } cfg.features.hotbar = !cfg.features.hotbar; button.setMessage(getFeatureText("Hotbar", cfg.features.hotbar)); -//#if MC >= 26 +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(enableHotbarButton, y).active = cfg.features.enableRedesign; y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { Button enableContainersButton = Button.builder(getFeatureText("Containers", cfg.features.containers), button -> { cfg.features.containers = !cfg.features.containers; button.setMessage(getFeatureText("Containers", cfg.features.containers)); @@ -149,210 +149,210 @@ protected void init() { y += widgetHeight + gap; Button cancelDarkeningButton = Button.builder(getFeatureText("Cancel Screen Darkening", cfg.features.cancelScreenDarkening), button -> { -//#else - ButtonWidget cancelDarkeningButton = ButtonWidget.builder(getFeatureText("Cancel Screen Darkening", cfg.features.cancelScreenDarkening), button -> { -//#endif +//? } else { + /*ButtonWidget cancelDarkeningButton = ButtonWidget.builder(getFeatureText("Cancel Screen Darkening", cfg.features.cancelScreenDarkening), button -> { +*///? } cfg.features.cancelScreenDarkening = !cfg.features.cancelScreenDarkening; button.setMessage(getFeatureText("Cancel Screen Darkening", cfg.features.cancelScreenDarkening)); -//#if MC >= 26 +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(cancelDarkeningButton, y).active = cfg.features.enableRedesign; y += widgetHeight + gap * 2; addTitle("Appearance", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Tint Alpha"), 0f, 1f, cfg.defaultTintAlpha, v -> cfg.defaultTintAlpha = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Tint Alpha"), 0f, 1f, cfg.defaultTintAlpha, v -> cfg.defaultTintAlpha = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Tint Alpha"), 0f, 1f, cfg.defaultTintAlpha, v -> cfg.defaultTintAlpha = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Blur Radius"), 0, 32, cfg.defaultBlurRadius, v -> cfg.defaultBlurRadius = v), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Blur Radius"), 0, 32, cfg.defaultBlurRadius, v -> cfg.defaultBlurRadius = v), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Blur Radius"), 0, 32, cfg.defaultBlurRadius, v -> cfg.defaultBlurRadius = v), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Smoothing"), -0.02f, 0.02f, cfg.defaultSmoothing, v -> cfg.defaultSmoothing = v.floatValue()), y).active = cfg.features.enableRedesign; y += widgetHeight + gap; addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Default Layer"), 0, 15, cfg.defaultLayer, v -> cfg.defaultLayer = v), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Smoothing"), -0.02f, 0.02f, cfg.defaultSmoothing, v -> cfg.defaultSmoothing = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Smoothing"), -0.02f, 0.02f, cfg.defaultSmoothing, v -> cfg.defaultSmoothing = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap * 2; addTitle("Shadow", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Shadow Expand"), 0f, 100f, cfg.defaultShadowExpand, v -> cfg.defaultShadowExpand = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Expand"), 0f, 100f, cfg.defaultShadowExpand, v -> cfg.defaultShadowExpand = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Expand"), 0f, 100f, cfg.defaultShadowExpand, v -> cfg.defaultShadowExpand = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Shadow Factor"), 0f, 1f, cfg.defaultShadowFactor, v -> cfg.defaultShadowFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Factor"), 0f, 1f, cfg.defaultShadowFactor, v -> cfg.defaultShadowFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Factor"), 0f, 1f, cfg.defaultShadowFactor, v -> cfg.defaultShadowFactor = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Shadow Offset Y"), -10f, 10f, cfg.defaultShadowOffsetY, v -> cfg.defaultShadowOffsetY = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Offset Y"), -10f, 10f, cfg.defaultShadowOffsetY, v -> cfg.defaultShadowOffsetY = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Shadow Offset Y"), -10f, 10f, cfg.defaultShadowOffsetY, v -> cfg.defaultShadowOffsetY = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap * 2; addTitle("Refraction", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Refraction Thickness"), 1f, 60f, cfg.defaultRefThickness, v -> cfg.defaultRefThickness = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Refraction Thickness"), 1f, 60f, cfg.defaultRefThickness, v -> cfg.defaultRefThickness = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Refraction Thickness"), 1f, 60f, cfg.defaultRefThickness, v -> cfg.defaultRefThickness = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Refraction Factor"), 1.0f, 2.5f, cfg.defaultRefFactor, v -> cfg.defaultRefFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Refraction Factor"), 1.0f, 2.5f, cfg.defaultRefFactor, v -> cfg.defaultRefFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Refraction Factor"), 1.0f, 2.5f, cfg.defaultRefFactor, v -> cfg.defaultRefFactor = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Fresnel Range"), 0f, 60f, cfg.defaultRefFresnelRange, v -> cfg.defaultRefFresnelRange = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Range"), 0f, 60f, cfg.defaultRefFresnelRange, v -> cfg.defaultRefFresnelRange = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Range"), 0f, 60f, cfg.defaultRefFresnelRange, v -> cfg.defaultRefFresnelRange = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Fresnel Hardness"), 0f, 100f, cfg.defaultRefFresnelHardness, v -> cfg.defaultRefFresnelHardness = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Hardness"), 0f, 100f, cfg.defaultRefFresnelHardness, v -> cfg.defaultRefFresnelHardness = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Hardness"), 0f, 100f, cfg.defaultRefFresnelHardness, v -> cfg.defaultRefFresnelHardness = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Fresnel Factor"), 0f, 100f, cfg.defaultRefFresnelFactor, v -> cfg.defaultRefFresnelFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Factor"), 0f, 100f, cfg.defaultRefFresnelFactor, v -> cfg.defaultRefFresnelFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Fresnel Factor"), 0f, 100f, cfg.defaultRefFresnelFactor, v -> cfg.defaultRefFresnelFactor = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap * 2; addTitle("Glare", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Glare Range"), 0f, 60f, cfg.defaultGlareRange, v -> cfg.defaultGlareRange = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Glare Range"), 0f, 60f, cfg.defaultGlareRange, v -> cfg.defaultGlareRange = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Glare Range"), 0f, 60f, cfg.defaultGlareRange, v -> cfg.defaultGlareRange = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Glare Factor"), 0f, 100f, cfg.defaultGlareFactor, v -> cfg.defaultGlareFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Glare Factor"), 0f, 100f, cfg.defaultGlareFactor, v -> cfg.defaultGlareFactor = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Glare Factor"), 0f, 100f, cfg.defaultGlareFactor, v -> cfg.defaultGlareFactor = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap * 2; addTitle("Interactions", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Hover Scale (px)"), 0f, 6f, cfg.hoverScalePx, v -> cfg.hoverScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Hover Scale (px)"), 0f, 6f, cfg.hoverScalePx, v -> cfg.hoverScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Hover Scale (px)"), 0f, 6f, cfg.hoverScalePx, v -> cfg.hoverScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Focus Scale (px)"), 0f, 8f, cfg.focusScalePx, v -> cfg.focusScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Scale (px)"), 0f, 8f, cfg.focusScalePx, v -> cfg.focusScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Scale (px)"), 0f, 8f, cfg.focusScalePx, v -> cfg.focusScalePx = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Focus Border Width (px)"), 0f, 6f, cfg.focusBorderWidthPx, v -> cfg.focusBorderWidthPx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Width (px)"), 0f, 6f, cfg.focusBorderWidthPx, v -> cfg.focusBorderWidthPx = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Width (px)"), 0f, 6f, cfg.focusBorderWidthPx, v -> cfg.focusBorderWidthPx = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Focus Border Intensity"), 0f, 1f, cfg.focusBorderIntensity, v -> cfg.focusBorderIntensity = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Intensity"), 0f, 1f, cfg.focusBorderIntensity, v -> cfg.focusBorderIntensity = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Intensity"), 0f, 1f, cfg.focusBorderIntensity, v -> cfg.focusBorderIntensity = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Focus Border Speed"), 0f, 4f, cfg.focusBorderSpeed, v -> cfg.focusBorderSpeed = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Speed"), 0f, 4f, cfg.focusBorderSpeed, v -> cfg.focusBorderSpeed = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Focus Border Speed"), 0f, 4f, cfg.focusBorderSpeed, v -> cfg.focusBorderSpeed = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap * 2; addTitle("Debug", widgetX, y, widgetWidth); y += widgetHeight; -//#if MC >= 26 +//? if >= 26 { Button pixelatedGridButton = Button.builder(getFeatureText("Pixelated Grid", cfg.features.pixelatedGrid), button -> { -//#else - ButtonWidget pixelatedGridButton = ButtonWidget.builder(getFeatureText("Pixelated Grid", cfg.features.pixelatedGrid), button -> { -//#endif +//? } else { + /*ButtonWidget pixelatedGridButton = ButtonWidget.builder(getFeatureText("Pixelated Grid", cfg.features.pixelatedGrid), button -> { +*///? } cfg.features.pixelatedGrid = !cfg.features.pixelatedGrid; button.setMessage(getFeatureText("Pixelated Grid", cfg.features.pixelatedGrid)); -//#if MC >= 26 +//? if >= 26 { }).bounds(widgetX, y, widgetWidth, widgetHeight).build(); -//#else - }).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); -//#endif +//? } else { + /*}).dimensions(widgetX, y, widgetWidth, widgetHeight).build(); +*///? } addPositionedWidget(pixelatedGridButton, y).active = cfg.features.enableRedesign; y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Grid Size"), 1f, 32f, cfg.pixelatedGridSize, v -> cfg.pixelatedGridSize = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Grid Size"), 1f, 32f, cfg.pixelatedGridSize, v -> cfg.pixelatedGridSize = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.floatSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Grid Size"), 1f, 32f, cfg.pixelatedGridSize, v -> cfg.pixelatedGridSize = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; -//#if MC >= 26 +//? if >= 26 { addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Component.literal("Debug Step"), 0, 9, Math.round(cfg.debugStep), v -> cfg.debugStep = v.floatValue()), y).active = cfg.features.enableRedesign; -//#else - addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Debug Step"), 0, 9, Math.round(cfg.debugStep), v -> cfg.debugStep = v.floatValue()), y).active = cfg.features.enableRedesign; -//#endif +//? } else { + /*addSlider(MappedSlider.intSlider(widgetX, y, widgetWidth, widgetHeight, Text.literal("Debug Step"), 0, 9, Math.round(cfg.debugStep), v -> cfg.debugStep = v.floatValue()), y).active = cfg.features.enableRedesign; +*///? } y += widgetHeight + gap; this.totalListHeight = y; -//#if MC >= 26 +//? if >= 26 { addRenderableWidget(Button.builder(Component.translatable("controls.reset"), b -> { -//#else - addDrawableChild(ButtonWidget.builder(Text.translatable("controls.reset"), b -> { -//#endif +//? } else { + /*addDrawableChild(ButtonWidget.builder(Text.translatable("controls.reset"), b -> { +*///? } ReGlassSettingsIO.apply(new ReGlassSettingsIO.Data()); -//#if MC >= 26.2 +//? if >= 26.2 { if (this.minecraft != null) { this.minecraft.gui.setScreen(new ReGlassConfigScreen(this.parent)); -//#elseif MC >= 26 - if (this.minecraft != null) { +//? } elif >= 26 { + /*if (this.minecraft != null) { this.minecraft.setScreen(new ReGlassConfigScreen(this.parent)); -//#else - if (this.client != null) { +*///? } else { + /*if (this.client != null) { this.client.setScreen(new ReGlassConfigScreen(this.parent)); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { }).bounds(this.width / 2 - 100, this.height - 28, 98, 20).build()); -//#else - }).dimensions(this.width / 2 - 100, this.height - 28, 98, 20).build()); -//#endif +//? } else { + /*}).dimensions(this.width / 2 - 100, this.height - 28, 98, 20).build()); +*///? } -//#if MC >= 26 +//? if >= 26 { addRenderableWidget(Button.builder(Component.translatable("gui.done"), b -> onClose()).bounds(this.width / 2 + 2, this.height - 28, 98, 20).build()); -//#else - addDrawableChild(ButtonWidget.builder(Text.translatable("gui.done"), b -> close()).dimensions(this.width / 2 + 2, this.height - 28, 98, 20).build()); -//#endif +//? } else { + /*addDrawableChild(ButtonWidget.builder(Text.translatable("gui.done"), b -> close()).dimensions(this.width / 2 + 2, this.height - 28, 98, 20).build()); +*///? } int previewX = this.width / 2 + 20; int previewY = this.height / 2 - 50; @@ -363,64 +363,64 @@ protected void init() { .refractionThickness(cfg.defaultRefThickness).refractionFactor(cfg.defaultRefFactor).refractionDispersion(cfg.defaultRefDispersion) .fresnelRange(cfg.defaultRefFresnelRange).fresnelHardness(cfg.defaultRefFresnelHardness).fresnelFactor(cfg.defaultRefFresnelFactor) .glareRange(cfg.defaultGlareRange).glareHardness(cfg.defaultGlareHardness).glareConvergence(cfg.defaultGlareConvergence) -//#if MC >= 26 +//? if >= 26 { .glareOppositeFactor(cfg.defaultGlareOppositeFactor).glareFactor(cfg.defaultGlareFactor).glareAngleRad(cfg.defaultGlareAngleRad) .layer(1); -//#else - .glareOppositeFactor(cfg.defaultGlareOppositeFactor).glareFactor(cfg.defaultGlareFactor).glareAngleRad(cfg.defaultGlareAngleRad); -//#endif +//? } else { + /*.glareOppositeFactor(cfg.defaultGlareOppositeFactor).glareFactor(cfg.defaultGlareFactor).glareAngleRad(cfg.defaultGlareAngleRad); +*///? } -//#if MC >= 26 +//? if >= 26 { previewCircle = addRenderableWidget(new LiquidGlassWidget(previewX + 40, previewY, 100, 100, s1).setCornerRadiusPx(50f)); -//#else - previewCircle = addDrawableChild(new LiquidGlassWidget(previewX, previewY, 100, 100, s1).setCornerRadiusPx(50f)); -//#endif +//? } else { + /*previewCircle = addDrawableChild(new LiquidGlassWidget(previewX, previewY, 100, 100, s1).setCornerRadiusPx(50f)); +*///? } WidgetStyle s2 = WidgetStyle.create().tint(cfg.defaultTintColor, cfg.defaultTintAlpha).blurRadius(cfg.defaultBlurRadius) .shadow(cfg.defaultShadowExpand, cfg.defaultShadowFactor, cfg.defaultShadowOffsetX, cfg.defaultShadowOffsetY) -//#if MC >= 26 +//? if >= 26 { .shadowColor(cfg.defaultShadowColor, cfg.defaultShadowColorAlpha) .layer(0); -//#else - .shadowColor(cfg.defaultShadowColor, cfg.defaultShadowColorAlpha); -//#endif +//? } else { + /*.shadowColor(cfg.defaultShadowColor, cfg.defaultShadowColorAlpha); +*///? } -//#if MC >= 26 +//? if >= 26 { previewRounded = addRenderableWidget(new LiquidGlassWidget(previewX + 20, previewY + 120, 140, 60, s2).setCornerRadiusPx(16f)); -//#else - previewRounded = addDrawableChild(new LiquidGlassWidget(previewX + 110, previewY + 20, 140, 60, s2).setCornerRadiusPx(16f)); -//#endif +//? } else { + /*previewRounded = addDrawableChild(new LiquidGlassWidget(previewX + 110, previewY + 20, 140, 60, s2).setCornerRadiusPx(16f)); +*///? } } -//#if MC >= 26 +//? if >= 26 { private Component getEnableRedesignText() { return Component.literal("ReGlass Redesign: ").append(ReGlassConfig.INSTANCE.features.enableRedesign ? Component.translatable("options.on") : Component.translatable("options.off")); -//#else - private Text getEnableRedesignText() { +//? } else { + /*private Text getEnableRedesignText() { return Text.literal("ReGlass Redesign: ").append(ReGlassConfig.INSTANCE.features.enableRedesign ? Text.translatable("options.on") : Text.translatable("options.off")); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { private Component getFeatureText(String feature, boolean enabled) { return Component.literal(feature + ": ").append(enabled ? Component.translatable("options.on") : Component.translatable("options.off")); -//#else - private Text getFeatureText(String feature, boolean enabled) { +//? } else { + /*private Text getFeatureText(String feature, boolean enabled) { return Text.literal(feature + ": ").append(enabled ? Text.translatable("options.on") : Text.translatable("options.off")); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { private T addPositionedWidget(T widget, int y) { -//#else - private T addPositionedWidget(T widget, int y) { -//#endif +//? } else { + /*private T addPositionedWidget(T widget, int y) { +*///? } positionedWidgets.add(new PositionedWidget(widget, y)); -//#if MC >= 26 +//? if >= 26 { return addRenderableWidget(widget); -//#else - return addDrawableChild(widget); -//#endif +//? } else { + /*return addDrawableChild(widget); +*///? } } private MappedSlider addSlider(MappedSlider slider, int y) { @@ -428,21 +428,21 @@ private MappedSlider addSlider(MappedSlider slider, int y) { } private void addTitle(String title, int x, int y, int width) { -//#if MC >= 26 +//? if >= 26 { addPositionedWidget(new TitleWidget(x, y, width, 20, Component.literal(title)), y); -//#else - addPositionedWidget(new TitleWidget(x, y, width, 20, Text.literal(title)), y); -//#endif +//? } else { + /*addPositionedWidget(new TitleWidget(x, y, width, 20, Text.literal(title)), y); +*///? } } @Override -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { -//#else - public void render(DrawContext context, int mouseX, int mouseY, float delta) { +//? } else { + /*public void render(DrawContext context, int mouseX, int mouseY, float delta) { this.renderBackground(context, mouseX, mouseY, delta); -//#endif +*///? } int listTop = 32; int listBottom = this.height - 32; @@ -455,17 +455,17 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { } } -//#if MC >= 26 +//? if >= 26 { super.extractRenderState(context, mouseX, mouseY, delta); -//#else - super.render(context, mouseX, mouseY, delta); -//#endif +//? } else { + /*super.render(context, mouseX, mouseY, delta); +*///? } -//#if MC >= 26 +//? if >= 26 { context.centeredText(this.font, Component.literal("ReGlass Config (Scrollable)"), this.width / 2, 15, 0xFFFFFFFF); -//#else - context.drawCenteredTextWithShadow(this.textRenderer, Text.of("ReGlass Config (Scrollable)"), this.width / 2, 15, 0xFFFFFFFF); -//#endif +//? } else { + /*context.drawCenteredTextWithShadow(this.textRenderer, Text.of("ReGlass Config (Scrollable)"), this.width / 2, 15, 0xFFFFFFFF); +*///? } } @Override @@ -474,58 +474,58 @@ public boolean mouseScrolled(double mouseX, double mouseY, double horizontalAmou int maxScroll = Math.max(0, this.totalListHeight - listHeight); if (maxScroll > 0) { this.scrollPosition -= verticalAmount * 10; -//#if MC >= 26 +//? if >= 26 { this.scrollPosition = Mth.clamp(this.scrollPosition, 0, maxScroll); -//#else - this.scrollPosition = MathHelper.clamp(this.scrollPosition, 0, maxScroll); -//#endif +//? } else { + /*this.scrollPosition = MathHelper.clamp(this.scrollPosition, 0, maxScroll); +*///? } return true; } return false; } @Override -//#if MC >= 26 +//? if >= 26 { public void onClose() { -//#else - public void close() { -//#endif +//? } else { + /*public void close() { +*///? } ReGlassSettingsIO.saveFromMemory(); -//#if MC >= 26.2 +//? if >= 26.2 { if (this.minecraft != null) { this.minecraft.gui.setScreen(this.parent); -//#elseif MC >= 26 - if (this.minecraft != null) { +//? } elif >= 26 { + /*if (this.minecraft != null) { this.minecraft.setScreen(this.parent); -//#else - if (this.client != null) { +*///? } else { + /*if (this.client != null) { this.client.setScreen(this.parent); -//#endif +*///? } } } -//#if MC >= 26 +//? if >= 26 { private class TitleWidget extends AbstractWidget { public TitleWidget(int x, int y, int width, int height, Component message) { -//#else - private class TitleWidget extends ClickableWidget { +//? } else { + /*private class TitleWidget extends ClickableWidget { public TitleWidget(int x, int y, int width, int height, Text message) { -//#endif +*///? } super(x, y, width, height, message); } @Override -//#if MC >= 26 +//? if >= 26 { public void extractWidgetRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { -//#else - public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { -//#endif +//? } else { + /*public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { +*///? } if (this.visible) { -//#if MC >= 26 +//? if >= 26 { context.centeredText(ReGlassConfigScreen.this.font, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, 0xFFFFFF); -//#else - context.drawCenteredTextWithShadow(ReGlassConfigScreen.this.textRenderer, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, 0xFFFFFF); -//#endif +//? } else { + /*context.drawCenteredTextWithShadow(ReGlassConfigScreen.this.textRenderer, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, 0xFFFFFF); +*///? } } } @@ -535,10 +535,10 @@ public boolean isMouseOver(double mouseX, double mouseY) { } @Override -//#if MC >= 26 +//? if >= 26 { protected void updateWidgetNarration(NarrationElementOutput builder) {} -//#else - protected void appendClickableNarrations(NarrationMessageBuilder builder) {} -//#endif +//? } else { + /*protected void appendClickableNarrations(NarrationMessageBuilder builder) {} +*///? } } } diff --git a/src/main/java/restudio/reglass/client/screen/widget/ClickableEntryWidget.java b/src/main/java/restudio/reglass/client/screen/widget/ClickableEntryWidget.java index 5b82155..345c5a8 100644 --- a/src/main/java/restudio/reglass/client/screen/widget/ClickableEntryWidget.java +++ b/src/main/java/restudio/reglass/client/screen/widget/ClickableEntryWidget.java @@ -1,25 +1,25 @@ package restudio.reglass.client.screen.widget; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.widget.ClickableWidget; +//? } else { +/*import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.text.Text; -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { public abstract class ClickableEntryWidget

extends AbstractWidget { -//#else -public abstract class ClickableEntryWidget

extends ClickableWidget { -//#endif +//? } else { +/*public abstract class ClickableEntryWidget

extends ClickableWidget { +*///? } protected final P parent; -//#if MC >= 26 +//? if >= 26 { public ClickableEntryWidget(P parent, int x, int y, int width, int height, Component message) { -//#else - public ClickableEntryWidget(P parent, int x, int y, int width, int height, Text message) { -//#endif +//? } else { + /*public ClickableEntryWidget(P parent, int x, int y, int width, int height, Text message) { +*///? } super(x, y, width, height, message); this.parent = parent; } diff --git a/src/main/java/restudio/reglass/client/screen/widget/ScrollableListWidget.java b/src/main/java/restudio/reglass/client/screen/widget/ScrollableListWidget.java index ffd21c9..35b8188 100644 --- a/src/main/java/restudio/reglass/client/screen/widget/ScrollableListWidget.java +++ b/src/main/java/restudio/reglass/client/screen/widget/ScrollableListWidget.java @@ -2,7 +2,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -11,8 +11,8 @@ import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; @@ -20,7 +20,7 @@ import net.minecraft.client.util.InputUtil; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; -//#endif +*///? } import java.util.List; import java.util.Set; @@ -33,11 +33,11 @@ public class ScrollableListWidget> exten private double scrollAmount; public ScrollableListWidget(Screen screen, int x, int y, int width, int height, int itemHeight) { -//#if MC >= 26 +//? if >= 26 { super(screen, x, y, width, height, Component.empty()); -//#else - super(screen, x, y, width, height, Text.empty()); -//#endif +//? } else { + /*super(screen, x, y, width, height, Text.empty()); +*///? } this.itemHeight = itemHeight; } @@ -68,11 +68,11 @@ public Set getSelectedEntries() { } public void setSelected(E entry) { -//#if MC >= 26 +//? if >= 26 { if (!InputConstants.isKeyDown(Minecraft.getInstance().getWindow(), InputConstants.KEY_LCONTROL)) { -//#else - if (!InputUtil.isKeyPressed(MinecraftClient.getInstance().getWindow(), InputUtil.GLFW_KEY_LEFT_CONTROL)) { -//#endif +//? } else { + /*if (!InputUtil.isKeyPressed(MinecraftClient.getInstance().getWindow(), InputUtil.GLFW_KEY_LEFT_CONTROL)) { +*///? } this.selectedEntries.clear(); } @@ -84,11 +84,11 @@ public void setSelected(E entry) { } @Override -//#if MC >= 26 +//? if >= 26 { public void extractWidgetRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { -//#else - public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { -//#endif +//? } else { + /*public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { +*///? } context.enableScissor(getX(), getY(), getX() + width, getY() + height); int top = getY() - (int) this.scrollAmount + verticalPadding; @@ -97,11 +97,11 @@ public void renderWidget(DrawContext context, int mouseX, int mouseY, float delt int entryY = top + i * (this.itemHeight + verticalPadding); if (entryY + this.itemHeight >= this.getY() && entryY <= this.getY() + this.height) { boolean isHovered = isMouseOver(mouseX, mouseY) && mouseY >= entryY && mouseY < entryY + this.itemHeight; -//#if MC >= 26 +//? if >= 26 { entry.extractRenderState(context, i, getX(), entryY, width, this.itemHeight, mouseX, mouseY, isHovered, delta); -//#else - entry.render(context, i, getX(), entryY, width, this.itemHeight, mouseX, mouseY, isHovered, delta); -//#endif +//? } else { + /*entry.render(context, i, getX(), entryY, width, this.itemHeight, mouseX, mouseY, isHovered, delta); +*///? } } } @@ -109,11 +109,11 @@ public void renderWidget(DrawContext context, int mouseX, int mouseY, float delt } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseClicked(MouseButtonEvent button, boolean isDouble) { -//#else - public boolean mouseClicked(Click button, boolean isDouble) { -//#endif +//? } else { + /*public boolean mouseClicked(Click button, boolean isDouble) { +*///? } if (isMouseOver(button.y(), button.y())) { int top = getY() - (int) this.scrollAmount + verticalPadding; for (int i = 0; i < this.entries.size(); i++) { @@ -135,11 +135,11 @@ public boolean mouseClicked(Click button, boolean isDouble) { public boolean mouseScrolled(double mouseX, double mouseY, double horizontalAmount, double verticalAmount) { if (isMouseOver(mouseX, mouseY)) { this.scrollAmount -= verticalAmount * (this.itemHeight / 2.0); -//#if MC >= 26 +//? if >= 26 { this.scrollAmount = Mth.clamp(this.scrollAmount, 0, Math.max(0, this.getMaxScroll())); -//#else - this.scrollAmount = MathHelper.clamp(this.scrollAmount, 0, Math.max(0, this.getMaxScroll())); -//#endif +//? } else { + /*this.scrollAmount = MathHelper.clamp(this.scrollAmount, 0, Math.max(0, this.getMaxScroll())); +*///? } return true; } return false; @@ -158,11 +158,11 @@ public boolean isFocused() { } @Override -//#if MC >= 26 +//? if >= 26 { protected void updateWidgetNarration(NarrationElementOutput builder) { -//#else - protected void appendClickableNarrations(NarrationMessageBuilder builder) { -//#endif +//? } else { + /*protected void appendClickableNarrations(NarrationMessageBuilder builder) { +*///? } } public static abstract class Entry> { @@ -175,22 +175,22 @@ public Entry(int x, int y, int width, int height) { this.height = height; } -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(GuiGraphicsExtractor context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { -//#else - public void render(DrawContext context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { -//#endif +//? } else { + /*public void render(DrawContext context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { +*///? } this.x = x; this.y = y; this.width = width; this.height = height; } -//#if MC >= 26 +//? if >= 26 { public abstract boolean mouseClicked(MouseButtonEvent button); -//#else - public abstract boolean mouseClicked(Click button); -//#endif +//? } else { + /*public abstract boolean mouseClicked(Click button); +*///? } public boolean isMouseOver(double mouseX, double mouseY) { return mouseX >= this.x && mouseX < this.x + this.width && diff --git a/src/main/java/restudio/reglass/client/screen/widget/world/WorldListEntryWidget.java b/src/main/java/restudio/reglass/client/screen/widget/world/WorldListEntryWidget.java index 03d8bed..ff5c265 100644 --- a/src/main/java/restudio/reglass/client/screen/widget/world/WorldListEntryWidget.java +++ b/src/main/java/restudio/reglass/client/screen/widget/world/WorldListEntryWidget.java @@ -1,7 +1,7 @@ package restudio.reglass.client.screen.widget.world; import com.mojang.logging.LogUtils; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.input.MouseButtonEvent; @@ -11,8 +11,8 @@ import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; @@ -21,7 +21,7 @@ import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; -//#endif +*///? } import net.minecraft.world.level.storage.LevelSummary; import org.slf4j.Logger; import restudio.reglass.client.api.ReGlassApi; @@ -41,18 +41,18 @@ public class WorldListEntryWidget extends ScrollableListWidget.Entry { private static final Logger LOGGER = LogUtils.getLogger(); -//#if MC >= 26 +//? if >= 26 { private static final Identifier DEFAULT_ICON_ID = Identifier.fromNamespaceAndPath("textures/misc/unknown_server.png"); -//#else - private static final Identifier DEFAULT_ICON_ID = Identifier.of("textures/misc/unknown_server.png"); -//#endif +//? } else { + /*private static final Identifier DEFAULT_ICON_ID = Identifier.of("textures/misc/unknown_server.png"); +*///? } public static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).withZone(ZoneId.systemDefault()); -//#if MC >= 26 +//? if >= 26 { private final Minecraft client; -//#else - private final MinecraftClient client; -//#endif +//? } else { + /*private final MinecraftClient client; +*///? } private final CustomWorldSelectScreen parent; private final LevelSummary summary; private final Identifier iconId; @@ -60,27 +60,27 @@ public class WorldListEntryWidget extends ScrollableListWidget.Entry= 26 +//? if >= 26 { private DynamicTexture iconTexture; -//#else - private NativeImageBackedTexture iconTexture; -//#endif +//? } else { + /*private NativeImageBackedTexture iconTexture; +*///? } public WorldListEntryWidget(CustomWorldSelectScreen parent, LevelSummary summary, int x, int y, int height) { super(x, y, parent.width - 150 - 40, height); this.parent = parent; this.summary = summary; -//#if MC >= 26 +//? if >= 26 { this.minecraft = Minecraft.getInstance(); -//#else - this.client = MinecraftClient.getInstance(); -//#endif +//? } else { + /*this.client = MinecraftClient.getInstance(); +*///? } String safeName = summary.getName().toLowerCase().replaceAll("[^a-z0-9/._-]", "_"); -//#if MC >= 26 +//? if >= 26 { this.iconId = Identifier.fromNamespaceAndPath("world-select/icon/" + safeName); -//#else - this.iconId = Identifier.of("world-select/icon/" + safeName); -//#endif +//? } else { + /*this.iconId = Identifier.of("world-select/icon/" + safeName); +*///? } loadIcon(); } @@ -101,13 +101,13 @@ private void loadIcon() { return null; } }; -//#if MC >= 26 +//? if >= 26 { this.iconTexture = new DynamicTexture(nativeImageSupplier, image); this.minecraft.getTextureManager().registerTexture(this.iconId, this.iconTexture); -//#else - this.iconTexture = new NativeImageBackedTexture(nativeImageSupplier, image); +//? } else { + /*this.iconTexture = new NativeImageBackedTexture(nativeImageSupplier, image); this.client.getTextureManager().registerTexture(this.iconId, this.iconTexture); -//#endif +*///? } } catch (Exception e) { LOGGER.error("Failed to load world icon for {}", summary.getName(), e); this.iconTexture = null; @@ -116,13 +116,13 @@ private void loadIcon() { } @Override -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(GuiGraphicsExtractor context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { super.extractRenderState(context, index, x, y, width, height, mouseX, mouseY, hovered, delta); -//#else - public void render(DrawContext context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { +//? } else { + /*public void render(DrawContext context, int index, int x, int y, int width, int height, int mouseX, int mouseY, boolean hovered, float delta) { super.render(context, index, x, y, width, height, mouseX, mouseY, hovered, delta); -//#endif +*///? } boolean isSelected = this.parent.getList().getSelectedEntries().contains(this); @@ -134,11 +134,11 @@ public void render(DrawContext context, int index, int x, int y, int width, int } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .bounds(x, y, width, height) -//#else - .dimensions(x, y, width, height) -//#endif +//? } else { + /*.dimensions(x, y, width, height) +*///? } .cornerRadius(8) .style(style) .hover(hovered ? 1f : 0f) @@ -153,39 +153,39 @@ public void render(DrawContext context, int index, int x, int y, int width, int } if (displayName == null || displayName.isEmpty()) { -//#if MC >= 26 +//? if >= 26 { displayName = Component.translatable("selectWorld.world").getString() + " " + (index + 1); -//#else - displayName = Text.translatable("selectWorld.world").getString() + " " + (index + 1); -//#endif +//? } else { + /*displayName = Text.translatable("selectWorld.world").getString() + " " + (index + 1); +*///? } } -//#if MC >= 26 +//? if >= 26 { MutableComponent details = (MutableComponent) summary.getDetails(); -//#else - MutableText details = (MutableText) summary.getDetails(); -//#endif +//? } else { + /*MutableText details = (MutableText) summary.getDetails(); +*///? } -//#if MC >= 26 +//? if >= 26 { context.text(client.font, displayName, x + 40, y + 2, 0xFFFFFFFF); context.text(client.font, name, x + 40, y + 10 + 3, 0xFF808080); context.text(client.font, details, x + 40, y + 10 + 9 + 3, 0xFF808080); -//#else - context.drawTextWithShadow(client.textRenderer, displayName, x + 40, y + 2, 0xFFFFFFFF); +//? } else { + /*context.drawTextWithShadow(client.textRenderer, displayName, x + 40, y + 2, 0xFFFFFFFF); context.drawTextWithShadow(client.textRenderer, name, x + 40, y + 10 + 3, 0xFF808080); context.drawTextWithShadow(client.textRenderer, details, x + 40, y + 10 + 9 + 3, 0xFF808080); -//#endif +*///? } Identifier texture = this.iconTexture != null ? this.iconId : DEFAULT_ICON_ID; context.drawTexture(RenderPipelines.GUI_TEXTURED, texture, x + 2, y + 2, 0, 0, 32, 32, 32, 32); } @Override -//#if MC >= 26 +//? if >= 26 { public boolean mouseClicked(MouseButtonEvent click) { -//#else - public boolean mouseClicked(Click click) { -//#endif +//? } else { + /*public boolean mouseClicked(Click click) { +*///? } if (isMouseOver(click.x(), click.y())) { parent.getList().setSelected(this); return true; @@ -200,11 +200,11 @@ public LevelSummary getSummary() { @Override public void close() { if (this.iconTexture != null) { -//#if MC >= 26 +//? if >= 26 { this.minecraft.getTextureManager().destroyTexture(this.iconId); -//#else - this.client.getTextureManager().destroyTexture(this.iconId); -//#endif +//? } else { + /*this.client.getTextureManager().destroyTexture(this.iconId); +*///? } this.iconTexture.close(); this.iconTexture = null; } diff --git a/src/main/java/restudio/reglass/client/screen/world/CustomWorldSelectScreen.java b/src/main/java/restudio/reglass/client/screen/world/CustomWorldSelectScreen.java index 114e4ef..629f8cd 100644 --- a/src/main/java/restudio/reglass/client/screen/world/CustomWorldSelectScreen.java +++ b/src/main/java/restudio/reglass/client/screen/world/CustomWorldSelectScreen.java @@ -1,7 +1,7 @@ package restudio.reglass.client.screen.world; import com.mojang.logging.LogUtils; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.ConfirmScreen; @@ -9,22 +9,22 @@ import net.minecraft.client.gui.screens.worldselection.CreateWorldScreen; import net.minecraft.client.gui.screens.worldselection.EditWorldScreen; import net.minecraft.client.gui.components.Button; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ConfirmScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.world.CreateWorldScreen; import net.minecraft.client.gui.screen.world.EditWorldScreen; import net.minecraft.client.gui.widget.ButtonWidget; -//#endif +*///? } import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.toast.SystemToast; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.network.chat.Component; -//#else -import net.minecraft.text.Text; -//#endif +//? } else { +/*import net.minecraft.text.Text; +*///? } import net.minecraft.util.path.SymlinkValidationException; import net.minecraft.world.level.storage.LevelStorage; import net.minecraft.world.level.storage.LevelStorageException; @@ -44,18 +44,18 @@ public class CustomWorldSelectScreen extends Screen { private final Screen parent; private ScrollableListWidget worldList; private TextFieldWidget searchBox; -//#if MC >= 26 +//? if >= 26 { private Button playButton, createButton, editButton, deleteButton; -//#else - private ButtonWidget playButton, createButton, editButton, deleteButton; -//#endif +//? } else { + /*private ButtonWidget playButton, createButton, editButton, deleteButton; +*///? } public CustomWorldSelectScreen(Screen parent) { -//#if MC >= 26 +//? if >= 26 { super(Component.translatable("selectWorld.title")); -//#else - super(Text.translatable("selectWorld.title")); -//#endif +//? } else { + /*super(Text.translatable("selectWorld.title")); +*///? } this.parent = parent; } @@ -65,95 +65,95 @@ protected void init() { this.worldList = new ScrollableListWidget<>(this, 20, 50, listWidth - 40, this.height - 100, 36); this.worldList.setVerticalPadding(5); -//#if MC >= 26 +//? if >= 26 { this.searchBox = new TextFieldWidget(this.font, 20, 20, listWidth - 40, 20, Component.translatable("selectWorld.search")); -//#else - this.searchBox = new TextFieldWidget(this.textRenderer, 20, 20, listWidth - 40, 20, Text.translatable("selectWorld.search")); -//#endif +//? } else { + /*this.searchBox = new TextFieldWidget(this.textRenderer, 20, 20, listWidth - 40, 20, Text.translatable("selectWorld.search")); +*///? } this.searchBox.setChangedListener(this::filterWorlds); this.loadWorldList(); -//#if MC >= 26 +//? if >= 26 { this.addRenderableWidget(this.worldList); this.addRenderableWidget(this.searchBox); -//#else - this.addDrawableChild(this.worldList); +//? } else { + /*this.addDrawableChild(this.worldList); this.addDrawableChild(this.searchBox); -//#endif +*///? } int buttonWidth = 120; -//#if MC >= 26 +//? if >= 26 { this.playButton = Button.builder(Component.translatable("selectWorld.select"), button -> play(getSelectedSummaries())).bounds(listWidth, 50, buttonWidth, 20).build(); this.createButton = Button.builder(Component.translatable("selectWorld.create"), button -> CreateWorldScreen.show(this.minecraft, null)).bounds(listWidth, 80, buttonWidth, 20).build(); this.editButton = Button.builder(Component.translatable("selectWorld.edit"), button -> { -//#else - this.playButton = ButtonWidget.builder(Text.translatable("selectWorld.select"), button -> play(getSelectedSummaries())).dimensions(listWidth, 50, buttonWidth, 20).build(); +//? } else { + /*this.playButton = ButtonWidget.builder(Text.translatable("selectWorld.select"), button -> play(getSelectedSummaries())).dimensions(listWidth, 50, buttonWidth, 20).build(); this.createButton = ButtonWidget.builder(Text.translatable("selectWorld.create"), button -> CreateWorldScreen.show(this.client, null)).dimensions(listWidth, 80, buttonWidth, 20).build(); this.editButton = ButtonWidget.builder(Text.translatable("selectWorld.edit"), button -> { -//#endif +*///? } Set summaries = getSelectedSummaries(); if (summaries.size() == 1) { LevelSummary summary = summaries.iterator().next(); try { -//#if MC >= 26 +//? if >= 26 { LevelStorage.Session session = this.minecraft.getLevelStorage().createSession(summary.getName()); this.minecraft.setScreen(EditWorldScreen.create(this.minecraft, session, (saved) -> { -//#else - LevelStorage.Session session = this.client.getLevelStorage().createSession(summary.getName()); +//? } else { + /*LevelStorage.Session session = this.client.getLevelStorage().createSession(summary.getName()); this.client.setScreen(EditWorldScreen.create(this.client, session, (saved) -> { -//#endif +*///? } if (saved) { this.loadWorldList(); } -//#if MC >= 26 +//? if >= 26 { this.minecraft.setScreen(this); -//#else - this.client.setScreen(this); -//#endif +//? } else { + /*this.client.setScreen(this); +*///? } })); } catch (IOException e) { LOGGER.error("Failed to access world {}", summary.getName(), e); -//#if MC >= 26 +//? if >= 26 { SystemToast.addWorldAccessFailureToast(this.minecraft, summary.getName()); -//#else - SystemToast.addWorldAccessFailureToast(this.client, summary.getName()); -//#endif +//? } else { + /*SystemToast.addWorldAccessFailureToast(this.client, summary.getName()); +*///? } } catch (SymlinkValidationException e) { LOGGER.warn("Failed to validate symlinks for world {}", summary.getName(), e); -//#if MC >= 26 +//? if >= 26 { SystemToast.addWorldAccessFailureToast(this.minecraft, summary.getName()); -//#else - SystemToast.addWorldAccessFailureToast(this.client, summary.getName()); -//#endif +//? } else { + /*SystemToast.addWorldAccessFailureToast(this.client, summary.getName()); +*///? } } } -//#if MC >= 26 +//? if >= 26 { }).bounds(listWidth, 100, buttonWidth, 20).build(); this.deleteButton = Button.builder(Component.translatable("selectWorld.delete"), button -> this.delete(getSelectedSummaries())).bounds(listWidth, 120, buttonWidth, 20).build(); -//#else - }).dimensions(listWidth, 100, buttonWidth, 20).build(); +//? } else { + /*}).dimensions(listWidth, 100, buttonWidth, 20).build(); this.deleteButton = ButtonWidget.builder(Text.translatable("selectWorld.delete"), button -> this.delete(getSelectedSummaries())).dimensions(listWidth, 120, buttonWidth, 20).build(); -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { this.addRenderableWidget(this.playButton); this.addRenderableWidget(this.createButton); this.addRenderableWidget(this.editButton); this.addRenderableWidget(this.deleteButton); -//#else - this.addDrawableChild(this.playButton); +//? } else { + /*this.addDrawableChild(this.playButton); this.addDrawableChild(this.createButton); this.addDrawableChild(this.editButton); this.addDrawableChild(this.deleteButton); -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { this.addRenderableWidget(Button.builder(Component.translatable("gui.cancel"), b -> this.minecraft.setScreen(this.parent)).bounds(listWidth, this.height - 40, buttonWidth, 20).build()); -//#else - this.addDrawableChild(ButtonWidget.builder(Text.translatable("gui.cancel"), b -> this.client.setScreen(this.parent)).dimensions(listWidth, this.height - 40, buttonWidth, 20).build()); -//#endif +//? } else { + /*this.addDrawableChild(ButtonWidget.builder(Text.translatable("gui.cancel"), b -> this.client.setScreen(this.parent)).dimensions(listWidth, this.height - 40, buttonWidth, 20).build()); +*///? } updateButtonStates(); } @@ -161,13 +161,13 @@ protected void init() { private void loadWorldList() { this.worldList.clearEntries(); try { -//#if MC >= 26 +//? if >= 26 { LevelStorage.LevelList levelList = this.minecraft.getLevelStorage().getLevelList(); List summaries = this.minecraft.getLevelStorage().loadSummaries(levelList).join(); -//#else - LevelStorage.LevelList levelList = this.client.getLevelStorage().getLevelList(); +//? } else { + /*LevelStorage.LevelList levelList = this.client.getLevelStorage().getLevelList(); List summaries = this.client.getLevelStorage().loadSummaries(levelList).join(); -//#endif +*///? } for (LevelSummary summary : summaries) { this.worldList.addEntry(new WorldListEntryWidget(this, summary, 0, 0, 30)); @@ -186,27 +186,27 @@ private void filterWorlds(String filter) { } @Override -//#if MC >= 26 +//? if >= 26 { public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { -//#else - public void render(DrawContext context, int mouseX, int mouseY, float delta) { +//? } else { + /*public void render(DrawContext context, int mouseX, int mouseY, float delta) { this.renderBackground(context, mouseX, mouseY, delta); -//#endif +*///? } this.worldList.render(context, mouseX, mouseY, delta); this.searchBox.render(context, mouseX, mouseY, delta); -//#if MC >= 26 +//? if >= 26 { context.centeredText(this.font, this.title, this.width / 2, 8, 0xFFFFFF); -//#else - context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 8, 0xFFFFFF); -//#endif +//? } else { + /*context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 8, 0xFFFFFF); +*///? } -//#if MC >= 26 +//? if >= 26 { super.extractRenderState(context, mouseX, mouseY, delta); -//#else - super.render(context, mouseX, mouseY, delta); -//#endif +//? } else { + /*super.render(context, mouseX, mouseY, delta); +*///? } updateButtonStates(); } @@ -225,38 +225,38 @@ public ScrollableListWidget getList() { public void play(Set summaries) { if (summaries.size() == 1) { LevelSummary summary = summaries.iterator().next(); -//#if MC >= 26 +//? if >= 26 { client.createIntegratedServerLoader().start(summary.getName(), () -> this.minecraft.setScreen(this)); -//#else - client.createIntegratedServerLoader().start(summary.getName(), () -> this.client.setScreen(this)); -//#endif +//? } else { + /*client.createIntegratedServerLoader().start(summary.getName(), () -> this.client.setScreen(this)); +*///? } } } public void delete(Set summaries) { if (summaries.isEmpty()) return; -//#if MC >= 26 +//? if >= 26 { Component title = Component.translatable("selectWorld.deleteQuestion"); Component message = Component.translatable("selectWorld.deleteWarning", summaries.stream().map(LevelSummary::getDisplayName).collect(Collectors.joining(", "))); -//#else - Text title = Text.translatable("selectWorld.deleteQuestion"); +//? } else { + /*Text title = Text.translatable("selectWorld.deleteQuestion"); Text message = Text.translatable("selectWorld.deleteWarning", summaries.stream().map(LevelSummary::getDisplayName).collect(Collectors.joining(", "))); -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { this.minecraft.setScreen(new ConfirmScreen(confirmed -> { -//#else - this.client.setScreen(new ConfirmScreen(confirmed -> { -//#endif +//? } else { + /*this.client.setScreen(new ConfirmScreen(confirmed -> { +*///? } if (confirmed) { try { for (LevelSummary summary : summaries) { -//#if MC >= 26 +//? if >= 26 { try (LevelStorage.Session session = this.minecraft.getLevelStorage().createSession(summary.getName())) { -//#else - try (LevelStorage.Session session = this.client.getLevelStorage().createSession(summary.getName())) { -//#endif +//? } else { + /*try (LevelStorage.Session session = this.client.getLevelStorage().createSession(summary.getName())) { +*///? } session.deleteSessionLock(); } catch (SymlinkValidationException e) { LOGGER.warn("Failed to validate symlinks for world {}", summary.getName(), e); @@ -267,11 +267,11 @@ public void delete(Set summaries) { } this.loadWorldList(); } -//#if MC >= 26 +//? if >= 26 { this.minecraft.setScreen(this); -//#else - this.client.setScreen(this); -//#endif +//? } else { + /*this.client.setScreen(this); +*///? } }, title, message)); } @@ -283,10 +283,10 @@ private Set getSelectedSummaries() { @Override public void close() { -//#if MC >= 26 +//? if >= 26 { this.minecraft.setScreen(this.parent); -//#else - this.client.setScreen(this.parent); -//#endif +//? } else { + /*this.client.setScreen(this.parent); +*///? } } } diff --git a/src/main/java/restudio/reglass/client/ui/MappedSlider.java b/src/main/java/restudio/reglass/client/ui/MappedSlider.java index 27987be..8682082 100644 --- a/src/main/java/restudio/reglass/client/ui/MappedSlider.java +++ b/src/main/java/restudio/reglass/client/ui/MappedSlider.java @@ -1,52 +1,52 @@ package restudio.reglass.client.ui; import java.util.function.Consumer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.widget.SliderWidget; +//? } else { +/*import net.minecraft.client.gui.widget.SliderWidget; import net.minecraft.text.Text; -//#endif +*///? } import restudio.reglass.mixin.accessor.SliderWidgetAccessor; -//#if MC >= 26 +//? if >= 26 { public class MappedSlider extends AbstractSliderButton { -//#else -public class MappedSlider extends SliderWidget { -//#endif +//? } else { +/*public class MappedSlider extends SliderWidget { +*///? } private final double min; private final double max; private final Consumer onChange; private final boolean integer; -//#if MC >= 26 +//? if >= 26 { private final Component originalMessage = this.getMessage(); -//#else - private final Text originalMessage = this.getMessage(); -//#endif +//? } else { + /*private final Text originalMessage = this.getMessage(); +*///? } -//#if MC >= 26 +//? if >= 26 { public static MappedSlider floatSlider(int x, int y, int width, int height, Component msg, double min, double max, double init, Consumer onChange) { -//#else - public static MappedSlider floatSlider(int x, int y, int width, int height, Text msg, double min, double max, double init, Consumer onChange) { -//#endif +//? } else { + /*public static MappedSlider floatSlider(int x, int y, int width, int height, Text msg, double min, double max, double init, Consumer onChange) { +*///? } return new MappedSlider(x, y, width, height, msg, min, max, init, onChange, false); } -//#if MC >= 26 +//? if >= 26 { public static MappedSlider intSlider(int x, int y, int width, int height, Component msg, int min, int max, int init, Consumer onChange) { -//#else - public static MappedSlider intSlider(int x, int y, int width, int height, Text msg, int min, int max, int init, Consumer onChange) { -//#endif +//? } else { + /*public static MappedSlider intSlider(int x, int y, int width, int height, Text msg, int min, int max, int init, Consumer onChange) { +*///? } return new MappedSlider(x, y, width, height, msg, min, max, init, d -> onChange.accept(d.intValue()), true); } -//#if MC >= 26 +//? if >= 26 { private MappedSlider(int x, int y, int width, int height, Component message, double min, double max, double init, Consumer onChange, boolean integer) { -//#else - private MappedSlider(int x, int y, int width, int height, Text message, double min, double max, double init, Consumer onChange, boolean integer) { -//#endif +//? } else { + /*private MappedSlider(int x, int y, int width, int height, Text message, double min, double max, double init, Consumer onChange, boolean integer) { +*///? } super(x, y, width, height, message, 0); this.min = min; this.max = max; @@ -69,11 +69,11 @@ private double inverseMap(double real) { protected void updateMessage() { double v = map(this.value); if (integer) v = Math.round(v); -//#if MC >= 26 +//? if >= 26 { this.setMessage(Component.literal(originalMessage.getString() + ": " + format(v))); -//#else - this.setMessage(Text.literal(originalMessage.getString() + ": " + format(v))); -//#endif +//? } else { + /*this.setMessage(Text.literal(originalMessage.getString() + ": " + format(v))); +*///? } } private String format(double v) { diff --git a/src/main/java/restudio/reglass/mixin/accessor/BeaconScreenButtonAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/BeaconScreenButtonAccessor.java index 0d8ccec..e3608c0 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/BeaconScreenButtonAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/BeaconScreenButtonAccessor.java @@ -1,31 +1,31 @@ package restudio.reglass.mixin.accessor; -//#if MC < 26 -import net.minecraft.client.gui.screen.ingame.BeaconScreen; +//? if < 26 { +/*import net.minecraft.client.gui.screen.ingame.BeaconScreen; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.registry.entry.RegistryEntry; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; -//#if MC >= 26 +//? if >= 26 { import org.spongepowered.asm.mixin.gen.Invoker; -//#else -import org.spongepowered.asm.mixin.gen.Accessor; -//#endif +//? } else { +/*import org.spongepowered.asm.mixin.gen.Accessor; +*///? } -//#if MC >= 26 +//? if >= 26 { @Mixin(targets = "net.minecraft.client.gui.screens.inventory.BeaconScreen$BeaconScreenButton") -//#else -@Mixin(BeaconScreen.class) -//#endif +//? } else { +/*@Mixin(BeaconScreen.class) +*///? } public interface BeaconScreenButtonAccessor { -//#if MC >= 26 +//? if >= 26 { @Invoker("isSelected") boolean reglass$isSelected(); -//#else - @Accessor("primaryEffect") +//? } else { + /*@Accessor("primaryEffect") RegistryEntry reglass$getPrimaryEffect(); @Accessor("secondaryEffect") RegistryEntry reglass$getSecondaryEffect(); -//#endif +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/accessor/DrawContextAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/DrawContextAccessor.java index 5708e4a..e83bab5 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/DrawContextAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/DrawContextAccessor.java @@ -1,29 +1,29 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.GuiGraphicsExtractor.ScissorStack; import net.minecraft.client.renderer.state.gui.GuiRenderState; -//#else -import net.minecraft.client.gui.DrawContext; -//#endif +//? } else { +/*import net.minecraft.client.gui.DrawContext; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(GuiGraphicsExtractor.class) -//#else -@Mixin(DrawContext.class) -//#endif +//? } else { +/*@Mixin(DrawContext.class) +*///? } public interface DrawContextAccessor { @Accessor("scissorStack") -//#if MC >= 26 +//? if >= 26 { ScissorStack getScissorStack(); @Accessor("guiRenderState") GuiRenderState getGuiRenderState(); -//#else - DrawContext.ScissorStack getScissorStack(); -//#endif +//? } else { + /*DrawContext.ScissorStack getScissorStack(); +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/accessor/GameRendererAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/GameRendererAccessor.java index 1f50fa2..2ebf88f 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/GameRendererAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/GameRendererAccessor.java @@ -1,11 +1,11 @@ package restudio.reglass.mixin.accessor; import net.minecraft.client.gui.render.GuiRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.GameRenderer; -//#else -import net.minecraft.client.render.GameRenderer; -//#endif +//? } else { +/*import net.minecraft.client.render.GameRenderer; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/restudio/reglass/mixin/accessor/GuiRenderStateAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/GuiRenderStateAccessor.java index 6e8c138..d22fc31 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/GuiRenderStateAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/GuiRenderStateAccessor.java @@ -1,10 +1,10 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.state.gui.GuiRenderState; -//#else -import net.minecraft.client.gui.render.state.GuiRenderState; -//#endif +//? } else { +/*import net.minecraft.client.gui.render.state.GuiRenderState; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/restudio/reglass/mixin/accessor/GuiRendererAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/GuiRendererAccessor.java index 185a6bd..792ee2d 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/GuiRendererAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/GuiRendererAccessor.java @@ -1,11 +1,11 @@ package restudio.reglass.mixin.accessor; import net.minecraft.client.gui.render.GuiRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.MultiBufferSource; -//#else -import net.minecraft.client.render.VertexConsumerProvider; -//#endif +//? } else { +/*import net.minecraft.client.render.VertexConsumerProvider; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -13,10 +13,10 @@ public interface GuiRendererAccessor { @Accessor("vertexConsumers") -//#if MC >= 26 +//? if >= 26 { MultiBufferSource.BufferSource getVertexConsumers(); -//#else - VertexConsumerProvider.Immediate getVertexConsumers(); -//#endif +//? } else { + /*VertexConsumerProvider.Immediate getVertexConsumers(); +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/accessor/OptionsAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/OptionsAccessor.java index e584b1a..f5930ca 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/OptionsAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/OptionsAccessor.java @@ -1,29 +1,29 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.KeyMapping; import net.minecraft.client.Options; -//#else -import net.minecraft.client.option.GameOptions; +//? } else { +/*import net.minecraft.client.option.GameOptions; import net.minecraft.client.option.KeyBinding; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(Options.class) -//#else -@Mixin(GameOptions.class) -//#endif +//? } else { +/*@Mixin(GameOptions.class) +*///? } public interface OptionsAccessor { @Mutable -//#if MC >= 26 +//? if >= 26 { @Accessor("keyMappings") void setKeyMappings(KeyMapping[] keyMappings); -//#else - @Accessor("allKeys") +//? } else { + /*@Accessor("allKeys") void setKeyMappings(KeyBinding[] keyMappings); -//#endif +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/accessor/ShulkerBoxMenuAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/ShulkerBoxMenuAccessor.java index 198ceb8..c984cc9 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/ShulkerBoxMenuAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/ShulkerBoxMenuAccessor.java @@ -1,27 +1,27 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.world.Container; import net.minecraft.world.inventory.ShulkerBoxMenu; -//#else -import net.minecraft.inventory.Inventory; +//? } else { +/*import net.minecraft.inventory.Inventory; import net.minecraft.screen.ShulkerBoxScreenHandler; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(ShulkerBoxMenu.class) -//#else -@Mixin(ShulkerBoxScreenHandler.class) -//#endif +//? } else { +/*@Mixin(ShulkerBoxScreenHandler.class) +*///? } public interface ShulkerBoxMenuAccessor { -//#if MC >= 26 +//? if >= 26 { @Accessor("container") Container reglass$getContainer(); -//#else - @Accessor("inventory") +//? } else { + /*@Accessor("inventory") Inventory reglass$getInventory(); -//#endif +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/accessor/SliderWidgetAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/SliderWidgetAccessor.java index b86561d..c578735 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/SliderWidgetAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/SliderWidgetAccessor.java @@ -1,18 +1,18 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.components.AbstractSliderButton; -//#else -import net.minecraft.client.gui.widget.SliderWidget; -//#endif +//? } else { +/*import net.minecraft.client.gui.widget.SliderWidget; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(AbstractSliderButton.class) -//#else -@Mixin(SliderWidget.class) -//#endif +//? } else { +/*@Mixin(SliderWidget.class) +*///? } public interface SliderWidgetAccessor { @Accessor("value") double getValue(); diff --git a/src/main/java/restudio/reglass/mixin/accessor/SlotAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/SlotAccessor.java index b1afe62..9856783 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/SlotAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/SlotAccessor.java @@ -1,10 +1,10 @@ package restudio.reglass.mixin.accessor; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.world.inventory.Slot; -//#else -import net.minecraft.screen.slot.Slot; -//#endif +//? } else { +/*import net.minecraft.screen.slot.Slot; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/restudio/reglass/mixin/accessor/TextIconButtonWidgetAccessor.java b/src/main/java/restudio/reglass/mixin/accessor/TextIconButtonWidgetAccessor.java index 6b073a2..8024ad8 100644 --- a/src/main/java/restudio/reglass/mixin/accessor/TextIconButtonWidgetAccessor.java +++ b/src/main/java/restudio/reglass/mixin/accessor/TextIconButtonWidgetAccessor.java @@ -1,11 +1,11 @@ package restudio.reglass.mixin.accessor; import net.minecraft.client.gui.widget.TextIconButtonWidget; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.resources.Identifier; -//#else -import net.minecraft.util.Identifier; -//#endif +//? } else { +/*import net.minecraft.util.Identifier; +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/restudio/reglass/mixin/client/AbstractContainerScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/AbstractContainerScreenMixin.java index 70f1d62..19ee40f 100644 --- a/src/main/java/restudio/reglass/mixin/client/AbstractContainerScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/AbstractContainerScreenMixin.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; @@ -27,8 +27,8 @@ import net.minecraft.world.inventory.ShulkerBoxMenu; import net.minecraft.world.inventory.Slot; import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; -//#else -import net.minecraft.block.entity.ShulkerBoxBlockEntity; +//? } else { +/*import net.minecraft.block.entity.ShulkerBoxBlockEntity; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; @@ -48,7 +48,7 @@ import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; import net.minecraft.util.DyeColor; -//#endif +*///? } import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -56,19 +56,19 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -//#if MC < 26 -import restudio.reglass.client.ContainerColorContext; -//#endif +//? if < 26 { +/*import restudio.reglass.client.ContainerColorContext; +*///? } import restudio.reglass.client.api.ReGlassApi; import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { import restudio.reglass.client.ContainerColorContext; -//#endif +//? } import restudio.reglass.mixin.accessor.ShulkerBoxMenuAccessor; import restudio.reglass.mixin.accessor.SlotAccessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(AbstractContainerScreen.class) public abstract class AbstractContainerScreenMixin extends Screen { @Shadow @Final protected T menu; @@ -80,8 +80,8 @@ public abstract class AbstractContainerScreenMixin extends Screen { @Shadow @Final protected T handler; @Shadow protected int titleX; @@ -92,15 +92,15 @@ public abstract class AbstractContainerScreenMixin exte @Shadow @Final protected Text playerInventoryTitle; @Shadow protected int x; @Shadow protected int y; -//#endif +*///? } @Unique private final Map reglass$originalSlotPositions = new IdentityHashMap<>(); -//#if MC >= 26 +//? if >= 26 { protected AbstractContainerScreenMixin(Component title) { -//#else - protected AbstractContainerScreenMixin(Text title) { -//#endif +//? } else { + /*protected AbstractContainerScreenMixin(Text title) { +*///? } super(title); } @@ -119,41 +119,41 @@ protected AbstractContainerScreenMixin(Text title) { return; } -//#if MC >= 26 +//? if >= 26 { if (this.menu instanceof BeaconMenu) { -//#else - if (this.handler instanceof BeaconScreenHandler) { -//#endif +//? } else { + /*if (this.handler instanceof BeaconScreenHandler) { +*///? } reglass$spaceBeaconSlots(); -//#if MC >= 26 +//? if >= 26 { } else if (this.menu instanceof BrewingStandMenu) { -//#else - } else if (this.handler instanceof BrewingStandScreenHandler) { -//#endif +//? } else { + /*} else if (this.handler instanceof BrewingStandScreenHandler) { +*///? } reglass$spaceBrewingStandSlots(); -//#if MC >= 26 +//? if >= 26 { } else if (this.menu instanceof GrindstoneMenu) { -//#else - } else if (this.handler instanceof GrindstoneScreenHandler) { -//#endif +//? } else { + /*} else if (this.handler instanceof GrindstoneScreenHandler) { +*///? } reglass$spaceGrindstoneSlots(); -//#if MC >= 26 +//? if >= 26 { } else if (this.menu instanceof LoomMenu) { -//#else - } else if (this.handler instanceof LoomScreenHandler) { -//#endif +//? } else { + /*} else if (this.handler instanceof LoomScreenHandler) { +*///? } reglass$spaceLoomSlots(); -//#if MC >= 26 +//? if >= 26 { } else if (this.menu instanceof EnchantmentMenu) { -//#else - } else if (this.handler instanceof EnchantmentScreenHandler) { -//#endif +//? } else { + /*} else if (this.handler instanceof EnchantmentScreenHandler) { +*///? } reglass$spaceEnchantmentSlots(); } reglass$spaceGenericHotbar(); } -//#if MC >= 26 +//? if >= 26 { @Inject( method = "extractContents", at = @At( @@ -162,53 +162,53 @@ protected AbstractContainerScreenMixin(Text title) { ) ) private void reglass$extractContainerGlass(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "renderMain", at = @At("HEAD")) +//? } else { + /*@Inject(method = "renderMain", at = @At("HEAD")) private void reglass$renderContainerGlass(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; -//#if MC >= 26 +//? if >= 26 { if (!cfg.features.enableRedesign || !cfg.features.containers) { return; -//#else - if (cfg.features.enableRedesign && cfg.features.containers) { +//? } else { + /*if (cfg.features.enableRedesign && cfg.features.containers) { reglass$renderBatchBlobs(context); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { reglass$renderBatchBlobs(context); -//#endif +//? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractLabels", at = @At("HEAD"), cancellable = true) private void reglass$hidePlayerInventoryLabels(GuiGraphicsExtractor context, int mouseX, int mouseY, CallbackInfo ci) { -//#else - @Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) private void reglass$hidePlayerInventoryLabels(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } if (!reglass$isPlayerInventory()) { -//#if MC >= 26 +//? if >= 26 { context.text(this.font, this.title, reglass$labelX(this.titleLabelX), reglass$labelY(this.titleLabelY), 0xFFFFFFFF, true); -//#else - context.drawText(this.textRenderer, this.title, reglass$labelX(this.titleX), reglass$labelY(this.titleY), 0xFFFFFFFF, true); -//#endif +//? } else { + /*context.drawText(this.textRenderer, this.title, reglass$labelX(this.titleX), reglass$labelY(this.titleY), 0xFFFFFFFF, true); +*///? } } ci.cancel(); } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$renderBatchBlobs(GuiGraphicsExtractor context) { -//#else - private void reglass$renderBatchBlobs(DrawContext context) { -//#endif +//? } else { + /*private void reglass$renderBatchBlobs(DrawContext context) { +*///? } for (int[] group : reglass$getSlotGroups()) { reglass$renderGroup(context, group); } @@ -217,13 +217,13 @@ protected AbstractContainerScreenMixin(Text title) { @Unique private List reglass$getSlotGroups() { List slots = new ArrayList<>(); -//#if MC >= 26 +//? if >= 26 { for (Slot slot : this.menu.slots) { if (slot.isActive()) { -//#else - for (Slot slot : this.handler.slots) { +//? } else { + /*for (Slot slot : this.handler.slots) { if (slot.isEnabled()) { -//#endif +*///? } slots.add(slot); } } @@ -280,22 +280,22 @@ protected AbstractContainerScreenMixin(Text title) { @Unique private void reglass$mergeVillagerCostSlots(List groups) { -//#if MC >= 26 +//? if >= 26 { if (!(this.menu instanceof MerchantMenu) || this.menu.slots.size() < 2) { -//#else - if (!(this.handler instanceof MerchantScreenHandler) || this.handler.slots.size() < 2) { -//#endif +//? } else { + /*if (!(this.handler instanceof MerchantScreenHandler) || this.handler.slots.size() < 2) { +*///? } return; } -//#if MC >= 26 +//? if >= 26 { Slot first = this.menu.slots.get(0); Slot second = this.menu.slots.get(1); if (!first.isActive() || !second.isActive()) { -//#else - Slot first = this.handler.slots.get(0); +//? } else { + /*Slot first = this.handler.slots.get(0); Slot second = this.handler.slots.get(1); if (!first.isEnabled() || !second.isEnabled()) { -//#endif +*///? } return; } @@ -316,11 +316,11 @@ protected AbstractContainerScreenMixin(Text title) { } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$renderGroup(GuiGraphicsExtractor context, int[] group) { -//#else - private void reglass$renderGroup(DrawContext context, int[] group) { -//#endif +//? } else { + /*private void reglass$renderGroup(DrawContext context, int[] group) { +*///? } int groupWidth = group[2] - group[0]; int groupHeight = group[3] - group[1]; if (reglass$isHotbarGroup(groupWidth, groupHeight)) { @@ -329,27 +329,27 @@ protected AbstractContainerScreenMixin(Text title) { } int padding = groupWidth == 18 && groupHeight == 18 ? reglass$singleSlotPadding() : 4; -//#if MC >= 26 +//? if >= 26 { int x = this.leftPos + group[0] - padding - 1; int y = this.topPos + group[1] - padding - 1; -//#else - int groupX = this.x + group[0] - padding - 1; +//? } else { + /*int groupX = this.x + group[0] - padding - 1; int groupY = this.y + group[1] - padding - 1; -//#endif +*///? } int width = groupWidth + padding * 2; int height = groupHeight + padding * 2; ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(x, y, width, height) -//#else - .dimensions(groupX, groupY, width, height) -//#endif +//? } else { + /*.dimensions(groupX, groupY, width, height) +*///? } .cornerRadius(Math.min(12, Math.max(6, Math.min(width, height) * 0.22f))) .style(reglass$panelStyle(group, groupWidth, groupHeight).layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @@ -359,35 +359,35 @@ protected AbstractContainerScreenMixin(Text title) { } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$renderHotbarGroup(GuiGraphicsExtractor context, int[] group) { -//#else - private void reglass$renderHotbarGroup(DrawContext context, int[] group) { -//#endif +//? } else { + /*private void reglass$renderHotbarGroup(DrawContext context, int[] group) { +*///? } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(this.leftPos + group[0] - 4, this.topPos + group[1] - 2, 170, 22) -//#else - .dimensions(this.x + group[0] - 4, this.y + group[1] - 2, 170, 22) -//#endif +//? } else { + /*.dimensions(this.x + group[0] - 4, this.y + group[1] - 2, 170, 22) +*///? } .cornerRadius(11) .style(WidgetStyle.create() .tint(0x000000, 0.3f) .layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @Unique private WidgetStyle reglass$panelStyle() { -//#if MC >= 26 +//? if >= 26 { return WidgetStyle.create() .tint(0x000000, 0.16f); -//#else - return WidgetStyle.create().tint(0x000000, 0.16f); -//#endif +//? } else { + /*return WidgetStyle.create().tint(0x000000, 0.16f); +*///? } } @Unique @@ -401,21 +401,21 @@ protected AbstractContainerScreenMixin(Text title) { @Unique private Integer reglass$shulkerMainTint(int[] group, int groupWidth, int groupHeight) { -//#if MC >= 26 +//? if >= 26 { if (!(this.menu instanceof ShulkerBoxMenu) || groupWidth != 162 || groupHeight != 54 || group[1] >= 80) { -//#else - if (!(this.handler instanceof ShulkerBoxScreenHandler) || groupWidth != 162 || groupHeight != 54 || group[1] >= 80) { -//#endif +//? } else { + /*if (!(this.handler instanceof ShulkerBoxScreenHandler) || groupWidth != 162 || groupHeight != 54 || group[1] >= 80) { +*///? } return null; } -//#if MC >= 26 +//? if >= 26 { Container container = ((ShulkerBoxMenuAccessor) this.menu).reglass$getContainer(); DyeColor color = container instanceof ShulkerBoxBlockEntity shulkerBox ? shulkerBox.getColor() : null; -//#else - Inventory inventory = ((ShulkerBoxMenuAccessor) this.handler).reglass$getInventory(); +//? } else { + /*Inventory inventory = ((ShulkerBoxMenuAccessor) this.handler).reglass$getInventory(); DyeColor color = inventory instanceof ShulkerBoxBlockEntity shulkerBox ? shulkerBox.getColor() : null; -//#endif +*///? } if (color == null) { color = ContainerColorContext.getLastShulkerColor(); } @@ -430,24 +430,24 @@ protected AbstractContainerScreenMixin(Text title) { @Unique private DyeColor reglass$shulkerColorFromTitle() { -//#if MC >= 26 +//? if >= 26 { String title = this.title.getString().toLowerCase(Locale.ROOT).replace('_', ' '); -//#else - String titleString = this.title.getString().toLowerCase(Locale.ROOT).replace('_', ' '); -//#endif +//? } else { + /*String titleString = this.title.getString().toLowerCase(Locale.ROOT).replace('_', ' '); +*///? } DyeColor[] colors = DyeColor.values(); List sortedColors = new ArrayList<>(List.of(colors)); -//#if MC >= 26 +//? if >= 26 { sortedColors.sort(Comparator.comparingInt((DyeColor color) -> color.getName().length()).reversed()); -//#else - sortedColors.sort(Comparator.comparingInt((DyeColor color) -> color.getId().length()).reversed()); -//#endif +//? } else { + /*sortedColors.sort(Comparator.comparingInt((DyeColor color) -> color.getId().length()).reversed()); +*///? } for (DyeColor color : sortedColors) { -//#if MC >= 26 +//? if >= 26 { if (title.contains(color.getName().replace('_', ' '))) { -//#else - if (titleString.contains(color.getId().replace('_', ' '))) { -//#endif +//? } else { + /*if (titleString.contains(color.getId().replace('_', ' '))) { +*///? } return color; } } @@ -478,75 +478,75 @@ protected AbstractContainerScreenMixin(Text title) { @Unique private int reglass$singleSlotPadding() { -//#if MC >= 26 +//? if >= 26 { return this.menu instanceof BeaconMenu ? 2 : 3; -//#else - return this.handler instanceof BeaconScreenHandler ? 2 : 3; -//#endif +//? } else { + /*return this.handler instanceof BeaconScreenHandler ? 2 : 3; +*///? } } @Unique -//#if MC >= 26 +//? if >= 26 { private int reglass$labelY(int y) { if (this.menu instanceof LoomMenu) { -//#else - private int reglass$labelY(int labelY) { +//? } else { + /*private int reglass$labelY(int labelY) { if (this.handler instanceof LoomScreenHandler) { -//#endif +*///? } return 32; } -//#if MC >= 26 +//? if >= 26 { if (this.menu instanceof CraftingMenu || this.menu instanceof CrafterMenu || this.menu instanceof DispenserMenu) { return y - 4; -//#else - if (this.handler instanceof CraftingScreenHandler +//? } else { + /*if (this.handler instanceof CraftingScreenHandler || this.handler instanceof CrafterScreenHandler || this.handler instanceof Generic3x3ContainerScreenHandler) { return labelY - 4; -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { if (this.menu instanceof BrewingStandMenu) { return y - 10; -//#else - if (this.handler instanceof BrewingStandScreenHandler) { +//? } else { + /*if (this.handler instanceof BrewingStandScreenHandler) { return labelY - 12; -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { return y - 2; -//#else - return labelY - 2; -//#endif +//? } else { + /*return labelY - 2; +*///? } } @Unique -//#if MC >= 26 +//? if >= 26 { private int reglass$labelX(int x) { if (this.menu instanceof LoomMenu) { return -8; -//#else - private int reglass$labelX(int labelX) { +//? } else { + /*private int reglass$labelX(int labelX) { if (this.handler instanceof LoomScreenHandler) { return -4; -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { return x; -//#else - return labelX; -//#endif +//? } else { + /*return labelX; +*///? } } @Unique private void reglass$rememberOriginalSlots() { -//#if MC >= 26 +//? if >= 26 { for (Slot slot : this.menu.slots) { -//#else - for (Slot slot : this.handler.slots) { -//#endif +//? } else { + /*for (Slot slot : this.handler.slots) { +*///? } reglass$originalSlotPositions.computeIfAbsent(slot, s -> new int[] { s.x, s.y }); } } @@ -573,15 +573,15 @@ protected AbstractContainerScreenMixin(Text title) { private void reglass$spaceGenericHotbar() { List candidates = new ArrayList<>(); int bestY = Integer.MIN_VALUE; -//#if MC >= 26 +//? if >= 26 { for (Slot slot : this.menu.slots) { int containerSlot = slot.getContainerSlot(); if (!slot.isActive() || containerSlot < 0 || containerSlot > 8) { -//#else - for (Slot slot : this.handler.slots) { +//? } else { + /*for (Slot slot : this.handler.slots) { int containerSlot = slot.getIndex(); if (!slot.isEnabled() || containerSlot < 0 || containerSlot > 8) { -//#endif +*///? } continue; } if (slot.y > bestY) { @@ -591,26 +591,26 @@ protected AbstractContainerScreenMixin(Text title) { if (bestY == Integer.MIN_VALUE) { return; } -//#if MC >= 26 +//? if >= 26 { for (Slot slot : this.menu.slots) { int containerSlot = slot.getContainerSlot(); if (slot.isActive() && containerSlot >= 0 && containerSlot <= 8 && slot.y == bestY) { -//#else - for (Slot slot : this.handler.slots) { +//? } else { + /*for (Slot slot : this.handler.slots) { int containerSlot = slot.getIndex(); if (slot.isEnabled() && containerSlot >= 0 && containerSlot <= 8 && slot.y == bestY) { -//#endif +*///? } candidates.add(slot); } } if (candidates.size() != 9) { return; } -//#if MC >= 26 +//? if >= 26 { candidates.sort(Comparator.comparingInt(Slot::getContainerSlot)); -//#else - candidates.sort(Comparator.comparingInt(Slot::getIndex)); -//#endif +//? } else { + /*candidates.sort(Comparator.comparingInt(Slot::getIndex)); +*///? } for (Slot slot : candidates) { int[] original = reglass$originalSlotPositions.get(slot); if (original != null) { @@ -690,32 +690,32 @@ protected AbstractContainerScreenMixin(Text title) { } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$setSlotPosition(int index, int x, int y) { if (index < 0 || index >= this.menu.slots.size()) { -//#else - private void reglass$setSlotPosition(int index, int slotX, int slotY) { +//? } else { + /*private void reglass$setSlotPosition(int index, int slotX, int slotY) { if (index < 0 || index >= this.handler.slots.size()) { -//#endif +*///? } return; } -//#if MC >= 26 +//? if >= 26 { reglass$setSlotPosition(this.menu.slots.get(index), x, y); -//#else - reglass$setSlotPosition(this.handler.slots.get(index), slotX, slotY); -//#endif +//? } else { + /*reglass$setSlotPosition(this.handler.slots.get(index), slotX, slotY); +*///? } } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$setSlotPosition(Slot slot, int x, int y) { ((SlotAccessor) slot).reglass$setX(x); ((SlotAccessor) slot).reglass$setY(y); -//#else - private void reglass$setSlotPosition(Slot slot, int slotX, int slotY) { +//? } else { + /*private void reglass$setSlotPosition(Slot slot, int slotX, int slotY) { ((SlotAccessor) slot).reglass$setX(slotX); ((SlotAccessor) slot).reglass$setY(slotY); -//#endif +*///? } } @Unique diff --git a/src/main/java/restudio/reglass/mixin/client/AnvilScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/AnvilScreenMixin.java index 3246e3f..6410710 100644 --- a/src/main/java/restudio/reglass/mixin/client/AnvilScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/AnvilScreenMixin.java @@ -1,55 +1,55 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.screens.inventory.AnvilScreen; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.AnvilScreen; import net.minecraft.client.gui.widget.TextFieldWidget; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -//#if MC >= 26 +//? if >= 26 { import org.spongepowered.asm.mixin.injection.Redirect; -//#endif +//? } import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import restudio.reglass.client.api.ReGlassConfig; @Mixin(AnvilScreen.class) public abstract class AnvilScreenMixin { -//#if MC >= 26 +//? if >= 26 { @Shadow private EditBox name; -//#else - @Shadow private TextFieldWidget nameField; -//#endif +//? } else { + /*@Shadow private TextFieldWidget nameField; +*///? } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "subInit", at = @At("TAIL")) -//#else - @Inject(method = "setup", at = @At("TAIL")) -//#endif +//? } else { + /*@Inject(method = "setup", at = @At("TAIL")) +*///? } private void reglass$layoutNameField(CallbackInfo ci) { ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { this.name.setX(this.name.getX() - 54); this.name.setWidth(160); -//#else - this.nameField.setX(this.nameField.getX() - 54); +//? } else { + /*this.nameField.setX(this.nameField.getX() - 54); this.nameField.setWidth(160); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Redirect( method = "extractLabels", at = @At( @@ -58,24 +58,24 @@ public abstract class AnvilScreenMixin { ) ) private void reglass$text(GuiGraphicsExtractor context, Font font, Component text, int x, int y, int color) { -//#else - @Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) private void reglass$drawForeground(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; -//#if MC >= 26 +//? if >= 26 { if (!cfg.features.enableRedesign || !cfg.features.containers) { context.text(font, text, x, y, color); return; -//#else - if (cfg.features.enableRedesign && cfg.features.containers) { +//? } else { + /*if (cfg.features.enableRedesign && cfg.features.containers) { ci.cancel(); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { context.text(font, text, x, y, 0xFFFFFFFF, true); -//#endif +//? } } } diff --git a/src/main/java/restudio/reglass/mixin/client/BeaconPowerButtonMixin.java b/src/main/java/restudio/reglass/mixin/client/BeaconPowerButtonMixin.java index 2deceed..e17b2c8 100644 --- a/src/main/java/restudio/reglass/mixin/client/BeaconPowerButtonMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/BeaconPowerButtonMixin.java @@ -1,13 +1,13 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.resources.Identifier; -//#else -import net.minecraft.client.gl.RenderPipelines; +//? } else { +/*import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.BeaconScreen; import net.minecraft.client.gui.widget.ClickableWidget; @@ -15,7 +15,7 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Final; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -27,41 +27,41 @@ import restudio.reglass.client.api.WidgetStyle; import restudio.reglass.mixin.accessor.BeaconScreenButtonAccessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(targets = "net.minecraft.client.gui.screens.inventory.BeaconScreen$BeaconPowerButton") -//#else -@Mixin(targets = "net.minecraft.client.gui.screen.ingame.BeaconScreen$EffectButtonWidget") -//#endif +//? } else { +/*@Mixin(targets = "net.minecraft.client.gui.screen.ingame.BeaconScreen$EffectButtonWidget") +*///? } public abstract class BeaconPowerButtonMixin { @Shadow private Identifier sprite; -//#if MC < 26 - @Shadow private boolean primary; +//? if < 26 { + /*@Shadow private boolean primary; @Shadow private RegistryEntry effect; @Shadow @Final BeaconScreen field_2811; -//#endif +*///? } @Unique private static double reglass$selectedBlobX = Double.NaN; @Unique private static double reglass$selectedBlobY = Double.NaN; -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractIcon", at = @At("HEAD"), cancellable = true) private void reglass$renderInactiveEffectIcon(GuiGraphicsExtractor context, CallbackInfo ci) { -//#else - @Inject(method = "renderExtra", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "renderExtra", at = @At("HEAD"), cancellable = true) private void reglass$renderEffectIcon(DrawContext context, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { AbstractWidget widget = (AbstractWidget)(Object) this; if (widget.active && ((BeaconScreenButtonAccessor) this).reglass$isSelected()) { -//#else - ClickableWidget widget = (ClickableWidget)(Object) this; +//? } else { + /*ClickableWidget widget = (ClickableWidget)(Object) this; if (widget.active && reglass$isSelected()) { -//#endif +*///? } int targetX = widget.getX() + 1; int targetY = widget.getY() + 1; if (Double.isNaN(reglass$selectedBlobX) @@ -72,32 +72,32 @@ public abstract class BeaconPowerButtonMixin { reglass$selectedBlobY = targetY; } -//#if MC >= 26 +//? if >= 26 { double deltaTicks = Minecraft.getInstance().getDeltaTracker().getRealtimeDeltaTicks(); double deltaSeconds = deltaTicks / 20.0; double tau = 0.08; double alpha = 1.0 - Math.exp(-deltaSeconds / tau); -//#else - double deltaSeconds = 1.0 / 60.0; +//? } else { + /*double deltaSeconds = 1.0 / 60.0; double alpha = 1.0 - Math.exp(-deltaSeconds / 0.08); -//#endif +*///? } if (alpha < 0.0) alpha = 0.0; if (alpha > 1.0) alpha = 1.0; reglass$selectedBlobX += (targetX - reglass$selectedBlobX) * alpha; reglass$selectedBlobY += (targetY - reglass$selectedBlobY) * alpha; ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions((int) Math.round(reglass$selectedBlobX), (int) Math.round(reglass$selectedBlobY), 20, 20) -//#else - .dimensions((int)Math.round(reglass$selectedBlobX), (int)Math.round(reglass$selectedBlobY), 20, 20) -//#endif +//? } else { + /*.dimensions((int)Math.round(reglass$selectedBlobX), (int)Math.round(reglass$selectedBlobY), 20, 20) +*///? } .cornerRadius(6) .hover(0.9f) .style(WidgetStyle.create().tint(0x000000, 0.16f).layer(2)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @@ -105,22 +105,22 @@ public abstract class BeaconPowerButtonMixin { return; } -//#if MC >= 26 +//? if >= 26 { context.blitSprite(RenderPipelines.GUI_TEXTURED, this.sprite, widget.getX() + 2, widget.getY() + 2, 18, 18, 0xFF555555); -//#else - context.drawGuiTexture(RenderPipelines.GUI_TEXTURED, this.sprite, widget.getX() + 2, widget.getY() + 2, 18, 18, 0xFF555555); -//#endif +//? } else { + /*context.drawGuiTexture(RenderPipelines.GUI_TEXTURED, this.sprite, widget.getX() + 2, widget.getY() + 2, 18, 18, 0xFF555555); +*///? } ci.cancel(); } -//#if MC < 26 - @Unique +//? if < 26 { + /*@Unique private boolean reglass$isSelected() { RegistryEntry selected = this.primary ? ((BeaconScreenButtonAccessor) this.field_2811).reglass$getPrimaryEffect() : ((BeaconScreenButtonAccessor) this.field_2811).reglass$getSecondaryEffect(); return selected != null && selected.equals(this.effect); } -//#endif +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/client/BeaconScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/BeaconScreenMixin.java index 089c220..0689328 100644 --- a/src/main/java/restudio/reglass/mixin/client/BeaconScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/BeaconScreenMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.AbstractWidget; @@ -12,8 +12,8 @@ import net.minecraft.world.inventory.BeaconMenu; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -//#else -import net.minecraft.client.font.TextRenderer; +//? } else { +/*import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.ingame.BeaconScreen; @@ -24,7 +24,7 @@ import net.minecraft.item.Items; import net.minecraft.screen.BeaconScreenHandler; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -35,15 +35,15 @@ import restudio.reglass.client.api.WidgetStyle; @Mixin(BeaconScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class BeaconScreenMixin extends AbstractContainerScreen { protected BeaconScreenMixin(BeaconMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else -public abstract class BeaconScreenMixin extends HandledScreen { +//? } else { +/*public abstract class BeaconScreenMixin extends HandledScreen { protected BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } @Inject(method = "init", at = @At("TAIL")) @@ -51,11 +51,11 @@ protected BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory invento reglass$layoutBeaconControls(); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "containerTick", at = @At("TAIL")) -//#else - @Inject(method = "handledScreenTick", at = @At("TAIL")) -//#endif +//? } else { + /*@Inject(method = "handledScreenTick", at = @At("TAIL")) +*///? } private void reglass$relayoutButtons(CallbackInfo ci) { reglass$layoutBeaconControls(); } @@ -67,47 +67,47 @@ protected BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory invento } int primaryCols = 3; -//#if MC >= 26 +//? if >= 26 { int primaryX = this.leftPos + 62 - (primaryCols * 28 - 4) / 2; int primaryY = this.topPos + 32; int secondaryX = this.leftPos + 168 - (2 * 28 - 4) / 2; int secondaryY = this.topPos + 46; -//#else - int primaryX = this.x + 62 - (primaryCols * 28 - 4) / 2; +//? } else { + /*int primaryX = this.x + 62 - (primaryCols * 28 - 4) / 2; int primaryY = this.y + 32; int secondaryX = this.x + 168 - (2 * 28 - 4) / 2; int secondaryY = this.y + 46; -//#endif +*///? } int powerIndex = 0; -//#if MC >= 26 +//? if >= 26 { for (GuiEventListener child : this.children()) { if (!(child instanceof AbstractWidget widget)) { -//#else - for (Element child : this.children()) { +//? } else { + /*for (Element child : this.children()) { if (!(child instanceof ClickableWidget widget)) { -//#endif +*///? } continue; } String widgetName = widget.getClass().getName(); -//#if MC >= 26 +//? if >= 26 { if (widgetName.contains("BeaconConfirmButton")) { widget.setX(this.leftPos + 168); widget.setY(this.topPos + 104); } else if (widgetName.contains("BeaconCancelButton")) { -//#else - if (widgetName.contains("DoneButtonWidget")) { +//? } else { + /*if (widgetName.contains("DoneButtonWidget")) { widget.setX(this.x + 168); widget.setY(this.y + 104); } else if (widgetName.contains("CancelButtonWidget")) { -//#endif +*///? } widget.visible = false; -//#if MC >= 26 +//? if >= 26 { } else if (widgetName.contains("BeaconPowerButton")) { -//#else - } else if (widgetName.contains("EffectButtonWidget")) { -//#endif +//? } else { + /*} else if (widgetName.contains("EffectButtonWidget")) { +*///? } widget.visible = true; if (powerIndex < 5) { widget.setX(primaryX + powerIndex % primaryCols * 28); @@ -122,121 +122,121 @@ protected BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory invento } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractPanels(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$extractPanels(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { reglass$panel(context, this.leftPos + 20, this.topPos + 28, 84, 58, 0.14f); reglass$panel(context, this.leftPos + 140, this.topPos + 42, 56, 30, 0.14f); -//#else - reglass$panel(context, this.x + 20, this.y + 28, 84, 58, 0.14f); +//? } else { + /*reglass$panel(context, this.x + 20, this.y + 28, 84, 58, 0.14f); reglass$panel(context, this.x + 140, this.y + 42, 56, 30, 0.14f); -//#endif +*///? } reglass$renderPaymentItems(context); -//#if MC >= 26 +//? if >= 26 { reglass$panel(context, this.leftPos + 168, this.topPos + 104, 22, 22, 0.14f); -//#else - reglass$panel(context, this.x + 168, this.y + 104, 22, 22, 0.14f); -//#endif +//? } else { + /*reglass$panel(context, this.x + 168, this.y + 104, 22, 22, 0.14f); +*///? } } @Redirect( -//#if MC >= 26 +//? if >= 26 { method = "extractBackground", -//#else - method = "drawBackground", -//#endif +//? } else { + /*method = "drawBackground", +*///? } at = @At( value = "INVOKE", -//#if MC >= 26 +//? if >= 26 { target = "Lnet/minecraft/client/gui/GuiGraphicsExtractor;item(Lnet/minecraft/world/item/ItemStack;II)V" -//#else - target = "Lnet/minecraft/client/gui/DrawContext;drawItem(Lnet/minecraft/item/ItemStack;II)V" -//#endif +//? } else { + /*target = "Lnet/minecraft/client/gui/DrawContext;drawItem(Lnet/minecraft/item/ItemStack;II)V" +*///? } ) ) -//#if MC >= 26 +//? if >= 26 { private void reglass$skipVanillaPaymentItems(GuiGraphicsExtractor context, ItemStack itemStack, int x, int y) { -//#else - private void reglass$skipVanillaPaymentItems(DrawContext context, ItemStack itemStack, int x, int y) { -//#endif +//? } else { + /*private void reglass$skipVanillaPaymentItems(DrawContext context, ItemStack itemStack, int x, int y) { +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { -//#if MC >= 26 +//? if >= 26 { context.item(itemStack, x, y); -//#else - context.drawItem(itemStack, x, y); -//#endif +//? } else { + /*context.drawItem(itemStack, x, y); +*///? } } } @Redirect( -//#if MC >= 26 +//? if >= 26 { method = "extractLabels", -//#else - method = "drawForeground", -//#endif +//? } else { + /*method = "drawForeground", +*///? } at = @At( value = "INVOKE", -//#if MC >= 26 +//? if >= 26 { target = "Lnet/minecraft/client/gui/GuiGraphicsExtractor;centeredText(Lnet/minecraft/client/gui/Font;Lnet/minecraft/network/chat/Component;III)V" -//#else - target = "Lnet/minecraft/client/gui/DrawContext;drawCenteredTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;III)V" -//#endif +//? } else { + /*target = "Lnet/minecraft/client/gui/DrawContext;drawCenteredTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;III)V" +*///? } ) ) -//#if MC >= 26 +//? if >= 26 { private void reglass$centeredText(GuiGraphicsExtractor context, Font font, Component text, int centerX, int y, int color) { -//#else - private void reglass$centeredText(DrawContext context, TextRenderer font, Text text, int centerX, int y, int color) { -//#endif +//? } else { + /*private void reglass$centeredText(DrawContext context, TextRenderer font, Text text, int centerX, int y, int color) { +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { -//#if MC >= 26 +//? if >= 26 { context.centeredText(font, text, centerX, y, color); -//#else - context.drawCenteredTextWithShadow(font, text, centerX, y, color); -//#endif +//? } else { + /*context.drawCenteredTextWithShadow(font, text, centerX, y, color); +*///? } return; } -//#if MC >= 26 +//? if >= 26 { context.text(font, text, centerX - font.width(text) / 2, y - 2, 0xFFFFFFFF, true); -//#else - context.drawText(font, text, centerX - font.getWidth(text) / 2, y - 2, 0xFFFFFFFF, true); -//#endif +//? } else { + /*context.drawText(font, text, centerX - font.getWidth(text) / 2, y - 2, 0xFFFFFFFF, true); +*///? } } -//#if MC >= 26 +//? if >= 26 { private void reglass$panel(GuiGraphicsExtractor context, int x, int y, int width, int height, float alpha) { -//#else - private void reglass$panel(DrawContext context, int x, int y, int width, int height, float alpha) { -//#endif +//? } else { + /*private void reglass$panel(DrawContext context, int x, int y, int width, int height, float alpha) { +*///? } ReGlassApi.create(context) .dimensions(x, y, width, height) .cornerRadius(8) .style(WidgetStyle.create().tint(0x000000, alpha).layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } -//#if MC >= 26 +//? if >= 26 { private void reglass$renderPaymentItems(GuiGraphicsExtractor context) { -//#else - private void reglass$renderPaymentItems(DrawContext context) { -//#endif +//? } else { + /*private void reglass$renderPaymentItems(DrawContext context) { +*///? } ItemStack[] items = new ItemStack[] { new ItemStack(Items.NETHERITE_INGOT), new ItemStack(Items.EMERALD), @@ -245,23 +245,23 @@ protected BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory invento new ItemStack(Items.IRON_INGOT) }; -//#if MC >= 26 +//? if >= 26 { int startX = this.leftPos + 14; int y = this.topPos + 106; -//#else - int startX = this.x + 14; +//? } else { + /*int startX = this.x + 14; int itemY = this.y + 106; -//#endif +*///? } for (int i = 0; i < items.length; i++) { -//#if MC >= 26 +//? if >= 26 { int x = startX + i * 23; reglass$panel(context, x - 2, y - 2, 20, 20, 0.13f); context.item(items[i], x, y); -//#else - int itemX = startX + i * 23; +//? } else { + /*int itemX = startX + i * 23; reglass$panel(context, itemX - 2, itemY - 2, 20, 20, 0.13f); context.drawItem(items[i], itemX, itemY); -//#endif +*///? } } } } diff --git a/src/main/java/restudio/reglass/mixin/client/BrewingStandScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/BrewingStandScreenMixin.java index de986d2..b3f92b5 100644 --- a/src/main/java/restudio/reglass/mixin/client/BrewingStandScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/BrewingStandScreenMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.BrewingStandScreen; @@ -8,15 +8,15 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.BrewingStandMenu; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.BrewingStandScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.screen.BrewingStandScreenHandler; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -25,62 +25,62 @@ import restudio.reglass.client.api.ReGlassConfig; @Mixin(BrewingStandScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class BrewingStandScreenMixin extends AbstractContainerScreen { protected BrewingStandScreenMixin(BrewingStandMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else -public abstract class BrewingStandScreenMixin extends HandledScreen { +//? } else { +/*public abstract class BrewingStandScreenMixin extends HandledScreen { protected BrewingStandScreenMixin(BrewingStandScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractBrewingMeters(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$extractBrewingMeters(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { int brewTicks = Mth.clamp(this.menu.getBrewingTicks(), 0, 400); -//#else - int brewTicks = MathHelper.clamp(this.handler.getBrewTime(), 0, 400); -//#endif +//? } else { + /*int brewTicks = MathHelper.clamp(this.handler.getBrewTime(), 0, 400); +*///? } float brewProgress = brewTicks == 0 ? 0f : 1.0f - brewTicks / 400.0f; -//#if MC >= 26 +//? if >= 26 { reglass$progressRail(context, this.leftPos + 78, this.topPos + 33, 18, brewProgress); -//#else - reglass$progressRail(context, this.x + 78, this.y + 33, 18, brewProgress); -//#endif +//? } else { + /*reglass$progressRail(context, this.x + 78, this.y + 33, 18, brewProgress); +*///? } -//#if MC >= 26 +//? if >= 26 { int fuel = Mth.clamp(this.menu.getFuel(), 0, 20); reglass$progressRail(context, this.leftPos + 22, this.topPos + 50, 18, fuel / 20.0f); -//#else - int fuel = MathHelper.clamp(this.handler.getFuel(), 0, 20); +//? } else { + /*int fuel = MathHelper.clamp(this.handler.getFuel(), 0, 20); reglass$progressRail(context, this.x + 22, this.y + 50, 18, fuel / 20.0f); -//#endif +*///? } } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$progressRail(GuiGraphicsExtractor context, int x, int y, int width, float progress) { -//#else - private void reglass$progressRail(DrawContext context, int x, int y, int width, float progress) { -//#endif +//? } else { + /*private void reglass$progressRail(DrawContext context, int x, int y, int width, float progress) { +*///? } context.fill(x, y, x + width, y + 2, 0x66000000); -//#if MC >= 26 +//? if >= 26 { int filled = Mth.clamp(Math.round(width * progress), 0, width); -//#else - int filled = MathHelper.clamp(Math.round(width * progress), 0, width); -//#endif +//? } else { + /*int filled = MathHelper.clamp(Math.round(width * progress), 0, width); +*///? } if (filled > 0) { context.fill(x, y, x + filled, y + 2, 0xCCFFFFFF); } diff --git a/src/main/java/restudio/reglass/mixin/client/CreativeModeInventoryScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/CreativeModeInventoryScreenMixin.java index 994ca2a..9dd2f2e 100644 --- a/src/main/java/restudio/reglass/mixin/client/CreativeModeInventoryScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/CreativeModeInventoryScreenMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; @@ -9,8 +9,8 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.CreativeModeTab; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.widget.TextFieldWidget; @@ -18,7 +18,7 @@ import net.minecraft.item.ItemGroup; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -31,27 +31,27 @@ import restudio.reglass.client.api.WidgetStyle; import restudio.reglass.mixin.accessor.SlotAccessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(CreativeModeInventoryScreen.class) public abstract class CreativeModeInventoryScreenMixin extends AbstractContainerScreen { @Shadow private static CreativeModeTab selectedTab; @Shadow private EditBox searchBox; @Shadow private Slot destroyItemSlot; -//#else -@Mixin(CreativeInventoryScreen.class) +//? } else { +/*@Mixin(CreativeInventoryScreen.class) public abstract class CreativeModeInventoryScreenMixin extends HandledScreen { @Shadow private static ItemGroup selectedTab; @Shadow private TextFieldWidget searchBox; @Shadow private Slot deleteItemSlot; -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { protected CreativeModeInventoryScreenMixin(CreativeModeInventoryScreen.ItemPickerMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else - protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScreenHandler handler, PlayerInventory inventory, Text title) { +//? } else { + /*protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } @Inject(method = "init", at = @At("TAIL")) @@ -61,38 +61,38 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree return; } -//#if MC >= 26 +//? if >= 26 { this.searchBox.setY(this.topPos + 4); -//#else - this.searchBox.setY(this.y + 4); -//#endif +//? } else { + /*this.searchBox.setY(this.y + 4); +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "selectTab", at = @At("TAIL")) private void reglass$spaceSurvivalTab(CreativeModeTab tab, CallbackInfo ci) { -//#else - @Inject(method = "setSelectedTab", at = @At("TAIL")) +//? } else { + /*@Inject(method = "setSelectedTab", at = @At("TAIL")) private void reglass$spaceSurvivalTab(ItemGroup tab, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; -//#if MC >= 26 +//? if >= 26 { if (!cfg.features.enableRedesign || !cfg.features.containers || selectedTab.getType() != CreativeModeTab.Type.INVENTORY) { -//#else - if (!cfg.features.enableRedesign || !cfg.features.containers || selectedTab.getType() != ItemGroup.Type.INVENTORY) { -//#endif +//? } else { + /*if (!cfg.features.enableRedesign || !cfg.features.containers || selectedTab.getType() != ItemGroup.Type.INVENTORY) { +*///? } return; } -//#if MC >= 26 +//? if >= 26 { for (int i = 0; i < this.menu.slots.size(); i++) { Slot slot = this.menu.slots.get(i); if (slot == this.destroyItemSlot) { -//#else - for (int i = 0; i < this.handler.slots.size(); i++) { +//? } else { + /*for (int i = 0; i < this.handler.slots.size(); i++) { Slot slot = this.handler.slots.get(i); if (slot == this.deleteItemSlot) { -//#endif +*///? } reglass$setSlotPosition(slot, 181, 120); } else if (i >= 5 && i <= 8) { int armorIndex = i - 5; @@ -106,46 +106,46 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree } @Inject(method = "getTabY", at = @At("HEAD"), cancellable = true) -//#if MC >= 26 +//? if >= 26 { private void reglass$getTabY(CreativeModeTab tab, CallbackInfoReturnable cir) { -//#else - private void reglass$getTabY(ItemGroup tab, CallbackInfoReturnable cir) { -//#endif +//? } else { + /*private void reglass$getTabY(ItemGroup tab, CallbackInfoReturnable cir) { +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { cir.setReturnValue(tab.row() == CreativeModeTab.Row.TOP ? -36 : this.imageHeight + 4); -//#else - cir.setReturnValue(tab.getRow() == ItemGroup.Row.TOP ? -36 : this.backgroundHeight + 4); -//#endif +//? } else { + /*cir.setReturnValue(tab.getRow() == ItemGroup.Row.TOP ? -36 : this.backgroundHeight + 4); +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractTabButton", at = @At("HEAD"), cancellable = true) private void reglass$extractTabButton(GuiGraphicsExtractor context, int mouseX, int mouseY, CreativeModeTab tab, CallbackInfo ci) { -//#else - @Inject(method = "renderTabIcon", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "renderTabIcon", at = @At("HEAD"), cancellable = true) private void reglass$renderTabIcon(DrawContext context, int mouseX, int mouseY, ItemGroup tab, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { boolean selected = tab == selectedTab; boolean top = tab.row() == CreativeModeTab.Row.TOP; int x = this.leftPos + reglass$getTabX(tab); int y = this.topPos + (top ? -34 : this.imageHeight + 6); -//#else - boolean selected = tab == selectedTab; +//? } else { + /*boolean selected = tab == selectedTab; boolean top = tab.getRow() == ItemGroup.Row.TOP; int x = this.x + reglass$getTabX(tab); int y = this.y + (top ? -34 : this.backgroundHeight + 6); -//#endif +*///? } int blobX = x + 1; int blobY = y + (top ? 5 : 3); @@ -156,38 +156,38 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree .style(WidgetStyle.create() .tint(0x000000, selected ? 0.22f : 0.12f) .layer(selected ? 3 : 2)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); -//#if MC >= 26 +//? if >= 26 { context.item(tab.getIconItem(), x + 5, y + (top ? 9 : 7)); -//#else - context.drawItem(tab.getIcon(), x + 5, y + (top ? 9 : 7)); -//#endif +//? } else { + /*context.drawItem(tab.getIcon(), x + 5, y + (top ? 9 : 7)); +*///? } ci.cancel(); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractLabels", at = @At("HEAD"), cancellable = true) private void reglass$extractLabels(GuiGraphicsExtractor context, int mouseX, int mouseY, CallbackInfo ci) { -//#else - @Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) private void reglass$drawLabels(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { if (selectedTab.showTitle()) { context.text(this.font, selectedTab.getDisplayName(), 8, 4, 0xFFFFFFFF, true); -//#else - if (selectedTab.shouldRenderName()) { +//? } else { + /*if (selectedTab.shouldRenderName()) { context.drawText(this.textRenderer, selectedTab.getDisplayName(), 8, 4, 0xFFFFFFFF, true); -//#endif +*///? } } ci.cancel(); } @@ -197,7 +197,7 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree ((SlotAccessor) slot).reglass$setX(x); ((SlotAccessor) slot).reglass$setY(y); } -//#if MC >= 26 +//? if >= 26 { @Unique private int reglass$getTabX(CreativeModeTab tab) { @@ -207,8 +207,8 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree } return 27 * column; } -//#else - @Unique +//? } else { + /*@Unique private int reglass$getTabX(ItemGroup tab) { int column = tab.getColumn(); if (tab.isSpecial()) { @@ -216,6 +216,6 @@ protected CreativeModeInventoryScreenMixin(CreativeInventoryScreen.CreativeScree } return 27 * column; } -//#endif +*///? } } diff --git a/src/main/java/restudio/reglass/mixin/client/EnchantmentScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/EnchantmentScreenMixin.java index 798102f..d0eefca 100644 --- a/src/main/java/restudio/reglass/mixin/client/EnchantmentScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/EnchantmentScreenMixin.java @@ -1,20 +1,20 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.EnchantmentScreen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.EnchantmentMenu; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.EnchantmentScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.screen.EnchantmentScreenHandler; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -24,40 +24,40 @@ import restudio.reglass.client.api.WidgetStyle; @Mixin(EnchantmentScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class EnchantmentScreenMixin extends AbstractContainerScreen { protected EnchantmentScreenMixin(EnchantmentMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else -public abstract class EnchantmentScreenMixin extends HandledScreen { +//? } else { +/*public abstract class EnchantmentScreenMixin extends HandledScreen { protected EnchantmentScreenMixin(EnchantmentScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractEnchantingOptionPanel(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$extractEnchantingOptionPanel(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(this.leftPos + 58, this.topPos + 12, 112, 62) -//#else - .dimensions(this.x + 58, this.y + 12, 112, 62) -//#endif +//? } else { + /*.dimensions(this.x + 58, this.y + 12, 112, 62) +*///? } .cornerRadius(9) .style(WidgetStyle.create().tint(0x000000, 0.14f).layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } } diff --git a/src/main/java/restudio/reglass/mixin/client/GuiRendererMixin.java b/src/main/java/restudio/reglass/mixin/client/GuiRendererMixin.java index 67bf231..a05550f 100644 --- a/src/main/java/restudio/reglass/mixin/client/GuiRendererMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/GuiRendererMixin.java @@ -3,13 +3,13 @@ import com.google.common.collect.ImmutableMap; import net.minecraft.client.gui.render.GuiRenderer; import net.minecraft.client.gui.render.SpecialGuiElementRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.state.gui.GuiElementRenderState; import net.minecraft.client.renderer.MultiBufferSource; -//#else -import net.minecraft.client.gui.render.state.special.SpecialGuiElementRenderState; +//? } else { +/*import net.minecraft.client.gui.render.state.special.SpecialGuiElementRenderState; import net.minecraft.client.render.VertexConsumerProvider; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -23,20 +23,20 @@ public class GuiRendererMixin { method = "", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableMap$Builder;buildOrThrow()Lcom/google/common/collect/ImmutableMap;") ) -//#if MC >= 26 +//? if >= 26 { private ImmutableMap, SpecialGuiElementRenderer> addCustomRenderer( ImmutableMap.Builder, SpecialGuiElementRenderer> builder -//#else - private ImmutableMap, SpecialGuiElementRenderer> addCustomRenderer( +//? } else { + /*private ImmutableMap, SpecialGuiElementRenderer> addCustomRenderer( ImmutableMap.Builder, SpecialGuiElementRenderer> builder -//#endif +*///? } ) { GuiRenderer thisGuiRenderer = (GuiRenderer)(Object)this; -//#if MC >= 26 +//? if >= 26 { MultiBufferSource.BufferSource vertexConsumers = ((GuiRendererAccessor) thisGuiRenderer).getVertexConsumers(); -//#else - VertexConsumerProvider.Immediate vertexConsumers = ((GuiRendererAccessor) thisGuiRenderer).getVertexConsumers(); -//#endif +//? } else { + /*VertexConsumerProvider.Immediate vertexConsumers = ((GuiRendererAccessor) thisGuiRenderer).getVertexConsumers(); +*///? } LiquidGlassGuiElementRenderer liquidGlassRenderer = new LiquidGlassGuiElementRenderer(vertexConsumers); builder.put(liquidGlassRenderer.getElementClass(), liquidGlassRenderer); diff --git a/src/main/java/restudio/reglass/mixin/client/InGameHudMixin.java b/src/main/java/restudio/reglass/mixin/client/InGameHudMixin.java index bcf693c..49b3de4 100644 --- a/src/main/java/restudio/reglass/mixin/client/InGameHudMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/InGameHudMixin.java @@ -1,19 +1,19 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.DeltaTracker; -//#if MC >= 26.2 +//? if >= 26.2 { import net.minecraft.client.gui.Hud; -//#else -import net.minecraft.client.gui.Gui; -//#endif +//? } else { +/*import net.minecraft.client.gui.Gui; +*///? } import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.world.entity.HumanoidArm; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.render.RenderTickCounter; @@ -22,7 +22,7 @@ import net.minecraft.util.Arm; import net.minecraft.util.profiler.Profilers; import net.minecraft.world.GameMode; -//#endif +*///? } import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -35,38 +35,38 @@ import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26.2 +//? if >= 26.2 { @Mixin(Hud.class) -//#elseif MC >= 26 -@Mixin(Gui.class) -//#else -@Mixin(InGameHud.class) -//#endif +//? } elif >= 26 { +/*@Mixin(Gui.class) +*///? } else { +/*@Mixin(InGameHud.class) +*///? } public abstract class InGameHudMixin { -//#if MC >= 26 +//? if >= 26 { @Shadow @Final private Minecraft minecraft; -//#else - @Shadow @Final private MinecraftClient client; -//#endif +//? } else { + /*@Shadow @Final private MinecraftClient client; +*///? } @Shadow -//#if MC >= 26 +//? if >= 26 { protected abstract void extractSlot( GuiGraphicsExtractor context, -//#else - protected abstract void renderHotbarItem( +//? } else { + /*protected abstract void renderHotbarItem( DrawContext context, -//#endif +*///? } int x, int y, -//#if MC >= 26 +//? if >= 26 { DeltaTracker tickCounter, Player player, -//#else - RenderTickCounter tickCounter, +//? } else { + /*RenderTickCounter tickCounter, PlayerEntity player, -//#endif +*///? } ItemStack stack, int seed ); @@ -74,64 +74,64 @@ protected abstract void renderHotbarItem( @Unique private double reglass$slotBlobX = Double.NaN; @Unique private int reglass$lastSelected = -1; -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractItemHotbar", at = @At("HEAD"), cancellable = true) -//#else - @Inject(method = "renderHotbar", at = @At("HEAD"), cancellable = true) -//#endif +//? } else { + /*@Inject(method = "renderHotbar", at = @At("HEAD"), cancellable = true) +*///? } private void reglass$onRenderHotbar( -//#if MC >= 26 +//? if >= 26 { GuiGraphicsExtractor context, DeltaTracker tickCounter, CallbackInfo ci -//#else - DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci -//#endif +//? } else { + /*DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci +*///? } ) { if (!ReGlassConfig.INSTANCE.features.enableRedesign || !ReGlassConfig.INSTANCE.features.hotbar) { return; } -//#if MC >= 26 +//? if >= 26 { if (this.minecraft.gameMode != null && this.minecraft.gameMode.isSpectator()) { -//#else - if (this.client.interactionManager.getCurrentGameMode() == GameMode.SPECTATOR) { -//#endif +//? } else { + /*if (this.client.interactionManager.getCurrentGameMode() == GameMode.SPECTATOR) { +*///? } return; } -//#if MC >= 26 +//? if >= 26 { Player player = this.getCameraPlayer(); -//#else - PlayerEntity player = this.getCameraPlayer(); -//#endif +//? } else { + /*PlayerEntity player = this.getCameraPlayer(); +*///? } if (player == null) { return; } -//#if MC >= 26.2 +//? if >= 26.2 { if (this.minecraft.gui.hud.isHidden()) { -//#elseif MC >= 26 - if (this.minecraft.options.hideGui) { -//#else - if (this.client.options.hudHidden) { -//#endif +//? } elif >= 26 { + /*if (this.minecraft.options.hideGui) { +*///? } else { + /*if (this.client.options.hudHidden) { +*///? } return; } ci.cancel(); -//#if MC < 26 - Profilers.get().push("reglass-hotbar"); +//? if < 26 { + /*Profilers.get().push("reglass-hotbar"); -//#endif +*///? } int hotbarWidth = 182; int hotbarHeight = 22; -//#if MC >= 26 +//? if >= 26 { int x = this.minecraft.getWindow().getGuiScaledWidth() / 2 - hotbarWidth / 2; int offhandY = this.minecraft.getWindow().getGuiScaledHeight() - hotbarHeight; -//#else - int x = this.client.getWindow().getScaledWidth() / 2 - hotbarWidth / 2; +//? } else { + /*int x = this.client.getWindow().getScaledWidth() / 2 - hotbarWidth / 2; int offhandY = this.client.getWindow().getScaledHeight() - hotbarHeight; -//#endif +*///? } ReGlassApi.create(context) .dimensions(x, offhandY, hotbarWidth, hotbarHeight) @@ -146,16 +146,16 @@ protected abstract void renderHotbarItem( this.reglass$slotBlobX = targetCircleX; } -//#if MC >= 26 +//? if >= 26 { double deltaTicks = tickCounter.getRealtimeDeltaTicks(); -//#else - double deltaTicks; +//? } else { + /*double deltaTicks; try { deltaTicks = tickCounter.getDynamicDeltaTicks(); } catch (Throwable t) { deltaTicks = 1.0 / 60.0 * 20.0; } -//#endif +*///? } double deltaSeconds = deltaTicks / 20.0; double tau = 0.08; @@ -179,38 +179,38 @@ protected abstract void renderHotbarItem( for (int i = 0; i < 9; ++i) { int itemX = x + 3 + i * 20; int itemY = offhandY + 3; -//#if MC >= 26 +//? if >= 26 { this.extractSlot( -//#else - this.renderHotbarItem( -//#endif +//? } else { + /*this.renderHotbarItem( +*///? } context, itemX, itemY, tickCounter, player, -//#if MC >= 26 +//? if >= 26 { player.getInventory().getItem(i), -//#else - player.getInventory().getStack(i), -//#endif +//? } else { + /*player.getInventory().getStack(i), +*///? } i + 1 ); } -//#if MC >= 26 +//? if >= 26 { ItemStack offHandStack = player.getOffhandItem(); -//#else - ItemStack offHandStack = player.getOffHandStack(); -//#endif +//? } else { + /*ItemStack offHandStack = player.getOffHandStack(); +*///? } if (!offHandStack.isEmpty()) { -//#if MC >= 26 +//? if >= 26 { HumanoidArm arm = player.getMainArm().getOpposite(); int offhandX = (arm == HumanoidArm.LEFT ? x - hotbarHeight - 4 : x + hotbarWidth + 4); -//#else - Arm arm = player.getMainArm().getOpposite(); +//? } else { + /*Arm arm = player.getMainArm().getOpposite(); int offhandX = (arm == Arm.LEFT ? x - hotbarHeight - 4 : x + hotbarWidth + 4); -//#endif +*///? } ReGlassApi.create(context) .dimensions(offhandX, offhandY, hotbarHeight, hotbarHeight) @@ -218,26 +218,26 @@ protected abstract void renderHotbarItem( .style(new WidgetStyle().tint(0x000000, 0.3f).layer(0)) .render(); -//#if MC >= 26 +//? if >= 26 { this.extractSlot(context, offhandX + 3, offhandY + 3, tickCounter, player, offHandStack, 0); -//#else - this.renderHotbarItem(context, offhandX + 3, offhandY + 3, tickCounter, player, offHandStack, 0); -//#endif +//? } else { + /*this.renderHotbarItem(context, offhandX + 3, offhandY + 3, tickCounter, player, offHandStack, 0); +*///? } } LiquidGlassUniforms.get().tryApplyBlur(context); -//#if MC < 26 +//? if < 26 { - Profilers.get().pop(); -//#endif + /*Profilers.get().pop(); +*///? } } @Shadow -//#if MC >= 26 +//? if >= 26 { private Player getCameraPlayer() { -//#else - private PlayerEntity getCameraPlayer() { -//#endif +//? } else { + /*private PlayerEntity getCameraPlayer() { +*///? } throw new AssertionError("Mixin application failed!"); } } diff --git a/src/main/java/restudio/reglass/mixin/client/InventoryScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/InventoryScreenMixin.java index d0c2ff7..4c4741a 100644 --- a/src/main/java/restudio/reglass/mixin/client/InventoryScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/InventoryScreenMixin.java @@ -1,14 +1,14 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.navigation.ScreenPosition; import net.minecraft.client.gui.screens.inventory.InventoryScreen; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.ScreenPos; import net.minecraft.client.gui.screen.ingame.InventoryScreen; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -18,38 +18,38 @@ @Mixin(InventoryScreen.class) public class InventoryScreenMixin { -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractLabels", at = @At("HEAD"), cancellable = true) private void reglass$hidePlayerInventoryLabels(GuiGraphicsExtractor context, int mouseX, int mouseY, CallbackInfo ci) { -//#else - @Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) private void reglass$hidePlayerInventoryLabels(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (cfg.features.enableRedesign && cfg.features.containers) { ci.cancel(); } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "getRecipeBookButtonPosition", at = @At("RETURN"), cancellable = true) private void reglass$moveRecipeBookButton(CallbackInfoReturnable cir) { -//#else - @Inject(method = "getRecipeBookButtonPos", at = @At("RETURN"), cancellable = true) +//? } else { + /*@Inject(method = "getRecipeBookButtonPos", at = @At("RETURN"), cancellable = true) private void reglass$moveRecipeBookButton(CallbackInfoReturnable cir) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { ScreenPosition original = cir.getReturnValue(); cir.setReturnValue(new ScreenPosition(original.x() + 28, original.y() - 4)); -//#else - ScreenPos original = cir.getReturnValue(); +//? } else { + /*ScreenPos original = cir.getReturnValue(); cir.setReturnValue(new ScreenPos(original.x() + 28, original.y() - 4)); -//#endif +*///? } } } diff --git a/src/main/java/restudio/reglass/mixin/client/LoomScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/LoomScreenMixin.java index f9717c2..849779e 100644 --- a/src/main/java/restudio/reglass/mixin/client/LoomScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/LoomScreenMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.model.object.banner.BannerFlagModel; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; @@ -10,62 +10,62 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.LoomMenu; import net.minecraft.world.level.block.entity.BannerPatternLayers; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.LoomScreen; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.screen.LoomScreenHandler; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -//#if MC >= 26 +//? if >= 26 { import org.spongepowered.asm.mixin.injection.Redirect; -//#endif +//? } import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import restudio.reglass.client.api.ReGlassApi; import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; @Mixin(LoomScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class LoomScreenMixin extends AbstractContainerScreen { protected LoomScreenMixin(LoomMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else -public abstract class LoomScreenMixin extends HandledScreen { +//? } else { +/*public abstract class LoomScreenMixin extends HandledScreen { protected LoomScreenMixin(LoomScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractPatternPanel(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$extractPatternPanel(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(this.leftPos + 58, this.topPos + 12, 58, 58) -//#else - .dimensions(this.x + 58, this.y + 12, 58, 58) -//#endif +//? } else { + /*.dimensions(this.x + 58, this.y + 12, 58, 58) +*///? } .cornerRadius(9) .style(WidgetStyle.create().tint(0x000000, 0.14f).layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); -//#if MC >= 26 +//? if >= 26 { } @Redirect( @@ -83,7 +83,7 @@ protected LoomScreenMixin(LoomScreenHandler handler, PlayerInventory inventory, } context.bannerPattern(model, dyeColor, layers, x1 - 3, y1 - 9, x2 - 2, y2 - 9); -//#endif +//? } } } diff --git a/src/main/java/restudio/reglass/mixin/client/MerchantScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/MerchantScreenMixin.java index 568365d..ccf73ec 100644 --- a/src/main/java/restudio/reglass/mixin/client/MerchantScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/MerchantScreenMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; @@ -11,8 +11,8 @@ import net.minecraft.world.inventory.MerchantMenu; import net.minecraft.world.item.trading.MerchantOffer; import net.minecraft.world.item.trading.MerchantOffers; -//#else -import net.minecraft.client.gl.RenderPipelines; +//? } else { +/*import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; @@ -22,7 +22,7 @@ import net.minecraft.util.Identifier; import net.minecraft.village.TradeOffer; import net.minecraft.village.TradeOfferList; -//#endif +*///? } import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -33,40 +33,40 @@ import restudio.reglass.client.api.ReGlassConfig; @Mixin(MerchantScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class MerchantScreenMixin extends AbstractContainerScreen { @Shadow @Final private static Component TRADES_LABEL; @Shadow @Final private static Identifier TRADE_ARROW_SPRITE; @Shadow private int shopItem; -//#else -public abstract class MerchantScreenMixin extends HandledScreen { +//? } else { +/*public abstract class MerchantScreenMixin extends HandledScreen { @Shadow @Final private static Text TRADES_TEXT; @Shadow @Final private static Identifier TRADE_ARROW_TEXTURE; @Shadow private int selectedIndex; -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { protected MerchantScreenMixin(MerchantMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else - protected MerchantScreenMixin(MerchantScreenHandler handler, PlayerInventory inventory, Text title) { +//? } else { + /*protected MerchantScreenMixin(MerchantScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractLabels", at = @At("HEAD"), cancellable = true) private void reglass$extractLabels(GuiGraphicsExtractor context, int mouseX, int mouseY, CallbackInfo ci) { -//#else - @Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawForeground", at = @At("HEAD"), cancellable = true) private void reglass$drawLabels(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { Component titleText = this.title; int traderLevel = this.menu.getTraderLevel(); if (traderLevel > 0 && traderLevel <= 5 && this.menu.showProgressBar()) { @@ -75,83 +75,83 @@ protected MerchantScreenMixin(MerchantScreenHandler handler, PlayerInventory inv this.title, Component.translatable("merchant.level." + traderLevel)); } -//#else - Text titleText = this.title; +//? } else { + /*Text titleText = this.title; int titleWidth = this.textRenderer.getWidth(titleText); context.drawText(this.textRenderer, titleText, 49 + this.backgroundWidth / 2 - titleWidth / 2, 4, 0xFFFFFFFF, true); -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { int titleWidth = this.font.width(titleText); context.text(this.font, titleText, 49 + this.imageWidth / 2 - titleWidth / 2, reglass$labelY(6), 0xFFFFFFFF, true); int tradesWidth = this.font.width(TRADES_LABEL); context.text(this.font, TRADES_LABEL, 53 - tradesWidth / 2, reglass$labelY(6), 0xFFFFFFFF, true); -//#else - int tradesWidth = this.textRenderer.getWidth(TRADES_TEXT); +//? } else { + /*int tradesWidth = this.textRenderer.getWidth(TRADES_TEXT); context.drawText(this.textRenderer, TRADES_TEXT, 53 - tradesWidth / 2, 4, 0xFFFFFFFF, true); -//#endif +*///? } ci.cancel(); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractSelectedTradeArrow(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$drawSelectedTradeArrow(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { MerchantOffers offers = this.menu.getOffers(); if (offers.isEmpty() || this.shopItem < 0 || this.shopItem >= offers.size()) { -//#else - TradeOfferList offers = this.handler.getRecipes(); +//? } else { + /*TradeOfferList offers = this.handler.getRecipes(); if (offers.isEmpty() || this.selectedIndex < 0 || this.selectedIndex >= offers.size()) { -//#endif +*///? } return; } -//#if MC >= 26 +//? if >= 26 { MerchantOffer offer = offers.get(this.shopItem); if (offer.isOutOfStock()) { -//#else - TradeOffer offer = offers.get(this.selectedIndex); +//? } else { + /*TradeOffer offer = offers.get(this.selectedIndex); if (offer.isDisabled()) { -//#endif +*///? } return; } int arrowWidth = 20; int arrowHeight = 18; -//#if MC >= 26 +//? if >= 26 { context.blitSprite( -//#else - context.drawGuiTexture( -//#endif +//? } else { + /*context.drawGuiTexture( +*///? } RenderPipelines.GUI_TEXTURED, -//#if MC >= 26 +//? if >= 26 { TRADE_ARROW_SPRITE, this.leftPos + 182 + (28 - arrowWidth) / 2, this.topPos + 35 + (21 - arrowHeight) / 2, -//#else - TRADE_ARROW_TEXTURE, +//? } else { + /*TRADE_ARROW_TEXTURE, this.x + 182 + (28 - arrowWidth) / 2, this.y + 35 + (21 - arrowHeight) / 2, -//#endif +*///? } arrowWidth, arrowHeight); } -//#if MC >= 26 +//? if >= 26 { @Unique private int reglass$labelY(int y) { return y - 2; } -//#endif +//? } } diff --git a/src/main/java/restudio/reglass/mixin/client/MinecraftClientMixin.java b/src/main/java/restudio/reglass/mixin/client/MinecraftClientMixin.java index 89e5789..736d184 100644 --- a/src/main/java/restudio/reglass/mixin/client/MinecraftClientMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/MinecraftClientMixin.java @@ -1,12 +1,12 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -//#endif +*///? } import net.minecraft.client.gui.screen.world.SelectWorldScreen; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -17,11 +17,11 @@ import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.screen.world.CustomWorldSelectScreen; -//#if MC >= 26 +//? if >= 26 { @Mixin(Minecraft.class) -//#else -@Mixin(MinecraftClient.class) -//#endif +//? } else { +/*@Mixin(MinecraftClient.class) +*///? } public abstract class MinecraftClientMixin { @Shadow diff --git a/src/main/java/restudio/reglass/mixin/client/RecipeBookComponentMixin.java b/src/main/java/restudio/reglass/mixin/client/RecipeBookComponentMixin.java index 762a0fd..598a4aa 100644 --- a/src/main/java/restudio/reglass/mixin/client/RecipeBookComponentMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/RecipeBookComponentMixin.java @@ -1,12 +1,12 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -17,72 +17,72 @@ import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { @Mixin(RecipeBookComponent.class) -//#else -@Mixin(RecipeBookWidget.class) -//#endif +//? } else { +/*@Mixin(RecipeBookWidget.class) +*///? } public abstract class RecipeBookComponentMixin { -//#if MC >= 26 +//? if >= 26 { @Shadow public abstract boolean isVisible(); @Shadow private int getXOrigin() { throw new AssertionError(); } @Shadow private int getYOrigin() { -//#else - @Shadow public abstract boolean isOpen(); +//? } else { + /*@Shadow public abstract boolean isOpen(); @Shadow private int getLeft() { -//#endif +*///? } throw new AssertionError(); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractRenderState", at = @At("HEAD")) private void reglass$renderRecipeBookGlass(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Shadow private int getTop() { +//? } else { + /*@Shadow private int getTop() { throw new AssertionError(); } @Inject(method = "render", at = @At("HEAD")) private void reglass$renderRecipeBookGlass(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; -//#if MC >= 26 +//? if >= 26 { if (!cfg.features.enableRedesign || !cfg.features.containers || !this.isVisible()) { -//#else - if (!cfg.features.enableRedesign || !cfg.features.containers || !this.isOpen()) { -//#endif +//? } else { + /*if (!cfg.features.enableRedesign || !cfg.features.containers || !this.isOpen()) { +*///? } return; } -//#if MC >= 26 +//? if >= 26 { int x = this.getXOrigin(); int y = this.getYOrigin(); -//#endif +//? } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(x, y, 147, 166) -//#else - .dimensions(this.getLeft(), this.getTop(), 147, 166) -//#endif +//? } else { + /*.dimensions(this.getLeft(), this.getTop(), 147, 166) +*///? } .cornerRadius(10) .style(reglass$recipeBookStyle().layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @Unique private WidgetStyle reglass$recipeBookStyle() { -//#if MC >= 26 +//? if >= 26 { return WidgetStyle.create() .tint(0x000000, 0.18f); -//#else - return WidgetStyle.create().tint(0x000000, 0.18f); -//#endif +//? } else { + /*return WidgetStyle.create().tint(0x000000, 0.18f); +*///? } } } diff --git a/src/main/java/restudio/reglass/mixin/client/RecipeBookTabButtonMixin.java b/src/main/java/restudio/reglass/mixin/client/RecipeBookTabButtonMixin.java index b3a5ad8..5ea7a93 100644 --- a/src/main/java/restudio/reglass/mixin/client/RecipeBookTabButtonMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/RecipeBookTabButtonMixin.java @@ -1,17 +1,17 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; import net.minecraft.client.gui.screens.recipebook.RecipeBookTabButton; import net.minecraft.world.item.ItemStack; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import net.minecraft.client.gui.screen.recipebook.RecipeGroupButtonWidget; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.item.ItemStack; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -22,37 +22,37 @@ import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { @Mixin(RecipeBookTabButton.class) -//#else -@Mixin(RecipeGroupButtonWidget.class) -//#endif +//? } else { +/*@Mixin(RecipeGroupButtonWidget.class) +*///? } public abstract class RecipeBookTabButtonMixin { -//#if MC >= 26 +//? if >= 26 { @Shadow private RecipeBookComponent.TabInfo tabInfo; @Shadow private boolean selected; -//#else - @Shadow private RecipeBookWidget.Tab tab; +//? } else { + /*@Shadow private RecipeBookWidget.Tab tab; @Shadow private boolean groupFocused; -//#endif +*///? } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractContents", at = @At("HEAD"), cancellable = true) private void reglass$renderStableTab(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawIcon", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "drawIcon", at = @At("HEAD"), cancellable = true) private void reglass$renderStableTab(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } -//#if MC >= 26 +//? if >= 26 { RecipeBookTabButton self = (RecipeBookTabButton)(Object) this; -//#else - ClickableWidget self = (ClickableWidget)(Object) this; -//#endif +//? } else { + /*ClickableWidget self = (ClickableWidget)(Object) this; +*///? } int x = self.getX(); int y = self.getY(); int width = self.getWidth(); @@ -64,20 +64,20 @@ public abstract class RecipeBookTabButtonMixin { ReGlassApi.create(context) .dimensions(cx - size / 2, cy - size / 2, size, size) .cornerRadius(size * 0.5f) -//#if MC >= 26 +//? if >= 26 { .hover(this.selected ? 1f : 0f) -//#else - .hover(this.groupFocused ? 1f : 0f) -//#endif +//? } else { + /*.hover(this.groupFocused ? 1f : 0f) +*///? } .style(WidgetStyle.create() -//#if MC >= 26 +//? if >= 26 { .tint(0x000000, this.selected ? 0.22f : 0.12f) .layer(this.selected ? 3 : 2)) .screenSpace() -//#else - .tint(0x000000, this.groupFocused ? 0.22f : 0.12f) +//? } else { + /*.tint(0x000000, this.groupFocused ? 0.22f : 0.12f) .layer(this.groupFocused ? 3 : 2)) -//#endif +*///? } .render(); reglass$renderIcon(context, cx, cy); @@ -85,24 +85,24 @@ public abstract class RecipeBookTabButtonMixin { } @Unique -//#if MC >= 26 +//? if >= 26 { private void reglass$renderIcon(GuiGraphicsExtractor context, int cx, int cy) { if (this.tabInfo.secondaryIcon().isPresent()) { context.fakeItem(this.tabInfo.primaryIcon(), cx - 13, cy - 8); context.fakeItem((ItemStack)this.tabInfo.secondaryIcon().get(), cx - 3, cy - 8); -//#else - private void reglass$renderIcon(DrawContext context, int cx, int cy) { +//? } else { + /*private void reglass$renderIcon(DrawContext context, int cx, int cy) { if (this.tab.secondaryIcon().isPresent()) { context.drawItem(this.tab.primaryIcon(), cx - 13, cy - 8); context.drawItem((ItemStack)this.tab.secondaryIcon().get(), cx - 3, cy - 8); -//#endif +*///? } return; } -//#if MC >= 26 +//? if >= 26 { context.fakeItem(this.tabInfo.primaryIcon(), cx - 8, cy - 8); -//#else - context.drawItem(this.tab.primaryIcon(), cx - 8, cy - 8); -//#endif +//? } else { + /*context.drawItem(this.tab.primaryIcon(), cx - 8, cy - 8); +*///? } } } diff --git a/src/main/java/restudio/reglass/mixin/client/ScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/ScreenMixin.java index 3113177..1cf89a2 100644 --- a/src/main/java/restudio/reglass/mixin/client/ScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/ScreenMixin.java @@ -1,27 +1,27 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.Screen; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.client.gui.screen.Screen; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import restudio.reglass.client.LiquidGlassUniforms; import restudio.reglass.client.api.ReGlassConfig; -//#if MC < 26 -import restudio.reglass.mixin.accessor.GuiRenderStateAccessor; -//#endif +//? if < 26 { +/*import restudio.reglass.mixin.accessor.GuiRenderStateAccessor; +*///? } @Mixin(Screen.class) public class ScreenMixin { -//#if MC >= 26 +//? if >= 26 { @Inject( method = "extractBlurredBackground(Lnet/minecraft/client/gui/GuiGraphicsExtractor;)V", at = @At("HEAD"), @@ -29,8 +29,8 @@ public class ScreenMixin { ) private void reglass$skipDuplicateBlur(GuiGraphicsExtractor context, CallbackInfo ci) { if (LiquidGlassUniforms.get().screenWantsBlur()) { -//#else - @Inject(method = "renderBackground(Lnet/minecraft/client/gui/DrawContext;IIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;applyBlur(Lnet/minecraft/client/gui/DrawContext;)V")) +//? } else { + /*@Inject(method = "renderBackground(Lnet/minecraft/client/gui/DrawContext;IIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;applyBlur(Lnet/minecraft/client/gui/DrawContext;)V")) private void reglass$onScreenBlur(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { LiquidGlassUniforms.get().setScreenWantsBlur(true); } @@ -40,34 +40,34 @@ public class ScreenMixin { GuiRenderState state = context.state; int blurLayer = ((GuiRenderStateAccessor) state).getBlurLayer(); if (blurLayer != Integer.MAX_VALUE) { -//#endif +*///? } ci.cancel(); } } -//#if MC < 26 - @Inject(method = "renderInGameBackground", at = @At("HEAD"), cancellable = true) +//? if < 26 { + /*@Inject(method = "renderInGameBackground", at = @At("HEAD"), cancellable = true) private void reglass$onRenderInGameBackground(DrawContext context, CallbackInfo ci) { if (ReGlassConfig.INSTANCE.features.enableRedesign && ReGlassConfig.INSTANCE.features.cancelScreenDarkening) { ci.cancel(); } } -//#endif +*///? } @Inject( -//#if MC >= 26 +//? if >= 26 { method = "extractTransparentBackground(Lnet/minecraft/client/gui/GuiGraphicsExtractor;)V", -//#else - method = "renderDarkening(Lnet/minecraft/client/gui/DrawContext;)V", -//#endif +//? } else { + /*method = "renderDarkening(Lnet/minecraft/client/gui/DrawContext;)V", +*///? } at = @At("HEAD"), cancellable = true ) -//#if MC >= 26 +//? if >= 26 { private void reglass$onRenderDarkening(GuiGraphicsExtractor context, CallbackInfo ci) { -//#else - private void reglass$onRenderDarkening(DrawContext context, CallbackInfo ci) { -//#endif +//? } else { + /*private void reglass$onRenderDarkening(DrawContext context, CallbackInfo ci) { +*///? } if (ReGlassConfig.INSTANCE.features.enableRedesign && ReGlassConfig.INSTANCE.features.cancelScreenDarkening) { ci.cancel(); } diff --git a/src/main/java/restudio/reglass/mixin/client/ShulkerBoxBlockMixin.java b/src/main/java/restudio/reglass/mixin/client/ShulkerBoxBlockMixin.java index e45aaef..e2fbd58 100644 --- a/src/main/java/restudio/reglass/mixin/client/ShulkerBoxBlockMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/ShulkerBoxBlockMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.DyeColor; @@ -8,8 +8,8 @@ import net.minecraft.world.level.block.ShulkerBoxBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; -//#else -import net.minecraft.block.BlockState; +//? } else { +/*import net.minecraft.block.BlockState; import net.minecraft.block.ShulkerBoxBlock; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.ActionResult; @@ -17,7 +17,7 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -29,15 +29,15 @@ public abstract class ShulkerBoxBlockMixin { @Shadow public abstract DyeColor getColor(); -//#if MC >= 26 +//? if >= 26 { @Inject(method = "useWithoutItem", at = @At("HEAD")) private void reglass$captureShulkerColor(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit, CallbackInfoReturnable cir) { if (level.isClientSide()) { -//#else - @Inject(method = "onUse", at = @At("HEAD")) +//? } else { + /*@Inject(method = "onUse", at = @At("HEAD")) private void reglass$captureShulkerColor(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit, CallbackInfoReturnable cir) { if (world.isClient()) { -//#endif +*///? } ContainerColorContext.setLastShulkerColor(this.getColor()); } } diff --git a/src/main/java/restudio/reglass/mixin/client/StonecutterScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/StonecutterScreenMixin.java index 52f3c25..9b6cea3 100644 --- a/src/main/java/restudio/reglass/mixin/client/StonecutterScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/StonecutterScreenMixin.java @@ -1,20 +1,20 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.StonecutterScreen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.StonecutterMenu; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.StonecutterScreen; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.screen.StonecutterScreenHandler; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -24,40 +24,40 @@ import restudio.reglass.client.api.WidgetStyle; @Mixin(StonecutterScreen.class) -//#if MC >= 26 +//? if >= 26 { public abstract class StonecutterScreenMixin extends AbstractContainerScreen { protected StonecutterScreenMixin(StonecutterMenu menu, Inventory inventory, Component title) { super(menu, inventory, title); -//#else -public abstract class StonecutterScreenMixin extends HandledScreen { +//? } else { +/*public abstract class StonecutterScreenMixin extends HandledScreen { protected StonecutterScreenMixin(StonecutterScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); -//#endif +*///? } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractBackground", at = @At("TAIL")) private void reglass$extractRecipePanel(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "drawBackground", at = @At("TAIL")) +//? } else { + /*@Inject(method = "drawBackground", at = @At("TAIL")) private void reglass$extractRecipePanel(DrawContext context, float delta, int mouseX, int mouseY, CallbackInfo ci) { -//#endif +*///? } ReGlassConfig cfg = ReGlassConfig.INSTANCE; if (!cfg.features.enableRedesign || !cfg.features.containers) { return; } ReGlassApi.create(context) -//#if MC >= 26 +//? if >= 26 { .dimensions(this.leftPos + 52, this.topPos + 13, 66, 56) -//#else - .dimensions(this.x + 52, this.y + 13, 66, 56) -//#endif +//? } else { + /*.dimensions(this.x + 52, this.y + 13, 66, 56) +*///? } .cornerRadius(9) .style(WidgetStyle.create().tint(0x000000, 0.14f).layer(1)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } } diff --git a/src/main/java/restudio/reglass/mixin/client/TitleScreenMixin.java b/src/main/java/restudio/reglass/mixin/client/TitleScreenMixin.java index a3c41df..ba1beb5 100644 --- a/src/main/java/restudio/reglass/mixin/client/TitleScreenMixin.java +++ b/src/main/java/restudio/reglass/mixin/client/TitleScreenMixin.java @@ -1,16 +1,16 @@ package restudio.reglass.mixin.client; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.TitleScreen; import net.minecraft.network.chat.Component; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.text.Text; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -19,22 +19,22 @@ @Mixin(TitleScreen.class) public abstract class TitleScreenMixin extends Screen { -//#if MC >= 26 +//? if >= 26 { protected TitleScreenMixin(Component title) { -//#else - protected TitleScreenMixin(Text title) { -//#endif +//? } else { + /*protected TitleScreenMixin(Text title) { +*///? } super(title); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractRenderState", at = @At("HEAD")) private void reglass$applyBlurOnTitleScreen(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { this.extractBlurredBackground(context); -//#else - @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;render(Lnet/minecraft/client/gui/DrawContext;IIF)V", shift = At.Shift.BY)) +//? } else { + /*@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;render(Lnet/minecraft/client/gui/DrawContext;IIF)V", shift = At.Shift.BY)) private void reglass$applyBlurOnTitleScreen(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { this.applyBlur(context); -//#endif +*///? } } } diff --git a/src/main/java/restudio/reglass/mixin/logical/GameRendererMixin.java b/src/main/java/restudio/reglass/mixin/logical/GameRendererMixin.java index 498fa67..f3defb3 100644 --- a/src/main/java/restudio/reglass/mixin/logical/GameRendererMixin.java +++ b/src/main/java/restudio/reglass/mixin/logical/GameRendererMixin.java @@ -1,38 +1,38 @@ package restudio.reglass.mixin.logical; import com.mojang.blaze3d.buffers.GpuBuffer; -//#if MC >= 26 +//? if >= 26 { import com.mojang.blaze3d.pipeline.RenderTarget; -//#endif +//? } import com.mojang.blaze3d.pipeline.RenderPipeline; import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.FilterMode; -//#if MC >= 26.2 +//? if >= 26.2 { import com.mojang.blaze3d.PrimitiveTopology; -//#endif +//? } import com.mojang.blaze3d.vertex.VertexFormat; import java.util.List; import java.util.OptionalDouble; -//#if MC >= 26.2 +//? if >= 26.2 { import java.util.Optional; -//#else -import java.util.OptionalInt; -//#endif -//#if MC >= 26 +//? } else { +/*import java.util.OptionalInt; +*///? } +//? if >= 26 { import net.minecraft.client.Minecraft; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.Framebuffer; -//#endif +*///? } import net.minecraft.client.gui.render.GuiRenderer; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.DeltaTracker; -//#else -import net.minecraft.client.render.GameRenderer; +//? } else { +/*import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.RenderTickCounter; -//#endif +*///? } import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -49,26 +49,26 @@ @Mixin(GameRenderer.class) public abstract class GameRendererMixin { -//#if MC >= 26 +//? if >= 26 { @Shadow @Final private Minecraft minecraft; -//#else - @Shadow @Final private MinecraftClient client; -//#endif +//? } else { + /*@Shadow @Final private MinecraftClient client; +*///? } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extract", at = @At("HEAD")) private void reglass$beginGuiFrame(DeltaTracker tickCounter, boolean tick, CallbackInfo ci) { -//#else - @Inject(method = "render", at = @At("HEAD")) +//? } else { + /*@Inject(method = "render", at = @At("HEAD")) private void reglass$beginGuiFrame(RenderTickCounter tickCounter, boolean tick, CallbackInfo ci) { -//#endif +*///? } double deltaTicks; try { -//#if MC >= 26 +//? if >= 26 { deltaTicks = tickCounter.getRealtimeDeltaTicks(); -//#else - deltaTicks = tickCounter.getDynamicDeltaTicks(); -//#endif +//? } else { + /*deltaTicks = tickCounter.getDynamicDeltaTicks(); +*///? } } catch (Throwable t) { deltaTicks = 1.0 / 60.0 * 20.0; } @@ -77,11 +77,11 @@ public abstract class GameRendererMixin { ReGlassAnim.INSTANCE.update(ReGlassConfig.INSTANCE, dt); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "processBlurEffect", at = @At("HEAD"), cancellable = true) -//#else - @Inject(method = "renderBlur", at = @At("HEAD"), cancellable = true) -//#endif +//? } else { + /*@Inject(method = "renderBlur", at = @At("HEAD"), cancellable = true) +*///? } private void reglass$renderLiquidGlass(CallbackInfo ci) { LiquidGlassUniforms uniforms = LiquidGlassUniforms.get(); if (uniforms.getCount() > 0) { @@ -91,70 +91,70 @@ public abstract class GameRendererMixin { List radii = uniforms.getUsedBlurRadiiOrdered(); LiquidGlassPrecomputeRuntime.get().setRequestedRadii(radii); LiquidGlassPrecomputeRuntime.get().run(); -//#if MC >= 26.2 +//? if >= 26.2 { RenderTarget mainFb = this.minecraft.gameRenderer.mainRenderTarget(); -//#elseif MC >= 26 - RenderTarget mainFb = this.minecraft.getMainRenderTarget(); -//#else - Framebuffer mainFb = this.client.getFramebuffer(); -//#endif +//? } elif >= 26 { + /*RenderTarget mainFb = this.minecraft.getMainRenderTarget(); +*///? } else { + /*Framebuffer mainFb = this.client.getFramebuffer(); +*///? } try (RenderPass pass = RenderSystem.getDevice().createCommandEncoder().createRenderPass( () -> "reglass liquid glass pass", -//#if MC >= 26 +//? if >= 26 { mainFb.getColorTextureView(), -//#else - mainFb.getColorAttachmentView(), -//#endif -//#if MC >= 26.2 +//? } else { + /*mainFb.getColorAttachmentView(), +*///? } +//? if >= 26.2 { Optional.empty(), -//#else - OptionalInt.empty(), -//#endif -//#if MC >= 26 +//? } else { + /*OptionalInt.empty(), +*///? } +//? if >= 26 { mainFb.useDepth ? mainFb.getDepthTextureView() : null, -//#else - mainFb.useDepthAttachment ? mainFb.getDepthAttachmentView() : null, -//#endif +//? } else { + /*mainFb.useDepthAttachment ? mainFb.getDepthAttachmentView() : null, +*///? } OptionalDouble.empty() )) { RenderPipeline pipeline = LiquidGlassPipelines.getGuiPipeline(); pass.setPipeline(pipeline); -//#if MC < 26.2 - RenderSystem.bindDefaultUniforms(pass); -//#endif +//? if < 26.2 { + /*RenderSystem.bindDefaultUniforms(pass); +*///? } pass.setUniform("SamplerInfo", uniforms.getSamplerInfoBuffer()); pass.setUniform("CustomUniforms", uniforms.getCustomUniformsBuffer()); pass.setUniform("WidgetInfo", uniforms.getWidgetInfoBuffer()); pass.setUniform("BgConfig", uniforms.getBgConfigBuffer()); -//#if MC >= 26 +//? if >= 26 { pass.bindTexture("Sampler0", mainFb.getColorTextureView(), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); -//#else - pass.bindTexture("Sampler0", mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); -//#endif +//? } else { + /*pass.bindTexture("Sampler0", mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); +*///? } GuiRenderer guiRenderer = ((GameRendererAccessor) this).getGuiRenderer(); GpuBuffer quadVB = ((QuadVertexBufferProvider) guiRenderer).getQuadVertexBuffer(); -//#if MC >= 26.2 +//? if >= 26.2 { RenderSystem.AutoStorageIndexBuffer quadIBInfo = RenderSystem.getSequentialBuffer(PrimitiveTopology.QUADS); com.mojang.blaze3d.buffers.GpuBuffer quadIB = quadIBInfo.getBuffer(6); -//#elseif MC >= 26 - RenderSystem.AutoStorageIndexBuffer quadIBInfo = RenderSystem.getSequentialBuffer(VertexFormat.Mode.QUADS); +//? } elif >= 26 { + /*RenderSystem.AutoStorageIndexBuffer quadIBInfo = RenderSystem.getSequentialBuffer(VertexFormat.Mode.QUADS); com.mojang.blaze3d.buffers.GpuBuffer quadIB = quadIBInfo.getBuffer(6); -//#else - RenderSystem.ShapeIndexBuffer quadIBInfo = RenderSystem.getSequentialBuffer(VertexFormat.DrawMode.QUADS); +*///? } else { + /*RenderSystem.ShapeIndexBuffer quadIBInfo = RenderSystem.getSequentialBuffer(VertexFormat.DrawMode.QUADS); com.mojang.blaze3d.buffers.GpuBuffer quadIB = quadIBInfo.getIndexBuffer(6); -//#endif -//#if MC >= 26.2 +*///? } +//? if >= 26.2 { pass.setVertexBuffer(0, quadVB.slice()); -//#else - pass.setVertexBuffer(0, quadVB); -//#endif -//#if MC >= 26 +//? } else { + /*pass.setVertexBuffer(0, quadVB); +*///? } +//? if >= 26 { pass.setIndexBuffer(quadIB, quadIBInfo.type()); -//#else - pass.setIndexBuffer(quadIB, quadIBInfo.getIndexType()); -//#endif +//? } else { + /*pass.setIndexBuffer(quadIB, quadIBInfo.getIndexType()); +*///? } for (int i = 0; i < 5; i++) { String samplerName = switch (i) { case 0 -> "Sampler1"; @@ -165,32 +165,32 @@ public abstract class GameRendererMixin { }; if (i < radii.size()) { int r = radii.get(i); -//#if MC >= 26 +//? if >= 26 { if (r <= 0) pass.bindTexture(samplerName, mainFb.getColorTextureView(), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); else pass.bindTexture(samplerName, LiquidGlassPrecomputeRuntime.get().getBlurredViewForRadius(r), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); -//#else - if (r <= 0) pass.bindTexture(samplerName, mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); +//? } else { + /*if (r <= 0) pass.bindTexture(samplerName, mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); else pass.bindTexture(samplerName, LiquidGlassPrecomputeRuntime.get().getBlurredViewForRadius(r), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); -//#endif +*///? } } else { if (!radii.isEmpty()) { int r0 = radii.getFirst(); -//#if MC >= 26 +//? if >= 26 { if (r0 <= 0) pass.bindTexture(samplerName, mainFb.getColorTextureView(), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); else pass.bindTexture(samplerName, LiquidGlassPrecomputeRuntime.get().getBlurredViewForRadius(r0), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); } else pass.bindTexture(samplerName, mainFb.getColorTextureView(), RenderSystem.getSamplerCache().getClampToEdge(FilterMode.LINEAR)); -//#else - if (r0 <= 0) pass.bindTexture(samplerName, mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); +//? } else { + /*if (r0 <= 0) pass.bindTexture(samplerName, mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); else pass.bindTexture(samplerName, LiquidGlassPrecomputeRuntime.get().getBlurredViewForRadius(r0), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); } else pass.bindTexture(samplerName, mainFb.getColorAttachmentView(), RenderSystem.getSamplerCache().get(FilterMode.LINEAR)); -//#endif +*///? } } } -//#if MC >= 26.2 +//? if >= 26.2 { pass.drawIndexed(6, 1, 0, 0, 0); -//#else - pass.drawIndexed(0, 0, 6, 1); -//#endif +//? } else { + /*pass.drawIndexed(0, 0, 6, 1); +*///? } } } } diff --git a/src/main/java/restudio/reglass/mixin/widgets/DrawContextMixin.java b/src/main/java/restudio/reglass/mixin/widgets/DrawContextMixin.java index 33e5504..15a2f14 100644 --- a/src/main/java/restudio/reglass/mixin/widgets/DrawContextMixin.java +++ b/src/main/java/restudio/reglass/mixin/widgets/DrawContextMixin.java @@ -1,19 +1,19 @@ package restudio.reglass.mixin.widgets; import com.mojang.blaze3d.pipeline.RenderPipeline; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -//#else -import net.minecraft.client.gl.RenderPipelines; +//? } else { +/*import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.gui.DrawContext; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.util.Identifier; -//#endif +*///? } import java.util.HashMap; import java.util.Map; import org.spongepowered.asm.mixin.Mixin; @@ -26,50 +26,50 @@ import restudio.reglass.client.api.ReGlassConfig; import restudio.reglass.client.api.WidgetStyle; -//#if MC >= 26 +//? if >= 26 { @Mixin(GuiGraphicsExtractor.class) -//#else -@Mixin(DrawContext.class) -//#endif +//? } else { +/*@Mixin(DrawContext.class) +*///? } public abstract class DrawContextMixin { @Unique -//#if MC >= 26 +//? if >= 26 { private static final Identifier BUTTON_TEXTURE = Identifier.withDefaultNamespace("widget/button"); -//#else - private static final Identifier BUTTON_TEXTURE = Identifier.ofVanilla("widget/button"); -//#endif +//? } else { + /*private static final Identifier BUTTON_TEXTURE = Identifier.ofVanilla("widget/button"); +*///? } @Unique -//#if MC >= 26 +//? if >= 26 { private static final Identifier BUTTON_DISABLED_TEXTURE = Identifier.withDefaultNamespace("widget/button_disabled"); -//#else - private static final Identifier BUTTON_DISABLED_TEXTURE = Identifier.ofVanilla("widget/button_disabled"); -//#endif +//? } else { + /*private static final Identifier BUTTON_DISABLED_TEXTURE = Identifier.ofVanilla("widget/button_disabled"); +*///? } @Unique -//#if MC >= 26 +//? if >= 26 { private static final Identifier BUTTON_HIGHLIGHTED_TEXTURE = Identifier.withDefaultNamespace("widget/button_highlighted"); -//#else - private static final Identifier BUTTON_HIGHLIGHTED_TEXTURE = Identifier.ofVanilla("widget/button_highlighted"); -//#endif +//? } else { + /*private static final Identifier BUTTON_HIGHLIGHTED_TEXTURE = Identifier.ofVanilla("widget/button_highlighted"); +*///? } @Unique -//#if MC >= 26 +//? if >= 26 { private static final Identifier VILLAGER_TRADE_ARROW_OUT_OF_STOCK = Identifier.withDefaultNamespace("container/villager/trade_arrow_out_of_stock"); -//#else - private static final Identifier VILLAGER_TRADE_ARROW_OUT_OF_STOCK = Identifier.ofVanilla("container/villager/trade_arrow_out_of_stock"); -//#endif +//? } else { + /*private static final Identifier VILLAGER_TRADE_ARROW_OUT_OF_STOCK = Identifier.ofVanilla("container/villager/trade_arrow_out_of_stock"); +*///? } @Unique private static final Map REGLASS$SCROLLER_Y = new HashMap<>(); -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blurBeforeThisStratum", at = @At("HEAD")) private void reglass$onBlurBeforeThisStratum(CallbackInfo ci) { LiquidGlassUniforms.get().setScreenWantsBlur(true); } @Inject(method = "blitSprite(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIIII)V", -//#else - @Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIIII)V", +*///? } at = @At("HEAD"), cancellable = true) private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, int y, int width, int height, int color, CallbackInfo ci) { if (reglass$handleContainerSprite(sprite, x, y, width, height)) { @@ -81,21 +81,21 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in || sprite.getPath().equals(BUTTON_DISABLED_TEXTURE.getPath()) || sprite.getPath().equals(BUTTON_HIGHLIGHTED_TEXTURE.getPath()); -//#if MC >= 26 +//? if >= 26 { if (isButtonTexture && (ReGlassConfig.INSTANCE.features.enableRedesign && ReGlassConfig.INSTANCE.features.buttons)) { -//#else - if (isButtonTexture && ReGlassConfig.INSTANCE.features.enableRedesign && ReGlassConfig.INSTANCE.features.buttons) { -//#endif +//? } else { + /*if (isButtonTexture && ReGlassConfig.INSTANCE.features.enableRedesign && ReGlassConfig.INSTANCE.features.buttons) { +*///? } boolean isHighlighted = sprite.getPath().equals(BUTTON_HIGHLIGHTED_TEXTURE.getPath()); boolean isDisabled = sprite.getPath().equals(BUTTON_DISABLED_TEXTURE.getPath()); boolean isTradeRowButton = ReGlassConfig.INSTANCE.features.containers && width >= 80 && width <= 100 && height == 20; int glassY = isTradeRowButton ? y + 1 : y; int glassHeight = isTradeRowButton ? height - 2 : height; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .position(x, glassY) .size(width, glassHeight) .hover(isHighlighted ? 1f : 0f) @@ -105,11 +105,11 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blitSprite(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIII)V", -//#else - @Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIII)V", -//#endif +//? } else { + /*@Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIII)V", +*///? } at = @At("HEAD"), cancellable = true) private void reglass$onDrawSprite(RenderPipeline pipeline, Identifier sprite, int x, int y, int width, int height, CallbackInfo ci) { if (reglass$handleContainerSprite(sprite, x, y, width, height)) { @@ -117,11 +117,11 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blitSprite(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIIIIIII)V", -//#else - @Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIIIIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawGuiTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIIIIIII)V", +*///? } at = @At("HEAD"), cancellable = true) private void reglass$onDrawSlicedSprite(RenderPipeline pipeline, Identifier sprite, int spriteWidth, int spriteHeight, int u, int v, int x, int y, int width, int height, CallbackInfo ci) { ReGlassConfig cfg = ReGlassConfig.INSTANCE; @@ -130,33 +130,33 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blit(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIFFIIIII)V", -//#else - @Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIII)V", +*///? } at = @At("HEAD"), cancellable = true) -//#if MC >= 26 +//? if >= 26 { private void reglass$onBlitTexture(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, CallbackInfo ci) { -//#else - private void reglass$onDrawTexture(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, CallbackInfo ci) { -//#endif +//? } else { + /*private void reglass$onDrawTexture(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, CallbackInfo ci) { +*///? } if (reglass$shouldSkipContainerTexture(texture, width, height)) { ci.cancel(); } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blit(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIFFIIII)V", -//#else - @Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIII)V", +*///? } at = @At("HEAD"), cancellable = true) -//#if MC >= 26 +//? if >= 26 { private void reglass$onBlitTextureNoSourceSize(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int textureWidth, int textureHeight, CallbackInfo ci) { -//#else - private void reglass$onDrawTextureNoSourceSize(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int textureWidth, int textureHeight, CallbackInfo ci) { -//#endif +//? } else { + /*private void reglass$onDrawTextureNoSourceSize(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int textureWidth, int textureHeight, CallbackInfo ci) { +*///? } if (reglass$handleModMenuButtonTexture(texture, x, y, u, v, width, height, textureWidth, textureHeight)) { ci.cancel(); return; @@ -166,17 +166,17 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blit(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIFFIIIIII)V", -//#else - @Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIIII)V", +*///? } at = @At("HEAD"), cancellable = true) -//#if MC >= 26 +//? if >= 26 { private void reglass$onBlitTextureFull(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, CallbackInfo ci) { -//#else - private void reglass$onDrawTextureFull(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, CallbackInfo ci) { -//#endif +//? } else { + /*private void reglass$onDrawTextureFull(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, CallbackInfo ci) { +*///? } if (reglass$handleModMenuButtonTexture(texture, x, y, u, v, width, height, textureWidth, textureHeight)) { ci.cancel(); return; @@ -186,17 +186,17 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "blit(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/Identifier;IIFFIIIIIII)V", -//#else - @Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIIIII)V", -//#endif +//? } else { + /*@Inject(method = "drawTexture(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/util/Identifier;IIFFIIIIIII)V", +*///? } at = @At("HEAD"), cancellable = true) -//#if MC >= 26 +//? if >= 26 { private void reglass$onBlitTextureFullWithColor(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, int color, CallbackInfo ci) { -//#else - private void reglass$onDrawTextureFullWithColor(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, int color, CallbackInfo ci) { -//#endif +//? } else { + /*private void reglass$onDrawTextureFullWithColor(RenderPipeline pipeline, Identifier texture, int x, int y, float u, float v, int width, int height, int sourceWidth, int sourceHeight, int textureWidth, int textureHeight, int color, CallbackInfo ci) { +*///? } if (reglass$handleModMenuButtonTexture(texture, x, y, u, v, width, height, textureWidth, textureHeight)) { ci.cancel(); return; @@ -209,14 +209,14 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in @Unique private boolean reglass$handleModMenuButtonTexture(Identifier texture, int x, int y, float u, float v, int width, int height, int textureWidth, int textureHeight) { ReGlassConfig cfg = ReGlassConfig.INSTANCE; -//#if MC >= 26 +//? if >= 26 { if (!cfg.features.enableRedesign || !cfg.features.buttons) { return false; } if (!texture.getNamespace().equals("modmenu")) { -//#else - if (!cfg.features.enableRedesign || !cfg.features.buttons || !texture.getNamespace().equals("modmenu")) { -//#endif +//? } else { + /*if (!cfg.features.enableRedesign || !cfg.features.buttons || !texture.getNamespace().equals("modmenu")) { +*///? } return false; } @@ -226,35 +226,35 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } String fileName = path.substring("textures/gui/".length()); -//#if MC >= 26 +//? if >= 26 { Identifier iconTexture = Identifier.fromNamespaceAndPath("reglass", "textures/gui/modmenu/" + fileName); -//#else - Identifier iconTexture = Identifier.of("reglass", "textures/gui/modmenu/" + fileName); -//#endif +//? } else { + /*Identifier iconTexture = Identifier.of("reglass", "textures/gui/modmenu/" + fileName); +*///? } boolean hovered = v > 0f && v < 40f; boolean disabled = v >= 40f; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(x, y, width, height) .cornerRadius(Math.min(width, height) * 0.5f) .hover(hovered ? 1f : 0f) .style(WidgetStyle.create() .tint(disabled ? 0x000000 : 0xFFFFFFFF, disabled ? 0.36f : 0f) .layer(3)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); -//#if MC >= 26 +//? if >= 26 { ((GuiGraphicsExtractor)(Object) this).blit( -//#else - ((DrawContext)(Object) this).drawTexture( -//#endif +//? } else { + /*((DrawContext)(Object) this).drawTexture( +*///? } RenderPipelines.GUI_TEXTURED, iconTexture, x, @@ -270,14 +270,14 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in @Unique private boolean reglass$shouldSkipContainerTexture(Identifier texture, int width, int height) { -//#if MC >= 26 +//? if >= 26 { if (!ReGlassConfig.INSTANCE.features.enableRedesign || !ReGlassConfig.INSTANCE.features.containers) { return false; } if (width < 100 || height < 54) { -//#else - if (!ReGlassConfig.INSTANCE.features.enableRedesign || !ReGlassConfig.INSTANCE.features.containers || width < 100 || height < 54) { -//#endif +//? } else { + /*if (!ReGlassConfig.INSTANCE.features.enableRedesign || !ReGlassConfig.INSTANCE.features.containers || width < 100 || height < 54) { +*///? } return false; } @@ -299,11 +299,11 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in String path = sprite.getPath(); if (path.equals("recipe_book/button") || path.equals("recipe_book/button_highlighted")) { reglass$renderRoundSprite(x, y, width, height, path.contains("highlighted") ? 1f : 0f, 3); -//#if MC >= 26 +//? if >= 26 { ((GuiGraphicsExtractor)(Object) this).fakeItem(new ItemStack(Items.KNOWLEDGE_BOOK), x + width / 2 - 8, y + height / 2 - 8); -//#else - ((DrawContext)(Object) this).drawItem(new ItemStack(Items.KNOWLEDGE_BOOK), x + width / 2 - 8, y + height / 2 - 8); -//#endif +//? } else { + /*((DrawContext)(Object) this).drawItem(new ItemStack(Items.KNOWLEDGE_BOOK), x + width / 2 - 8, y + height / 2 - 8); +*///? } return true; } @@ -363,17 +363,17 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in if (path.startsWith("recipe_book/slot_")) { boolean craftable = path.contains("craftable") && !path.contains("uncraftable"); -//#if MC >= 26 +//? if >= 26 { boolean many = path.contains("many"); -//#endif +//? } int size = Math.max(16, Math.min(width, height) - 4); int cx = x + width / 2; int cy = y + height / 2; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(cx - size / 2 - 1, cy - size / 2 - 1, size, size) .cornerRadius(5) .hover(craftable ? 0.65f : 0f) @@ -381,9 +381,9 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in .tint(0x000000, craftable ? 0.18f : 0.12f) .shadow(0f, 0f, 0f, 0f) .layer(3)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); return true; } @@ -393,20 +393,20 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in int size = Math.min(24, Math.min(width, height)); int cx = x + width / 2; int cy = y + height / 2; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(cx - size / 2, cy - size / 2, size, size) .cornerRadius(size * 0.5f) .hover(selected ? 1f : 0f) .style(WidgetStyle.create() .tint(0x000000, selected ? 0.22f : 0.12f) .layer(selected ? 3 : 2)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); return true; } @@ -454,11 +454,11 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in int thumbWidth = Math.max(5, Math.min(width, 8)); int thumbHeight = Math.max(12, height); int cx = x + width / 2; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(cx - thumbWidth / 2, (int)Math.round(renderY), thumbWidth, thumbHeight) .cornerRadius(thumbWidth * 0.5f) .hover(0.7f) @@ -466,9 +466,9 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in .tint(0x000000, 0.18f) .fadeKey(scrollerKey) .layer(4)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @@ -510,11 +510,11 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in private void reglass$renderTradeArrowOutOfStock(int x, int y, int width, int height) { int arrowWidth = 20; int arrowHeight = 18; -//#if MC >= 26 +//? if >= 26 { ((GuiGraphicsExtractor)(Object) this).blitSprite( -//#else - ((DrawContext)(Object) this).drawGuiTexture( -//#endif +//? } else { + /*((DrawContext)(Object) this).drawGuiTexture( +*///? } RenderPipelines.GUI_TEXTURED, VILLAGER_TRADE_ARROW_OUT_OF_STOCK, x + (width - arrowWidth) / 2, @@ -525,33 +525,33 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in @Unique private void reglass$renderTextField(int x, int y, int width, int height, boolean highlighted) { -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(x, y, width, height) .cornerRadius(5) .hover(highlighted ? 1f : 0f) .style(WidgetStyle.create() .tint(0x000000, 0.16f) .layer(3)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @Unique private void reglass$renderRecipeFilterIcon(String path, int x, int y, int width, int height) { String file = path.substring("recipe_book/".length()); -//#if MC >= 26 +//? if >= 26 { Identifier texture = Identifier.fromNamespaceAndPath("reglass", "textures/gui/recipe_book/filter_icons/" + file + ".png"); ((GuiGraphicsExtractor)(Object) this).blit( -//#else - Identifier texture = Identifier.of("reglass", "textures/gui/recipe_book/filter_icons/" + file + ".png"); +//? } else { + /*Identifier texture = Identifier.of("reglass", "textures/gui/recipe_book/filter_icons/" + file + ".png"); ((DrawContext)(Object) this).drawTexture( -//#endif +*///? } RenderPipelines.GUI_TEXTURED, texture, x, @@ -568,20 +568,20 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in @Unique private void reglass$renderRecipeFilterBackground(int x, int y, int width, int height, float hover) { -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(x, y, width, height) .cornerRadius(5) .hover(hover) .style(WidgetStyle.create() .tint(0x000000, hover > 0f ? 0.20f : 0.12f) .layer(3)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } @@ -593,20 +593,20 @@ private void onDrawTexture(RenderPipeline pipeline, Identifier sprite, int x, in } int cx = x + width / 2; int cy = y + height / 2; -//#if MC >= 26 +//? if >= 26 { ReGlassApi.create((GuiGraphicsExtractor)(Object) this) -//#else - ReGlassApi.create((DrawContext)(Object) this) -//#endif +//? } else { + /*ReGlassApi.create((DrawContext)(Object) this) +*///? } .dimensions(cx - size / 2, cy - size / 2, size, size) .cornerRadius(size * 0.5f) .hover(hover) .style(WidgetStyle.create() .tint(0x000000, hover > 0f ? 0.20f : 0.12f) .layer(layer)) -//#if MC >= 26 +//? if >= 26 { .screenSpace() -//#endif +//? } .render(); } } diff --git a/src/main/java/restudio/reglass/mixin/widgets/GuiRendererMixin.java b/src/main/java/restudio/reglass/mixin/widgets/GuiRendererMixin.java index 37abd1d..90a9a53 100644 --- a/src/main/java/restudio/reglass/mixin/widgets/GuiRendererMixin.java +++ b/src/main/java/restudio/reglass/mixin/widgets/GuiRendererMixin.java @@ -6,17 +6,17 @@ import java.nio.FloatBuffer; import java.util.List; import net.minecraft.client.gui.render.GuiRenderer; -//#if MC >= 26.2 -import net.minecraft.client.renderer.state.gui.GuiRenderState; -//#elseif MC >= 26 +//? if >= 26.2 { import net.minecraft.client.renderer.state.gui.GuiRenderState; +//? } elif >= 26 { +/*import net.minecraft.client.renderer.state.gui.GuiRenderState; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.SubmitNodeCollector; -//#else -import net.minecraft.client.gui.render.state.GuiRenderState; +*///? } else { +/*import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.command.OrderedRenderCommandQueue; -//#endif +*///? } import org.lwjgl.system.MemoryStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -31,13 +31,13 @@ public class GuiRendererMixin implements QuadVertexBufferProvider { private GpuBuffer reglass$quadVertexBuffer; @Inject(method = "", at = @At("TAIL")) -//#if MC >= 26.2 +//? if >= 26.2 { private void reglass$onInit(GuiRenderState state, net.minecraft.client.renderer.feature.FeatureRenderDispatcher dispatcher, List specialElementRenderers, CallbackInfo ci) { -//#elseif MC >= 26 - private void reglass$onInit(GuiRenderState state, MultiBufferSource.BufferSource vertexConsumers, SubmitNodeCollector queue, net.minecraft.client.renderer.feature.FeatureRenderDispatcher dispatcher, List specialElementRenderers, CallbackInfo ci) { -//#else - private void reglass$onInit(GuiRenderState state, VertexConsumerProvider.Immediate vertexConsumers, OrderedRenderCommandQueue queue, net.minecraft.client.render.command.RenderDispatcher dispatcher, List specialElementRenderers, CallbackInfo ci) { -//#endif +//? } elif >= 26 { + /*private void reglass$onInit(GuiRenderState state, MultiBufferSource.BufferSource vertexConsumers, SubmitNodeCollector queue, net.minecraft.client.renderer.feature.FeatureRenderDispatcher dispatcher, List specialElementRenderers, CallbackInfo ci) { +*///? } else { + /*private void reglass$onInit(GuiRenderState state, VertexConsumerProvider.Immediate vertexConsumers, OrderedRenderCommandQueue queue, net.minecraft.client.render.command.RenderDispatcher dispatcher, List specialElementRenderers, CallbackInfo ci) { +*///? } try (MemoryStack stack = MemoryStack.stackPush()) { ByteBuffer byteBuffer = stack.malloc(4 * 3 * 4); FloatBuffer floatBuffer = byteBuffer.asFloatBuffer(); diff --git a/src/main/java/restudio/reglass/mixin/widgets/SliderWidgetMixin.java b/src/main/java/restudio/reglass/mixin/widgets/SliderWidgetMixin.java index 1403d6c..55339f2 100644 --- a/src/main/java/restudio/reglass/mixin/widgets/SliderWidgetMixin.java +++ b/src/main/java/restudio/reglass/mixin/widgets/SliderWidgetMixin.java @@ -1,6 +1,6 @@ package restudio.reglass.mixin.widgets; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -8,15 +8,15 @@ import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; -//#else -import net.minecraft.client.MinecraftClient; +//? } else { +/*import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.gui.widget.SliderWidget; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; -//#endif +*///? } import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -28,34 +28,34 @@ import restudio.reglass.client.api.WidgetStyle; import restudio.reglass.mixin.accessor.SliderWidgetAccessor; -//#if MC >= 26 +//? if >= 26 { @Mixin(AbstractSliderButton.class) public abstract class SliderWidgetMixin extends AbstractWidget { -//#else -@Mixin(SliderWidget.class) +//? } else { +/*@Mixin(SliderWidget.class) public abstract class SliderWidgetMixin extends ClickableWidget { -//#endif +*///? } @Unique WidgetStyle knobStyle = new WidgetStyle().smoothing(-0.005f).tint(0x000000, 0.1f); @Unique private double reglass$knobX = Double.NaN; -//#if MC >= 26 +//? if >= 26 { public SliderWidgetMixin(int x, int y, int width, int height, Component message) { -//#else - public SliderWidgetMixin(int x, int y, int width, int height, Text message) { -//#endif +//? } else { + /*public SliderWidgetMixin(int x, int y, int width, int height, Text message) { +*///? } super(x, y, width, height, message); } -//#if MC >= 26 +//? if >= 26 { @Inject(method = "extractWidgetRenderState", at = @At("HEAD"), cancellable = true) private void onRenderWidget(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#else - @Inject(method = "renderWidget", at = @At("HEAD"), cancellable = true) +//? } else { + /*@Inject(method = "renderWidget", at = @At("HEAD"), cancellable = true) private void onRenderWidget(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { -//#endif +*///? } if (!ReGlassConfig.INSTANCE.features.enableRedesign || !ReGlassConfig.INSTANCE.features.sliders) { return; } @@ -66,12 +66,12 @@ private void onRenderWidget(DrawContext context, int mouseX, int mouseY, float d if (Double.isNaN(this.reglass$knobX)) { this.reglass$knobX = targetKnobX; } -//#if MC >= 26 +//? if >= 26 { double deltaTicks = Minecraft.getInstance().getDeltaTracker().getRealtimeDeltaTicks(); double deltaSeconds = deltaTicks / 20.0; -//#else - double deltaSeconds = delta / 20.0; -//#endif +//? } else { + /*double deltaSeconds = delta / 20.0; +*///? } double alpha = 1.0 - Math.exp(-deltaSeconds / 0.08); if (alpha < 0.0) alpha = 0.0; if (alpha > 1.0) alpha = 1.0; @@ -93,23 +93,23 @@ private void onRenderWidget(DrawContext context, int mouseX, int mouseY, float d LiquidGlassUniforms.get().tryApplyBlur(context); -//#if MC >= 26 +//? if >= 26 { Font font = Minecraft.getInstance().font; -//#else - TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; -//#endif +//? } else { + /*TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; +*///? } int color = this.active ? 0xFFFFFF : 0xA0A0A0; -//#if MC >= 26 +//? if >= 26 { int finalColor = color | Mth.ceil(this.alpha * 255.0f) << 24; -//#else - int finalColor = color | MathHelper.ceil(this.alpha * 255.0f) << 24; -//#endif +//? } else { + /*int finalColor = color | MathHelper.ceil(this.alpha * 255.0f) << 24; +*///? } -//#if MC >= 26 +//? if >= 26 { context.centeredText(font, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, finalColor); -//#else - context.drawCenteredTextWithShadow(textRenderer, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, finalColor); -//#endif +//? } else { + /*context.drawCenteredTextWithShadow(textRenderer, this.getMessage(), this.getX() + this.getWidth() / 2, this.getY() + (this.getHeight() - 8) / 2, finalColor); +*///? } } } diff --git a/src/main/java/restudio/reglass/mixin/widgets/TooltipStateMixin.java b/src/main/java/restudio/reglass/mixin/widgets/TooltipStateMixin.java index 4ac4444..43302ae 100644 --- a/src/main/java/restudio/reglass/mixin/widgets/TooltipStateMixin.java +++ b/src/main/java/restudio/reglass/mixin/widgets/TooltipStateMixin.java @@ -1,12 +1,12 @@ package restudio.reglass.mixin.widgets; -//#if MC >= 26 +//? if >= 26 { import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.navigation.ScreenRectangle; -//#else -import net.minecraft.client.gui.DrawContext; +//? } else { +/*import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.ScreenRect; -//#endif +*///? } import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.tooltip.TooltipState; import org.jetbrains.annotations.Nullable; @@ -23,11 +23,11 @@ public class TooltipStateMixin { @Shadow @Nullable private Tooltip tooltip; // @Inject(method = "render", at = @At("HEAD"), cancellable = true) -//#if MC >= 26 -// private void onRender(GuiGraphicsExtractor context, int mouseX, int mouseY, boolean hovered, boolean focused, ScreenRectangle navigationFocus, CallbackInfo ci) { -//#else -// private void onRender(DrawContext context, int mouseX, int mouseY, boolean hovered, boolean focused, ScreenRect navigationFocus, CallbackInfo ci) { -//#endif +//? if >= 26 { + private void onRender(GuiGraphicsExtractor context, int mouseX, int mouseY, boolean hovered, boolean focused, ScreenRectangle navigationFocus, CallbackInfo ci) { +#else + private void onRender(DrawContext context, int mouseX, int mouseY, boolean hovered, boolean focused, ScreenRect navigationFocus, CallbackInfo ci) { +//? } // if (!ReGlassConfig.INSTANCE.features.enableRedesign) return; // // ci.cancel();