1#ifndef YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_WORKBENCH_H
2#define YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_WORKBENCH_H
9#include "imgui/imgui.h"
24class EntityMutationService;
39 std::string
GetId()
const override {
return "overworld.entity_workbench"; }
44 void Draw(
bool* p_open)
override;
57 int current_map,
int game_state);
64 "##OverworldEntityContextMenu";
Editor-level service responsible for overworld entity mutations.
Authoritative component for entity editing state and UI.
zelda3::GameEntity * editing_entity_
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.
std::string GetWorkflowGroup() const override
Optional workflow group for hack-centric actions.
OverworldEntityWorkbench()=default
static constexpr const char * kContextMenuPopupId
void DrawEntityContextMenu()
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.