diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index dbdb8da275..9379e4b9eb 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -97,6 +97,7 @@ public class ContentParser{ } } }); + put(TextureRegion.class, (type, data) -> Core.atlas.find(data.asString())); put(Color.class, (type, data) -> Color.valueOf(data.asString())); put(StatusEffect.class, (type, data) -> { if(data.isString()){ diff --git a/core/src/mindustry/mod/ContentPatcher.java b/core/src/mindustry/mod/ContentPatcher.java index d1fdd6aac6..7f69ac5c2b 100644 --- a/core/src/mindustry/mod/ContentPatcher.java +++ b/core/src/mindustry/mod/ContentPatcher.java @@ -242,6 +242,11 @@ public class ContentPatcher{ if(value instanceof JsonValue jsv){ //setting values from object if(prevValue == null || !jsv.isObject() || jsv.has("type")){ + if(UnlockableContent.class.isAssignableFrom(metadata.type) && (jsv.isObject())){ + warn("New content must not be instantiated: @", jsv); + return; + } + if(modify) modifiedField(object, field, getter.get()); try{ setter.get(json.readValue(metadata.type, metadata.elementType, jsv));