X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2FMainConfig.java;h=3ffb506285028aada2dd994cc104f772fc4ff59d;hb=90daad1796cd59f11f12589686d9afe882ddb9b1;hp=ff077ee8a64933dc9e1346efbecf6cbccf4e23f5;hpb=213d66fcddbc54faf262c3136be61fad9c35ffb0;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/MainConfig.java b/core/src/ru/deadsoftware/cavedroid/MainConfig.java index ff077ee..3ffb506 100644 --- a/core/src/ru/deadsoftware/cavedroid/MainConfig.java +++ b/core/src/ru/deadsoftware/cavedroid/MainConfig.java @@ -1,20 +1,32 @@ package ru.deadsoftware.cavedroid; import ru.deadsoftware.cavedroid.game.GameUiWindow; +import ru.deadsoftware.cavedroid.game.input.Joystick; +import ru.deadsoftware.cavedroid.prefs.PreferencesStore; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; +import java.util.HashMap; @Singleton public class MainConfig { + private final HashMap mPreferencesCache = new HashMap<>(); + + @CheckForNull + private FullscreenToggleListener mFullscreenToggleListener = null; + private final CaveGame mCaveGame; + private final PreferencesStore mPreferencesStore; @CheckForNull private MainComponent mMainComponent; + @CheckForNull + private Joystick mJoystick; + private GameUiWindow mGameUiWindow; private String mGameFolder; @@ -29,8 +41,9 @@ public class MainConfig { private String mAssetsPackPath = null; @Inject - public MainConfig(CaveGame caveGame) { + public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) { mCaveGame = caveGame; + mPreferencesStore = preferencesStore; mGameUiWindow = GameUiWindow.NONE; mGameFolder = ""; @@ -53,10 +66,6 @@ public class MainConfig { return mGameUiWindow == gameUiWindow; } - public GameUiWindow getGameUiWindow() { - return mGameUiWindow; - } - public void setGameUiWindow(GameUiWindow gameUiWindow) { mGameUiWindow = gameUiWindow; } @@ -117,4 +126,46 @@ public class MainConfig { public void setAssetsPackPath(@Nullable String assetsPackPath) { mAssetsPackPath = assetsPackPath; } + + @CheckForNull + public Joystick getJoystick() { + return mJoystick; + } + + public void setJoystick(@CheckForNull Joystick joystick) { + mJoystick = joystick; + } + + @CheckForNull + public String getPreference(String key) { + if (mPreferencesCache.containsKey(key)) { + return mPreferencesCache.get(key); + } + + String value = mPreferencesStore.getPreference(key); + mPreferencesCache.put(key, value); + + return value; + } + + public void setPreference(String key, String value) { + mPreferencesCache.put(key, value); + mPreferencesStore.setPreference(key, value); + + if (mFullscreenToggleListener != null && key.equals("fullscreen")) { + mFullscreenToggleListener.onFullscreenToggled(Boolean.parseBoolean(value)); + } + } + + public void setFullscreenToggleListener(@Nullable FullscreenToggleListener fullscreenToggleListener) { + mFullscreenToggleListener = fullscreenToggleListener; + } + + public boolean isUseDynamicCamera() { + return Boolean.parseBoolean(getPreference("dyncam")); + } + + public interface FullscreenToggleListener { + void onFullscreenToggled(boolean value); + } }