From f7ff220967c761c436ed75b45a1cdc42f2c4e7f3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 3 May 2020 10:43:31 +0900 Subject: [PATCH] terragen: making sky-to-ground ratio to be constant --- lib/TerrarumSansBitmap.jar | Bin 83945 -> 83949 bytes .../modulebasegame/worldgenerator/Terragen.kt | 9 +++++--- .../modulebasegame/worldgenerator/Worldgen.kt | 21 ++---------------- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/lib/TerrarumSansBitmap.jar b/lib/TerrarumSansBitmap.jar index 593e459c820c7e4a73a996743db03c3ca2d1044d..76a649bce96fedf690e242aabfb9660f80296271 100644 GIT binary patch delta 25972 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 delta 25913 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 = arrayOfNulls(genSlices) override var generationStarted: Boolean = false override val generationDone: Boolean get() = generationStarted && genFutures.fold(true) { acc, f -> acc and (f?.isDone ?: true) } + private val YHEIGHT_MAGIC = 2800.0 / 3.0 + private val YHEIGHT_DIVISOR = 2.0 / 7.0 + override fun run() { generationStarted = true @@ -38,7 +41,8 @@ class Terragen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, par val sampleOffset = world.width / 8.0 val sampleX = sin(sampleTheta) * sampleOffset + sampleOffset // plus sampleOffset to make only val sampleZ = cos(sampleTheta) * sampleOffset + sampleOffset // positive points are to be sampled - val sampleY = y.toDouble() + val sampleY = y - (world.height - YHEIGHT_MAGIC) * YHEIGHT_DIVISOR // Q&D offsetting to make ratio of sky:ground to be constant + // DEBUG NOTE: it is the OFFSET FROM THE IDEAL VALUE (observed land height - (HEIGHT * DIVISOR)) that must be constant val noise = localJoise.map { it.get(sampleX, sampleY, sampleZ) } draw(x, y, noise, world) @@ -50,7 +54,6 @@ class Terragen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, par ThreadExecutor.join() printdbg(this, "Waking up Worldgen") - //Worldgen.wake() } diff --git a/src/net/torvald/terrarum/modulebasegame/worldgenerator/Worldgen.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/Worldgen.kt index e7710deb1..a1c0bc976 100644 --- a/src/net/torvald/terrarum/modulebasegame/worldgenerator/Worldgen.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/Worldgen.kt @@ -28,31 +28,19 @@ object Worldgen { ) - for (i in 0 until jobs.size) { + for (i in jobs.indices) { printdbg(this, "Worldgen: job #$i") val it = jobs[i] AppLoader.getLoadScreen().addMessage(it.loadingScreenName) it.theWork.run() - - // wait - //while (!it.theWork.generationDone) { } // busy wait - //synchronized(threadLock) { - // threadLock.wait() - //} } printdbg(this, "Generation job finished") } - fun wake() { - synchronized(threadLock) { - threadLock.notifyAll() - } - } - private data class Work(val loadingScreenName: String, val theWork: Gen) } @@ -60,12 +48,7 @@ object Worldgen { abstract class Gen(val world: GameWorld, val seed: Long, val params: Any) { abstract var generationStarted: Boolean abstract val generationDone: Boolean - open fun run() { - /*if (generationDone) { - // worldgen.wake() - Worldgen.threadLock.notifyAll() - }*/ - } + open fun run() { } } data class WorldgenParams(