9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2026-01-04 15:41:30 +00:00

improve matter generator once again

This commit is contained in:
Julian Krings
2026-01-01 16:34:52 +01:00
parent d15f7d62d1
commit 40b020fc5d

View File

@@ -27,13 +27,18 @@ interface MatterGenerator {
mantle.write(engine.mantle, x, z, radius, multicore).use { writer ->
for (pair in components) {
radius(x, z, pair.b) { x, z ->
for (c in pair.a) {
launch(multicore) {
writer.acquireChunk(x, z)
.raiseFlagSuspend(MantleFlag.PLANNED, c.flag) {
runBlocking {
radius(x, z, pair.b) { x, z ->
val mc = writer.acquireChunk(x, z)
if (mc.isFlagged(MantleFlag.PLANNED))
return@radius
for (c in pair.a) {
launch(multicore) {
mc.raiseFlagSuspend(MantleFlag.PLANNED, c.flag) {
c.generateLayer(writer, x, z, context)
}
}
}
}
}
@@ -46,7 +51,7 @@ interface MatterGenerator {
}
}
private inline fun radius(x: Int, z: Int, radius: Int, crossinline task: suspend CoroutineScope.(Int, Int) -> Unit) = runBlocking {
private inline fun radius(x: Int, z: Int, radius: Int, crossinline task: (Int, Int) -> Unit) {
for (i in -radius..radius) {
for (j in -radius..radius) {
task(x + i, z + j)