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 0000000..54c2a1f Binary files /dev/null and b/forge/src/main/resources/icon.png differ 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