修改第三部分 优化部分import 和 调整配置
实现其模组功能
This commit is contained in:
parent
6784bab6d8
commit
ffb2dcca4c
|
|
@ -1,5 +1,9 @@
|
||||||
package com.leisuretimedock.jsonem;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
@ -9,4 +13,7 @@ public final class JsonEm {
|
||||||
public static void init() {
|
public static void init() {
|
||||||
// Write common init code here.
|
// Write common init code here.
|
||||||
}
|
}
|
||||||
|
public static void registerModelLayer(ModelLayerLocation layer) {
|
||||||
|
EntityModelLayerRegistry.register(layer, () -> LayerDefinition.create(new MeshDefinition(), 32, 32));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
package com.leisuretimedock.jsonem.mixin;
|
package com.leisuretimedock.jsonem.mixin;
|
||||||
|
|
||||||
import com.leisuretimedock.jsonem.util.JsonEntityModelUtil;
|
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.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
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.HashMap;
|
||||||
import java.util.Map;
|
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)
|
@Mixin(EntityModelSet.class)
|
||||||
public class EntityModelLoaderMixin {
|
public class EntityModelLoaderMixin {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ import com.google.common.collect.ImmutableMap;
|
||||||
import com.leisuretimedock.jsonem.JsonEm;
|
import com.leisuretimedock.jsonem.JsonEm;
|
||||||
import com.leisuretimedock.jsonem.platform.Services;
|
import com.leisuretimedock.jsonem.platform.Services;
|
||||||
import com.leisuretimedock.jsonem.util.JsonEntityModelUtil;
|
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.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
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.io.IOException;
|
||||||
import java.util.Map;
|
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)
|
@Mixin(LayerDefinitions.class)
|
||||||
public class EntityModelsMixin {
|
public class EntityModelsMixin {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
package com.leisuretimedock.jsonem.mixin;
|
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.jetbrains.annotations.Nullable;
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
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 org.spongepowered.asm.mixin.gen.Invoker;
|
||||||
|
|
||||||
import java.util.Set;
|
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)
|
@Mixin(CubeDefinition.class)
|
||||||
public interface ModelCuboidDataAccess {
|
public interface ModelCuboidDataAccess {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.leisuretimedock.jsonem.mixin;
|
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.Mixin;
|
||||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
import org.spongepowered.asm.mixin.gen.Invoker;
|
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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)
|
@Mixin(PartDefinition.class)
|
||||||
public interface ModelPartDataAccess {
|
public interface ModelPartDataAccess {
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,18 @@
|
||||||
package com.leisuretimedock.jsonem.serialization;
|
package com.leisuretimedock.jsonem.serialization;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
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.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
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.Util;
|
||||||
import net.minecraft.client.model.geom.PartPose;
|
import net.minecraft.client.model.geom.PartPose;
|
||||||
import net.minecraft.client.model.geom.builders.CubeDefinition;
|
import net.minecraft.client.model.geom.builders.*;
|
||||||
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.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.util.ExtraCodecs;
|
import net.minecraft.util.ExtraCodecs;
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class JsonEMCodecs {
|
public class JsonEMCodecs {
|
||||||
private static final Set<Direction> ALL_DIRECTIONS = EnumSet.allOf(Direction.class);
|
private static final Set<Direction> ALL_DIRECTIONS = EnumSet.allOf(Direction.class);
|
||||||
|
|
@ -94,6 +80,8 @@ public class JsonEMCodecs {
|
||||||
).apply(instance, JsonEMCodecs::createCuboidData)
|
).apply(instance, JsonEMCodecs::createCuboidData)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//必可达,因为mixin的写法只是为了通过编译
|
||||||
|
@SuppressWarnings("UnreachableCode")
|
||||||
private static Codec<PartDefinition> createPartDataCodec() {
|
private static Codec<PartDefinition> createPartDataCodec() {
|
||||||
return RecordCodecBuilder.create((instance) ->
|
return RecordCodecBuilder.create((instance) ->
|
||||||
instance.group(
|
instance.group(
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
"DilationAccess",
|
"DilationAccess",
|
||||||
"EntityModelLoaderMixin",
|
"EntityModelLoaderMixin",
|
||||||
"EntityModelsMixin",
|
"EntityModelsMixin",
|
||||||
|
"ModelCuboidDataAccess",
|
||||||
"ModelPartDataAccess",
|
"ModelPartDataAccess",
|
||||||
"TextureDimensionsAccess",
|
"TextureDimensionsAccess",
|
||||||
"TexturedModelDataAccess"
|
"TexturedModelDataAccess"
|
||||||
|
|
@ -15,6 +16,5 @@
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
},
|
}
|
||||||
"refmap": "jsonem.refmap.json"
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,7 @@ dependencies {
|
||||||
shadowBundle project(path: ':common', configuration: 'transformProductionFabric')
|
shadowBundle project(path: ':common', configuration: 'transformProductionFabric')
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
|
||||||
inputs.property 'version', project.version
|
|
||||||
|
|
||||||
filesMatching('fabric.mod.json') {
|
|
||||||
expand version: project.version
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
configurations = [project.configurations.shadowBundle]
|
configurations = [project.configurations.shadowBundle]
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,6 @@ package com.leisuretimedock.jsonem.fabric;
|
||||||
|
|
||||||
import com.leisuretimedock.jsonem.fabric.config.JsonEmConfig;
|
import com.leisuretimedock.jsonem.fabric.config.JsonEmConfig;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
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 {
|
public class JsonEmFabric implements ClientModInitializer {
|
||||||
|
|
@ -17,7 +13,4 @@ public class JsonEmFabric implements ClientModInitializer {
|
||||||
CONFIG.load();
|
CONFIG.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerModelLayer(ModelLayerLocation layer) {
|
|
||||||
EntityModelLayerRegistry.registerModelLayer(layer, () -> LayerDefinition.create(new MeshDefinition(), 32, 32));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,17 +37,10 @@ dependencies {
|
||||||
forge "net.minecraftforge:forge:$rootProject.forge_version"
|
forge "net.minecraftforge:forge:$rootProject.forge_version"
|
||||||
|
|
||||||
modImplementation "dev.architectury:architectury-forge:$rootProject.architectury_api_version"
|
modImplementation "dev.architectury:architectury-forge:$rootProject.architectury_api_version"
|
||||||
common(project(path: '::common', configuration: 'namedElements')) { transitive false }
|
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
|
||||||
shadowBundle project(path: '::common', configuration: 'transformProductionForge')
|
shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge')
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
|
||||||
// inputs.property 'version', project.version
|
|
||||||
//
|
|
||||||
// filesMatching('META-INF/mods.toml') {
|
|
||||||
// expand version: project.version
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
configurations = [project.configurations.shadowBundle]
|
configurations = [project.configurations.shadowBundle]
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,5 @@ public class ForgePlatformHelper implements IPlatFormHelper {
|
||||||
public Path getDumpModelsPath() {
|
public Path getDumpModelsPath() {
|
||||||
return FMLPaths.GAMEDIR.get().resolve("jsonem_dump");
|
return FMLPaths.GAMEDIR.get().resolve("jsonem_dump");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
forge/src/main/resources/icon.png
Normal file
BIN
forge/src/main/resources/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -11,7 +11,7 @@ mod_authors= FoundationGames, R3944Realms
|
||||||
mod_description=Migrate from Fabric 1.20.1
|
mod_description=Migrate from Fabric 1.20.1
|
||||||
mod_licence=MIT
|
mod_licence=MIT
|
||||||
maven_group=com.leisuretimedock
|
maven_group=com.leisuretimedock
|
||||||
archives_name=jsonem_neo_forge_1_20_1
|
archives_name=jsonem_fabrge
|
||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
# Minecraft properties
|
# Minecraft properties
|
||||||
minecraft_version=1.20.1
|
minecraft_version=1.20.1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user