MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / BridgeObject

Class BridgeObject

TombEngine/Objects/Generic/Object/BridgeObject.h:13–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11namespace TEN::Entities::Generic
12{
13 class BridgeObject
14 {
15 private:
16 // Fields
17
18 bool _isEnabled = false;
19
20 CollisionMesh _collisionMesh = CollisionMesh();
21 // TODO: Uncomment when attractors are complete.
22 //AttractorObject _attractor = AttractorObject();
23
24 Pose _prevTransform = Pose::Zero;
25 int _prevRoomNumber = 0;
26 BoundingBox _prevAabb = BoundingBox();
27 BoundingOrientedBox _prevObb = BoundingOrientedBox();
28
29 public:
30 // Routines
31
32 std::function<std::optional<int>(const ItemInfo& item, const Vector3i& pos)> GetFloorHeight = nullptr;
33 std::function<std::optional<int>(const ItemInfo& item, const Vector3i& pos)> GetCeilingHeight = nullptr;
34 std::function<int(const ItemInfo& item)> GetFloorBorder = nullptr;
35 std::function<int(const ItemInfo& item)> GetCeilingBorder = nullptr;
36
37 // Getters
38
39 const CollisionMesh& GetCollisionMesh() const;
40 // TODO: Uncomment when attractors are complete.
41 //const AttractorObject& GetAttractor() const;
42
43 // Inquirers
44
45 bool IsEnabled() const;
46
47 // Utilities
48
49 void Initialize(const ItemInfo& item);
50 void Update(const ItemInfo& item);
51 void Enable(const ItemInfo& item);
52 void Disable(const ItemInfo& item);
53
54 private:
55 // Helpers
56
57 void InitializeCollisionMesh(const ItemInfo& item);
58 void InitializeAttractor(const ItemInfo& item);
59
60 void UpdateCollisionMesh(const ItemInfo& item);
61 void UpdateAttractor(const ItemInfo& item);
62 void UpdateSectorAssignments(const ItemInfo& item);
63
64 void AssignSectors(const ItemInfo& item);
65 void DeassignSectors(const ItemInfo& item) const;
66 };
67
68 const BridgeObject& GetBridgeObject(const ItemInfo& item);
69 BridgeObject& GetBridgeObject(ItemInfo& item);

Callers 8

InitializeFallingBlockFunction · 0.85
InitializeTrapDoorFunction · 0.85
InitializeBridgeFunction · 0.85
InitializePushableBlockFunction · 0.85
InitializeRaisingBlockFunction · 0.85

Calls 1

CollisionMeshClass · 0.50

Tested by

no test coverage detected