mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
commit
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -22,7 +22,7 @@ external_resource_packs.zip
|
||||
|
||||
# IntelliJ
|
||||
workspace.xml
|
||||
*/workspace.xml
|
||||
.idea/*
|
||||
|
||||
# Temporary files
|
||||
.tmp*
|
||||
|
||||
@@ -1159,4 +1159,8 @@ public class AppLoader implements ApplicationListener {
|
||||
debugTimers.put(target, l);
|
||||
}
|
||||
}
|
||||
|
||||
public static long getTIME_T() {
|
||||
return System.currentTimeMillis() / 1000L;
|
||||
}
|
||||
}
|
||||
@@ -503,9 +503,7 @@ class UIInventoryFull(
|
||||
if (AppLoader.fontGame.getWidth(listControlHelp) + 2 + controlHintXPos >= encumbBarTextXPos)
|
||||
AppLoader.fontGame.lineHeight
|
||||
else 0f
|
||||
|
||||
printdbg(this, "${AppLoader.fontGame.getWidth(listControlHelp) + 2 + controlHintXPos}; ${encumbBarTextXPos}")
|
||||
|
||||
|
||||
AppLoader.fontGame.draw(batch,
|
||||
encumbranceText,
|
||||
encumbBarTextXPos,
|
||||
|
||||
@@ -5,14 +5,14 @@ import net.torvald.terrarum.gameworld.GameWorld
|
||||
/**
|
||||
* Created by minjaesong on 2019-09-02.
|
||||
*/
|
||||
object Biomegen : Gen {
|
||||
class Biomegen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, params) {
|
||||
override var generationStarted: Boolean
|
||||
get() = TODO("not implemented")
|
||||
set(value) {}
|
||||
override val generationDone: Boolean
|
||||
get() = TODO("not implemented")
|
||||
|
||||
override fun invoke(world: GameWorld, seed: Long, params: Any) {
|
||||
override fun run() {
|
||||
TODO("not implemented")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,13 +12,13 @@ import kotlin.math.sin
|
||||
/**
|
||||
* Created by minjaesong on 2019-07-23.
|
||||
*/
|
||||
object Terragen : Gen {
|
||||
class Terragen(world: GameWorld, seed: Long, params: Any) : Gen(world, seed, params) {
|
||||
|
||||
override var generationStarted: Boolean = false
|
||||
override val generationDone: Boolean
|
||||
get() = generationStarted && ThreadParallel.allFinished()
|
||||
|
||||
override fun invoke(world: GameWorld, seed: Long, params: Any) {
|
||||
override fun run() {
|
||||
val joise = getGenerator(seed, params as TerragenParams)
|
||||
|
||||
(0 until world.width).mapToThreadPoolDirectly(this.javaClass.simpleName) { range ->
|
||||
@@ -38,7 +38,7 @@ object Terragen : Gen {
|
||||
|
||||
ThreadParallel.startAll()
|
||||
generationStarted = true
|
||||
|
||||
super.run()
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package net.torvald.terrarum.modulebasegame.worldgenerator
|
||||
|
||||
import net.torvald.terrarum.AppLoader
|
||||
import net.torvald.terrarum.LoadScreen
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
|
||||
/**
|
||||
@@ -10,24 +12,39 @@ import net.torvald.terrarum.gameworld.GameWorld
|
||||
object Worldgen {
|
||||
|
||||
operator fun invoke(worldIndex: Int, params: WorldgenParams) {
|
||||
|
||||
val world = GameWorld(worldIndex, params.width, params.height, System.currentTimeMillis() / 1000, System.currentTimeMillis() / 1000, 0)
|
||||
val genTime = AppLoader.getTIME_T()
|
||||
val world = GameWorld(worldIndex, params.width, params.height, genTime, genTime, 0)
|
||||
|
||||
val jobs = listOf(
|
||||
Work("Reticulating Splines") { Terragen(world, params.seed, params.terragenParams) },
|
||||
Work("Adding Vegetations") { Biomegen(world, params.seed, params.biomegenParams) }
|
||||
Work("Reticulating Splines", Terragen(world, params.seed, params.terragenParams))
|
||||
//Work("Adding Vegetations") { Biomegen(world, params.seed, params.biomegenParams) }
|
||||
)
|
||||
|
||||
|
||||
for (i in 0 until jobs.size) {
|
||||
val it = jobs[i]
|
||||
|
||||
LoadScreen.addMessage(it.loadingScreenName)
|
||||
it.theWork.run()
|
||||
|
||||
// busy wait
|
||||
while (!it.theWork.generationDone) { }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private data class Work(val loadingScreenName: String, val theWork: () -> Unit)
|
||||
private data class Work(val loadingScreenName: String, val theWork: Gen)
|
||||
|
||||
}
|
||||
|
||||
interface Gen {
|
||||
var generationStarted: Boolean
|
||||
val generationDone: Boolean
|
||||
operator fun invoke(world: GameWorld, seed: Long, params: Any)
|
||||
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data class WorldgenParams(
|
||||
|
||||
Reference in New Issue
Block a user