Skip to content

Commit

Permalink
Fixed exception when model fields are missing mappings
Browse files Browse the repository at this point in the history
  • Loading branch information
Ocelot5836 committed Aug 13, 2022
1 parent bd066ae commit 4ecb180
Showing 1 changed file with 4 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package gg.moonflower.pollen.pinwheel.api.client.geometry;

import com.google.common.collect.ImmutableMap;
import gg.moonflower.pollen.core.Pollen;
import net.minecraft.client.model.*;
import net.minecraft.client.model.dragon.DragonHeadModel;
import net.minecraft.client.model.geom.ModelPart;
Expand Down Expand Up @@ -109,16 +110,17 @@ private static void add(Class<? extends Model> clazz, String... mapping) {
ImmutableMap.Builder<String, String> mappingBuilder = ImmutableMap.builder();

Field[] fields = Arrays.stream(clazz.getDeclaredFields()).filter(field -> !field.isSynthetic() && ModelPart.class.isAssignableFrom(field.getType())).toArray(Field[]::new);
if (fields.length != mapping.length)
if (Pollen.TESTS_ENABLED && fields.length != mapping.length) // Only validate fields if developing Pollen. Ignore extra unknown fields
throw new IllegalStateException("Incorrect mapping configuration for " + clazz.getName() + ". Expected " + fields.length + " fields, got " + mapping.length);

for (int i = 0; i < fields.length; i++)
for (int i = 0; i < mapping.length; i++)
mappingBuilder.put(mapping[i], fields[i].getName());

if (MAPPING.put(clazz, mappingBuilder.build()) != null)
throw new AssertionError("Duplicate mappings for " + clazz.getName());
}

@Nullable
private static String getInternal(Class<? extends Model> clazz, String name) {
if (!MAPPING.containsKey(clazz))
return null;
Expand Down

0 comments on commit 4ecb180

Please sign in to comment.