mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 18:34:56 -04:00
server light receiving
This feature is disabled anyways, because it might not be correct and minosofts light engine is fast enough.
This commit is contained in:
parent
fccc1e2782
commit
65799bb081
@ -59,6 +59,8 @@ class SectionLight(
|
||||
if (level.block <= 1) return // can not decrease any further
|
||||
val next = level.decrease()
|
||||
|
||||
// TODO: sky (trace and heightmap), check if light propagates in a direction
|
||||
|
||||
if (position.x > 0) trace(position.minusX(), next) else section.neighbours?.get(Directions.O_WEST)?.light?.trace(position.with(x = ProtocolDefinition.SECTION_MAX_X), next)
|
||||
if (position.x < ProtocolDefinition.SECTION_MAX_X) trace(position.plusX(), next) else section.neighbours?.get(Directions.O_EAST)?.light?.trace(position.with(x = 0), next)
|
||||
|
||||
@ -111,5 +113,7 @@ class SectionLight(
|
||||
}
|
||||
|
||||
|
||||
override fun update(array: LightArray) = TODO("Save light from server")
|
||||
override fun update(array: LightArray) {
|
||||
System.arraycopy(array.array, 0, this.light.array, 0, array.array.size)
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ package de.bixilon.minosoft.data.world.chunk.light.section.border
|
||||
import de.bixilon.minosoft.data.world.chunk.ChunkSection
|
||||
import de.bixilon.minosoft.data.world.chunk.chunk.Chunk
|
||||
import de.bixilon.minosoft.data.world.chunk.light.section.AbstractSectionLight
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightArray
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightLevel
|
||||
import de.bixilon.minosoft.data.world.chunk.update.AbstractWorldUpdate
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
@ -49,7 +48,5 @@ abstract class BorderSectionLight(
|
||||
return null
|
||||
}
|
||||
|
||||
override fun propagate() = TODO()
|
||||
|
||||
override fun update(array: LightArray) = TODO("Save light from server")
|
||||
override fun propagate() = Unit // TODO
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.world.chunk.light.section.border
|
||||
|
||||
import de.bixilon.kutil.array.ArrayUtil.getFirst
|
||||
import de.bixilon.minosoft.data.world.chunk.chunk.Chunk
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightArray
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightLevel
|
||||
import de.bixilon.minosoft.data.world.positions.InSectionPosition
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
@ -30,4 +31,8 @@ class BottomSectionLight(
|
||||
|
||||
override fun getNearestSection() = chunk.sections.getFirst()
|
||||
override fun Chunk.getBorderLight() = this.light.bottom
|
||||
|
||||
override fun update(array: LightArray) {
|
||||
System.arraycopy(array.array, InSectionPosition(0, ProtocolDefinition.SECTION_MAX_Y, 0).index, this.light, 0, ProtocolDefinition.SECTION_WIDTH_X * ProtocolDefinition.SECTION_WIDTH_Z)
|
||||
}
|
||||
}
|
||||
|
@ -15,8 +15,10 @@ package de.bixilon.minosoft.data.world.chunk.light.section.border
|
||||
|
||||
import de.bixilon.kutil.array.ArrayUtil.getLast
|
||||
import de.bixilon.minosoft.data.world.chunk.chunk.Chunk
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightArray
|
||||
import de.bixilon.minosoft.data.world.chunk.light.types.LightLevel
|
||||
import de.bixilon.minosoft.data.world.positions.InSectionPosition
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
|
||||
class TopSectionLight(
|
||||
chunk: Chunk,
|
||||
@ -29,4 +31,9 @@ class TopSectionLight(
|
||||
|
||||
override fun getNearestSection() = chunk.sections.getLast()
|
||||
override fun Chunk.getBorderLight() = this.light.top
|
||||
|
||||
|
||||
override fun update(array: LightArray) {
|
||||
System.arraycopy(array.array, InSectionPosition(0, 0, 0).index, this.light, 0, ProtocolDefinition.SECTION_WIDTH_X * ProtocolDefinition.SECTION_WIDTH_Z)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user