From ed96b2eec8d52f5d3851cd8561df11ea013542c0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 30 Nov 2023 14:19:30 -0500 Subject: [PATCH] Simplified JSON music/sound loading --- core/assets/icons/icons.properties | 1 + core/assets/logicids.dat | Bin 4666 -> 4680 bytes core/src/mindustry/mod/ContentParser.java | 31 ++++------------------ gradle.properties | 2 +- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index d72941dee9..64963dd203 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -587,3 +587,4 @@ 63095=ranai|ranai 63094=cat|cat 63093=world-switch|block-world-switch-ui +63092=dynamic|status-dynamic-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index c5ed10a04e9b53918436d645b2a2b4d90940ddb2..1a821f841ab622df099a5fbfb7d540afb380f134 100644 GIT binary patch delta 30 lcmdm`azcfP;r~V^XMSFu^8BKl6y4(T%#!4c%`W`km;j@v3eNxl delta 16 XcmX@1vP*@D;on9kXa3E>{9l;>Gz, ContentType> contentTypes = new ObjectMap<>(); ObjectSet> implicitNullable = ObjectSet.with(TextureRegion.class, TextureRegion[].class, TextureRegion[][].class, TextureRegion[][][].class); - ObjectMap> sounds = new ObjectMap<>(); - ObjectMap> musics = new ObjectMap<>(); Seq listeners = new Seq<>(); ObjectMap, FieldParser> classParsers = new ObjectMap<>(){{ @@ -273,32 +271,14 @@ public class ContentParser{ return new Vec3(data.getFloat("x", 0f), data.getFloat("y", 0f), data.getFloat("z", 0f)); }); put(Sound.class, (type, data) -> { - if(fieldOpt(Sounds.class, data) != null) return fieldOpt(Sounds.class, data); - if(Vars.headless) return new Sound(); + var field = fieldOpt(Sounds.class, data); - String name = "sounds/" + data.asString(); - String path = Vars.tree.get(name + ".ogg").exists() ? name + ".ogg" : name + ".mp3"; - - if(sounds.containsKey(path)) return ((SoundParameter)sounds.get(path).params).sound; - var sound = new Sound(); - AssetDescriptor desc = Core.assets.load(path, Sound.class, new SoundParameter(sound)); - desc.errored = Throwable::printStackTrace; - sounds.put(path, desc); - return sound; + return field != null ? field : Vars.tree.loadSound(data.asString()); }); put(Music.class, (type, data) -> { - if(fieldOpt(Musics.class, data) != null) return fieldOpt(Musics.class, data); - if(Vars.headless) return new Music(); - - String name = "music/" + data.asString(); - String path = Vars.tree.get(name + ".ogg").exists() ? name + ".ogg" : name + ".mp3"; - - if(musics.containsKey(path)) return ((MusicParameter)musics.get(path).params).music; - var music = new Music(); - AssetDescriptor desc = Core.assets.load(path, Music.class, new MusicParameter(music)); - desc.errored = Throwable::printStackTrace; - musics.put(path, desc); - return music; + var field = fieldOpt(Musics.class, data); + + return field != null ? field : Vars.tree.loadMusic(data.asString()); }); put(Objectives.Objective.class, (type, data) -> { if(data.isString()){ @@ -1011,7 +991,6 @@ public class ContentParser{ throw new RuntimeException(e); } } - Object fieldOpt(Class type, JsonValue value){ try{ return type.getField(value.asString()).get(null); diff --git a/gradle.properties b/gradle.properties index 5965736f20..63ba2cb1ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=34775c79250cab391499fac8f4747365984c6923 +archash=f1e4bdee85