summaryrefslogtreecommitdiff
path: root/composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-10-26 21:38:22 -0700
committerElizabeth Hunt <me@liz.coffee>2025-10-26 21:39:58 -0700
commita8e5e723b7e1891c9b352261a3ee4c3d3563e8cf (patch)
tree853df79c877d37d7e5d25f52b301aedcc3d5db55 /composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt
parent395aa7d1c312e495517701be11c21425d9a5838e (diff)
downloadabstraction-engine-kt-a8e5e723b7e1891c9b352261a3ee4c3d3563e8cf.tar.gz
abstraction-engine-kt-a8e5e723b7e1891c9b352261a3ee4c3d3563e8cf.zip
Checkpoint twoHEADmain
Diffstat (limited to 'composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt')
-rw-r--r--composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt25
1 files changed, 21 insertions, 4 deletions
diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt b/composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt
index ffae10b..0b4818d 100644
--- a/composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt
+++ b/composeApp/src/commonMain/kotlin/coffee/liz/ecs/physics/Components.kt
@@ -4,12 +4,29 @@ import coffee.liz.ecs.Component
import coffee.liz.ecs.Rect
import coffee.liz.ecs.Vec2
-data class Position(val vec2: Vec2): Component
-data class Velocity(val vec2: Vec2) : Component
-data class Acceleration(val vec2: Vec2) : Component
+data class Position(
+ val position: Vec2,
+) : Component
+
+data class Velocity(
+ val velocity: Vec2,
+) : Component
+
+data class Acceleration(
+ val acceleration: Vec2,
+) : Component
+
+interface CollisionGroup<TGroup> {
+ val collisionGroup: TGroup
+ val collideInto: Set<TGroup>
+}
/**
* @param hitboxes a collection of hitboxes to check collisions against relative to [Rect.topLeft] as the top left of
* [Position].
*/
-data class Collidable(val hitboxes: Collection<Rect>): Component
+data class Colliding<T : Enum<*>>(
+ val hitboxes: Collection<Rect>,
+ val group: CollisionGroup<T>,
+ val propagateMovement: Boolean = true,
+) : Component