From 575ed4410bf3a71aea5926b7679dd9f08c13d809 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 17 Sep 2021 22:54:55 +0900 Subject: [PATCH] sprites can be rendered across the world seam --- .../spriteanimation/SpriteAnimation.kt | 2 +- .../terrarum/FuckingWorldRenderer.kt.unused | 2 +- .../terrarum/blockproperties/BlockPropUtil.kt | 8 +- .../torvald/terrarum/blockstats/BlockStats.kt | 4 +- src/net/torvald/terrarum/console/AVTracker.kt | 6 +- .../torvald/terrarum/console/Authenticator.kt | 5 +- src/net/torvald/terrarum/console/Echo.kt | 4 +- src/net/torvald/terrarum/console/EchoError.kt | 5 +- .../console/SetGlobalLightOverride.kt | 4 +- .../terrarum/gameactors/ActorWithBody.kt | 93 +++++++------------ .../terrarum/gameparticles/ParticleBase.kt | 15 ++- .../gameparticles/ParticleVanishingTexture.kt | 10 +- .../terrarum/gameworld/WorldSimulator.kt | 2 +- .../modulebasegame/console/ExportMap.kt | 4 +- .../modulebasegame/console/GetFaction.kt | 2 +- .../modulebasegame/console/GetTime.kt | 4 +- .../modulebasegame/console/ImportLayerData.kt | 8 +- .../modulebasegame/console/Inventory.kt | 2 +- .../modulebasegame/console/KillActor.kt | 4 +- .../modulebasegame/console/PrintWorld.kt | 6 +- .../terrarum/modulebasegame/console/Seed.kt | 4 +- .../terrarum/modulebasegame/console/SetAV.kt | 2 +- .../modulebasegame/console/SetScale.kt | 5 +- .../console/SpawnPhysTestBall.kt | 7 +- .../console/SpawnPhysTestLunarLander.kt | 3 +- .../modulebasegame/console/SpawnTapestry.kt | 4 +- .../modulebasegame/console/SpawnTikiTorch.kt | 4 +- .../modulebasegame/console/Teleport.kt | 14 +-- .../terrarum/modulebasegame/console/Zoom.kt | 12 +-- .../debuggerapp/ActorValueTracker.kt | 2 +- .../gameactors/ActorHumanoid.kt | 2 +- .../modulebasegame/gameactors/FixtureBase.kt | 2 +- .../gameactors/FixtureStorageChest.kt | 4 +- .../modulebasegame/gameactors/HumanoidNPC.kt | 3 +- .../modulebasegame/gameactors/PhysTestBall.kt | 5 +- .../gameactors/ProjectileSimple.kt | 12 +-- .../gameactors/ThreadActorUpdate.kt | 2 +- .../gameitems/PickaxeGeneric.kt | 8 +- .../gameitems/WireGraphDebugger.kt | 4 +- .../modulebasegame/ui/UIInventoryEscMenu.kt | 7 +- .../modulebasegame/ui/UIInventoryFull.kt | 2 +- .../modulebasegame/ui/UIInventoryMinimap.kt | 2 +- .../ui/UIItemInventoryEquippedView.kt | 4 +- .../modulebasegame/ui/UITierOneWatch.kt | 2 +- .../modulebasegame/ui/UIVitalMetre.kt | 4 +- .../torvald/terrarum/realestate/LandUtil.kt | 4 +- .../torvald/terrarum/weather/WeatherMixer.kt | 2 +- 47 files changed, 150 insertions(+), 166 deletions(-) diff --git a/src/net/torvald/spriteanimation/SpriteAnimation.kt b/src/net/torvald/spriteanimation/SpriteAnimation.kt index a54358017..e2a08f1d5 100644 --- a/src/net/torvald/spriteanimation/SpriteAnimation.kt +++ b/src/net/torvald/spriteanimation/SpriteAnimation.kt @@ -128,7 +128,7 @@ class SpriteAnimation(@Transient val parentActor: ActorWithBody) { if (visible) { val region = textureRegion.get(currentFrame, currentRow) -// batch.color = colorFilter + batch.color = colorFilter //val scale = parentActor.scale.toFloat() // wtf? diff --git a/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused b/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused index 155d20dc7..464d2761d 100644 --- a/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused +++ b/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused @@ -106,7 +106,7 @@ class Ingame(batch: SpriteBatch) : IngameInstance(batch) { fun generateUniqueReferenceID(renderOrder: Actor.RenderOrder): ActorID { fun hasCollision(value: ActorID) = try { - Terrarum.ingame!!.theGameHasActor(value) || + INGAME.theGameHasActor(value) || value < ItemCodex.ACTORID_MIN || value !in when (renderOrder) { Actor.RenderOrder.BEHIND -> Actor.RANGE_BEHIND diff --git a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt index 5347b9148..60032b32c 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt @@ -107,8 +107,8 @@ object BlockPropUtil { private fun getDynamicLumFunc(prop: BlockProp): Cvec { return when (prop.dynamicLuminosityFunction) { 1 -> getTorchFlicker(prop) - 2 -> (Terrarum.ingame!!.world).globalLight.cpy() // current global light - 3 -> WeatherMixer.getGlobalLightOfTime(Terrarum.ingame!!.world, WorldTime.DAY_LENGTH / 2).cpy() // daylight at noon + 2 -> (INGAME.world).globalLight.cpy() // current global light + 3 -> WeatherMixer.getGlobalLightOfTime(INGAME.world, WorldTime.DAY_LENGTH / 2).cpy() // daylight at noon 4 -> getSlowBreath(prop) 5 -> getPulsate(prop) else -> prop.baseLumCol @@ -121,8 +121,8 @@ object BlockPropUtil { /*private fun getDynamicLumFuncByChan(baseLum: Float, type: Int, chan: Int): Float { return when (type) { 1 -> getTorchFlicker(baseLum) - 2 -> (Terrarum.ingame!!.world).globalLight.cpy().mul(LightmapRenderer.DIV_FLOAT).getElem(chan) // current global light - 3 -> WeatherMixer.getGlobalLightOfTime(Terrarum.ingame!!.world, WorldTime.DAY_LENGTH / 2).cpy().mul(LightmapRenderer.DIV_FLOAT).getElem(chan) // daylight at noon + 2 -> (INGAME.world).globalLight.cpy().mul(LightmapRenderer.DIV_FLOAT).getElem(chan) // current global light + 3 -> WeatherMixer.getGlobalLightOfTime(INGAME.world, WorldTime.DAY_LENGTH / 2).cpy().mul(LightmapRenderer.DIV_FLOAT).getElem(chan) // daylight at noon 4 -> getSlowBreath(baseLum) 5 -> getPulsate(baseLum) else -> baseLum diff --git a/src/net/torvald/terrarum/blockstats/BlockStats.kt b/src/net/torvald/terrarum/blockstats/BlockStats.kt index 2ffde35d5..5fab630d4 100644 --- a/src/net/torvald/terrarum/blockstats/BlockStats.kt +++ b/src/net/torvald/terrarum/blockstats/BlockStats.kt @@ -2,13 +2,13 @@ package net.torvald.terrarum.blockstats import com.jme3.math.FastMath import net.torvald.terrarum.App +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF import net.torvald.terrarum.gameitem.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.worlddrawer.BlocksDrawer -import java.util.* /** * Created by minjaesong on 2016-02-01. @@ -25,7 +25,7 @@ object BlockStats { // Get stats on no-zoomed screen area. In other words, will behave as if screen zoom were 1.0 // no matter how the screen is zoomed. - val map = (Terrarum.ingame!!.world) + val map = (INGAME.world) val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying if (player == null) return diff --git a/src/net/torvald/terrarum/console/AVTracker.kt b/src/net/torvald/terrarum/console/AVTracker.kt index 0eafd9893..fd5cd1905 100644 --- a/src/net/torvald/terrarum/console/AVTracker.kt +++ b/src/net/torvald/terrarum/console/AVTracker.kt @@ -1,9 +1,9 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.debuggerapp.ActorValueTracker -import java.util.* /** * Created by minjaesong on 2016-12-29. @@ -19,8 +19,8 @@ internal object AVTracker : ConsoleCommand { try { val actorID = args[1].toInt() - if (Terrarum.ingame!!.theGameHasActor(actorID)) { - jPanelInstances.add(ActorValueTracker(Terrarum.ingame!!.getActorByID(actorID))) + if (INGAME.theGameHasActor(actorID)) { + jPanelInstances.add(ActorValueTracker(INGAME.getActorByID(actorID))) } else { throw IllegalArgumentException() diff --git a/src/net/torvald/terrarum/console/Authenticator.kt b/src/net/torvald/terrarum/console/Authenticator.kt index d6180f1c0..0cfe11df0 100644 --- a/src/net/torvald/terrarum/console/Authenticator.kt +++ b/src/net/torvald/terrarum/console/Authenticator.kt @@ -1,7 +1,6 @@ package net.torvald.terrarum.console -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.ui.ConsoleWindow +import net.torvald.terrarum.INGAME import org.apache.commons.codec.digest.DigestUtils /** @@ -40,7 +39,7 @@ internal object Authenticator : ConsoleCommand { Echo(msg) println("[Authenticator] " + msg) a = !a - Terrarum.ingame!!.consoleHandler.reset() + INGAME.consoleHandler.reset() } else { printUsage() // thou shalt not pass! diff --git a/src/net/torvald/terrarum/console/Echo.kt b/src/net/torvald/terrarum/console/Echo.kt index b64c77a04..23c63b678 100644 --- a/src/net/torvald/terrarum/console/Echo.kt +++ b/src/net/torvald/terrarum/console/Echo.kt @@ -18,14 +18,14 @@ internal object Echo : ConsoleCommand { val sb = StringBuilder() for (ch in single_line) { if (ch == '\n') { - Terrarum.ingame!!.consoleHandler.sendMessage(sb.toString()) + INGAME.consoleHandler.sendMessage(sb.toString()) println("[Echo] $csiG$sb$csi0") sb.delete(0, sb.length - 1) } else sb.append(ch) } - Terrarum.ingame!!.consoleHandler.sendMessage(sb.toString()) + INGAME.consoleHandler.sendMessage(sb.toString()) println("[Echo] $csiG$sb$csi0") } diff --git a/src/net/torvald/terrarum/console/EchoError.kt b/src/net/torvald/terrarum/console/EchoError.kt index 281ad29d2..351db9e73 100644 --- a/src/net/torvald/terrarum/console/EchoError.kt +++ b/src/net/torvald/terrarum/console/EchoError.kt @@ -1,8 +1,7 @@ package net.torvald.terrarum.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.ccR -import net.torvald.terrarum.ui.ConsoleWindow /** * Created by minjaesong on 2016-04-25. @@ -15,7 +14,7 @@ internal object EchoError : ConsoleCommand { } fun execute(single_line: String) { - (Terrarum.ingame!!.consoleHandler).sendMessage("$ccR$single_line") + (INGAME.consoleHandler).sendMessage("$ccR$single_line") } operator fun invoke(args: Array) = execute(args) diff --git a/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt index 65d7af56e..d00ac1cb2 100644 --- a/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt +++ b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.console import net.torvald.gdx.graphics.Cvec -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.weather.WeatherMixer /** @@ -20,7 +20,7 @@ internal object SetGlobalLightOverride : ConsoleCommand { val GL = Cvec(r, g, b, a) WeatherMixer.globalLightOverridden = true - (Terrarum.ingame!!.world).globalLight = GL + (INGAME.world).globalLight = GL } catch (e: NumberFormatException) { Echo("Wrong number input.") diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index becf26ad8..0bd01a303 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -405,7 +405,7 @@ open class ActorWithBody : Actor { if (spriteGlow != null) spriteGlow!!.update(delta) // make NoClip work for player - if (true) {//this == Terrarum.ingame!!.actorNowPlaying) { + if (true) {//this == INGAME.actorNowPlaying) { isNoSubjectToGrav = isNoClip || COLLISION_TEST_MODE isNoCollideWorld = isNoClip isNoSubjectToFluidResistance = isNoClip @@ -1616,62 +1616,29 @@ open class ActorWithBody : Actor { protected fun drawSpriteInGoodPosition(sprite: SpriteAnimation, batch: SpriteBatch) { if (world == null) return + //val offendingPad = world!!.width.times(TILE_SIZE) - WorldCamera.width - 1 - val leftsidePadding = world!!.width.times(TILE_SIZE) - WorldCamera.width.ushr(1) - val rightsidePadding = WorldCamera.width.ushr(1) + val offsetX = (hitboxTranslateX * scale).toFloat() + val offsetY = (sprite.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 1).toFloat() - val offendingPad = world!!.width.times(TILE_SIZE) - WorldCamera.width.ushr(1) + drawBodyInGoodPosition(hitbox.startX.toFloat(), hitbox.startY.toFloat()) { x, y -> + sprite.render(batch, x - offsetX, y - offsetY, scale.toFloat()) + } - val offsetX = hitboxTranslateX * scale - val offsetY = sprite.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 1 - - // it would be great if you can eliminate the try-catch because it may hurt the performance when there's too many actors on screen to draw -// try { - /*if (Math.abs(WorldCamera.x - hitbox.startX) > App.scr.halfw) { - sprite.render(batch, - (hitbox.startX - offsetX).toFloat() + world!!.width * TILE_SIZEF, - (hitbox.startY - offsetY).toFloat(), - (scale).toFloat() - ) - } - else { - sprite.render(batch, - (hitbox.startX - offsetX).toFloat(), - (hitbox.startY - offsetY).toFloat(), - (scale).toFloat() - ) - }*/ - batch.color = Color.WHITE - sprite.render(batch, - (hitbox.startX - offsetX).toFloat(), - (hitbox.startY - offsetY).toFloat(), - (scale).toFloat() - ) - - batch.color = Color.BLUE - sprite.render(batch, - (hitbox.startX - offsetX).toFloat() - world!!.width * TILE_SIZEF, - (hitbox.startY - offsetY).toFloat(), - (scale).toFloat() - ) - - batch.color = Color.GREEN - sprite.render(batch, - (hitbox.startX - offsetX).toFloat() + world!!.width * TILE_SIZEF, - (hitbox.startY - offsetY).toFloat(), - (scale).toFloat() - ) - - - -// } -// catch (e: UninitializedPropertyAccessException) { -// printdbgerr(this, this.javaClass.simpleName) -// printdbgerr(this, actorValue.getAsString(AVKey.NAME)) -// printdbgerr(this, if (this is HasAssembledSprite) this.animDescPath else "(not HasAssembledSprite)") -// printdbgerr(this, e) -// throw e -// } + /*if (WorldCamera.x >= offendingPad && hitbox.startX < WorldCamera.width) { + sprite.render(batch, + (hitbox.startX - offsetX).toFloat() + world!!.width * TILE_SIZEF, + (hitbox.startY - offsetY).toFloat(), + (scale).toFloat() + ) + } + else { + sprite.render(batch, + (hitbox.startX - offsetX).toFloat(), + (hitbox.startY - offsetY).toFloat(), + (scale).toFloat() + ) + }*/ } override fun onActorValueChange(key: String, value: Any?) { @@ -1881,8 +1848,8 @@ open class ActorWithBody : Actor { private fun div16TruncateToMapWidth(x: Int): Int { if (x < 0) return 0 - else if (x >= Terrarum.ingame!!.world.width shl 4) - return Terrarum.ingame!!.world.width - 1 + else if (x >= INGAME.world.width shl 4) + return INGAME.world.width - 1 else return x and 0x7FFFFFFF shr 4 } @@ -1890,8 +1857,8 @@ open class ActorWithBody : Actor { private fun div16TruncateToMapHeight(y: Int): Int { if (y < 0) return 0 - else if (y >= Terrarum.ingame!!.world.height shl 4) - return Terrarum.ingame!!.world.height - 1 + else if (y >= INGAME.world.height shl 4) + return INGAME.world.height - 1 else return y and 0x7FFFFFFF shr 4 } @@ -1954,3 +1921,13 @@ open class ActorWithBody : Actor { } } +inline fun drawBodyInGoodPosition(startX: Float, startY: Float, drawFun: (x: Float, y: Float) -> Unit) { + val offendingPad = INGAME.world.width.times(TerrarumAppConfiguration.TILE_SIZE) - WorldCamera.width - 1 + + if (WorldCamera.x >= offendingPad && startX < WorldCamera.width) { + drawFun(startX + INGAME.world.width * TILE_SIZEF, startY) + } + else { + drawFun(startX , startY) + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameparticles/ParticleBase.kt b/src/net/torvald/terrarum/gameparticles/ParticleBase.kt index 6dc950bb5..6cd7fa3c1 100644 --- a/src/net/torvald/terrarum/gameparticles/ParticleBase.kt +++ b/src/net/torvald/terrarum/gameparticles/ParticleBase.kt @@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.gameactors.drawBodyInGoodPosition import org.dyn4j.geometry.Vector2 /** @@ -44,11 +45,11 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, val despawnUponCollision lifetimeCounter += delta if (velocity.isZero || // simple stuck check - BlockCodex[(Terrarum.ingame!!.world).getTileFromTerrain( + BlockCodex[(INGAME.world).getTileFromTerrain( hitbox.centeredX.div(TerrarumAppConfiguration.TILE_SIZE).floorInt(), hitbox.startY.div(TerrarumAppConfiguration.TILE_SIZE).floorInt() )].isSolid || - BlockCodex[(Terrarum.ingame!!.world).getTileFromTerrain( + BlockCodex[(INGAME.world).getTileFromTerrain( hitbox.centeredX.div(TerrarumAppConfiguration.TILE_SIZE).floorInt(), hitbox.endY.div(TerrarumAppConfiguration.TILE_SIZE).floorInt() )].isSolid) { @@ -64,7 +65,7 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, val despawnUponCollision // gravity, winds, etc. (external forces) if (!isNoSubjectToGrav) { - velocity.plusAssign((Terrarum.ingame!!.world).gravitation / dragCoefficient) + velocity.plusAssign((INGAME.world).gravitation / dragCoefficient) } @@ -76,14 +77,18 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, val despawnUponCollision open fun drawBody(batch: SpriteBatch) { if (!flagDespawn) { batch.color = drawColour - batch.draw(body, hitbox.startX.toFloat(), hitbox.startY.toFloat(), hitbox.width.toFloat(), hitbox.height.toFloat()) + drawBodyInGoodPosition(hitbox.startX.toFloat(), hitbox.startY.toFloat()) { x, y -> + batch.draw(body, x, y, hitbox.width.toFloat(), hitbox.height.toFloat()) + } } } open fun drawGlow(batch: SpriteBatch) { if (!flagDespawn && glow != null) { batch.color = drawColour - batch.draw(glow, hitbox.startX.toFloat(), hitbox.startY.toFloat(), hitbox.width.toFloat(), hitbox.height.toFloat()) + drawBodyInGoodPosition(hitbox.startX.toFloat(), hitbox.startY.toFloat()) { x, y -> + batch.draw(glow, x, y, hitbox.width.toFloat(), hitbox.height.toFloat()) + } } } diff --git a/src/net/torvald/terrarum/gameparticles/ParticleVanishingTexture.kt b/src/net/torvald/terrarum/gameparticles/ParticleVanishingTexture.kt index 655603af9..4d22a7b1a 100644 --- a/src/net/torvald/terrarum/gameparticles/ParticleVanishingTexture.kt +++ b/src/net/torvald/terrarum/gameparticles/ParticleVanishingTexture.kt @@ -2,8 +2,8 @@ package net.torvald.terrarum.gameparticles import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.spriteanimation.SpriteAnimation import net.torvald.terrarum.gameactors.Actor +import net.torvald.terrarum.gameactors.drawBodyInGoodPosition import net.torvald.terrarum.imagefont.TinyAlphNum import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -58,7 +58,9 @@ class ParticleVanishingText(val text: String, x: Double, y: Double, noCollision: if (!flagDespawn) { batch.color = drawColour lines.forEachIndexed { index, line -> - TinyAlphNum.draw(batch, line, hitbox.startX.toFloat(), hitbox.startY.toFloat() + TinyAlphNum.H * index) + drawBodyInGoodPosition(hitbox.startX.toFloat(), hitbox.startY.toFloat() + TinyAlphNum.H * index) { x, y -> + TinyAlphNum.draw(batch, line, x, y ) + } } } } @@ -101,7 +103,9 @@ open class ParticleVanishingSprite(val sprite: TextureRegionPack, val delay: Flo override fun drawBody(batch: SpriteBatch) { if (!flagDespawn) { batch.color = drawColour - batch.draw(sprite.get(frame, row), hitbox.startX.toFloat(), hitbox.startY.toFloat()) + drawBodyInGoodPosition(hitbox.startX.toFloat(), hitbox.startY.toFloat()) { x, y -> + batch.draw(sprite.get(frame, row), x, y) + } } } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt index c5b57f0b0..89e82561e 100644 --- a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt +++ b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt @@ -438,7 +438,7 @@ object WorldSimulator { * @return List of FixtureBases, safe to cast into Electric */ private fun wiresimGetSourceBlocks(): List = - Terrarum.ingame!!.actorContainerActive.filter { + INGAME.actorContainerActive.filter { it is FixtureBase && it is Electric && it.inUpdateRange(world) && it.wireEmitterTypes.isNotEmpty() } as List diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt index 700198891..c3da6d2dd 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt @@ -2,7 +2,7 @@ package net.torvald.terrarum.modulebasegame.console import net.torvald.gdx.graphics.Cvec import net.torvald.terrarum.App -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo import net.torvald.terrarum.console.EchoError @@ -22,7 +22,7 @@ internal object ExportMap : ConsoleCommand { override fun execute(args: Array) { - val world = (Terrarum.ingame!!.world) + val world = (INGAME.world) if (args.size == 2) { diff --git a/src/net/torvald/terrarum/modulebasegame/console/GetFaction.kt b/src/net/torvald/terrarum/modulebasegame/console/GetFaction.kt index 135b04e5a..ee201ee76 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/GetFaction.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetFaction.kt @@ -21,7 +21,7 @@ internal object GetFaction : ConsoleCommand { val error = Error() fun printOutFactioning(id: Int) { - val a = Terrarum.ingame!!.getActorByID(id) + val a = INGAME.getActorByID(id) if (a is Factionable) { Echo("$ccW== Faction assignment for $ccY${if (id == Terrarum.PLAYER_REF_ID) "player" else id.toString()} $ccW==") println("[GetFactioning] == Faction assignment for '${if (id == Terrarum.PLAYER_REF_ID) "player" else id.toString()}' ==") diff --git a/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt b/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt index d47a20132..e56067177 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo @@ -10,7 +10,7 @@ import net.torvald.terrarum.console.Echo internal object GetTime : ConsoleCommand { override fun execute(args: Array) { - val worldTime = (Terrarum.ingame!!.world).worldTime + val worldTime = (INGAME.world).worldTime Echo(worldTime.getFormattedTime()) } diff --git a/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt b/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt index ea99ee0a2..6929e309f 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt @@ -18,10 +18,10 @@ object ImportLayerData : ConsoleCommand { val layerData = ReadLayerDataZip(file) - Terrarum.ingame!!.world = GameWorldExtension(1, layerData, 0, 0, 0) // FIXME null TIME_T for the (partial) test to pass - Terrarum.ingame!!.actorNowPlaying?.setPosition( - (Terrarum.ingame!!.world).spawnY * TILE_SIZED, - (Terrarum.ingame!!.world).spawnX * TILE_SIZED + INGAME.world = GameWorldExtension(1, layerData, 0, 0, 0) // FIXME null TIME_T for the (partial) test to pass + INGAME.actorNowPlaying?.setPosition( + (INGAME.world).spawnY * TILE_SIZED, + (INGAME.world).spawnX * TILE_SIZED ) Echo("Successfully loaded ${args[1]}")*/ diff --git a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt index 5fc93451b..5672193ca 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt @@ -49,7 +49,7 @@ internal object Inventory : ConsoleCommand { } private fun setTarget(actorRefId: Int = Terrarum.PLAYER_REF_ID) { - val actor = Terrarum.ingame!!.getActorByID(actorRefId) + val actor = INGAME.getActorByID(actorRefId) if (actor !is Pocketed) { EchoError("Cannot edit inventory of incompatible actor: $actor") } diff --git a/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt b/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt index c9ac1ed46..8d522f1f8 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.console.ConsoleAlias import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo @@ -16,7 +16,7 @@ internal object KillActor : ConsoleCommand { if (args.size == 2) { try { val actorid = args[1].toInt() - Terrarum.ingame!!.removeActor(actorid) + INGAME.removeActor(actorid) } catch (e: NumberFormatException) { EchoError("Wrong number input.") diff --git a/src/net/torvald/terrarum/modulebasegame/console/PrintWorld.kt b/src/net/torvald/terrarum/modulebasegame/console/PrintWorld.kt index 77a4c7e29..e5119c2c6 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/PrintWorld.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/PrintWorld.kt @@ -1,12 +1,10 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.ccG import net.torvald.terrarum.ccO import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo -import net.torvald.terrarum.gameworld.BlockAddress -import kotlin.reflect.full.memberProperties /** * Created by minjaesong on 2021-08-26. @@ -14,7 +12,7 @@ import kotlin.reflect.full.memberProperties object PrintWorld : ConsoleCommand { override fun execute(args: Array) { if (args.size == 2) { - val w = Terrarum.ingame!!.world + val w = INGAME.world val field = w::class.java.getDeclaredField(args[1]) val fieldAccessibility = field.isAccessible diff --git a/src/net/torvald/terrarum/modulebasegame/console/Seed.kt b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt index 9ad46cd40..8c088a595 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/Seed.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt @@ -11,8 +11,8 @@ import net.torvald.terrarum.console.Echo internal object Seed : ConsoleCommand { override fun execute(args: Array) { - Echo("Map$ccW: $ccG${(Terrarum.ingame!!.world).generatorSeed}") - println("[seed] Map$ccW: $ccG${(Terrarum.ingame!!.world).generatorSeed}") + Echo("Map$ccW: $ccG${(INGAME.world).generatorSeed}") + println("[seed] Map$ccW: $ccG${(INGAME.world).generatorSeed}") // TODO display randomiser seed } diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt index fbd403e5c..cf1755edc 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt @@ -78,7 +78,7 @@ internal object SetAV : ConsoleCommand { try { val id = args[1].toInt() val newValue = parseAVInput(args[3]) - val actor = Terrarum.ingame!!.getActorByID(id) + val actor = INGAME.getActorByID(id) // check if av is number if (args[2].isNum()) { diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt index 90f04a8ea..1109cb535 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt @@ -1,12 +1,13 @@ package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo import net.torvald.terrarum.console.EchoError import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.gameactors.ActorWithBody +import net.torvald.terrarum.modulebasegame.TerrarumIngame /** * Created by minjaesong on 2017-01-20. @@ -22,7 +23,7 @@ internal object SetScale : ConsoleCommand { val targetID = if (args.size == 3) args[1].toInt() else player.referenceID val scale = args[if (args.size == 3) 2 else 1].toDouble() - val target = Terrarum.ingame!!.getActorByID(targetID!!) + val target = INGAME.getActorByID(targetID) if (target !is ActorWithBody) { EchoError("Target is not ActorWBMovable") diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt index 8184b0b8e..bdf568318 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt @@ -1,9 +1,10 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.modulebasegame.gameactors.PhysTestBall +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.gameactors.PhysTestBall import org.dyn4j.geometry.Vector2 /** @@ -26,7 +27,7 @@ internal object SpawnPhysTestBall : ConsoleCommand { ball.elasticity = elasticity ball.applyForce(Vector2(xvel, yvel)) - Terrarum.ingame!!.addNewActor(ball) + INGAME.addNewActor(ball) } else if (args.size == 2) { val elasticity = args[1].toDouble() @@ -35,7 +36,7 @@ internal object SpawnPhysTestBall : ConsoleCommand { ball.setPosition(mouseX, mouseY) ball.elasticity = elasticity - Terrarum.ingame!!.addNewActor(ball) + INGAME.addNewActor(ball) } else { printUsage() diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt index 6c1faf2ab..04f5761bc 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo @@ -16,7 +17,7 @@ internal object SpawnPhysTestLunarLander : ConsoleCommand { lander.setPosition(mouseX, mouseY) - Terrarum.ingame!!.addNewActor(lander) + INGAME.addNewActor(lander) } override fun printUsage() { diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt index adb1f20cd..64e175b72 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo import net.torvald.terrarum.modulebasegame.gameactors.DecodeTapestry @@ -17,7 +17,7 @@ internal object SpawnTapestry : ConsoleCommand { } val tapestry = DecodeTapestry(File(args[1])) - Terrarum.ingame!!.addNewActor(tapestry) + INGAME.addNewActor(tapestry) } override fun printUsage() { diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt index 03b357feb..6952fe426 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt @@ -1,10 +1,10 @@ package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.ConsoleNoExport import net.torvald.terrarum.console.Echo -import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch /** @@ -16,7 +16,7 @@ internal object SpawnTikiTorch : ConsoleCommand { val torch = FixtureTikiTorch() torch.setPosition(Terrarum.mouseX, Terrarum.mouseY) - Terrarum.ingame!!.addNewActor(torch) + INGAME.addNewActor(torch) } override fun printUsage() { diff --git a/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt index 93634988f..8b5e88321 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppConfiguration import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.console.ConsoleAlias import net.torvald.terrarum.console.ConsoleCommand @@ -56,13 +56,13 @@ internal object Teleport : ConsoleCommand { // if from == target, ignore the action if (fromActorID == targetActorID) return - if (Terrarum.ingame!!.getActorByID(fromActorID) !is ActorWithBody || - Terrarum.ingame!!.getActorByID(targetActorID) !is ActorWithBody) { + if (INGAME.getActorByID(fromActorID) !is ActorWithBody || + INGAME.getActorByID(targetActorID) !is ActorWithBody) { throw IllegalArgumentException() } else { - fromActor = Terrarum.ingame!!.getActorByID(fromActorID) as ActorWithBody - targetActor = Terrarum.ingame!!.getActorByID(targetActorID) as ActorWithBody + fromActor = INGAME.getActorByID(fromActorID) as ActorWithBody + targetActor = INGAME.getActorByID(targetActorID) as ActorWithBody } } catch (e: NumberFormatException) { @@ -93,11 +93,11 @@ internal object Teleport : ConsoleCommand { y = args[4].toInt() * TILE_SIZE + TILE_SIZE / 2 val actorID = args[1].toInt() - if (Terrarum.ingame!!.getActorByID(actorID) !is ActorWithBody) { + if (INGAME.getActorByID(actorID) !is ActorWithBody) { throw IllegalArgumentException() } else { - actor = Terrarum.ingame!!.getActorByID(actorID) as ActorWithBody + actor = INGAME.getActorByID(actorID) as ActorWithBody } } catch (e: NumberFormatException) { diff --git a/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt b/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt index 85665d33c..1306abd94 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.INGAME import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo @@ -20,14 +20,14 @@ internal object Zoom : ConsoleCommand { return } - if (zoom < Terrarum.ingame!!.ZOOM_MINIMUM) { - zoom = Terrarum.ingame!!.ZOOM_MINIMUM + if (zoom < INGAME.ZOOM_MINIMUM) { + zoom = INGAME.ZOOM_MINIMUM } - else if (zoom > Terrarum.ingame!!.ZOOM_MAXIMUM) { - zoom = Terrarum.ingame!!.ZOOM_MAXIMUM + else if (zoom > INGAME.ZOOM_MAXIMUM) { + zoom = INGAME.ZOOM_MAXIMUM } - Terrarum.ingame!!.screenZoom = zoom + INGAME.screenZoom = zoom System.gc() diff --git a/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt index 7b11937b6..9a2618925 100644 --- a/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt +++ b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt @@ -88,7 +88,7 @@ class ActorValueTracker constructor() : JFrame() { actorValue = actor!!.actorValue } else if (actorIDField.text.isNotBlank()) { - actor = Terrarum.ingame!!.getActorByID(actorIDField.text.toInt()) as ActorWithBody + actor = INGAME.getActorByID(actorIDField.text.toInt()) as ActorWithBody actorValue = actor!!.actorValue } } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index 7e8d2f199..d5d4d020c 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -161,7 +161,7 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L var isJumpDown = false; protected set var isJumpJustDown = false; protected set // TODO if jump key is held in current update frame protected inline val isGamer: Boolean - get() = if (Terrarum.ingame == null) false else this == Terrarum.ingame!!.actorNowPlaying + get() = if (Terrarum.ingame == null) false else this == INGAME.actorNowPlaying private var jumpJustPressedLatched = false diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt index d953e373e..94f0eccf1 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt @@ -139,7 +139,7 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange { this.hitbox.setFromWidthHeight(posX * TILE_SIZED, posY * TILE_SIZED, blockBox.width * TILE_SIZED, blockBox.height * TILE_SIZED) // actually add this actor into the world - Terrarum.ingame!!.addNewActor(this) + INGAME.addNewActor(this) return true diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt index 81b7a5665..4ee7e0c0d 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt @@ -81,7 +81,7 @@ internal class UIStorageChest : UICanvas( override fun getNegotiator() = negotiator override fun getFixtureInventory(): FixtureInventory = chestInventory - override fun getPlayerInventory(): FixtureInventory = Terrarum.ingame!!.actorNowPlaying!!.inventory + override fun getPlayerInventory(): FixtureInventory = INGAME.actorNowPlaying!!.inventory private lateinit var catBar: UIItemInventoryCatBar private lateinit var itemListChest: UIItemInventoryItemGrid @@ -151,7 +151,7 @@ internal class UIStorageChest : UICanvas( itemListPlayer = UIItemInventoryItemGrid( this, catBar, - { Terrarum.ingame!!.actorNowPlaying!!.inventory }, // literally a player's inventory + { INGAME.actorNowPlaying!!.inventory }, // literally a player's inventory INVENTORY_CELLS_OFFSET_X - halfSlotOffset + (listGap + UIItemInventoryElem.height) * 7, INVENTORY_CELLS_OFFSET_Y, 6, CELLS_VRT, diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt index af1e45f08..72f677187 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.modulebasegame.gameactors +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.AIControlled import net.torvald.terrarum.gameactors.AVKey @@ -52,7 +53,7 @@ open class HumanoidNPC : ActorHumanoid, AIControlled, CanBeAnItem { try { // place the actor to the world this@HumanoidNPC.setPosition(Terrarum.mouseX, Terrarum.mouseY) - Terrarum.ingame!!.addNewActor(this@HumanoidNPC) + INGAME.addNewActor(this@HumanoidNPC) // successful return true } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt index 1a522ea18..3b7750415 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt @@ -2,6 +2,7 @@ package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.gameactors.ActorWithBody @@ -33,13 +34,13 @@ class PhysTestBall : ActorWithBody(RenderOrder.MIDDLE, PhysProperties.PHYSICS_OB ) it.circle( - hitbox.startX.toFloat() + (Terrarum.ingame!!.world).width * TILE_SIZE - 1f, + hitbox.startX.toFloat() + (INGAME.world).width * TILE_SIZE - 1f, hitbox.startY.toFloat() - 1f, hitbox.width.toFloat() ) it.circle( - hitbox.startX.toFloat() - (Terrarum.ingame!!.world).width * TILE_SIZE - 1f, + hitbox.startX.toFloat() - (INGAME.world).width * TILE_SIZE - 1f, hitbox.startY.toFloat() - 1f, hitbox.width.toFloat() ) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt index cc06fde10..3cbcc86e4 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt @@ -83,7 +83,7 @@ open class ProjectileSimple : ActorWithBody, Luminous, Projectile { lifetimeCounter += delta if (walledTop || walledBottom || walledRight || walledLeft || lifetimeCounter >= lifetimeMax || // stuck check - BlockCodex[(Terrarum.ingame!!.world).getTileFromTerrain(feetPosTile.x, feetPosTile.y) ?: Block.STONE].isSolid + BlockCodex[(INGAME.world).getTileFromTerrain(feetPosTile.x, feetPosTile.y) ?: Block.STONE].isSolid ) { flagDespawn() } @@ -103,13 +103,13 @@ open class ProjectileSimple : ActorWithBody, Luminous, Projectile { /*batch.end() Terrarum.inShapeRenderer { // draw trail of solid colour (Terraria style maybe?) - it.lineWidth = 2f * Terrarum.ingame!!.screenZoom + it.lineWidth = 2f * INGAME.screenZoom g.drawGradientLine( - hitbox.centeredX.toFloat() * Terrarum.ingame!!.screenZoom, - hitbox.centeredY.toFloat() * Terrarum.ingame!!.screenZoom, + hitbox.centeredX.toFloat() * INGAME.screenZoom, + hitbox.centeredY.toFloat() * INGAME.screenZoom, displayColour, - posPre.x.toFloat() * Terrarum.ingame!!.screenZoom, - posPre.y.toFloat() * Terrarum.ingame!!.screenZoom, + posPre.x.toFloat() * INGAME.screenZoom, + posPre.y.toFloat() * INGAME.screenZoom, colourTail ) } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt index 48b7d0bde..3f09cd937 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt @@ -11,7 +11,7 @@ import net.torvald.terrarum.* class ThreadActorUpdate(val startIndex: Int, val endIndex: Int) : Callable { override fun call() { for (i in startIndex..endIndex) { - val it = Terrarum.ingame!!.actorContainerActive[i] + val it = INGAME.actorContainerActive[i] it.update(App.UPDATE_RATE) if (it is Pocketed) { diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt index 74ad3ffc9..1d2997608 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt @@ -38,26 +38,26 @@ object PickaxeCore { // return false if hitting actors // ** below is commented out -- don't make actors obstruct the way of digging ** /*var ret1 = true - Terrarum.ingame!!.actorContainerActive.forEach { + INGAME.actorContainerActive.forEach { if (it is ActorWBMovable && it.hIntTilewiseHitbox.intersects(mousePoint)) ret1 = false // return is not allowed here } if (!ret1) return ret1*/ // return false if here's no tile - if (Block.AIR == (Terrarum.ingame!!.world).getTileFromTerrain(mouseTileX, mouseTileY)) + if (Block.AIR == (INGAME.world).getTileFromTerrain(mouseTileX, mouseTileY)) return false // filter passed, do the job val swingDmgToFrameDmg = delta.toDouble() / actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! - (Terrarum.ingame!!.world).inflictTerrainDamage( + (INGAME.world).inflictTerrainDamage( mouseTileX, mouseTileY, Calculate.pickaxePower(player, item.material) * swingDmgToFrameDmg )?.let { tileBroken -> val drop = BlockCodex[tileBroken].drop if (drop.isNotBlank()) { - Terrarum.ingame!!.addNewActor(DroppedItem(drop, mouseTileX * TILE_SIZE, mouseTileY * TILE_SIZE)) + INGAME.addNewActor(DroppedItem(drop, mouseTileX * TILE_SIZE, mouseTileY * TILE_SIZE)) } } diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt index 94f6d68f1..c6ba7ede5 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt @@ -45,7 +45,7 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) { sb.clear() - Terrarum.ingame!!.world.getAllWiringGraph(mx, my)?.forEach { (itemID, simCell) -> + INGAME.world.getAllWiringGraph(mx, my)?.forEach { (itemID, simCell) -> if (sb.isNotEmpty()) sb.append('\n') val connexionIcon = (simCell.cnx + 0xE0A0).toChar() @@ -57,7 +57,7 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) { sb.append("$connexionIcon $wireName") sb.append("\nE: $emit") recv.forEach { - val src = Terrarum.ingame!!.world.getWireEmitStateOf(it.src.x, it.src.y, itemID)!! + val src = INGAME.world.getWireEmitStateOf(it.src.x, it.src.y, itemID)!! sb.append("\nR: $src $EMDASH d ${it.dist}") } } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt index f1f02d06c..37202af04 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt @@ -4,10 +4,7 @@ import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.App -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TitleScreen -import net.torvald.terrarum.blendNormal +import net.torvald.terrarum.* import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT @@ -86,7 +83,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { full.handler.lockToggle() full.lockTransition() // save the game - WriteSavegame(Terrarum.ingame!!.savegameArchive, File(App.defaultSaveDir, "${App.getTIME_T()}"), Terrarum.ingame!! as TerrarumIngame) { + WriteSavegame(INGAME.savegameArchive, File(App.defaultSaveDir, "${App.getTIME_T()}"), Terrarum.ingame!! as TerrarumIngame) { // callback: System.gc() screen = 0 diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index fe99a3108..eeaf7880e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -27,7 +27,7 @@ class UIInventoryFull( ) : UICanvas(toggleKeyLiteral, toggleButtonLiteral, customPositioning, doNotWarnConstant) { val actor: ActorHumanoid - get() = Terrarum.ingame!!.actorNowPlaying!! + get() = INGAME.actorNowPlaying!! override var width: Int = App.scr.width override var height: Int = App.scr.height diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt index 766891ad9..0dcf9d5f8 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt @@ -34,7 +34,7 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { private val minimapRerenderInterval = .5f override fun updateUI(delta: Float) { - MinimapComposer.setWorld(Terrarum.ingame!!.world) + MinimapComposer.setWorld(INGAME.world) MinimapComposer.update() minimapRerenderTimer += Gdx.graphics.deltaTime } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt index edcae9b31..92e8afdca 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt @@ -90,7 +90,7 @@ class UIItemInventoryEquippedView( // sprite - val sprite = Terrarum.ingame!!.actorNowPlaying?.sprite + val sprite = INGAME.actorNowPlaying?.sprite sprite?.let { blendNormal(batch) @@ -119,7 +119,7 @@ class UIItemInventoryEquippedView( internal fun rebuild() { rebuildList = false - Terrarum.ingame!!.actorNowPlaying?.inventory?.let { + INGAME.actorNowPlaying?.inventory?.let { // sort by equip position // fill the grid from fastest index, make no gap in-between of slots diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt index f05cb7d9a..b5da3e244 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt @@ -37,7 +37,7 @@ class UITierOneWatch() : UICanvas() { //get() = if (ELon) lcdLitColELon else lcdLitColELoff private val worldTime: WorldTime - get() = Terrarum.ingame!!.world.worldTime + get() = INGAME.world.worldTime override fun updateUI(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt index d1ace2119..69b34a738 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt @@ -63,8 +63,8 @@ class UIVitalMetre( /*if (vitalGetterVal() != null && vitalGetterMax() != null && player != null) { g.translate( - Terrarum.ingame!!.screenZoom * (player.centrePosPoint.x.toFloat() - (WorldCamera.x)), - Terrarum.ingame!!.screenZoom * (player.centrePosPoint.y.toFloat() - (WorldCamera.y)) + INGAME.screenZoom * (player.centrePosPoint.x.toFloat() - (WorldCamera.x)), + INGAME.screenZoom * (player.centrePosPoint.y.toFloat() - (WorldCamera.y)) ) diff --git a/src/net/torvald/terrarum/realestate/LandUtil.kt b/src/net/torvald/terrarum/realestate/LandUtil.kt index bb9e7338d..e163a0f47 100644 --- a/src/net/torvald/terrarum/realestate/LandUtil.kt +++ b/src/net/torvald/terrarum/realestate/LandUtil.kt @@ -1,8 +1,8 @@ package net.torvald.terrarum.realestate import net.torvald.terrarum.FactionCodex +import net.torvald.terrarum.INGAME import net.torvald.terrarum.Point2i -import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameworld.BlockAddress import net.torvald.terrarum.gameworld.GameWorld @@ -48,7 +48,7 @@ object LandUtil { */ fun resolveOwner(id: Int): Any = if (id >= 0) - Terrarum.ingame!!.getActorByID(id) + INGAME.getActorByID(id) else FactionCodex.getFactionByID(id) diff --git a/src/net/torvald/terrarum/weather/WeatherMixer.kt b/src/net/torvald/terrarum/weather/WeatherMixer.kt index 4089e4664..bb6eaa651 100644 --- a/src/net/torvald/terrarum/weather/WeatherMixer.kt +++ b/src/net/torvald/terrarum/weather/WeatherMixer.kt @@ -104,7 +104,7 @@ internal object WeatherMixer : RNGConsumer { ) (Terrarum.ingame!! as TerrarumIngame).addParticle(rainParticle) } - //globalLightNow.set(getGlobalLightOfTime((Terrarum.ingame!!.world).time.todaySeconds).mul(0.3f, 0.3f, 0.3f, 0.58f)) + //globalLightNow.set(getGlobalLightOfTime((INGAME.world).time.todaySeconds).mul(0.3f, 0.3f, 0.3f, 0.58f)) }