mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
more fixme comments
This commit is contained in:
@@ -70,7 +70,7 @@ class FixtureHomeComputer : FixtureBase {
|
||||
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
||||
}
|
||||
|
||||
App.disposables.add(Disposable {
|
||||
INGAME.disposables.add(Disposable {
|
||||
vmRunner.close()
|
||||
coroutineJob.cancel("fixture disposal")
|
||||
vm.dispose()
|
||||
|
||||
@@ -9,10 +9,7 @@ import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import net.torvald.terrarum.App
|
||||
import net.torvald.terrarum.CommonResourcePool
|
||||
import net.torvald.terrarum.ModMgr
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
import net.torvald.terrarum.gameitems.GameItem
|
||||
import net.torvald.terrarum.gameitems.ItemID
|
||||
@@ -51,6 +48,7 @@ class ItemWearableWorldRadar(originalID: String) : GameItem(originalID) {
|
||||
private val coroutineJob: Job
|
||||
private val ui = WearableWorldRadarUI(vm)
|
||||
|
||||
// FIXME initialise computer stuff when the Item is first used, not when it's registered by the Modmgr
|
||||
init {
|
||||
super.equipPosition = EquipPosition.HAND_GRIP
|
||||
|
||||
@@ -69,7 +67,7 @@ class ItemWearableWorldRadar(originalID: String) : GameItem(originalID) {
|
||||
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
||||
}
|
||||
|
||||
App.disposables.add(Disposable {
|
||||
INGAME.disposables.add(Disposable {
|
||||
vmRunner.close()
|
||||
coroutineJob.cancel("item disposal")
|
||||
vm.dispose()
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package net.torvald.terrarum
|
||||
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import com.badlogic.gdx.utils.Disposable
|
||||
import com.badlogic.gdx.utils.GdxRuntimeException
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.gameactors.Actor
|
||||
@@ -26,6 +28,7 @@ import java.io.FileNotFoundException
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import java.util.concurrent.locks.Lock
|
||||
import java.util.function.Consumer
|
||||
|
||||
/**
|
||||
* Although the game (as product) can have infinitely many stages/planets/etc., those stages must be manually managed by YOU;
|
||||
@@ -50,6 +53,8 @@ open class IngameInstance(val batch: SpriteBatch, val isMultiplayer: Boolean = f
|
||||
}
|
||||
}
|
||||
|
||||
val disposables = HashSet<Disposable>()
|
||||
|
||||
lateinit var worldDisk: VirtualDisk; internal set
|
||||
lateinit var playerDisk: VirtualDisk; internal set
|
||||
lateinit var worldSavefileName: String; internal set
|
||||
@@ -179,6 +184,14 @@ open class IngameInstance(val batch: SpriteBatch, val isMultiplayer: Boolean = f
|
||||
actorContainerActive.forEach { it.dispose() }
|
||||
actorContainerInactive.forEach { it.dispose() }
|
||||
world.dispose()
|
||||
|
||||
disposables.forEach(Consumer {
|
||||
try { it.dispose() }
|
||||
catch (_: NullPointerException) { }
|
||||
catch (_: IllegalArgumentException) { }
|
||||
catch (_: GdxRuntimeException) { }
|
||||
catch (_: ConcurrentModificationException) { }
|
||||
})
|
||||
}
|
||||
|
||||
////////////
|
||||
|
||||
Reference in New Issue
Block a user