修改第三部分 优化部分import 和 调整配置

实现其模组功能
This commit is contained in:
叁玖领域 2025-05-27 16:14:14 +08:00
parent 6784bab6d8
commit ffb2dcca4c
13 changed files with 36 additions and 60 deletions

View File

@ -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));
}
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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<Direction> ALL_DIRECTIONS = EnumSet.allOf(Direction.class);
@ -94,6 +80,8 @@ public class JsonEMCodecs {
).apply(instance, JsonEMCodecs::createCuboidData)
);
//必可达因为mixin的写法只是为了通过编译
@SuppressWarnings("UnreachableCode")
private static Codec<PartDefinition> createPartDataCodec() {
return RecordCodecBuilder.create((instance) ->
instance.group(

View File

@ -7,6 +7,7 @@
"DilationAccess",
"EntityModelLoaderMixin",
"EntityModelsMixin",
"ModelCuboidDataAccess",
"ModelPartDataAccess",
"TextureDimensionsAccess",
"TexturedModelDataAccess"
@ -15,6 +16,5 @@
],
"injectors": {
"defaultRequire": 1
},
"refmap": "jsonem.refmap.json"
}
}

View File

@ -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]

View File

@ -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));
}
}

View File

@ -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]

View File

@ -16,4 +16,5 @@ public class ForgePlatformHelper implements IPlatFormHelper {
public Path getDumpModelsPath() {
return FMLPaths.GAMEDIR.get().resolve("jsonem_dump");
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -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