修改第六部分
修正了forge模型注册
This commit is contained in:
parent
3c6416d7ca
commit
c8edb2d74f
|
|
@ -7,6 +7,5 @@ dependencies {
|
|||
// which get remapped to the correct annotations on each platform.
|
||||
// Do NOT use other classes from Fabric Loader.
|
||||
modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version"
|
||||
|
||||
// modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
|
||||
// modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ public final class JsonEm {
|
|||
public static void init() {
|
||||
// Write common init code here.
|
||||
}
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerModelLayer(ModelLayerLocation layer) {
|
||||
Services.PLATFORM.registerModelLayer(layer);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ import java.util.Map;
|
|||
|
||||
@Mixin(EntityModelSet.class)
|
||||
public class EntityModelLoaderMixin {
|
||||
@Shadow private Map<ModelLayerLocation, LayerDefinition> roots;
|
||||
@Shadow
|
||||
private Map<ModelLayerLocation, LayerDefinition> roots;
|
||||
|
||||
@Inject(method = "onResourceManagerReload", at = @At("TAIL"))
|
||||
private void jsonem$loadJsonEntityModels(ResourceManager manager, CallbackInfo ci) {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ public class JsonEMCodecs {
|
|||
((DilationAccess) dil).jsonem$growZ())
|
||||
);
|
||||
|
||||
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
|
||||
private static CubeDefinition createCuboidData(Optional<String> name, Vector3f offset, Vector3f dimensions, CubeDeformation dilation, boolean mirror, UVPair uv, UVPair uvSize, Optional<List<Direction>> faces) {
|
||||
return ModelCuboidDataAccess.jsonem$create(name.orElse(null),
|
||||
uv.u(), uv.v(),
|
||||
|
|
|
|||
|
|
@ -33,11 +33,9 @@ public class JsonEntityModelUtil {
|
|||
}
|
||||
|
||||
public static void loadModels(ResourceManager manager, Map<ModelLayerLocation, LayerDefinition> models) {
|
||||
ModelLayers.getKnownLocations().forEach(layer -> {
|
||||
for (ModelLayerLocation layer : ModelLayers.getKnownLocations().toList()) {
|
||||
var modelLoc = new ResourceLocation(layer.getModel().getNamespace(), "models/entity/"+layer.getModel().getPath()+"/"+layer.getLayer()+".json");
|
||||
|
||||
var res = manager.getResource(modelLoc);
|
||||
|
||||
if (res.isPresent()) {
|
||||
try {
|
||||
try (var in = res.get().open()) {
|
||||
|
|
@ -48,7 +46,8 @@ public class JsonEntityModelUtil {
|
|||
JsonEm.LOG.error("Error: {}",e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static void dump(ModelLayerLocation layer, LayerDefinition data) throws IOException {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ architectury {
|
|||
loom {
|
||||
forge {
|
||||
mixinConfig "${mod_id}.mixins.json"
|
||||
mixinConfig "${mod_id}.forge.mixins.json"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.leisuretimedock.jsonem.forge.mixin;
|
||||
|
||||
import net.minecraft.client.model.geom.ModelLayerLocation;
|
||||
import net.minecraft.client.model.geom.ModelLayers;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Mixin({ModelLayers.class})
|
||||
public interface EntityModelLayersAccessor {
|
||||
@Accessor("ALL_MODELS")
|
||||
static Set<ModelLayerLocation> getLayers() {
|
||||
throw new AssertionError("This should not occur!");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.leisuretimedock.jsonem.forge.platform;
|
||||
|
||||
import com.leisuretimedock.jsonem.forge.config.JsonEmConfig;
|
||||
import com.leisuretimedock.jsonem.forge.mixin.EntityModelLayersAccessor;
|
||||
import com.leisuretimedock.jsonem.platform.IPlatFormHelper;
|
||||
import net.minecraft.client.model.geom.ModelLayerLocation;
|
||||
import net.minecraft.client.model.geom.builders.LayerDefinition;
|
||||
|
|
@ -35,11 +36,13 @@ public class ForgePlatformHelper implements IPlatFormHelper {
|
|||
DEFINITIONS.put(layer, () -> LayerDefinition.create(new MeshDefinition(), 32, 32));
|
||||
}
|
||||
@SubscribeEvent
|
||||
public static void event(EntityRenderersEvent.RegisterLayerDefinitions event) {
|
||||
public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
|
||||
for (Map.Entry<ModelLayerLocation, Supplier<LayerDefinition>> modelLayerLocationSupplierEntry : DEFINITIONS.entrySet()) {
|
||||
event.registerLayerDefinition(modelLayerLocationSupplierEntry.getKey(), modelLayerLocationSupplierEntry.getValue());
|
||||
EntityModelLayersAccessor.getLayers().add(modelLayerLocationSupplierEntry.getKey());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,5 +27,4 @@ modId = "minecraft"
|
|||
mandatory = true
|
||||
versionRange = "[1.20.1,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
side = "BOTH"
|
||||
14
forge/src/main/resources/jsonem.forge.mixins.json
Normal file
14
forge/src/main/resources/jsonem.forge.mixins.json
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"required": true,
|
||||
"package": "com.leisuretimedock.jsonem.forge.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"minVersion": "0.8",
|
||||
"client": [
|
||||
"EntityModelLayersAccessor"
|
||||
],
|
||||
"mixins": [
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user