summaryrefslogtreecommitdiff
path: root/composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation
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/commonTest/kotlin/coffee/liz/ecs/animation
parent395aa7d1c312e495517701be11c21425d9a5838e (diff)
downloadabstraction-engine-kt-main.tar.gz
abstraction-engine-kt-main.zip
Checkpoint twoHEADmain
Diffstat (limited to 'composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation')
-rw-r--r--composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation/AnimationSystemTest.kt115
1 files changed, 62 insertions, 53 deletions
diff --git a/composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation/AnimationSystemTest.kt b/composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation/AnimationSystemTest.kt
index 588e245..ceaef33 100644
--- a/composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation/AnimationSystemTest.kt
+++ b/composeApp/src/commonTest/kotlin/coffee/liz/ecs/animation/AnimationSystemTest.kt
@@ -4,41 +4,43 @@ import coffee.liz.ecs.DAGWorld
import kotlin.test.*
class AnimationSystemTest {
-
- private fun createTestSpriteSheet(): SpriteSheet {
- return SpriteSheet(
+ private fun createTestSpriteSheet(): SpriteSheet =
+ SpriteSheet(
imagePath = "test.png",
- frames = mapOf(
- FrameName("idle_0") to Rect(0, 0, 32, 32),
- FrameName("idle_1") to Rect(32, 0, 32, 32),
- FrameName("walk_0") to Rect(0, 32, 32, 32),
- FrameName("walk_1") to Rect(32, 32, 32, 32),
- FrameName("walk_2") to Rect(64, 32, 32, 32)
- )
+ frames =
+ mapOf(
+ FrameName("idle_0") to Rect(0, 0, 32, 32),
+ FrameName("idle_1") to Rect(32, 0, 32, 32),
+ FrameName("walk_0") to Rect(0, 32, 32, 32),
+ FrameName("walk_1") to Rect(32, 32, 32, 32),
+ FrameName("walk_2") to Rect(64, 32, 32, 32),
+ ),
)
- }
- private fun createTestAnimator(): Animator {
- return Animator(
- clips = mapOf(
- AnimationName("idle") to AnimationClip(
- frameNames = listOf(FrameName("idle_0"), FrameName("idle_1")),
- frameTicks = 0.1f,
- loopMode = LoopMode.LOOP
+ private fun createTestAnimator(): Animator =
+ Animator(
+ clips =
+ mapOf(
+ AnimationName("idle") to
+ AnimationClip(
+ frameNames = listOf(FrameName("idle_0"), FrameName("idle_1")),
+ frameTicks = 0.1f,
+ loopMode = LoopMode.LOOP,
+ ),
+ AnimationName("walk") to
+ AnimationClip(
+ frameNames =
+ listOf(
+ FrameName("walk_0"),
+ FrameName("walk_1"),
+ FrameName("walk_2"),
+ ),
+ frameTicks = 0.15f,
+ loopMode = LoopMode.LOOP,
+ ),
),
- AnimationName("walk") to AnimationClip(
- frameNames = listOf(
- FrameName("walk_0"),
- FrameName("walk_1"),
- FrameName("walk_2")
- ),
- frameTicks = 0.15f,
- loopMode = LoopMode.LOOP
- )
- ),
- currentClip = AnimationName("idle")
+ currentClip = AnimationName("idle"),
)
- }
@Test
fun `animation advances frame after frame duration`() {
@@ -83,16 +85,19 @@ class AnimationSystemTest {
fun `ONCE mode stops at last frame`() {
val world = DAGWorld(listOf(AnimationSystem()))
val entity = world.createEntity()
- val animator = Animator(
- clips = mapOf(
- AnimationName("once") to AnimationClip(
- frameNames = listOf(FrameName("idle_0"), FrameName("idle_1")),
- frameTicks = 0.1f,
- loopMode = LoopMode.ONCE
- )
- ),
- currentClip = AnimationName("once")
- )
+ val animator =
+ Animator(
+ clips =
+ mapOf(
+ AnimationName("once") to
+ AnimationClip(
+ frameNames = listOf(FrameName("idle_0"), FrameName("idle_1")),
+ frameTicks = 0.1f,
+ loopMode = LoopMode.ONCE,
+ ),
+ ),
+ currentClip = AnimationName("once"),
+ )
entity.add(createTestSpriteSheet())
entity.add(animator)
@@ -114,20 +119,24 @@ class AnimationSystemTest {
fun `PING_PONG mode bounces back and forth`() {
val world = DAGWorld(listOf(AnimationSystem()))
val entity = world.createEntity()
- val animator = Animator(
- clips = mapOf(
- AnimationName("pingpong") to AnimationClip(
- frameNames = listOf(
- FrameName("walk_0"),
- FrameName("walk_1"),
- FrameName("walk_2")
+ val animator =
+ Animator(
+ clips =
+ mapOf(
+ AnimationName("pingpong") to
+ AnimationClip(
+ frameNames =
+ listOf(
+ FrameName("walk_0"),
+ FrameName("walk_1"),
+ FrameName("walk_2"),
+ ),
+ frameTicks = 0.1f,
+ loopMode = LoopMode.PING_PONG,
+ ),
),
- frameTicks = 0.1f,
- loopMode = LoopMode.PING_PONG
- )
- ),
- currentClip = AnimationName("pingpong")
- )
+ currentClip = AnimationName("pingpong"),
+ )
entity.add(createTestSpriteSheet())
entity.add(animator)