44 lines
965 B
C++
Executable file
44 lines
965 B
C++
Executable file
#pragma once
|
|
|
|
#include "prismeditor.hpp"
|
|
#include "engine.hpp"
|
|
|
|
class AddObjectCommand : public Command {
|
|
public:
|
|
prism::Object id;
|
|
std::string name;
|
|
|
|
std::string fetch_name() override {
|
|
return "Add object " + name;
|
|
}
|
|
|
|
void undo() override {
|
|
engine->get_scene()->remove_object(id);
|
|
}
|
|
|
|
void execute() override {
|
|
engine->get_scene()->add_object_by_id(id);
|
|
engine->get_scene()->get(id).name = name;
|
|
}
|
|
};
|
|
|
|
class SceneEditor : public Editor {
|
|
public:
|
|
Scene* scene = nullptr;
|
|
|
|
bool showSceneSettings = true;
|
|
bool showOutliner = true;
|
|
bool showProperties = true;
|
|
bool showViewport = true;
|
|
bool showAssets = true;
|
|
bool showUndoStack = false;
|
|
|
|
bool has_menubar() const override;
|
|
std::string get_title() const override;
|
|
|
|
Scene* get_scene() const override;
|
|
|
|
void setup_windows(ImGuiID dockspace) override;
|
|
|
|
void draw(CommonEditor* editor) override;
|
|
};
|