yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
entity_workbench.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_WORKBENCH_H
2#define YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_WORKBENCH_H
3
4#include <functional>
5#include <string>
6
9#include "imgui/imgui.h"
14
15namespace yaze {
16
17namespace zelda3 {
18class Overworld;
19class GameEntity;
20} // namespace zelda3
21
22namespace editor {
23
24class EntityMutationService;
25
35 public:
37
38 // WindowContent interface
39 std::string GetId() const override { return "overworld.entity_workbench"; }
40 std::string GetDisplayName() const override { return "Entity Properties"; }
41 std::string GetIcon() const override { return ICON_MD_EDIT; }
42 std::string GetEditorCategory() const override { return "Overworld"; }
43 void Draw(bool* p_open) override;
44
45 // Authoritative Edit State
47
48 // UI Flow Triggers
51 void DrawPopups();
52
53 // Pending Insertion State
54 void SetPendingInsertion(const std::string& type, ImVec2 pos);
56 int current_map, int game_state);
57
58 // Context Menu Content
60
61 private:
62 static constexpr const char* kContextMenuPopupId =
63 "##OverworldEntityContextMenu";
64
66};
67
68} // namespace editor
69} // namespace yaze
70
71#endif // YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_WORKBENCH_H
Editor-level service responsible for overworld entity mutations.
Authoritative component for entity editing state and UI.
void SetPendingInsertion(const std::string &type, ImVec2 pos)
void OpenEditorFor(zelda3::GameEntity *entity)
std::string GetEditorCategory() const override
Editor category this panel belongs to.
std::string GetDisplayName() const override
Human-readable name shown in menus and title bars.
static constexpr const char * kContextMenuPopupId
std::string GetIcon() const override
Material Design icon for this panel.
void Draw(bool *p_open) override
Draw the panel content.
void ProcessPendingInsertion(EntityMutationService *mutation_service, int current_map, int game_state)
void OpenContextMenuFor(zelda3::GameEntity *entity)
void SetActiveEntity(zelda3::GameEntity *entity)
std::string GetId() const override
Unique identifier for this panel.
Base interface for all logical window content components.
Base class for all overworld and dungeon entities.
Definition common.h:31
#define ICON_MD_EDIT
Definition icons.h:645