vkmEngine 1.0.0
A C++ game engine · vkmengine.com
Loading...
Searching...
No Matches
silence.h
1#pragma once
2
3#include <cstdint>
4#include <vector>
5
6#include "ecs/entity.h"
7#include "system/physics/ragdoll_system.h"
8
9namespace Vkm::Engine {
10
11class Scene;
12
24bool isStaticBody(const Scene& scene, EntityId entity);
25
32enum class NetSilence : uint8_t {
33 None,
34
43 InsidePrefabInstance,
44 PosedByAnimation,
45 StaticBody,
46 Count
47};
48
56NetSilence netSilence(const Scene& scene, EntityId entity);
57
64class NetSilenceMap {
65 public:
66 NetSilenceMap() = default;
67 ~NetSilenceMap() = default;
68
69 NetSilenceMap(const NetSilenceMap& other) = delete;
70 NetSilenceMap& operator=(const NetSilenceMap& other) = delete;
71
72 NetSilenceMap(NetSilenceMap && other) = delete;
73 NetSilenceMap& operator=(NetSilenceMap && other) = delete;
74
75 public:
81 void build(const Scene& scene);
82
89 NetSilence of(EntityId entity) const;
90
91 private:
92 std::vector<bool> m_posed;
93 std::vector<NetSilence> m_bySlot;
94};
95
102const char* toString(NetSilence reason);
103
104} // namespace Vkm::Engine
NetSilence of(EntityId entity) const
What netSilence says of entity, as of the last build.
void build(const Scene &scene)
Classify every entity in scene, replacing what was there.
Central registry managing entities and an open set of component types.
Definition scene.h:29
Names one entity of one Scene, for as long as that slot holds it.
Definition entity.h:23