diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4636995..0e33113 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,9 +11,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK 21 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'corretto' java-version: '21' @@ -22,7 +22,7 @@ jobs: - name: Build with Gradle run: ./gradlew build --full-stacktrace - name: Upload Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Artifacts path: build/libs/*-release.jar \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b5642a6..f578135 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,10 +6,10 @@ plugins { val versions = providers.gradleProperty("net.labymod.minecraft-versions").get().split(";") group = "com.rappytv.signsearch" -version = providers.environmentVariable("VERSION").getOrElse("1.0.3") +version = providers.environmentVariable("VERSION").getOrElse("1.0.4") labyMod { - defaultPackageName = "com.rappytv.signsearch" //change this to your main package name (used by all modules) + defaultPackageName = "com.rappytv.signsearch" minecraft { registerVersion(versions.toTypedArray()) { @@ -26,7 +26,7 @@ labyMod { displayName = "SignSearch" author = "RappyTV" description = "Highlight signs which contain a specific text." - minecraftVersion = "1.8<1.21.1" + minecraftVersion = "1.8<1.21.4" version = rootProject.version.toString() } } diff --git a/core/src/main/java/com/rappytv/signsearch/SignSearchAddon.java b/core/src/main/java/com/rappytv/signsearch/SignSearchAddon.java index b098c96..ee92ce9 100644 --- a/core/src/main/java/com/rappytv/signsearch/SignSearchAddon.java +++ b/core/src/main/java/com/rappytv/signsearch/SignSearchAddon.java @@ -1,6 +1,7 @@ package com.rappytv.signsearch; import com.rappytv.signsearch.gui.settings.SignSearchSettingsActivity; +import com.rappytv.signsearch.listeners.KeyPressListener; import com.rappytv.signsearch.listeners.PauseMenuListener; import com.rappytv.signsearch.utils.SignManager; import com.rappytv.signsearch.utils.SignSearchSettings; @@ -13,6 +14,7 @@ public class SignSearchAddon extends LabyAddon { private static SignSearchConfiguration config; private static SignManager signManager; private static SignSearchSettings searchSettings; + private SignSearchSettingsActivity settingsActivity; @Override protected void enable() { @@ -20,8 +22,9 @@ protected void enable() { config = configuration(); signManager = new SignManager(); searchSettings = new SignSearchSettings(config.enabled()); - SignSearchSettingsActivity activity = new SignSearchSettingsActivity(searchSettings); - registerListener(new PauseMenuListener(activity)); + settingsActivity = new SignSearchSettingsActivity(searchSettings); + registerListener(new KeyPressListener(this)); + registerListener(new PauseMenuListener(settingsActivity)); } @Override @@ -40,4 +43,8 @@ public static SignManager getSignManager() { public static SignSearchSettings getSearchSettings() { return searchSettings; } + + public SignSearchSettingsActivity getSettingsActivity() { + return settingsActivity; + } } diff --git a/core/src/main/java/com/rappytv/signsearch/SignSearchConfiguration.java b/core/src/main/java/com/rappytv/signsearch/SignSearchConfiguration.java index 493e759..06538f9 100644 --- a/core/src/main/java/com/rappytv/signsearch/SignSearchConfiguration.java +++ b/core/src/main/java/com/rappytv/signsearch/SignSearchConfiguration.java @@ -1,14 +1,25 @@ package com.rappytv.signsearch; import net.labymod.api.addon.AddonConfig; +import net.labymod.api.client.gui.screen.key.Key; +import net.labymod.api.client.gui.screen.widget.widgets.input.KeybindWidget.KeyBindSetting; +import net.labymod.api.client.gui.screen.widget.widgets.input.SwitchWidget.SwitchSetting; import net.labymod.api.configuration.loader.property.ConfigProperty; public class SignSearchConfiguration extends AddonConfig { + @SwitchSetting private final ConfigProperty enabled = new ConfigProperty<>(true); + @KeyBindSetting + private final ConfigProperty menuHotkey = new ConfigProperty<>(Key.NONE); + @Override public ConfigProperty enabled() { return enabled; } + + public ConfigProperty menuHotkey() { + return menuHotkey; + } } diff --git a/core/src/main/java/com/rappytv/signsearch/listeners/KeyPressListener.java b/core/src/main/java/com/rappytv/signsearch/listeners/KeyPressListener.java new file mode 100644 index 0000000..304fba9 --- /dev/null +++ b/core/src/main/java/com/rappytv/signsearch/listeners/KeyPressListener.java @@ -0,0 +1,26 @@ +package com.rappytv.signsearch.listeners; + +import com.rappytv.signsearch.SignSearchAddon; +import net.labymod.api.Laby; +import net.labymod.api.event.Subscribe; +import net.labymod.api.event.client.input.KeyEvent; +import net.labymod.api.event.client.input.KeyEvent.State; + +public class KeyPressListener { + + private final SignSearchAddon addon; + + public KeyPressListener(SignSearchAddon addon) { + this.addon = addon; + } + + @Subscribe + public void onKeyDown(KeyEvent event) { + if(event.state() != State.PRESS + || Laby.labyAPI().minecraft().minecraftWindow().isScreenOpened() + || event.key() != addon.configuration().menuHotkey().get()) return; + + Laby.labyAPI().minecraft().minecraftWindow().displayScreen(addon.getSettingsActivity()); + } + +} diff --git a/core/src/main/resources/assets/signsearch/i18n/en_us.json b/core/src/main/resources/assets/signsearch/i18n/en_us.json index 31534ac..ce43c14 100644 --- a/core/src/main/resources/assets/signsearch/i18n/en_us.json +++ b/core/src/main/resources/assets/signsearch/i18n/en_us.json @@ -3,6 +3,9 @@ "settings": { "enabled": { "name": "Enabled" + }, + "menuHotkey": { + "name": "Settings hotkey" } }, "ui": { diff --git a/game-runner/src/v1_16_5/java/com/rappytv/signsearch/v1_16_5/mixins/SignMixin.java b/game-runner/src/v1_16_5/java/com/rappytv/signsearch/v1_16_5/mixins/SignMixin.java index c636350..f5a764f 100644 --- a/game-runner/src/v1_16_5/java/com/rappytv/signsearch/v1_16_5/mixins/SignMixin.java +++ b/game-runner/src/v1_16_5/java/com/rappytv/signsearch/v1_16_5/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_17_1/java/com/rappytv/signsearch/v1_17_1/mixins/SignMixin.java b/game-runner/src/v1_17_1/java/com/rappytv/signsearch/v1_17_1/mixins/SignMixin.java index a68204c..3efec83 100644 --- a/game-runner/src/v1_17_1/java/com/rappytv/signsearch/v1_17_1/mixins/SignMixin.java +++ b/game-runner/src/v1_17_1/java/com/rappytv/signsearch/v1_17_1/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_18_2/java/com/rappytv/signsearch/v1_18_2/mixins/SignMixin.java b/game-runner/src/v1_18_2/java/com/rappytv/signsearch/v1_18_2/mixins/SignMixin.java index 202bfc9..e69dda0 100644 --- a/game-runner/src/v1_18_2/java/com/rappytv/signsearch/v1_18_2/mixins/SignMixin.java +++ b/game-runner/src/v1_18_2/java/com/rappytv/signsearch/v1_18_2/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_19_2/java/com/rappytv/signsearch/v1_19_2/mixins/SignMixin.java b/game-runner/src/v1_19_2/java/com/rappytv/signsearch/v1_19_2/mixins/SignMixin.java index e38f3e8..a0e9269 100644 --- a/game-runner/src/v1_19_2/java/com/rappytv/signsearch/v1_19_2/mixins/SignMixin.java +++ b/game-runner/src/v1_19_2/java/com/rappytv/signsearch/v1_19_2/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_19_3/java/com/rappytv/signsearch/v1_19_3/mixins/SignMixin.java b/game-runner/src/v1_19_3/java/com/rappytv/signsearch/v1_19_3/mixins/SignMixin.java index 74c708f..17c50be 100644 --- a/game-runner/src/v1_19_3/java/com/rappytv/signsearch/v1_19_3/mixins/SignMixin.java +++ b/game-runner/src/v1_19_3/java/com/rappytv/signsearch/v1_19_3/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_19_4/java/com/rappytv/signsearch/v1_19_4/mixins/SignMixin.java b/game-runner/src/v1_19_4/java/com/rappytv/signsearch/v1_19_4/mixins/SignMixin.java index 5fc9404..1ea22f3 100644 --- a/game-runner/src/v1_19_4/java/com/rappytv/signsearch/v1_19_4/mixins/SignMixin.java +++ b/game-runner/src/v1_19_4/java/com/rappytv/signsearch/v1_19_4/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_20_1/java/com/rappytv/signsearch/v1_20_1/mixins/SignMixin.java b/game-runner/src/v1_20_1/java/com/rappytv/signsearch/v1_20_1/mixins/SignMixin.java index 2fd0030..6a34930 100644 --- a/game-runner/src/v1_20_1/java/com/rappytv/signsearch/v1_20_1/mixins/SignMixin.java +++ b/game-runner/src/v1_20_1/java/com/rappytv/signsearch/v1_20_1/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_20_2/java/com/rappytv/signsearch/v1_20_2/mixins/SignMixin.java b/game-runner/src/v1_20_2/java/com/rappytv/signsearch/v1_20_2/mixins/SignMixin.java index 63e4c63..257023e 100644 --- a/game-runner/src/v1_20_2/java/com/rappytv/signsearch/v1_20_2/mixins/SignMixin.java +++ b/game-runner/src/v1_20_2/java/com/rappytv/signsearch/v1_20_2/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_20_4/java/com/rappytv/signsearch/v1_20_4/mixins/SignMixin.java b/game-runner/src/v1_20_4/java/com/rappytv/signsearch/v1_20_4/mixins/SignMixin.java index 873f0fa..94305f7 100644 --- a/game-runner/src/v1_20_4/java/com/rappytv/signsearch/v1_20_4/mixins/SignMixin.java +++ b/game-runner/src/v1_20_4/java/com/rappytv/signsearch/v1_20_4/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_20_5/java/com/rappytv/signsearch/v1_20_5/mixins/SignMixin.java b/game-runner/src/v1_20_5/java/com/rappytv/signsearch/v1_20_5/mixins/SignMixin.java index 90f8989..9e88262 100644 --- a/game-runner/src/v1_20_5/java/com/rappytv/signsearch/v1_20_5/mixins/SignMixin.java +++ b/game-runner/src/v1_20_5/java/com/rappytv/signsearch/v1_20_5/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_20_6/java/com/rappytv/signsearch/v1_20_6/mixins/SignMixin.java b/game-runner/src/v1_20_6/java/com/rappytv/signsearch/v1_20_6/mixins/SignMixin.java index ecec1dd..27e741e 100644 --- a/game-runner/src/v1_20_6/java/com/rappytv/signsearch/v1_20_6/mixins/SignMixin.java +++ b/game-runner/src/v1_20_6/java/com/rappytv/signsearch/v1_20_6/mixins/SignMixin.java @@ -19,12 +19,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -37,6 +37,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, red, green, blue, alpha); } } diff --git a/game-runner/src/v1_21/java/com/rappytv/signsearch/v1_21/mixins/SignMixin.java b/game-runner/src/v1_21/java/com/rappytv/signsearch/v1_21/mixins/SignMixin.java index bc427dc..633ae66 100644 --- a/game-runner/src/v1_21/java/com/rappytv/signsearch/v1_21/mixins/SignMixin.java +++ b/game-runner/src/v1_21/java/com/rappytv/signsearch/v1_21/mixins/SignMixin.java @@ -20,12 +20,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer bufferIn, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -38,6 +38,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, new Color(red, green, blue, alpha).getRGB()); + modelPart.render(stack, bufferIn, combinedLight, combinedOverlay, new Color(red, green, blue, alpha).getRGB()); } } diff --git a/game-runner/src/v1_21_1/java/com/rappytv/signsearch/v1_21_1/mixins/SignMixin.java b/game-runner/src/v1_21_1/java/com/rappytv/signsearch/v1_21_1/mixins/SignMixin.java index 69dc96d..c1ed2e2 100644 --- a/game-runner/src/v1_21_1/java/com/rappytv/signsearch/v1_21_1/mixins/SignMixin.java +++ b/game-runner/src/v1_21_1/java/com/rappytv/signsearch/v1_21_1/mixins/SignMixin.java @@ -21,12 +21,12 @@ public abstract class SignMixin { @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) - private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); } @Redirect(method={"renderSignModel"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) - private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn) { + private void redirectSignColor(ModelPart modelPart, PoseStack stack, VertexConsumer consumer, int combinedLight, int combinedOverlay) { float red = 1.0f; float green = 1.0f; float blue = 1.0f; @@ -39,6 +39,6 @@ private void redirectSignColor(ModelPart modelRenderer, PoseStack matrixStackIn, blue = signColor.getBlue(); alpha = signColor.getAlpha(); } - modelRenderer.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, new Color(red, green, blue, alpha).getRGB()); + modelPart.render(stack, consumer, combinedLight, combinedOverlay, new Color(red, green, blue, alpha).getRGB()); } } diff --git a/game-runner/src/v1_21_3/java/com/rappytv/signsearch/v1_21_3/mixins/SignMixin.java b/game-runner/src/v1_21_3/java/com/rappytv/signsearch/v1_21_3/mixins/SignMixin.java new file mode 100644 index 0000000..1b4f92c --- /dev/null +++ b/game-runner/src/v1_21_3/java/com/rappytv/signsearch/v1_21_3/mixins/SignMixin.java @@ -0,0 +1,43 @@ +package com.rappytv.signsearch.v1_21_3.mixins; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.rappytv.signsearch.SignSearchAddon; +import com.rappytv.signsearch.utils.SignManager.SignData; +import net.labymod.api.client.world.block.BlockPosition; +import net.minecraft.client.model.Model; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.SignRenderer; +import net.minecraft.world.level.block.entity.SignBlockEntity; +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.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.awt.*; + +@Mixin(SignRenderer.class) +public abstract class SignMixin { + + @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); + } + + @Redirect(method={"renderSign"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/Model;renderToBuffer(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) + private void redirectSignColor(Model model, PoseStack stack, VertexConsumer consumer, int combinedLight, int combiedOverlay) { + float red = 1.0f; + float green = 1.0f; + float blue = 1.0f; + float alpha = 1.0f; + SignData signData = SignSearchAddon.getSignManager().getSignData(); + if (signData != null) { + SignData.SignColor signColor = signData.getSignColor(); + red = signColor.getRed(); + green = signColor.getGreen(); + blue = signColor.getBlue(); + alpha = signColor.getAlpha(); + } + model.renderToBuffer(stack, consumer, combinedLight, combiedOverlay, new Color(red, green, blue, alpha).getRGB()); + } +} diff --git a/game-runner/src/v1_21_4/java/com/rappytv/signsearch/v1_21_4/mixins/SignMixin.java b/game-runner/src/v1_21_4/java/com/rappytv/signsearch/v1_21_4/mixins/SignMixin.java new file mode 100644 index 0000000..c42813c --- /dev/null +++ b/game-runner/src/v1_21_4/java/com/rappytv/signsearch/v1_21_4/mixins/SignMixin.java @@ -0,0 +1,43 @@ +package com.rappytv.signsearch.v1_21_4.mixins; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.rappytv.signsearch.SignSearchAddon; +import com.rappytv.signsearch.utils.SignManager.SignData; +import net.labymod.api.client.world.block.BlockPosition; +import net.minecraft.client.model.Model; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.AbstractSignRenderer; +import net.minecraft.world.level.block.entity.SignBlockEntity; +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.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.awt.*; + +@Mixin(AbstractSignRenderer.class) +public abstract class SignMixin { + + @Inject(method = "render(Lnet/minecraft/world/level/block/entity/SignBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;II)V", at = @At("HEAD")) + private void injectSignManager(SignBlockEntity signEntity, float partialTicket, PoseStack stack, MultiBufferSource buffer, int combinedLight, int combiedOverlay, CallbackInfo ci) { + SignSearchAddon.getSignManager().onRender((net.labymod.api.client.blockentity.SignBlockEntity) signEntity, (BlockPosition) signEntity.getBlockPos()); + } + + @Redirect(method={"renderSign"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/model/Model;renderToBuffer(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V")) + private void redirectSignColor(Model model, PoseStack stack, VertexConsumer consumer, int combinedLight, int combiedOverlay) { + float red = 1.0f; + float green = 1.0f; + float blue = 1.0f; + float alpha = 1.0f; + SignData signData = SignSearchAddon.getSignManager().getSignData(); + if (signData != null) { + SignData.SignColor signColor = signData.getSignColor(); + red = signColor.getRed(); + green = signColor.getGreen(); + blue = signColor.getBlue(); + alpha = signColor.getAlpha(); + } + model.renderToBuffer(stack, consumer, combinedLight, combiedOverlay, new Color(red, green, blue, alpha).getRGB()); + } +} diff --git a/gradle.properties b/gradle.properties index 8f550f5..6168956 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ org.gradle.jvmargs=-Xmx4096m -net.labymod.minecraft-versions=1.8.9;1.12.2;1.16.5;1.17.1;1.18.2;1.19.2;1.19.3;1.19.4;1.20.1;1.20.2;1.20.4;1.20.5;1.20.6;1.21;1.21.1 \ No newline at end of file +net.labymod.minecraft-versions=1.8.9;1.12.2;1.16.5;1.17.1;1.18.2;1.19.2;1.19.3;1.19.4;1.20.1;1.20.2;1.20.4;1.20.5;1.20.6;1.21;1.21.1;1.21.3;1.21.4 \ No newline at end of file