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
;
13 public class MainConfig
{
15 private final HashMap
<String
, String
> mPreferencesCache
= new HashMap
<>();
18 private FullscreenToggleListener mFullscreenToggleListener
= null;
20 private final CaveGame mCaveGame
;
21 private final PreferencesStore mPreferencesStore
;
24 private MainComponent mMainComponent
;
27 private Joystick mJoystick
;
29 private GameUiWindow mGameUiWindow
;
30 private String mGameFolder
;
32 private boolean mTouch
;
33 private boolean mShowInfo
;
34 private boolean mShowMap
;
37 private float mHeight
;
40 private String mAssetsPackPath
= null;
43 public MainConfig(CaveGame caveGame
, PreferencesStore preferencesStore
) {
45 mPreferencesStore
= preferencesStore
;
47 mGameUiWindow
= GameUiWindow
.NONE
;
51 public CaveGame
getCaveGame() {
55 public MainComponent
getMainComponent() {
56 assert mMainComponent
!= null;
57 return mMainComponent
;
60 public void setMainComponent(MainComponent mainComponent
) {
61 mMainComponent
= mainComponent
;
64 public boolean checkGameUiWindow(GameUiWindow gameUiWindow
) {
65 return mGameUiWindow
== gameUiWindow
;
68 public void setGameUiWindow(GameUiWindow gameUiWindow
) {
69 mGameUiWindow
= gameUiWindow
;
72 public String
getGameFolder() {
76 public void setGameFolder(String gameFolder
) {
77 mGameFolder
= gameFolder
;
80 public boolean isTouch() {
84 public void setTouch(boolean touch
) {
88 public float getWidth() {
92 public void setWidth(float width
) {
96 public float getHeight() {
100 public void setHeight(float height
) {
104 public boolean isShowInfo() {
108 public void setShowInfo(boolean showInfo
) {
109 mShowInfo
= showInfo
;
112 public boolean isShowMap() {
116 public void setShowMap(boolean showMap
) {
121 public String
getAssetsPackPath() {
122 return mAssetsPackPath
;
125 public void setAssetsPackPath(@Nullable String assetsPackPath
) {
126 mAssetsPackPath
= assetsPackPath
;
130 public Joystick
getJoystick() {
134 public void setJoystick(@Nullable Joystick joystick
) {
135 mJoystick
= joystick
;
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
);
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
);