From 6759a149fc753fbe6dc6e1932f85c7eca160f4da Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 24 Nov 2020 17:09:58 +0100 Subject: [PATCH] allow mobs without id (used for object ids) --- .../minosoft/data/entities/EntityInformation.java | 6 +++++- .../data/mappings/versions/VersionMapping.java | 11 +++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/entities/EntityInformation.java b/src/main/java/de/bixilon/minosoft/data/entities/EntityInformation.java index f916a5921..3093bf887 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/EntityInformation.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/EntityInformation.java @@ -27,7 +27,11 @@ public class EntityInformation extends ModIdentifier { } public static EntityInformation deserialize(String mod, String identifier, JsonObject data) { - return new EntityInformation(mod, identifier, data.get("width").getAsFloat(), data.get("height").getAsFloat()); + if (data.has("width") && data.has("height")) { + return new EntityInformation(mod, identifier, data.get("width").getAsFloat(), data.get("height").getAsFloat()); + } + return null; + } public float getWidth() { diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.java b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.java index 111babed0..95470b61a 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.java +++ b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.java @@ -407,12 +407,15 @@ public class VersionMapping { private void loadEntityMapping(String mod, String identifier, JsonObject fullModData) { JsonObject data = fullModData.getAsJsonObject(identifier); - if (data.has("id")) { + Class clazz = EntityClassMappings.getByIdentifier(mod, identifier); + EntityInformation information = EntityInformation.deserialize(mod, identifier, data); + if (information != null) { // not abstract, has id and attributes - Class clazz = EntityClassMappings.getByIdentifier(mod, identifier); - entityInformationMap.put(clazz, EntityInformation.deserialize(mod, identifier, data)); + entityInformationMap.put(clazz, information); - entityIdClassMap.put(data.get("id").getAsInt(), clazz); + if (data.has("id")) { + entityIdClassMap.put(data.get("id").getAsInt(), clazz); + } } String parent = null; int metaDataIndexOffset = 0;