DEADSOFTWARE

Remove guava
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / MainConfig.java
1 package ru.deadsoftware.cavedroid;
3 import org.jetbrains.annotations.Nullable;
4 import ru.deadsoftware.cavedroid.game.GameUiWindow;
5 import ru.deadsoftware.cavedroid.game.input.Joystick;
6 import ru.deadsoftware.cavedroid.prefs.PreferencesStore;
8 import javax.inject.Inject;
9 import javax.inject.Singleton;
10 import java.util.HashMap;
12 @Singleton
13 public class MainConfig {
15 private final HashMap<String, String> mPreferencesCache = new HashMap<>();
17 @Nullable
18 private FullscreenToggleListener mFullscreenToggleListener = null;
20 private final CaveGame mCaveGame;
21 private final PreferencesStore mPreferencesStore;
23 @Nullable
24 private MainComponent mMainComponent;
26 @Nullable
27 private Joystick mJoystick;
29 private GameUiWindow mGameUiWindow;
30 private String mGameFolder;
32 private boolean mTouch;
33 private boolean mShowInfo;
34 private boolean mShowMap;
36 private float mWidth;
37 private float mHeight;
39 @Nullable
40 private String mAssetsPackPath = null;
42 @Inject
43 public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) {
44 mCaveGame = caveGame;
45 mPreferencesStore = preferencesStore;
47 mGameUiWindow = GameUiWindow.NONE;
48 mGameFolder = "";
49 }
51 public CaveGame getCaveGame() {
52 return mCaveGame;
53 }
55 public MainComponent getMainComponent() {
56 assert mMainComponent != null;
57 return mMainComponent;
58 }
60 public void setMainComponent(MainComponent mainComponent) {
61 mMainComponent = mainComponent;
62 }
64 public boolean checkGameUiWindow(GameUiWindow gameUiWindow) {
65 return mGameUiWindow == gameUiWindow;
66 }
68 public void setGameUiWindow(GameUiWindow gameUiWindow) {
69 mGameUiWindow = gameUiWindow;
70 }
72 public String getGameFolder() {
73 return mGameFolder;
74 }
76 public void setGameFolder(String gameFolder) {
77 mGameFolder = gameFolder;
78 }
80 public boolean isTouch() {
81 return mTouch;
82 }
84 public void setTouch(boolean touch) {
85 mTouch = touch;
86 }
88 public float getWidth() {
89 return mWidth;
90 }
92 public void setWidth(float width) {
93 mWidth = width;
94 }
96 public float getHeight() {
97 return mHeight;
98 }
100 public void setHeight(float height) {
101 mHeight = height;
104 public boolean isShowInfo() {
105 return mShowInfo;
108 public void setShowInfo(boolean showInfo) {
109 mShowInfo = showInfo;
112 public boolean isShowMap() {
113 return mShowMap;
116 public void setShowMap(boolean showMap) {
117 mShowMap = showMap;
120 @Nullable
121 public String getAssetsPackPath() {
122 return mAssetsPackPath;
125 public void setAssetsPackPath(@Nullable String assetsPackPath) {
126 mAssetsPackPath = assetsPackPath;
129 @Nullable
130 public Joystick getJoystick() {
131 return mJoystick;
134 public void setJoystick(@Nullable Joystick joystick) {
135 mJoystick = joystick;
138 @Nullable
139 public String getPreference(String key) {
140 if (mPreferencesCache.containsKey(key)) {
141 return mPreferencesCache.get(key);
144 String value = mPreferencesStore.getPreference(key);
145 mPreferencesCache.put(key, value);
147 return value;
150 public void setPreference(String key, String value) {
151 mPreferencesCache.put(key, value);
152 mPreferencesStore.setPreference(key, value);
154 if (mFullscreenToggleListener != null && key.equals("fullscreen")) {
155 mFullscreenToggleListener.onFullscreenToggled(Boolean.parseBoolean(value));
159 public void setFullscreenToggleListener(@Nullable FullscreenToggleListener fullscreenToggleListener) {
160 mFullscreenToggleListener = fullscreenToggleListener;
163 public boolean isUseDynamicCamera() {
164 return Boolean.parseBoolean(getPreference("dyncam"));
167 public interface FullscreenToggleListener {
168 void onFullscreenToggled(boolean value);