diff options
Diffstat (limited to 'composeApp/src/commonMain/kotlin/coffee/liz/abstractionengine')
7 files changed, 33 insertions, 29 deletions
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<String, ImageBitmap>() - 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<KClass<out System>> = 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), ) } } |
