import Entity getActiveEntity() from "ActiveEntity"; import void setActiveEntity(Entity) from "ActiveEntity"; class PropertiesPanel : DockPanel { float slider = 0; vec3 slid; vec3 slid2; void onRender() { Entity entity = getActiveEntity(); // NAME // Id:0 [+ add component] UI::title(entity.name); if (!entity.isRoot) UI::contextItemPopup("##MenuOptions", Callback(this.renameEntityMenu)); UI::separator(); UI::textColor(0.5, 0.5, 0.5f, "Id : " + entity.id); // We don't want to change root options if (entity.isRoot) return; UI::sameline(); if (UI::buttonEnd("Add Component")) { UI::openPopup("ADD_COMPONENT", any(entity)); } UI::space(); TransformPropertiesRender transformComponentRender(entity); UI::componentNode("Transform Component", Callback(transformComponentRender.renderTransformComponent)); if (entity.hasMeshComponent()) { MeshComponentRender meshComponentRender(entity); UI::componentNodeContextMenu("Mesh Component", Callback(meshComponentRender.render), Callback(meshComponentRender.remove)); } if (entity.hasShaderComponent()) { ShaderComponentRender shaderComponentRender(entity); UI::componentNodeContextMenu("Shader Component", Callback(shaderComponentRender.render), Callback(shaderComponentRender.remove)); } if (entity.hasCameraComponent()) { CameraComponentRender cameraComponentRender(entity); UI::componentNodeContextMenu("Camera Component", Callback(cameraComponentRender.render), Callback(cameraComponentRender.remove)); } UI::space(); UI::separator(); if (UI::buttonCenter("Add Component##2")) { UI::openPopup("ADD_COMPONENT", any(entity)); } AddComponentRender addComponentRender(entity); UI::simplePopup("ADD_COMPONENT", Callback(addComponentRender.addComponentPopup)); UI::modalPopup("Rename entity", Callback(this.renameEntityMenu)); } void renameEntityMenu() { Entity entity = getActiveEntity(); if (!entity.isRoot) { if (UI::menuItem("Rename")) { UI::openPopup("Rename entity", any(entity)); } } } }