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

Method PhysicsObject

source/game/objects/StarPhysicsObject.cpp:10–38  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8namespace Star {
9
10PhysicsObject::PhysicsObject(ObjectConfigConstPtr config, Json const& parameters) : Object(std::move(config), parameters) {
11 for (auto const& p : configValue("physicsForces", JsonObject()).iterateObject()) {
12 auto& forceConfig = m_physicsForces[p.first];
13
14 forceConfig.forceRegion = jsonToPhysicsForceRegion(p.second);
15 forceConfig.enabled.set(p.second.getBool("enabled", true));
16 }
17
18 for (auto const& p : configValue("physicsCollisions", JsonObject()).iterateObject()) {
19 auto& collisionConfig = m_physicsCollisions[p.first];
20 collisionConfig.movingCollision = PhysicsMovingCollision::fromJson(p.second);
21 collisionConfig.xPosition.set(take(collisionConfig.movingCollision.position[0]));
22 collisionConfig.yPosition.set(take(collisionConfig.movingCollision.position[1]));
23 collisionConfig.enabled.set(p.second.getBool("enabled", true));
24 }
25
26 m_physicsForces.sortByKey();
27 for (auto& p : m_physicsForces)
28 m_netGroup.addNetElement(&p.second.enabled);
29
30 m_physicsCollisions.sortByKey();
31 for (auto& p : m_physicsCollisions) {
32 m_netGroup.addNetElement(&p.second.xPosition);
33 m_netGroup.addNetElement(&p.second.yPosition);
34 p.second.xPosition.setInterpolator(lerp<float, float>);
35 p.second.yPosition.setInterpolator(lerp<float, float>);
36 m_netGroup.addNetElement(&p.second.enabled);
37 }
38}
39
40void PhysicsObject::enableInterpolation(float extrapolationHint) {
41 m_netGroup.enableNetInterpolation(extrapolationHint);

Callers

nothing calls this directly

Calls 8

jsonToPhysicsForceRegionFunction · 0.85
takeFunction · 0.85
iterateObjectMethod · 0.80
getBoolMethod · 0.80
sortByKeyMethod · 0.80
setInterpolatorMethod · 0.80
setMethod · 0.45
addNetElementMethod · 0.45

Tested by

no test coverage detected