mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 11:54:59 -04:00
optimize collision physics
This commit is contained in:
parent
87112de245
commit
29de011f14
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user