Skip to content

Commit 1cefb9d

Browse files
Update 0.3, registering a model layer is no longer required, all models in the entity models folder will be loaded
1 parent 5eb6972 commit 1cefb9d

3 files changed

Lines changed: 26 additions & 19 deletions

File tree

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
org.gradle.jvmargs=-Xmx1G
22

3-
minecraft_version=1.21-pre4
4-
yarn_mappings=1.21-pre4+build.3
5-
loader_version=0.15.11
3+
minecraft_version=1.21
4+
yarn_mappings=1.21+build.9
5+
loader_version=0.16.10
66

7-
mod_version = 0.2.1+1.21
7+
mod_version = 0.3+1.21
88
maven_group = io.github.foundationgames
99
archives_base_name = jsonem
1010

11-
fabric_version=0.99.5+1.21
11+
fabric_version=0.102.0+1.21

src/main/java/io/github/foundationgames/jsonem/JsonEM.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public void onInitializeClient() {
1818
CONFIG.load();
1919
}
2020

21+
@Deprecated
2122
public static void registerModelLayer(EntityModelLayer layer) {
2223
EntityModelLayerRegistry.registerModelLayer(layer, () -> TexturedModelData.of(new ModelData(), 32, 32));
2324
}

src/main/java/io/github/foundationgames/jsonem/util/JsonEntityModelUtil.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
import net.fabricmc.loader.api.FabricLoader;
1111
import net.minecraft.client.model.TexturedModelData;
1212
import net.minecraft.client.render.entity.model.EntityModelLayer;
13-
import net.minecraft.client.render.entity.model.EntityModelLayers;
13+
import net.minecraft.resource.ResourceFinder;
1414
import net.minecraft.resource.ResourceManager;
1515
import net.minecraft.util.Identifier;
16+
import net.minecraft.util.InvalidIdentifierException;
1617

1718
import java.io.IOException;
1819
import java.io.InputStream;
@@ -36,20 +37,25 @@ public static Optional<TexturedModelData> readJson(InputStream data) {
3637
}
3738

3839
public static void loadModels(ResourceManager manager, Map<EntityModelLayer, TexturedModelData> models) {
39-
EntityModelLayers.getLayers().forEach(layer -> {
40-
var modelLoc = Identifier.of(layer.getId().getNamespace(), "models/entity/"+layer.getId().getPath()+"/"+layer.getName()+".json");
41-
42-
var res = manager.getResource(modelLoc);
43-
44-
if (res.isPresent()) {
45-
try {
46-
try (var in = res.get().getInputStream()) {
47-
var data = JsonEntityModelUtil.readJson(in);
48-
data.ifPresent(model -> models.put(layer, model));
49-
}
50-
} catch (IOException e) {
51-
JsonEM.LOG.error(e);
40+
ResourceFinder.json("models/entity").findResources(manager).forEach((id, res) -> {
41+
try {
42+
var fullPath = id.getPath().replaceFirst("models/entity/", "");
43+
var splitPath = fullPath.split("/");
44+
45+
var dirs = new String[splitPath.length - 1];
46+
System.arraycopy(splitPath, 0, dirs, 0, dirs.length);
47+
48+
var layerName = splitPath[splitPath.length - 1].replace(".json", "");
49+
var modelName = String.join("/", dirs);
50+
51+
var layer = new EntityModelLayer(Identifier.of(id.getNamespace(), modelName), layerName);
52+
53+
try (var in = res.getInputStream()) {
54+
var data = JsonEntityModelUtil.readJson(in);
55+
data.ifPresent(model -> models.put(layer, model));
5256
}
57+
} catch (IOException | InvalidIdentifierException e) {
58+
JsonEM.LOG.error(e);
5359
}
5460
});
5561
}

0 commit comments

Comments
 (0)