From e5bf6874fda52244af5fc0878e06305292d989a3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 11 Jun 2019 23:52:17 +0900 Subject: [PATCH] the placeholder "nullworld" is now singleton --- src/net/torvald/terrarum/AppLoader.java | 3 +++ src/net/torvald/terrarum/gameworld/GameWorld.kt | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index 3ff910edd..6f0dc07ea 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -25,6 +25,7 @@ import net.torvald.terrarum.controller.GdxControllerAdapter; import net.torvald.terrarum.controller.TerrarumController; import net.torvald.terrarum.controller.XinputControllerAdapter; import net.torvald.terrarum.gamecontroller.KeyToggler; +import net.torvald.terrarum.gameworld.GameWorld; import net.torvald.terrarum.imagefont.TinyAlphNum; import net.torvald.terrarum.modulebasegame.Ingame; import net.torvald.terrarum.utils.JsonFetcher; @@ -546,6 +547,8 @@ public class AppLoader implements ApplicationListener { ModMgr.INSTANCE.disposeMods(); + GameWorld.Companion.makeNullWorld().dispose(); + deleteTempfiles(); } diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index 619adb799..3f9479475 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -475,7 +475,14 @@ open class GameWorld : Disposable { //@Transient val SIZEOF: Byte = 2 @Transient const val LAYERS: Byte = 4 // terrain, wall (layerTerrainLowBits + layerWallLowBits), wire - fun makeNullWorld() = GameWorld(1, 1, 1, 0, 0, 0) + @Transient private var nullWorldInstance: GameWorld? = null + + fun makeNullWorld(): GameWorld { + if (nullWorldInstance == null) + nullWorldInstance = GameWorld(1, 1, 1, 0, 0, 0) + + return nullWorldInstance!! + } } }