From a8e5e723b7e1891c9b352261a3ee4c3d3563e8cf Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 26 Oct 2025 21:38:22 -0700 Subject: Checkpoint two --- .../coffee/liz/abstractionengine/Platform.kt | 2 +- .../kotlin/coffee/liz/abstractionengine/app/App.kt | 3 +-- .../coffee/liz/abstractionengine/app/ui/Theme.kt | 25 +++++++++++----------- .../abstractionengine/game/AbstractionEngine.kt | 4 +--- .../coffee/liz/abstractionengine/game/Game.kt | 4 ++-- .../liz/abstractionengine/game/ImageCache.kt | 9 ++++---- .../coffee/liz/abstractionengine/game/Renderer.kt | 15 ++++++++----- 7 files changed, 33 insertions(+), 29 deletions(-) (limited to 'composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine') diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/Platform.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/Platform.kt index 17ca317..7c43f74 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/Platform.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/Platform.kt @@ -4,4 +4,4 @@ interface Platform { val needsTouchscreenControls: Boolean } -expect fun getPlatform(): Platform \ No newline at end of file +expect fun getPlatform(): Platform diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/App.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/App.kt index 50e72f0..5b8c967 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/App.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/App.kt @@ -13,7 +13,6 @@ import org.jetbrains.compose.ui.tooling.preview.Preview @Composable @Preview fun App() { - MaterialTheme(colorScheme = GameBoyTheme) { Box(modifier = Modifier.fillMaxSize()) { if (getPlatform().needsTouchscreenControls) { @@ -21,4 +20,4 @@ fun App() { } } } -} \ No newline at end of file +} diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/ui/Theme.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/ui/Theme.kt index be6c3ad..7f181a4 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/ui/Theme.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/app/ui/Theme.kt @@ -18,15 +18,16 @@ object GameBoyColors { val DPadLight = Color(0xFF6B7F82) } -val GameBoyTheme = darkColorScheme( - primary = GameBoyColors.MediumGreen, - onPrimary = GameBoyColors.DarkestGreen, - secondary = GameBoyColors.LightGreen, - onSecondary = GameBoyColors.DarkestGreen, - background = GameBoyColors.DarkestGreen, - onBackground = GameBoyColors.LightGreen, - surface = GameBoyColors.DarkGreen, - onSurface = GameBoyColors.LightGreen, - surfaceVariant = GameBoyColors.DPadGray, - outline = GameBoyColors.DarkestGreen, -) +val GameBoyTheme = + darkColorScheme( + primary = GameBoyColors.MediumGreen, + onPrimary = GameBoyColors.DarkestGreen, + secondary = GameBoyColors.LightGreen, + onSecondary = GameBoyColors.DarkestGreen, + background = GameBoyColors.DarkestGreen, + onBackground = GameBoyColors.LightGreen, + surface = GameBoyColors.DarkGreen, + onSurface = GameBoyColors.LightGreen, + surfaceVariant = GameBoyColors.DPadGray, + outline = GameBoyColors.DarkestGreen, + ) diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/AbstractionEngine.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/AbstractionEngine.kt index 18349c3..1f79dfc 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/AbstractionEngine.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/AbstractionEngine.kt @@ -1,5 +1,3 @@ package coffee.liz.abstractionengine.game -class AbstractionEngine { - -} \ No newline at end of file +class AbstractionEngine diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Game.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Game.kt index 0c3a007..20ea74c 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Game.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Game.kt @@ -14,7 +14,7 @@ import kotlin.time.Duration.Companion.nanoseconds @Composable fun Game( world: World, - content: @Composable () -> Unit + content: @Composable () -> Unit, ) { var frameCount by remember { mutableStateOf(0) } @@ -36,7 +36,7 @@ fun GameCanvas( world: World, renderSystem: Renderer, backgroundColor: Color = Color.Transparent, - modifier: Modifier = Modifier + modifier: Modifier = Modifier, ) { Canvas(modifier = modifier) { // Clear background diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/ImageCache.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/ImageCache.kt index 0722535..1d64730 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/ImageCache.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/ImageCache.kt @@ -9,13 +9,14 @@ import androidx.compose.ui.graphics.ImageBitmap class ImageCache { private val images = mutableMapOf() - fun loadImage(path: String, image: ImageBitmap) { + fun loadImage( + path: String, + image: ImageBitmap, + ) { images[path] = image } - fun getImage(path: String): ImageBitmap? { - return images[path] - } + fun getImage(path: String): ImageBitmap? = images[path] fun clear() { images.clear() diff --git a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Renderer.kt b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Renderer.kt index 57511f3..8e28944 100644 --- a/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Renderer.kt +++ b/composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine/game/Renderer.kt @@ -21,12 +21,14 @@ import kotlin.time.Duration * Depends on AnimationSystem to ensure animations are updated before rendering. */ class Renderer( - private val imageCache: ImageCache + private val imageCache: ImageCache, ) : System { - override val dependencies: Set> = setOf(AnimationSystem::class) - override fun update(world: World, duration: Duration) { + override fun update( + world: World, + duration: Duration, + ) { // Rendering happens in render() method, not here } @@ -34,7 +36,10 @@ class Renderer( * Renders all entities with sprites to the given DrawScope. * This should be called from a Compose Canvas during the draw phase. */ - fun render(world: World, drawScope: DrawScope) { + fun render( + world: World, + drawScope: DrawScope, + ) { // Query all entities that can be rendered world.query(Position::class, SpriteSheet::class, Animator::class).forEach { entity -> val position = entity.get(Position::class) ?: return@forEach @@ -57,7 +62,7 @@ class Renderer( srcOffset = IntOffset(frameRect.x, frameRect.y), srcSize = IntSize(frameRect.width, frameRect.height), dstOffset = IntOffset(position.x.toInt(), position.y.toInt()), - dstSize = IntSize(frameRect.width, frameRect.height) + dstSize = IntSize(frameRect.width, frameRect.height), ) } } -- cgit v1.2.3-70-g09d2