mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-11 22:31:52 +09:00
wires are simulated on every other update
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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<Int> = ArrayList<Int>()
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user