From ffa7256e5ad6741a8cd4ca292ae9541573ca4eb4 Mon Sep 17 00:00:00 2001 From: DeltaNedas <39013340+DeltaNedas@users.noreply.github.com> Date: Mon, 14 Dec 2020 04:43:27 +0000 Subject: [PATCH] add ContentInitEvent (#3951) * add ContentInit(ialized)Event * a * a --- core/assets/scripts/global.js | 1 + core/src/mindustry/core/ContentLoader.java | 4 ++++ core/src/mindustry/core/Control.java | 2 +- core/src/mindustry/core/Renderer.java | 5 ++++- core/src/mindustry/game/EventType.java | 2 ++ 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 549bcb9b54..92a7fd5562 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -165,6 +165,7 @@ const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEven const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent +const ContentInitEvent = Packages.mindustry.game.EventType.ContentInitEvent const BlockInfoEvent = Packages.mindustry.game.EventType.BlockInfoEvent const CoreItemDeliverEvent = Packages.mindustry.game.EventType.CoreItemDeliverEvent const TurretAmmoDeliverEvent = Packages.mindustry.game.EventType.TurretAmmoDeliverEvent diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index c3c0918d44..2696639240 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -1,5 +1,6 @@ package mindustry.core; +import arc.*; import arc.files.*; import arc.func.*; import arc.graphics.*; @@ -7,8 +8,10 @@ import arc.struct.*; import arc.util.*; import mindustry.content.*; import mindustry.ctype.*; +import mindustry.game.EventType.*; import mindustry.entities.bullet.*; import mindustry.mod.Mods.*; +import mindustry.net.*; import mindustry.type.*; import mindustry.world.*; @@ -97,6 +100,7 @@ public class ContentLoader{ public void init(){ initialize(Content::init); if(constants != null) constants.init(); + Events.fire(new ContentInitEvent()); } /** Calls Content#load() on everything. Use only after all modules have been created on the client.*/ diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 00d4096e78..f4f3dc75df 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -424,7 +424,7 @@ public class Control implements ApplicationListener, Loadable{ net.dispose(); Musics.dispose(); Sounds.dispose(); - ui.editor.dispose(); + if(ui != null && ui.editor != null) ui.editor.dispose(); } @Override diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 7d6ed8c373..ea9e22a3ce 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -111,7 +111,10 @@ public class Renderer implements ApplicationListener{ minimap.dispose(); effectBuffer.dispose(); blocks.dispose(); - planets.dispose(); + if(planets != null){ + planets.dispose(); + planets = null; + } if(bloom != null){ bloom.dispose(); bloom = null; diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 3fd2826cb5..3efe48932e 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -64,6 +64,8 @@ public class EventType{ public static class CoreItemDeliverEvent{} /** Called when the player opens info for a specific block.*/ public static class BlockInfoEvent{} + /** Called *after* all content has been initialized. */ + public static class ContentInitEvent{} /** Called when the client game is first loaded. */ public static class ClientLoadEvent{} /** Called when a game begins and the world is loaded. */