From ffb2dcca4c599923a450bca052d3dbaef5129954 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Tue, 27 May 2025 16:14:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AC=AC=E4=B8=89=E9=83=A8?= =?UTF-8?q?=E5=88=86=20=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86import=20?= =?UTF-8?q?=E5=92=8C=20=E8=B0=83=E6=95=B4=E9=85=8D=E7=BD=AE=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=85=B6=E6=A8=A1=E7=BB=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/leisuretimedock/jsonem/JsonEm.java | 7 +++++ .../jsonem/mixin/EntityModelLoaderMixin.java | 8 ++--- .../jsonem/mixin/EntityModelsMixin.java | 6 ++-- .../jsonem/mixin/ModelCuboidDataAccess.java | 8 ++--- .../jsonem/mixin/ModelPartDataAccess.java | 6 ++-- .../jsonem/serialization/JsonEMCodecs.java | 28 +++++------------- common/src/main/resources/jsonem.mixins.json | 4 +-- fabric/build.gradle | 6 ---- .../jsonem/fabric/JsonEmFabric.java | 7 ----- forge/build.gradle | 13 ++------ .../forge/platform/ForgePlatformHelper.java | 1 + forge/src/main/resources/icon.png | Bin 0 -> 18118 bytes gradle.properties | 2 +- 13 files changed, 36 insertions(+), 60 deletions(-) create mode 100644 forge/src/main/resources/icon.png diff --git a/common/src/main/java/com/leisuretimedock/jsonem/JsonEm.java b/common/src/main/java/com/leisuretimedock/jsonem/JsonEm.java index 5bbb2cf..b0344e0 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/JsonEm.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/JsonEm.java @@ -1,5 +1,9 @@ package com.leisuretimedock.jsonem; +import dev.architectury.registry.client.level.entity.EntityModelLayerRegistry; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import net.minecraft.client.model.geom.builders.MeshDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -9,4 +13,7 @@ public final class JsonEm { public static void init() { // Write common init code here. } + public static void registerModelLayer(ModelLayerLocation layer) { + EntityModelLayerRegistry.register(layer, () -> LayerDefinition.create(new MeshDefinition(), 32, 32)); + } } diff --git a/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelLoaderMixin.java b/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelLoaderMixin.java index 7da2fe4..5956026 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelLoaderMixin.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelLoaderMixin.java @@ -1,6 +1,10 @@ package com.leisuretimedock.jsonem.mixin; import com.leisuretimedock.jsonem.util.JsonEntityModelUtil; +import net.minecraft.client.model.geom.EntityModelSet; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import net.minecraft.server.packs.resources.ResourceManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -9,10 +13,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.HashMap; import java.util.Map; -import net.minecraft.client.model.geom.EntityModelSet; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.builders.LayerDefinition; -import net.minecraft.server.packs.resources.ResourceManager; @Mixin(EntityModelSet.class) public class EntityModelLoaderMixin { diff --git a/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelsMixin.java b/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelsMixin.java index c606ea9..e8d0d41 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelsMixin.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/mixin/EntityModelsMixin.java @@ -4,6 +4,9 @@ import com.google.common.collect.ImmutableMap; import com.leisuretimedock.jsonem.JsonEm; import com.leisuretimedock.jsonem.platform.Services; import com.leisuretimedock.jsonem.util.JsonEntityModelUtil; +import net.minecraft.client.model.geom.LayerDefinitions; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.LayerDefinition; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -12,9 +15,6 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import java.io.IOException; import java.util.Map; -import net.minecraft.client.model.geom.LayerDefinitions; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.builders.LayerDefinition; @Mixin(LayerDefinitions.class) public class EntityModelsMixin { diff --git a/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelCuboidDataAccess.java b/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelCuboidDataAccess.java index 1aa5548..4fd31ca 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelCuboidDataAccess.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelCuboidDataAccess.java @@ -1,5 +1,9 @@ package com.leisuretimedock.jsonem.mixin; +import net.minecraft.client.model.geom.builders.CubeDefinition; +import net.minecraft.client.model.geom.builders.CubeDeformation; +import net.minecraft.client.model.geom.builders.UVPair; +import net.minecraft.core.Direction; import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; import org.spongepowered.asm.mixin.Mixin; @@ -7,10 +11,6 @@ import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; import java.util.Set; -import net.minecraft.client.model.geom.builders.CubeDefinition; -import net.minecraft.client.model.geom.builders.CubeDeformation; -import net.minecraft.client.model.geom.builders.UVPair; -import net.minecraft.core.Direction; @Mixin(CubeDefinition.class) public interface ModelCuboidDataAccess { diff --git a/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelPartDataAccess.java b/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelPartDataAccess.java index a2a56e1..9b259d6 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelPartDataAccess.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/mixin/ModelPartDataAccess.java @@ -1,14 +1,14 @@ package com.leisuretimedock.jsonem.mixin; +import net.minecraft.client.model.geom.PartPose; +import net.minecraft.client.model.geom.builders.CubeDefinition; +import net.minecraft.client.model.geom.builders.PartDefinition; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; import java.util.List; import java.util.Map; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.CubeDefinition; -import net.minecraft.client.model.geom.builders.PartDefinition; @Mixin(PartDefinition.class) public interface ModelPartDataAccess { diff --git a/common/src/main/java/com/leisuretimedock/jsonem/serialization/JsonEMCodecs.java b/common/src/main/java/com/leisuretimedock/jsonem/serialization/JsonEMCodecs.java index 5a61ce2..f6041bb 100644 --- a/common/src/main/java/com/leisuretimedock/jsonem/serialization/JsonEMCodecs.java +++ b/common/src/main/java/com/leisuretimedock/jsonem/serialization/JsonEMCodecs.java @@ -1,32 +1,18 @@ package com.leisuretimedock.jsonem.serialization; import com.google.common.collect.ImmutableList; +import com.leisuretimedock.jsonem.mixin.*; +import com.leisuretimedock.jsonem.util.Vector2fComparable; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.leisuretimedock.jsonem.mixin.DilationAccess; -import com.leisuretimedock.jsonem.mixin.ModelCuboidDataAccess; -import com.leisuretimedock.jsonem.mixin.ModelPartDataAccess; -import com.leisuretimedock.jsonem.mixin.TextureDimensionsAccess; -import com.leisuretimedock.jsonem.mixin.TexturedModelDataAccess; -import com.leisuretimedock.jsonem.util.Vector2fComparable; -import org.joml.Vector3f; - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Optional; -import java.util.Set; import net.minecraft.Util; import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.CubeDefinition; -import net.minecraft.client.model.geom.builders.CubeDeformation; -import net.minecraft.client.model.geom.builders.LayerDefinition; -import net.minecraft.client.model.geom.builders.MaterialDefinition; -import net.minecraft.client.model.geom.builders.MeshDefinition; -import net.minecraft.client.model.geom.builders.PartDefinition; -import net.minecraft.client.model.geom.builders.UVPair; +import net.minecraft.client.model.geom.builders.*; import net.minecraft.core.Direction; import net.minecraft.util.ExtraCodecs; +import org.joml.Vector3f; + +import java.util.*; public class JsonEMCodecs { private static final Set ALL_DIRECTIONS = EnumSet.allOf(Direction.class); @@ -94,6 +80,8 @@ public class JsonEMCodecs { ).apply(instance, JsonEMCodecs::createCuboidData) ); + //必可达,因为mixin的写法只是为了通过编译 + @SuppressWarnings("UnreachableCode") private static Codec createPartDataCodec() { return RecordCodecBuilder.create((instance) -> instance.group( diff --git a/common/src/main/resources/jsonem.mixins.json b/common/src/main/resources/jsonem.mixins.json index 9d09741..ab5ff1e 100644 --- a/common/src/main/resources/jsonem.mixins.json +++ b/common/src/main/resources/jsonem.mixins.json @@ -7,6 +7,7 @@ "DilationAccess", "EntityModelLoaderMixin", "EntityModelsMixin", + "ModelCuboidDataAccess", "ModelPartDataAccess", "TextureDimensionsAccess", "TexturedModelDataAccess" @@ -15,6 +16,5 @@ ], "injectors": { "defaultRequire": 1 - }, - "refmap": "jsonem.refmap.json" + } } diff --git a/fabric/build.gradle b/fabric/build.gradle index 7905a9c..2e113ca 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -35,13 +35,7 @@ dependencies { shadowBundle project(path: ':common', configuration: 'transformProductionFabric') } -processResources { - inputs.property 'version', project.version - filesMatching('fabric.mod.json') { - expand version: project.version - } -} shadowJar { configurations = [project.configurations.shadowBundle] diff --git a/fabric/src/main/java/com/leisuretimedock/jsonem/fabric/JsonEmFabric.java b/fabric/src/main/java/com/leisuretimedock/jsonem/fabric/JsonEmFabric.java index 8f27530..d6e76f4 100644 --- a/fabric/src/main/java/com/leisuretimedock/jsonem/fabric/JsonEmFabric.java +++ b/fabric/src/main/java/com/leisuretimedock/jsonem/fabric/JsonEmFabric.java @@ -2,10 +2,6 @@ package com.leisuretimedock.jsonem.fabric; import com.leisuretimedock.jsonem.fabric.config.JsonEmConfig; import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.builders.LayerDefinition; -import net.minecraft.client.model.geom.builders.MeshDefinition; public class JsonEmFabric implements ClientModInitializer { @@ -17,7 +13,4 @@ public class JsonEmFabric implements ClientModInitializer { CONFIG.load(); } - public static void registerModelLayer(ModelLayerLocation layer) { - EntityModelLayerRegistry.registerModelLayer(layer, () -> LayerDefinition.create(new MeshDefinition(), 32, 32)); - } } diff --git a/forge/build.gradle b/forge/build.gradle index 4581f1e..4a87317 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,4 +1,4 @@ -plugins { + plugins { id 'com.github.johnrengelman.shadow' } @@ -37,17 +37,10 @@ dependencies { forge "net.minecraftforge:forge:$rootProject.forge_version" modImplementation "dev.architectury:architectury-forge:$rootProject.architectury_api_version" - common(project(path: '::common', configuration: 'namedElements')) { transitive false } - shadowBundle project(path: '::common', configuration: 'transformProductionForge') + common(project(path: ':common', configuration: 'namedElements')) { transitive false } + shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge') } -processResources { -// inputs.property 'version', project.version -// -// filesMatching('META-INF/mods.toml') { -// expand version: project.version -// } -} shadowJar { configurations = [project.configurations.shadowBundle] diff --git a/forge/src/main/java/com/leisuretimedock/jsonem/forge/platform/ForgePlatformHelper.java b/forge/src/main/java/com/leisuretimedock/jsonem/forge/platform/ForgePlatformHelper.java index d9ab10c..992e952 100644 --- a/forge/src/main/java/com/leisuretimedock/jsonem/forge/platform/ForgePlatformHelper.java +++ b/forge/src/main/java/com/leisuretimedock/jsonem/forge/platform/ForgePlatformHelper.java @@ -16,4 +16,5 @@ public class ForgePlatformHelper implements IPlatFormHelper { public Path getDumpModelsPath() { return FMLPaths.GAMEDIR.get().resolve("jsonem_dump"); } + } diff --git a/forge/src/main/resources/icon.png b/forge/src/main/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..54c2a1fe51d897ec145f7da4698704a2ac5b4e3a GIT binary patch literal 18118 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 literal 0 HcmV?d00001 diff --git a/gradle.properties b/gradle.properties index 023ff27..ec089a4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mod_authors= FoundationGames, R3944Realms mod_description=Migrate from Fabric 1.20.1 mod_licence=MIT maven_group=com.leisuretimedock -archives_name=jsonem_neo_forge_1_20_1 +archives_name=jsonem_fabrge enabled_platforms=fabric,neoforge # Minecraft properties minecraft_version=1.20.1