optimize collision physics

This commit is contained in:
Bixilon 2023-06-25 01:21:59 +02:00
parent 87112de245
commit 29de011f14
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 3 additions and 4 deletions

View File

@ -41,7 +41,7 @@ abstract class AbstractVoxelShape : Iterable<AABB> {
}
private inline fun modify(modify: (AABB) -> AABB): AbstractVoxelShape {
val result: MutableSet<AABB> = ObjectOpenHashSet()
val result: MutableList<AABB> = ArrayList()
for (aabb in this) {
result += modify(aabb)
}

View File

@ -18,7 +18,7 @@ import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
class VoxelShape(
val aabb: Set<AABB>,
val aabb: Collection<AABB>,
) : AbstractVoxelShape() {
override val aabbs: Int = aabb.size

View File

@ -32,13 +32,12 @@ import de.bixilon.minosoft.data.world.iterator.WorldIterator
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
import de.bixilon.minosoft.physics.entities.EntityPhysics
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
import kotlin.math.abs
object CollisionMovementPhysics {
fun World.collectCollisions(context: CollisionContext, movement: Vec3d, aabb: AABB, chunk: Chunk?, predicate: CollisionPredicate? = null): VoxelShape {
val shapes: MutableSet<AABB> = ObjectOpenHashSet()
val shapes: ArrayList<AABB> = ArrayList()
// TODO: add entity collisions (boat, shulker)
// TODO: add world border collision shape