Revision 506f7ceb
Added by Leszek Koltunski almost 3 years ago
src/main/java/org/distorted/objects/RubikObjectList.java | ||
---|---|---|
40 | 40 |
public class RubikObjectList |
41 | 41 |
{ |
42 | 42 |
public static final int DEF_OBJECT= ObjectConstants.CUBE_3; |
43 |
|
|
44 | 43 |
public static int MAX_LEVEL; |
45 | 44 |
|
46 |
private static RubikObjectList mType;
|
|
45 |
private static RubikObjectList mThis;
|
|
47 | 46 |
private static int mNumObjects; |
48 | 47 |
private static int mNumExtras; |
49 | 48 |
private static ArrayList<RubikObject> mObjects; |
50 | 49 |
private static int mObject = DEF_OBJECT; |
51 | 50 |
|
51 |
private static class DownloadedObject |
|
52 |
{ |
|
53 |
String shortName; |
|
54 |
boolean icon,object,extras; |
|
55 |
|
|
56 |
DownloadedObject(String sName, boolean i, boolean o, boolean e) |
|
57 |
{ |
|
58 |
shortName = sName; |
|
59 |
icon = i; |
|
60 |
object = o; |
|
61 |
extras = e; |
|
62 |
} |
|
63 |
} |
|
64 |
|
|
65 |
private static ArrayList<DownloadedObject> mDownloadedObjects; |
|
66 |
|
|
52 | 67 |
static |
53 | 68 |
{ |
54 | 69 |
int max = Integer.MIN_VALUE; |
... | ... | |
69 | 84 |
mNumObjects= 0; |
70 | 85 |
mNumExtras = 0; |
71 | 86 |
|
72 |
mObjects = new ArrayList<>(); |
|
87 |
mObjects = new ArrayList<>(); |
|
88 |
mDownloadedObjects = new ArrayList<>(); |
|
73 | 89 |
|
74 | 90 |
createBuiltinObjects(); |
75 | 91 |
} |
... | ... | |
93 | 109 |
} |
94 | 110 |
} |
95 | 111 |
|
112 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
113 |
|
|
114 |
private static void internalAddDownloadedObject(DownloadedObject object) |
|
115 |
{ |
|
116 |
|
|
117 |
} |
|
118 |
|
|
96 | 119 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
97 | 120 |
// PUBLIC API |
98 | 121 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
125 | 148 |
|
126 | 149 |
public static void addDownloadedObject(String shortName, boolean icon, boolean object, boolean extras) |
127 | 150 |
{ |
151 |
for( DownloadedObject obj : mDownloadedObjects ) |
|
152 |
{ |
|
153 |
if( obj.shortName.equals(shortName) ) |
|
154 |
{ |
|
155 |
obj.icon |= icon; |
|
156 |
obj.object|= object; |
|
157 |
obj.extras|= extras; |
|
158 |
|
|
159 |
android.util.Log.e("D", "UPDATING "+shortName); |
|
160 |
|
|
161 |
return; |
|
162 |
} |
|
163 |
} |
|
164 |
|
|
165 |
DownloadedObject extra = new DownloadedObject(shortName,icon,object,extras); |
|
166 |
mDownloadedObjects.add(extra); |
|
128 | 167 |
|
168 |
internalAddDownloadedObject(extra); |
|
129 | 169 |
} |
130 | 170 |
|
131 | 171 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
148 | 188 |
{ |
149 | 189 |
RubikObject obj = getObject(mObject); |
150 | 190 |
if( obj!=null ) editor.putString("rol_objName", obj.getName() ); |
191 |
|
|
192 |
int numDownloaded = mDownloadedObjects.size(); |
|
193 |
|
|
194 |
if( numDownloaded>0 ) |
|
195 |
{ |
|
196 |
StringBuilder downloadedObjects = new StringBuilder(); |
|
197 |
|
|
198 |
for(int i=0; i<numDownloaded; i++) |
|
199 |
{ |
|
200 |
if( i>0 ) downloadedObjects.append(','); |
|
201 |
|
|
202 |
DownloadedObject object = mDownloadedObjects.get(i); |
|
203 |
downloadedObjects.append(object.shortName); |
|
204 |
downloadedObjects.append(' '); |
|
205 |
downloadedObjects.append(object.icon ? "1":"0"); |
|
206 |
downloadedObjects.append(' '); |
|
207 |
downloadedObjects.append(object.object ? "1":"0"); |
|
208 |
downloadedObjects.append(' '); |
|
209 |
downloadedObjects.append(object.extras ? "1":"0"); |
|
210 |
} |
|
211 |
|
|
212 |
editor.putString("rol_downloaded", downloadedObjects.toString() ); |
|
213 |
} |
|
151 | 214 |
} |
152 | 215 |
|
153 | 216 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
176 | 239 |
mObject = getOrdinal(objName); |
177 | 240 |
|
178 | 241 |
if( mObject<0 || mObject>=mNumObjects ) mObject = DEF_OBJECT; |
242 |
|
|
243 |
String downloaded = preferences.getString("rol_downloaded",""); |
|
244 |
|
|
245 |
android.util.Log.e("D", downloaded); |
|
246 |
|
|
247 |
if( !downloaded.equals("")) |
|
248 |
{ |
|
249 |
String[] dObjects = downloaded.split(","); |
|
250 |
|
|
251 |
for(String dObj : dObjects) |
|
252 |
{ |
|
253 |
String[] parts = dObj.split(" "); |
|
254 |
|
|
255 |
if( parts.length==4 ) |
|
256 |
{ |
|
257 |
String name = parts[0]; |
|
258 |
String icon = parts[1]; |
|
259 |
String obje = parts[2]; |
|
260 |
String extr = parts[3]; |
|
261 |
|
|
262 |
boolean bIcon = icon.equals("1"); |
|
263 |
boolean bObje = obje.equals("1"); |
|
264 |
boolean bExtr = extr.equals("1"); |
|
265 |
|
|
266 |
android.util.Log.e("D", "adding: "+name); |
|
267 |
|
|
268 |
addDownloadedObject(name,bIcon,bObje,bExtr); |
|
269 |
} |
|
270 |
} |
|
271 |
} |
|
179 | 272 |
} |
180 | 273 |
|
181 | 274 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
221 | 314 |
|
222 | 315 |
public static RubikObject getObject(int ordinal) |
223 | 316 |
{ |
224 |
if( mType==null ) mType = new RubikObjectList();
|
|
317 |
if( mThis==null ) mThis = new RubikObjectList();
|
|
225 | 318 |
return ordinal>=0 && ordinal<mNumObjects ? mObjects.get(ordinal) : null; |
226 | 319 |
} |
227 | 320 |
|
... | ... | |
229 | 322 |
|
230 | 323 |
public static int getNumObjects() |
231 | 324 |
{ |
232 |
if( mType==null ) mType = new RubikObjectList();
|
|
325 |
if( mThis==null ) mThis = new RubikObjectList();
|
|
233 | 326 |
return mNumObjects; |
234 | 327 |
} |
235 | 328 |
|
... | ... | |
237 | 330 |
|
238 | 331 |
public static int getOrdinal(String name) |
239 | 332 |
{ |
240 |
if( mType==null ) mType = new RubikObjectList();
|
|
333 |
if( mThis==null ) mThis = new RubikObjectList();
|
|
241 | 334 |
|
242 | 335 |
for(int i=0; i<mNumObjects; i++) |
243 | 336 |
{ |
Also available in: Unified diff
Beginnings of support for dynamically adding downloaded JSONs to the local RubikObjectList: SharedPrefs part.