From 29de011f1431002fb6d05b41bfef7a47e0900a83 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Sun, 25 Jun 2023 01:21:59 +0200 Subject: [PATCH] optimize collision physics --- .../data/registries/shapes/voxel/AbstractVoxelShape.kt | 2 +- .../minosoft/data/registries/shapes/voxel/VoxelShape.kt | 2 +- .../bixilon/minosoft/physics/parts/CollisionMovementPhysics.kt | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/AbstractVoxelShape.kt b/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/AbstractVoxelShape.kt index d35de7dbc..e486484e4 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/AbstractVoxelShape.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/AbstractVoxelShape.kt @@ -41,7 +41,7 @@ abstract class AbstractVoxelShape : Iterable { } private inline fun modify(modify: (AABB) -> AABB): AbstractVoxelShape { - val result: MutableSet = ObjectOpenHashSet() + val result: MutableList = ArrayList() for (aabb in this) { result += modify(aabb) } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/VoxelShape.kt b/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/VoxelShape.kt index 8ebd89fb4..5766e0c96 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/VoxelShape.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/shapes/voxel/VoxelShape.kt @@ -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, + val aabb: Collection, ) : AbstractVoxelShape() { override val aabbs: Int = aabb.size diff --git a/src/main/java/de/bixilon/minosoft/physics/parts/CollisionMovementPhysics.kt b/src/main/java/de/bixilon/minosoft/physics/parts/CollisionMovementPhysics.kt index 970d52d23..08fec5f33 100644 --- a/src/main/java/de/bixilon/minosoft/physics/parts/CollisionMovementPhysics.kt +++ b/src/main/java/de/bixilon/minosoft/physics/parts/CollisionMovementPhysics.kt @@ -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 = ObjectOpenHashSet() + val shapes: ArrayList = ArrayList() // TODO: add entity collisions (boat, shulker) // TODO: add world border collision shape