From 60df739563c9729a6b591317fa85a749cd4c58a7 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 4 Dec 2019 15:38:32 +0900 Subject: [PATCH] updated Terragen.kt --- .../modulebasegame/worldgenerator/Terragen.kt | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/net/torvald/terrarum/modulebasegame/worldgenerator/Terragen.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/Terragen.kt index 1f66e2400..6098fcfaa 100644 --- a/src/net/torvald/terrarum/modulebasegame/worldgenerator/Terragen.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/Terragen.kt @@ -18,7 +18,9 @@ import kotlin.math.sin */ class Terragen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, params) { - private var genFutures: Array?> = arrayOfNulls(ThreadExecutor.threadCount) + private val genSlices = 1 // world.width / 64 + + private var genFutures: Array?> = arrayOfNulls(genSlices) override var generationStarted: Boolean = false override val generationDone: Boolean get() = generationStarted && genFutures.fold(1) { acc, f -> acc * (f?.isDone ?: true).toInt() } == 1 @@ -29,16 +31,9 @@ class Terragen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, par generationStarted = true // single-threaded impl because I couldn't resolve multithread memory corruption issue... - val slices = 1 // ThreadExecutor.threadCount - (0 until world.width).sliceEvenly(slices).mapIndexed { i, xs -> + (0 until world.width).sliceEvenly(genSlices).mapIndexed { i, xs -> genFutures[i] = ThreadExecutor.submit { for (x in xs) { - - if (AppLoader.IS_DEVELOPMENT_BUILD) { - AppLoader.getLoadScreen().addMessage("Tile draw for x=$x") - //println("Tile draw for x=$x") - } - for (y in 0 until world.height) { val sampleTheta = (x.toDouble() / world.width) * TWO_PI val sampleOffset = world.width / 8.0