diff --git a/android/assets/themes/dark.theme b/android/assets/themes/dark.theme new file mode 100644 index 0000000..31d38d4 --- /dev/null +++ b/android/assets/themes/dark.theme @@ -0,0 +1,19 @@ +{ + "name": "Dark", + "price": 0, + "colors": { + "background": "333333ff", + "buttons": [ + "03c13dff", + "007da4ff", + "c23a20ff", + "956fd6ff" + ], + "cells": [ + "7931bfff", "4c87aeff", "3aa853ff", + "1e984dff", "2e749bff", "db5500ff", "d88109ff", + "d9294dff", "ac342bff" + ] + }, + "cell_texture": "basic.png" +} diff --git a/core/src/io/github/lonamiwebs/klooni/Klooni.java b/core/src/io/github/lonamiwebs/klooni/Klooni.java index 4195783..5d459b8 100644 --- a/core/src/io/github/lonamiwebs/klooni/Klooni.java +++ b/core/src/io/github/lonamiwebs/klooni/Klooni.java @@ -82,5 +82,10 @@ public class Klooni extends Game { prefs.putBoolean("muteSound", soundsEnabled()).flush(); } + public static void updateTheme(Theme newTheme) { + prefs.putString("themeName", newTheme.getName()).flush(); + theme.update(newTheme.getName()); + } + //endregion } diff --git a/core/src/io/github/lonamiwebs/klooni/Theme.java b/core/src/io/github/lonamiwebs/klooni/Theme.java index a44a486..f928b41 100644 --- a/core/src/io/github/lonamiwebs/klooni/Theme.java +++ b/core/src/io/github/lonamiwebs/klooni/Theme.java @@ -84,4 +84,12 @@ public class Theme { void dispose() { } + + public void glClearBackground() { + Gdx.gl.glClearColor(background.r, background.g, background.b, background.a); + } + + public String getName() { + return name; + } } diff --git a/core/src/io/github/lonamiwebs/klooni/actors/ThemeCard.java b/core/src/io/github/lonamiwebs/klooni/actors/ThemeCard.java index 9882af2..86a4d92 100644 --- a/core/src/io/github/lonamiwebs/klooni/actors/ThemeCard.java +++ b/core/src/io/github/lonamiwebs/klooni/actors/ThemeCard.java @@ -17,7 +17,7 @@ public class ThemeCard extends Actor { private final ShapeRenderer shapeRenderer; - private final Theme theme; + public final Theme theme; // TODO Use the cell patch given the theme, not basic private final NinePatch cellPatch; diff --git a/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java index 9ed4223..3dad188 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java @@ -6,6 +6,8 @@ import com.badlogic.gdx.Input; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; @@ -87,7 +89,15 @@ public class CustomizeScreen implements Screen { VerticalGroup themesGroup = new VerticalGroup(); for (Theme theme : Theme.getThemes()) { - themesGroup.addActor(new ThemeCard(layout, theme)); + final ThemeCard card = new ThemeCard(layout, theme); + card.addListener(new InputListener() { + @Override + public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { + Klooni.updateTheme(card.theme); + return true; + } + }); + themesGroup.addActor(card); } themesGroup.space(8); @@ -103,7 +113,7 @@ public class CustomizeScreen implements Screen { @Override public void render(float delta) { - Gdx.gl.glClearColor(0.7f, 0.9f, 0.9f, 1); + Klooni.theme.glClearBackground(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); stage.act(Math.min(Gdx.graphics.getDeltaTime(), minDelta)); stage.draw(); diff --git a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java index 9b087da..a96c366 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java @@ -62,7 +62,7 @@ public class GameScreen implements Screen, InputProcessor { @Override public void render(float delta) { - Gdx.gl.glClearColor(0.9f, 0.9f, 0.9f, 1f); + Klooni.theme.glClearBackground(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); diff --git a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java index bd30933..290556b 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java @@ -70,7 +70,7 @@ public class MainMenuScreen extends InputListener implements Screen { @Override public void render(float delta) { - Gdx.gl.glClearColor(0.9f, 0.9f, 0.7f, 1); + Klooni.theme.glClearBackground(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); stage.act(Math.min(Gdx.graphics.getDeltaTime(), minDelta)); stage.draw();