73 lines
2.4 KiB
ActionScript

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));
}
}
}
}