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