mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-16 19:05:02 -04:00
more memory patches
This commit is contained in:
parent
85f8be3331
commit
8035ca315d
@ -24,7 +24,7 @@ data class VoxelSide(
|
|||||||
private val hashCode = Objects.hashCode(min.hashCode(), max.hashCode())
|
private val hashCode = Objects.hashCode(min.hashCode(), max.hashCode())
|
||||||
|
|
||||||
constructor(minX: Float, minZ: Float, maxX: Float, maxZ: Float) : this(Vec2(minOf(minX, maxX), minOf(minZ, maxZ)), Vec2(maxOf(minX, maxX), maxOf(minZ, maxZ)))
|
constructor(minX: Float, minZ: Float, maxX: Float, maxZ: Float) : this(Vec2(minOf(minX, maxX), minOf(minZ, maxZ)), Vec2(maxOf(minX, maxX), maxOf(minZ, maxZ)))
|
||||||
constructor(minX: Double, minZ: Double, maxX: Double, maxZ: Double) : this(Vec2(minOf(minX, maxX), minOf(minZ, maxZ)), Vec2(maxOf(minX, maxX), maxOf(minZ, maxZ)))
|
constructor(minX: Double, minZ: Double, maxX: Double, maxZ: Double) : this(Vec2(minOf(minX, maxX).toFloat(), minOf(minZ, maxZ).toFloat()), Vec2(maxOf(minX, maxX).toFloat(), maxOf(minZ, maxZ).toFloat()))
|
||||||
|
|
||||||
|
|
||||||
fun touches(set: VoxelSideSet): Boolean {
|
fun touches(set: VoxelSideSet): Boolean {
|
||||||
@ -96,7 +96,10 @@ data class VoxelSide(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (changes == 0) {
|
if (changes == 0) {
|
||||||
return VoxelSideSet(setOf(this, side))
|
val set: MutableSet<VoxelSide> = ObjectOpenHashSet(2)
|
||||||
|
set += this
|
||||||
|
set += side
|
||||||
|
return VoxelSideSet(set)
|
||||||
}
|
}
|
||||||
|
|
||||||
return VoxelSideSet(setOf(VoxelSide(minX, minY, maxX, maxY)))
|
return VoxelSideSet(setOf(VoxelSide(minX, minY, maxX, maxY)))
|
||||||
|
@ -15,13 +15,14 @@ package de.bixilon.minosoft.data.registries.shapes.voxel
|
|||||||
|
|
||||||
import de.bixilon.kotlinglm.vec3.Vec3d
|
import de.bixilon.kotlinglm.vec3.Vec3d
|
||||||
import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
|
import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
|
|
||||||
class VoxelShape(
|
class VoxelShape(
|
||||||
val aabb: Set<AABB>,
|
val aabb: Set<AABB>,
|
||||||
) : AbstractVoxelShape() {
|
) : AbstractVoxelShape() {
|
||||||
override val aabbs: Int = aabb.size
|
override val aabbs: Int = aabb.size
|
||||||
|
|
||||||
constructor(vararg aabbs: AABB) : this(aabbs.toSet())
|
constructor(vararg aabbs: AABB) : this(ObjectOpenHashSet(aabbs))
|
||||||
|
|
||||||
constructor(min: Vec3d, max: Vec3d) : this(setOf(AABB(min, max)))
|
constructor(min: Vec3d, max: Vec3d) : this(setOf(AABB(min, max)))
|
||||||
constructor(minX: Double, minY: Double, minZ: Double, maxX: Double, maxY: Double, maxZ: Double) : this(Vec3d(minX, minY, minZ), Vec3d(maxX, maxY, maxZ))
|
constructor(minX: Double, minY: Double, minZ: Double, maxX: Double, maxY: Double, maxZ: Double) : this(Vec3d(minX, minY, minZ), Vec3d(maxX, maxY, maxZ))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user