diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/Fluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/Fluid.kt index 721aa5747..a87d4d4ae 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/Fluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/Fluid.kt @@ -24,6 +24,7 @@ import de.bixilon.minosoft.data.world.chunk.chunk.Chunk import de.bixilon.minosoft.data.world.positions.BlockPosition import de.bixilon.minosoft.gui.rendering.models.fluid.FluidModel import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY +import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY_INSTANCE import de.bixilon.minosoft.physics.entities.living.LivingEntityPhysics import de.bixilon.minosoft.physics.input.MovementInput import de.bixilon.minosoft.protocol.network.session.play.PlaySession @@ -72,7 +73,7 @@ abstract class Fluid(override val identifier: ResourceLocation) : RegistryItem() // ToDo: Falling fluid - if (velocity == Vec3d.EMPTY) { + if (velocity == Vec3d.EMPTY_INSTANCE) { return velocity } diff --git a/src/main/java/de/bixilon/minosoft/data/world/iterator/BlockPair.kt b/src/main/java/de/bixilon/minosoft/data/world/iterator/BlockPair.kt index 9406399f3..461033a9d 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/iterator/BlockPair.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/iterator/BlockPair.kt @@ -18,7 +18,7 @@ import de.bixilon.minosoft.data.world.chunk.chunk.Chunk import de.bixilon.minosoft.data.world.positions.BlockPosition data class BlockPair( - val position: BlockPosition, - val state: BlockState, - val chunk: Chunk, + var position: BlockPosition, + var state: BlockState, + var chunk: Chunk, ) diff --git a/src/main/java/de/bixilon/minosoft/data/world/iterator/WorldIterator.kt b/src/main/java/de/bixilon/minosoft/data/world/iterator/WorldIterator.kt index 15330a465..8d10d4d11 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/iterator/WorldIterator.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/iterator/WorldIterator.kt @@ -31,6 +31,7 @@ class WorldIterator( private val world: World, private var chunk: Chunk? = null, ) : Iterator { + private var pair: BlockPair? = null private var next: BlockPair? = null private var revision = -1 @@ -61,7 +62,15 @@ class WorldIterator( } val state = chunk[position.inChunkPosition] ?: continue - this.next = BlockPair(position, state, chunk) + + val pair = pair ?: BlockPair(position, state, chunk) + this.pair = pair + + pair.position = position + pair.state = state + pair.chunk = chunk + this.next = pair + return true } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3dUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3dUtil.kt index 1c7d0c456..68f5899e3 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3dUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3dUtil.kt @@ -29,6 +29,9 @@ import kotlin.math.abs object Vec3dUtil { const val MARGIN = 0.003 + private val empty = Vec3d() + + val Vec3d.Companion.EMPTY_INSTANCE get() = empty val Vec3d.Companion.MIN: Vec3d get() = Vec3d(Double.MIN_VALUE, Double.MIN_VALUE, Double.MIN_VALUE)