#pragma once #include "EditorAttachment.hpp" #include "EditorResources.hpp" #include "GameObject.hpp" #include "World.hpp" #include #include class App; class EditorInstance { public: enum InspectorTargetType { ITT_GameObject, ITT_Shader, ITT_Material, ITT_None, }; private: App* mApp; GameWorld* mWorld; void* mSelectedItPtr = nullptr; EditorContentBrowser mEdContentBrowser; InspectorTargetType mSelectedItt = ITT_None; bool mEdContentBrowserVisible=false; public: EditorInstance(App* app, GameWorld* world); ~EditorInstance(); void Show(); void* GetSelectedItPtr() const { return mSelectedItPtr; } InspectorTargetType GetSelectedItt() const { return mSelectedItt; } void SelectIt(void* ptr, InspectorTargetType itt); private: void ShowWorldProperties(); void ShowInspector(Shader* shader); void ShowInspector(Material* material); void ShowInspector(GameObject* object); void ShowGameObjecetFields(GameObject* object); void ShowGameObjectInTree(GameObject* object); };