From 64475455a8d4f88fe599a825d2048509b4b22572 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 25 Oct 2021 10:58:18 +0900 Subject: [PATCH] wires are simulated on every other update --- .../torvald/terrarum/gameworld/WorldSimulator.kt | 14 ++++++++++---- .../terrarum/modulebasegame/TerrarumIngame.kt | 10 +++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt index 7b1da3b45..72d40a900 100644 --- a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt +++ b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt @@ -8,6 +8,7 @@ import net.torvald.terrarum.blockproperties.Fluid import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.Controllable import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.TerrarumIngame.Companion.inUpdateRange import net.torvald.terrarum.modulebasegame.gameactors.* import org.dyn4j.geometry.Vector2 @@ -54,8 +55,8 @@ object WorldSimulator { /** Bottom-right point */ var updateYTo = 0 - private val ingame: IngameInstance - get() = Terrarum.ingame!! + private val ingame: TerrarumIngame + get() = Terrarum.ingame!! as TerrarumIngame private val world: GameWorld get() = ingame.world @@ -85,8 +86,13 @@ object WorldSimulator { App.measureDebugTime("WorldSimulator.fallables") { displaceFallables(delta) } - App.measureDebugTime("WorldSimulator.wires") { - simulateWires(delta) + if (ingame.WORLD_UPDATE_TIMER % 2 == 1) { + App.measureDebugTime("WorldSimulator.wires") { + simulateWires(delta) + } + } + else { + // TODO update logic } App.measureDebugTime("WorldSimulator.collisionDroppedItem") { collideDroppedItems() diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index 915d5a8a1..654ff1531 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -32,12 +32,12 @@ import net.torvald.terrarum.modulebasegame.worldgenerator.RoguelikeRandomiser import net.torvald.terrarum.modulebasegame.worldgenerator.Worldgen import net.torvald.terrarum.modulebasegame.worldgenerator.WorldgenParams import net.torvald.terrarum.realestate.LandUtil +import net.torvald.terrarum.savegame.DiskSkimmer +import net.torvald.terrarum.savegame.VDUtil import net.torvald.terrarum.serialise.Common import net.torvald.terrarum.serialise.LoadSavegame import net.torvald.terrarum.serialise.ReadActor import net.torvald.terrarum.serialise.WriteSavegame -import net.torvald.terrarum.savegame.DiskSkimmer -import net.torvald.terrarum.savegame.VDUtil import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UIAutosaveNotifier import net.torvald.terrarum.ui.UICanvas @@ -59,6 +59,8 @@ import java.util.concurrent.locks.ReentrantLock open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { + var WORLD_UPDATE_TIMER = Random().nextInt(1020) + 1; private set + var historicalFigureIDBucket: ArrayList = ArrayList() @@ -671,7 +673,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { // define custom update rate - val updateRate = if (KeyToggler.isOn(Input.Keys.APOSTROPHE)) 1f / 8f else App.UPDATE_RATE + val updateRate = App.UPDATE_RATE // if (KeyToggler.isOn(Input.Keys.APOSTROPHE)) 1f / 8f else App.UPDATE_RATE // ASYNCHRONOUS UPDATE AND RENDER // @@ -776,6 +778,8 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { } oldCamX = WorldCamera.x + + WORLD_UPDATE_TIMER += 1 } if (!paused || newWorldLoadedLatch) {