World can be exported as JSONObject

This commit is contained in:
7u83 2018-12-05 18:43:57 +01:00
parent ee5527a3de
commit 53bc93a15c
3 changed files with 30 additions and 12 deletions

View File

@ -1,4 +1,4 @@
#Wed, 05 Dec 2018 18:03:39 +0100 #Wed, 05 Dec 2018 18:41:22 +0100
annotation.processing.enabled=true annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false annotation.processing.enabled.in.editor=false
annotation.processing.processors.list= annotation.processing.processors.list=

View File

@ -177,7 +177,7 @@ public class AssetListDialog extends EscDialog {
AssetEditorDialog.runDialog(this, worldadm, o, null); AssetEditorDialog.runDialog(this, worldadm, o, null);
assetListPanel.reload(); assetListPanel.reload();
}//GEN-LAST:event_newButtonActionPerformed }//GEN-LAST:event_newButtonActionPerformed
private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed private void doneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButtonActionPerformed

View File

@ -34,8 +34,10 @@ import java.util.HashSet;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import opensesim.sesim.AssetPair; import opensesim.sesim.AssetPair;
import opensesim.sesim.interfaces.GetJson;
import opensesim.util.idgenerator.IDGenerator; import opensesim.util.idgenerator.IDGenerator;
import opensesim.util.SeSimException; import opensesim.util.SeSimException;
import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@ -43,9 +45,7 @@ import org.json.JSONObject;
* *
* @author 7u83 <7u83@mail.ru> * @author 7u83 <7u83@mail.ru>
*/ */
public class World { public class World implements GetJson {
public static final class JKEYS { public static final class JKEYS {
@ -82,22 +82,40 @@ public class World {
*/ */
public World(JSONObject cfg) { public World(JSONObject cfg) {
putJson(cfg);
}
private void putJson(JSONObject cfg){
// Read assets // Read assets
JSONObject jassets = cfg.getJSONObject(World.JKEYS.ASSETS); JSONArray jassets = cfg.optJSONArray(World.JKEYS.ASSETS);
for (String symbol : jassets.keySet()) { for (int i=0; i<jassets.length();i++) {
JSONObject o = jassets.optJSONObject(i);
AbstractAsset a; AbstractAsset a;
try { try {
a = createAsset_p(jassets.getJSONObject(symbol)); a = createAsset_p(o);
} catch (SeSimException ex) { } catch (SeSimException ex) {
Logger.getLogger(World.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(World.class.getName()).log(Level.SEVERE, null, ex);
return; return;
} }
assetsById.add(a); assetsById.add(a);
assetsBySymbol.put(symbol, a); assetsBySymbol.put(a.getSymbol(), a);
} }
} }
@Override
public JSONObject getJson() {
JSONObject cfg=new JSONObject();
// Write assets
JSONArray jassets = new JSONArray();
for (AbstractAsset asset: this.getAssetCollection()){
jassets.put(asset.getJson());
}
cfg.put(World.JKEYS.ASSETS, jassets);
return cfg;
}
private long masterkey; private long masterkey;
public World(long masterkey){ public World(long masterkey){
this.masterkey=masterkey; this.masterkey=masterkey;