DEADSOFTWARE

Add my repo for automultibind
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / MainConfig.java
1 package ru.deadsoftware.cavedroid;
3 import ru.deadsoftware.cavedroid.game.GameUiWindow;
4 import ru.deadsoftware.cavedroid.game.input.Joystick;
5 import ru.deadsoftware.cavedroid.prefs.PreferencesStore;
7 import javax.annotation.CheckForNull;
8 import javax.annotation.Nullable;
9 import javax.inject.Inject;
10 import javax.inject.Singleton;
11 import java.util.HashMap;
13 @Singleton
14 public class MainConfig {
16 private final HashMap<String, String> mPreferencesCache = new HashMap<>();
18 @CheckForNull
19 private FullscreenToggleListener mFullscreenToggleListener = null;
21 private final CaveGame mCaveGame;
22 private final PreferencesStore mPreferencesStore;
24 @CheckForNull
25 private MainComponent mMainComponent;
27 @CheckForNull
28 private Joystick mJoystick;
30 private GameUiWindow mGameUiWindow;
31 private String mGameFolder;
33 private boolean mTouch;
34 private boolean mShowInfo;
35 private boolean mShowMap;
37 private float mWidth;
38 private float mHeight;
40 @Nullable
41 private String mAssetsPackPath = null;
43 @Inject
44 public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) {
45 mCaveGame = caveGame;
46 mPreferencesStore = preferencesStore;
48 mGameUiWindow = GameUiWindow.NONE;
49 mGameFolder = "";
50 }
52 public CaveGame getCaveGame() {
53 return mCaveGame;
54 }
56 public MainComponent getMainComponent() {
57 assert mMainComponent != null;
58 return mMainComponent;
59 }
61 public void setMainComponent(MainComponent mainComponent) {
62 mMainComponent = mainComponent;
63 }
65 public boolean checkGameUiWindow(GameUiWindow gameUiWindow) {
66 return mGameUiWindow == gameUiWindow;
67 }
69 public void setGameUiWindow(GameUiWindow gameUiWindow) {
70 mGameUiWindow = gameUiWindow;
71 }
73 public String getGameFolder() {
74 return mGameFolder;
75 }
77 public void setGameFolder(String gameFolder) {
78 mGameFolder = gameFolder;
79 }
81 public boolean isTouch() {
82 return mTouch;
83 }
85 public void setTouch(boolean touch) {
86 mTouch = touch;
87 }
89 public float getWidth() {
90 return mWidth;
91 }
93 public void setWidth(float width) {
94 mWidth = width;
95 }
97 public float getHeight() {
98 return mHeight;
99 }
101 public void setHeight(float height) {
102 mHeight = height;
105 public boolean isShowInfo() {
106 return mShowInfo;
109 public void setShowInfo(boolean showInfo) {
110 mShowInfo = showInfo;
113 public boolean isShowMap() {
114 return mShowMap;
117 public void setShowMap(boolean showMap) {
118 mShowMap = showMap;
121 @Nullable
122 public String getAssetsPackPath() {
123 return mAssetsPackPath;
126 public void setAssetsPackPath(@Nullable String assetsPackPath) {
127 mAssetsPackPath = assetsPackPath;
130 @CheckForNull
131 public Joystick getJoystick() {
132 return mJoystick;
135 public void setJoystick(@CheckForNull Joystick joystick) {
136 mJoystick = joystick;
139 @CheckForNull
140 public String getPreference(String key) {
141 if (mPreferencesCache.containsKey(key)) {
142 return mPreferencesCache.get(key);
145 String value = mPreferencesStore.getPreference(key);
146 mPreferencesCache.put(key, value);
148 return value;
151 public void setPreference(String key, String value) {
152 mPreferencesCache.put(key, value);
153 mPreferencesStore.setPreference(key, value);
155 if (mFullscreenToggleListener != null && key.equals("fullscreen")) {
156 mFullscreenToggleListener.onFullscreenToggled(Boolean.parseBoolean(value));
160 public void setFullscreenToggleListener(@Nullable FullscreenToggleListener fullscreenToggleListener) {
161 mFullscreenToggleListener = fullscreenToggleListener;
164 public boolean isUseDynamicCamera() {
165 return Boolean.parseBoolean(getPreference("dyncam"));
168 public interface FullscreenToggleListener {
169 void onFullscreenToggled(boolean value);