aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-04-26 18:04:45 +0200
committerLinnea Gräf <nea@nea.moe>2024-04-26 18:15:54 +0200
commit7e0151569477df63601be50c82177ecfd21e5deb (patch)
treef30e5440a1855de92d2b424ef79339d3d6cf5f34
parent041da7c7d179df01c4048a81ddf40a9f13c3ce77 (diff)
downloadFirmament-7e0151569477df63601be50c82177ecfd21e5deb.tar.gz
Firmament-7e0151569477df63601be50c82177ecfd21e5deb.tar.bz2
Firmament-7e0151569477df63601be50c82177ecfd21e5deb.zip
Bump to 1.20.5
-rw-r--r--.gitignore2
-rw-r--r--build.gradle.kts33
-rw-r--r--buildSrc/src/EnvFile.kt18
-rw-r--r--gradle/libs.versions.toml35
-rw-r--r--shell.nix1
-rw-r--r--src/main/java/moe/nea/firmament/mixins/ArmorTexturePatch.java68
-rw-r--r--src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java6
-rw-r--r--src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java4
-rw-r--r--src/main/java/moe/nea/firmament/mixins/HudRenderEvents.java5
-rw-r--r--src/main/java/moe/nea/firmament/mixins/LenientProfileComponentPatch.java26
-rw-r--r--src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java8
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java4
-rw-r--r--src/main/java/moe/nea/firmament/mixins/devenv/DisableCommonPacketWarnings.java3
-rw-r--r--src/main/java/moe/nea/firmament/mixins/devenv/IdentifyCloser.java21
-rw-r--r--src/main/java/moe/nea/firmament/mixins/devenv/IdentifyStopperPatch.java21
-rw-r--r--src/main/kotlin/moe/nea/firmament/Firmament.kt5
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/ItemTooltipEvent.kt6
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/TooltipEvent.kt5
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/WorldRenderLastEvent.kt2
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/debug/PowerUserTools.kt14
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/inventory/ItemRarityCosmetics.kt8
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/inventory/SlotLocking.kt4
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/VirtualInventory.kt6
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/mining/PickaxeAbility.kt14
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt40
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/DisplayNamePredicate.kt9
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/LorePredicate.kt10
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/StringMatcher.kt3
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/WTitledItem.kt7
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/entity/EntityRenderer.kt4
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/entity/FakeWorld.kt70
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/entity/ModifyEquipment.kt7
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewerLibrary.kt14
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt2
-rw-r--r--src/main/kotlin/moe/nea/firmament/rei/NEUItemEntryRenderer.kt41
-rw-r--r--src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt61
-rw-r--r--src/main/kotlin/moe/nea/firmament/repo/RepoModResourcePack.kt11
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt29
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/MC.kt13
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt5
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt2
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/item/NbtItemData.kt31
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/item/SkullItemData.kt20
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/render/RenderInWorldContext.kt7
44 files changed, 349 insertions, 356 deletions
diff --git a/.gitignore b/.gitignore
index 54d4b44..f58ab5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
#
# SPDX-License-Identifier: CC0-1.0
+.env
+.properties
/.gradle
/build/
/buildSrc/.gradle
diff --git a/build.gradle.kts b/build.gradle.kts
index 700db54..311da61 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,8 +15,8 @@ plugins {
kotlin("jvm") version "1.9.23"
kotlin("plugin.serialization") version "1.9.23"
// id("com.bnorm.power.kotlin-power-assert") version "0.13.0"
- id("dev.architectury.loom") version "1.5.389"
- id("com.github.johnrengelman.shadow") version "7.1.2"
+ id("dev.architectury.loom") version "1.6.394"
+ id("com.github.johnrengelman.shadow") version "8.1.1"
id("moe.nea.licenseextractificator")
// id("io.github.juuxel.loom-vineflower") version "1.11.0"
id("io.shcm.shsupercm.fabric.fletchingtable") version "1.5"
@@ -25,17 +25,17 @@ plugins {
java {
withSourcesJar()
toolchain {
- languageVersion.set(JavaLanguageVersion.of(17))
+ languageVersion.set(JavaLanguageVersion.of(21))
}
}
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions {
- jvmTarget = "17"
+ jvmTarget = "21"
}
val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions {
- jvmTarget = "17"
+ jvmTarget = "21"
}
repositories {
@@ -47,11 +47,6 @@ repositories {
includeGroup("maven.modrinth")
}
}
- maven("https://jitpack.io/") {
- content {
- includeGroupByRegex("(com|io)\\.github\\..+")
- }
- }
maven("https://repo.sleeping.town") {
content {
includeGroup("com.unascribed")
@@ -71,6 +66,13 @@ repositories {
maven("https://server.bbkr.space/artifactory/libs-release")
maven("https://repo.nea.moe/releases")
maven("https://maven.notenoughupdates.org/releases")
+ maven("https://repo.nea.moe/mirror")
+ maven("https://jitpack.io/") {
+ content {
+ includeGroupByRegex("(com|io)\\.github\\..+")
+ excludeModule("io.github.cottonmc", "LibGui")
+ }
+ }
}
kotlin {
@@ -132,7 +134,8 @@ dependencies {
nonModImplentation(libs.nealisp)
shadowMe(libs.nealisp)
- modApi(libs.fabric.api)
+ modCompileOnly(libs.fabric.api)
+ modRuntimeOnly(libs.fabric.api.deprecated)
modApi(libs.architectury)
modCompileOnly(libs.jarvis.api)
include(libs.jarvis.fabric)
@@ -187,6 +190,12 @@ loom {
property("firmament.debug", "true")
property("mixin.debug", "true")
+ parseEnvFile(file(".env")).forEach { (t, u) ->
+ environmentVariable(t, u)
+ }
+ parseEnvFile(file(".properties")).forEach{ (t, u) ->
+ property(t,u)
+ }
vmArg("-ea")
vmArg("-XX:+AllowEnhancedClassRedefinition")
vmArg("-XX:HotswapAgent=external")
@@ -197,7 +206,7 @@ loom {
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
- options.release.set(17)
+ options.release.set(21)
}
tasks.jar {
diff --git a/buildSrc/src/EnvFile.kt b/buildSrc/src/EnvFile.kt
new file mode 100644
index 0000000..8a46398
--- /dev/null
+++ b/buildSrc/src/EnvFile.kt
@@ -0,0 +1,18 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+import java.io.File
+
+fun parseEnvFile(file: File): Map<String, String> {
+ if (!file.exists()) return mapOf()
+ val map = mutableMapOf<String, String>()
+ for (line in file.readText().lines()) {
+ if (line.isEmpty() || line.startsWith("#")) continue
+ val parts = line.split("=", limit = 2)
+ map[parts[0]] = parts.getOrNull(1) ?: ""
+ }
+ return map
+}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 2d8fc0b..5a7208f 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -3,37 +3,40 @@
# SPDX-License-Identifier: CC0-1.0
[versions]
-minecraft = "1.20.4"
-fabric_loader = "0.15.6"
-fabric_api = "0.95.0+1.20.4"
+minecraft = "1.20.5"
+fabric_loader = "0.15.10"
+fabric_api = "0.97.6+1.20.5"
fabric_kotlin = "1.10.19+kotlin.1.9.23"
-yarn = "1.20.4+build.3"
-libgui = "9.2.2+1.20.2"
-rei = "14.0.688"
+yarn = "1.20.5+build.1"
+libgui = "9.2.4+1.20.5"
+rei = "14.0.690-alpha"
+modmenu = "10.0.0-beta.1"
+architectury = "12.0.26"
+
+qolify = "1.3.0-1.20.2"
+citresewn = "1.1.3+1.20"
+sodium = "mc1.20.5-0.5.8"
+freecammod = "1.2.4+1.20.5"
+ncr = "Fabric-1.20.4-v2.5.0"
+explosiveenhancement = "1.2.2-1.20.x"
+notenoughanimations = "9wrknT51"
+
devauth = "1.2.0"
-modmenu = "9.0.0"
ktor = "2.3.0"
dbus_java = "4.2.1"
-architectury = "11.0.11"
neurepoparser = "1.4.0"
-qolify = "1.3.0-1.20.2"
-citresewn = "1.1.3+1.20"
hotswap_agent = "1.4.2-SNAPSHOT"
-sodium = "mc1.20.3-0.5.5"
-freecammod = "1.2.0-mc1.20"
-ncr = "Fabric-1.20.4-v2.5.0"
mixinextras = "0.3.5"
jarvis = "1.1.1"
nealisp = "1.0.0"
-explosiveenhancement = "1.2.2-1.20.x"
moulconfig = "3.0.0-beta.5"
manninghamMills = "2.4.1"
-notenoughanimations = "ZLjUeuU8"
[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
fabric_loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric_loader" }
fabric_api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric_api" }
+fabric_api_deprecated = { module = "net.fabricmc.fabric-api:fabric-api-deprecated", version.ref = "fabric_api" }
fabric_kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric_kotlin" }
architectury = { module = "dev.architectury:architectury", version.ref = "architectury" }
rei_api = { module = "me.shedaniel:RoughlyEnoughItems-api", version.ref = "rei" }
@@ -73,7 +76,7 @@ runtime_optional = [
"devauth",
# "freecammod",
"sodium",
- "qolify",
+ # "qolify",
# "citresewn",
# "ncr",
]
diff --git a/shell.nix b/shell.nix
index 07f9a1c..865c75c 100644
--- a/shell.nix
+++ b/shell.nix
@@ -8,7 +8,6 @@ pkgs.mkShell {
gh
git
xdg-utils
- temurin-bin-17
reuse
pre-commit
glfw
diff --git a/src/main/java/moe/nea/firmament/mixins/ArmorTexturePatch.java b/src/main/java/moe/nea/firmament/mixins/ArmorTexturePatch.java
deleted file mode 100644
index 4e6c1cd..0000000
--- a/src/main/java/moe/nea/firmament/mixins/ArmorTexturePatch.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- */
-
-package moe.nea.firmament.mixins;
-
-
-import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
-import com.llamalad7.mixinextras.sugar.Local;
-import moe.nea.firmament.features.texturepack.CustomSkyBlockTextures;
-import net.minecraft.client.render.VertexConsumer;
-import net.minecraft.client.render.VertexConsumerProvider;
-import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer;
-import net.minecraft.client.render.entity.model.BipedEntityModel;
-import net.minecraft.client.util.math.MatrixStack;
-import net.minecraft.entity.EquipmentSlot;
-import net.minecraft.entity.LivingEntity;
-import net.minecraft.item.ArmorItem;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.Identifier;
-import org.jetbrains.annotations.Nullable;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Unique;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-
-@Mixin(ArmorFeatureRenderer.class)
-public abstract class ArmorTexturePatch<T extends LivingEntity, M extends BipedEntityModel<T>, A extends BipedEntityModel<T>> {
- @Unique
- private ItemStack lastRenderedArmorItem;
-
- @Unique
- private boolean foundCustomTexture;
-
- @WrapWithCondition(method = "renderArmorParts", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V"))
- private boolean preventRenderingLeatherArmorColor(BipedEntityModel instance, MatrixStack matrixStack,
- VertexConsumer vertexConsumer, int light, int uv,
- float r, float g, float b, float a,
- @Local(argsOnly = true) @Nullable String overlay) {
- if (overlay != null) return true;
- if (foundCustomTexture) return true;
- var customOverlayTexture = CustomSkyBlockTextures.INSTANCE.getArmorTexture(this.lastRenderedArmorItem, false, "overlay");
- return customOverlayTexture == null;
- }
-
- @Inject(method = "renderArmor", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
- private void onBeforeRenderArmor(MatrixStack matrices, VertexConsumerProvider vertexConsumers,
- T entity, EquipmentSlot armorSlot, int light, A model, CallbackInfo ci,
- @Local ItemStack itemStack) {
- this.lastRenderedArmorItem = itemStack;
- }
-
- @Inject(method = "getArmorTexture", at = @At("HEAD"), cancellable = true)
- private void onGetTexture(ArmorItem item, boolean secondLayer, String overlay, CallbackInfoReturnable<Identifier> cir) {
- if (this.lastRenderedArmorItem == null) return;
- var armorTexture = CustomSkyBlockTextures.INSTANCE.getArmorTexture(this.lastRenderedArmorItem, secondLayer, overlay);
- if (armorTexture != null) {
- cir.setReturnValue(armorTexture);
- this.foundCustomTexture = true;
- } else {
- this.foundCustomTexture = false;
- }
- }
-}
diff --git a/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java b/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java
index 25ba0eb..06d6202 100644
--- a/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java
+++ b/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java
@@ -1,5 +1,6 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -11,16 +12,17 @@ import moe.nea.firmament.features.fixes.Fixes;
import net.minecraft.client.gui.hud.ChatHud;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.ModifyVariable;
@Mixin(ChatHud.class)
public class ChatPeekingPatch {
- @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/ChatHud;isChatFocused()Z"))
+ @ModifyVariable(method = "render", at = @At(value = "HEAD"), index = 5, argsOnly = true)
public boolean onGetChatHud(boolean old) {
return old || Fixes.INSTANCE.shouldPeekChat();
}
- @ModifyExpressionValue(method = "getHeight", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/ChatHud;isChatFocused()Z"))
+ @ModifyExpressionValue(method = "getHeight()I", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/ChatHud;isChatFocused()Z"))
public boolean onGetChatHudHeight(boolean old) {
return old || Fixes.INSTANCE.shouldPeekChat();
}
diff --git a/src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java b/src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java
index a8cede4..c43a53c 100644
--- a/src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java
+++ b/src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java
@@ -1,5 +1,6 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -11,6 +12,7 @@ import moe.nea.firmament.features.texturepack.CustomSkyBlockTextures;
import net.minecraft.block.SkullBlock;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.block.entity.SkullBlockEntityRenderer;
+import net.minecraft.component.type.ProfileComponent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -19,7 +21,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(SkullBlockEntityRenderer.class)
public class CustomSkullTexturePatch {
@Inject(method = "getRenderLayer", at = @At("HEAD"), cancellable = true)
- private static void onGetRenderLayer(SkullBlock.SkullType type, GameProfile profile, CallbackInfoReturnable<RenderLayer> cir) {
+ private static void onGetRenderLayer(SkullBlock.SkullType type, ProfileComponent profile, CallbackInfoReturnable<RenderLayer> cir) {
CustomSkyBlockTextures.INSTANCE.modifySkullTexture(type, profile, cir);
}
}
diff --git a/src/main/java/moe/nea/firmament/mixins/HudRenderEvents.java b/src/main/java/moe/nea/firmament/mixins/HudRenderEvents.java
index ff4e995..111ab33 100644
--- a/src/main/java/moe/nea/firmament/mixins/HudRenderEvents.java
+++ b/src/main/java/moe/nea/firmament/mixins/HudRenderEvents.java
@@ -1,5 +1,6 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -19,13 +20,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(InGameHud.class)
public class HudRenderEvents {
- @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;getSleepTimer()I"))
+ @Inject(method = "renderSleepOverlay", at = @At(value = "TAIL"))
public void renderCallBack(DrawContext context, float tickDelta, CallbackInfo ci) {
HudRenderEvent.Companion.publish(new HudRenderEvent(context, tickDelta));
}
@Inject(method = "renderHotbarItem", at = @At("HEAD"))
- public void onRenderHotbarItem(DrawContext context, int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed,CallbackInfo ci) {
+ public void onRenderHotbarItem(DrawContext context, int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) {
if (stack != null && !stack.isEmpty())
HotbarItemRenderEvent.Companion.publish(new HotbarItemRenderEvent(stack, context, x, y, tickDelta));
}
diff --git a/src/main/java/moe/nea/firmament/mixins/LenientProfileComponentPatch.java b/src/main/java/moe/nea/firmament/mixins/LenientProfileComponentPatch.java
new file mode 100644
index 0000000..75aeab1
--- /dev/null
+++ b/src/main/java/moe/nea/firmament/mixins/LenientProfileComponentPatch.java
@@ -0,0 +1,26 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+package moe.nea.firmament.mixins;
+
+import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
+import com.mojang.serialization.Codec;
+import net.minecraft.component.type.ProfileComponent;
+import net.minecraft.util.Uuids;
+import org.objectweb.asm.Opcodes;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+
+import java.util.UUID;
+
+@Mixin(ProfileComponent.class)
+public class LenientProfileComponentPatch {
+ // lambda in RecordCodecBuilder.create for BASE_CODEC
+ @ModifyExpressionValue(method = "method_57508", at = @At(value = "FIELD", opcode = Opcodes.GETSTATIC, target = "Lnet/minecraft/util/Uuids;INT_STREAM_CODEC:Lcom/mojang/serialization/Codec;"))
+ private static Codec<UUID> onStaticInit(Codec<UUID> original) {
+ return Uuids.CODEC;
+ }
+}
diff --git a/src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java b/src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java
index 268aa01..1ad1ae8 100644
--- a/src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java
+++ b/src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java
@@ -1,11 +1,13 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package moe.nea.firmament.mixins;
+import com.llamalad7.mixinextras.sugar.Local;
import moe.nea.firmament.events.WorldRenderLastEvent;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
@@ -24,11 +26,11 @@ public class WorldRenderLastEventPatch {
private BufferBuilderStorage bufferBuilders;
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.BEFORE))
- public void onWorldRenderLast(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci) {
+ public void onWorldRenderLast(float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci
+ , @Local MatrixStack matrixStack) {
var event = new WorldRenderLastEvent(
- matrices, tickDelta, renderBlockOutline,
+ matrixStack, tickDelta, renderBlockOutline,
camera, gameRenderer, lightmapTextureManager,
- positionMatrix,
this.bufferBuilders.getEntityVertexConsumers()
);
WorldRenderLastEvent.Companion.publish(event);
diff --git a/src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java b/src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java
index 4db9fc0..740fbc7 100644
--- a/src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java
+++ b/src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java
@@ -9,6 +9,7 @@ package moe.nea.firmament.mixins.custommodels;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Local;
import moe.nea.firmament.features.texturepack.BakedOverrideData;
+import moe.nea.firmament.features.texturepack.CustomSkyBlockTextures;
import moe.nea.firmament.features.texturepack.FirmamentModelPredicate;
import moe.nea.firmament.features.texturepack.ModelOverrideData;
import net.minecraft.client.render.model.json.ModelOverride;
@@ -38,11 +39,12 @@ public class TestForFirmamentOverridePredicatesPatch {
@ModifyExpressionValue(method = "apply", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/model/json/ModelOverrideList$BakedOverride;test([F)Z"))
public boolean testFirmamentOverrides(boolean originalValue,
@Local ModelOverrideList.BakedOverride bakedOverride,
- @Local ItemStack stack) {
+ @Local(argsOnly = true) ItemStack stack) {
if (!originalValue) return false;
var overrideData = (BakedOverrideData) bakedOverride;
var overrides = overrideData.getFirmamentOverrides();
if (overrides == null) return true;
+ if (!CustomSkyBlockTextures.TConfig.INSTANCE.getEnableModelOverrides()) return false;
for (FirmamentModelPredicate firmamentOverride : overrides) {
if (!firmamentOverride.test(stack))
return false;
diff --git a/src/main/java/moe/nea/firmament/mixins/devenv/DisableCommonPacketWarnings.java b/src/main/java/moe/nea/firmament/mixins/devenv/DisableCommonPacketWarnings.java
index ef4f2d6..9d8da05 100644
--- a/src/main/java/moe/nea/firmament/mixins/devenv/DisableCommonPacketWarnings.java
+++ b/src/main/java/moe/nea/firmament/mixins/devenv/DisableCommonPacketWarnings.java
@@ -1,5 +1,6 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -23,7 +24,7 @@ public class DisableCommonPacketWarnings {
@Inject(method = "warnOnUnknownPayload", at = @At("HEAD"), cancellable = true)
public void onCustomPacketError(CustomPayload customPayload, CallbackInfo ci) {
- if (Objects.equals(customPayload.id(), Identifier.of("badlion", "mods"))) {
+ if (Objects.equals(customPayload.getId(), Identifier.of("badlion", "mods"))) {
ci.cancel();
}
}
diff --git a/src/main/java/moe/nea/firmament/mixins/devenv/IdentifyCloser.java b/src/main/java/moe/nea/firmament/mixins/devenv/IdentifyCloser.java
new file mode 100644
index 0000000..f89eabe
--- /dev/null
+++ b/src/main/java/moe/nea/firmament/mixins/devenv/IdentifyCloser.java
@@ -0,0 +1,21 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+package moe.nea.firmament.mixins.devenv;
+
+import net.minecraft.client.util.Window;
+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;
+
+@Mixin(Window.class)
+public class IdentifyCloser {
+ @Inject(method = "close", at = @At("HEAD"))
+ public void onClose(CallbackInfo ci) {
+ Thread.dumpStack();
+ }
+}
diff --git a/src/main/java/moe/nea/firmament/mixins/devenv/IdentifyStopperPatch.java b/src/main/java/moe/nea/firmament/mixins/devenv/IdentifyStopperPatch.java
new file mode 100644
index 0000000..a37e4ed
--- /dev/null
+++ b/