| 242 | } |
| 243 | |
| 244 | SystemObjectConfig SystemWorld::systemObjectConfig(String const& name, Uuid const& uuid) const { |
| 245 | RandomSource rand(staticRandomU64(uuid.hex())); |
| 246 | |
| 247 | SystemObjectConfig object; |
| 248 | auto config = systemObjectTypeConfig(name); |
| 249 | auto orbitRange = jsonToVec2F(config.get("orbitRange")); |
| 250 | auto lifeTimeRange = jsonToVec2F(config.get("lifeTime")); |
| 251 | |
| 252 | object.name = name; |
| 253 | |
| 254 | object.moving = config.getBool("moving"); |
| 255 | object.speed = config.getFloat("speed"); |
| 256 | object.orbitDistance = Random::randf(orbitRange[0], orbitRange[1]); |
| 257 | object.lifeTime = Random::randf(lifeTimeRange[0], lifeTimeRange[1]); |
| 258 | |
| 259 | object.permanent = config.getBool("permanent", false); |
| 260 | |
| 261 | object.warpAction = parseWarpAction(config.getString("warpAction")); |
| 262 | object.threatLevel = config.optFloat("threatLevel"); |
| 263 | object.skyParameters = SkyParameters(config.get("skyParameters")); |
| 264 | object.parameters = config.getObject("parameters"); |
| 265 | |
| 266 | if (config.contains("generatedParameters")) { |
| 267 | for (auto p : config.getObject("generatedParameters")) |
| 268 | object.generatedParameters[p.first] = p.second.toString(); |
| 269 | } |
| 270 | |
| 271 | return object; |
| 272 | } |
| 273 | |
| 274 | Json SystemWorld::systemObjectTypeConfig(String const& name) { |
| 275 | return Root::singleton().assets()->json(strf("/system_objects.config:{}", name)); |
no test coverage detected