MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / objectWarpAction

Method objectWarpAction

source/game/StarSystemWorld.cpp:299–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

297}
298
299Maybe<WarpAction> SystemWorld::objectWarpAction(Uuid const& uuid) const {
300 if (auto object = getObject(uuid)) {
301 WarpAction warpAction = object->warpAction();
302 if (auto warpToWorld = warpAction.ptr<WarpToWorld>()) {
303 if (auto instanceWorldId = warpToWorld->world.ptr<InstanceWorldId>()) {
304 instanceWorldId->uuid = object->uuid();
305 if (auto parameters = m_celestialDatabase->parameters(CelestialCoordinate(m_location))) {
306 Maybe<float> systemThreatLevel = parameters->getParameter("spaceThreatLevel").optFloat();
307 instanceWorldId->level = object->threatLevel().orMaybe(systemThreatLevel);
308 } else {
309 return {};
310 }
311 }
312 }
313 return warpAction;
314 } else {
315 return {};
316 }
317}
318
319SystemObject::SystemObject(SystemObjectConfig config, Uuid uuid, Vec2F const& position, JsonObject parameters)
320 : m_config(std::move(config)), m_uuid(std::move(uuid)), m_spawnTime(0.0f), m_parameters(std::move(parameters)) {

Callers 1

Calls 8

CelestialCoordinateClass · 0.85
warpActionMethod · 0.80
optFloatMethod · 0.80
getParameterMethod · 0.80
orMaybeMethod · 0.80
uuidMethod · 0.45
parametersMethod · 0.45
threatLevelMethod · 0.45

Tested by

no test coverage detected