001package com.fs.starfarer.api.impl.campaign.procgen;
002
003import java.awt.Color;
004
005import org.json.JSONException;
006import org.json.JSONObject;
007
008public class AgeGenDataSpec {
009
010        
011        //id,minExtraOrbits,maxExtraOrbits,probNebula,freqNormal,freqBinary,freqTrinary
012        
013        private String id;
014        private float minExtraOrbits, maxExtraOrbits, probNebula, freqNormal, freqBinary, freqTrinary, nebulaDensity;
015
016        public AgeGenDataSpec(JSONObject row) throws JSONException {
017                id = row.getString("id");
018                minExtraOrbits = (float) row.optDouble("minExtraOrbits", 0);
019                maxExtraOrbits = (float) row.optDouble("maxExtraOrbits", 0);
020                
021                probNebula = (float) row.optDouble("probNebula", 0);
022                freqNormal = (float) row.optDouble("freqNormal", 0);
023                freqBinary = (float) row.optDouble("freqBinary", 0);
024                freqTrinary = (float) row.optDouble("freqTrinary", 0);
025                nebulaDensity = (float) row.optDouble("nebulaDensity", 0.6f);
026        }
027
028        public static Color parseColor(String str, String sep) {
029                if (str == null) return Color.white;
030                
031                String [] parts = str.split(sep);
032                if (parts.length != 4) return null;
033                
034                return new Color(Integer.parseInt(parts[0].trim()),
035                                                 Integer.parseInt(parts[1].trim()),
036                                                 Integer.parseInt(parts[2].trim()),
037                                                 Integer.parseInt(parts[3].trim()));
038        }
039
040        public String getId() {
041                return id;
042        }
043
044        public float getMinExtraOrbits() {
045                return minExtraOrbits;
046        }
047
048        public float getMaxExtraOrbits() {
049                return maxExtraOrbits;
050        }
051
052        public float getProbNebula() {
053                return probNebula;
054        }
055
056        public float getFreqNormal() {
057                return freqNormal;
058        }
059
060        public float getFreqBinary() {
061                return freqBinary;
062        }
063
064        public float getFreqTrinary() {
065                return freqTrinary;
066        }
067
068        public float getNebulaDensity() {
069                return nebulaDensity;
070        }
071}
072
073
074
075
076