Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ComponentInspector.hpp
1#pragma once
2
3#include <string>
4#include <entt/entt.hpp>
5
6#include <Common/HashedString.hpp>
7#include <EngineCore/Reflection/TypeDescriptorStruct.hpp>
8#include "NewComponentInput.hpp"
9
10namespace Grindstone {
11 namespace ECS {
13 }
14
15 namespace Editor {
16 namespace ImguiEditor {
17 class ImguiEditor;
18 class ComponentInspector {
19 public:
20 ComponentInspector(ImguiEditor* editor);
21 void Render(ECS::Entity entity);
22 private:
23 void RenderComponent(
24 Grindstone::HashedString componentTypeName,
25 Reflection::TypeDescriptor_Struct& componentReflectionData,
26 void* componentPtr,
27 ECS::Entity entity
28 );
29 void RenderCSharpScript(void* componentPtr, ECS::Entity entity);
30 void RenderComponentCategory(
32 void* componentPtr,
33 ECS::Entity entity
34 );
35 void RenderComponentMember(
37 void* componentPtr,
38 ECS::Entity entity
39 );
40 void RenderComponentMember(std::string_view displayName, Reflection::TypeDescriptor* itemType, void* offset, ECS::Entity entity);
41 NewComponentInput newComponentInput;
42
43 ImguiEditor* imguiEditor = nullptr;
44 };
45 }
46 }
47}
Definition ComponentRegistrar.hpp:18
Definition Entity.hpp:15
Definition NewComponentInput.hpp:15
Definition HashedString.hpp:9
Definition TypeDescriptorStruct.hpp:23
Definition TypeDescriptorStruct.hpp:10
Definition TypeDescriptorStruct.hpp:9
Definition TypeDescriptor.hpp:6