Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
AdditionalEditorPlugins.h
Go to the documentation of this file.
1/*
2 * Olympe Blueprint Editor - HFSM Plugin
3 *
4 * Plugin for editing Hierarchical Finite State Machine blueprints
5 */
6
7#pragma once
8
10
11//struct EditorContext_st;
12
13namespace Olympe
14{
16 {
17 public:
19 virtual ~HFSMEditorPlugin() {}
20
21 std::string GetBlueprintType() const override { return "HFSM"; }
22 std::string GetDisplayName() const override { return "Hierarchical FSM"; }
23 std::string GetDescription() const override { return "Hierarchical Finite State Machine for AI"; }
24 std::string GetIconPath() const override { return "Resources/Icons/hfsm.png"; }
25 std::string GetDefaultFolder() const override { return "Blueprints/AI/"; }
26
27 nlohmann::json CreateNew(const std::string& name) override;
28 bool CanHandle(const nlohmann::json& blueprint) const override;
29 std::vector<ValidationError> Validate(const nlohmann::json& blueprint) override;
30
31 void RenderEditor(nlohmann::json& blueprintData, EditorContext_st& ctx) override;
32 void RenderProperties(const nlohmann::json& blueprintData) override;
33 void RenderToolbar(nlohmann::json& blueprintData) override;
34 };
35
37 {
38 public:
41
42 std::string GetBlueprintType() const override { return "AnimationGraph"; }
43 std::string GetDisplayName() const override { return "Animation Graph"; }
44 std::string GetDescription() const override { return "Animation state machine with transitions"; }
45 std::string GetIconPath() const override { return "Resources/Icons/animation.png"; }
46 std::string GetDefaultFolder() const override { return "Blueprints/Animations/"; }
47
48 nlohmann::json CreateNew(const std::string& name) override;
49 bool CanHandle(const nlohmann::json& blueprint) const override;
50 std::vector<ValidationError> Validate(const nlohmann::json& blueprint) override;
51
52 void RenderEditor(nlohmann::json& blueprintData, EditorContext_st& ctx) override;
53 void RenderProperties(const nlohmann::json& blueprintData) override;
54 void RenderToolbar(nlohmann::json& blueprintData) override;
55 };
56
58 {
59 public:
62
63 std::string GetBlueprintType() const override { return "ScriptedEvent"; }
64 std::string GetDisplayName() const override { return "Scripted Event"; }
65 std::string GetDescription() const override { return "Scripted event sequence"; }
66 std::string GetIconPath() const override { return "Resources/Icons/event.png"; }
67 std::string GetDefaultFolder() const override { return "Blueprints/ScriptedEvents/"; }
68
69 nlohmann::json CreateNew(const std::string& name) override;
70 bool CanHandle(const nlohmann::json& blueprint) const override;
71 std::vector<ValidationError> Validate(const nlohmann::json& blueprint) override;
72
73 void RenderEditor(nlohmann::json& blueprintData, EditorContext_st& ctx) override;
74 void RenderProperties(const nlohmann::json& blueprintData) override;
75 void RenderToolbar(nlohmann::json& blueprintData) override;
76 };
77
79 {
80 public:
83
84 std::string GetBlueprintType() const override { return "LevelDefinition"; }
85 std::string GetDisplayName() const override { return "Level Definition"; }
86 std::string GetDescription() const override { return "Level layout and entity placement"; }
87 std::string GetIconPath() const override { return "Resources/Icons/level.png"; }
88 std::string GetDefaultFolder() const override { return "Blueprints/Levels/"; }
89
90 nlohmann::json CreateNew(const std::string& name) override;
91 bool CanHandle(const nlohmann::json& blueprint) const override;
92 std::vector<ValidationError> Validate(const nlohmann::json& blueprint) override;
93
94 void RenderEditor(nlohmann::json& blueprintData, EditorContext_st& ctx) override;
95 void RenderProperties(const nlohmann::json& blueprintData) override;
96 void RenderToolbar(nlohmann::json& blueprintData) override;
97 };
98
100 {
101 public:
104
105 std::string GetBlueprintType() const override { return "UIMenu"; }
106 std::string GetDisplayName() const override { return "UI Menu"; }
107 std::string GetDescription() const override { return "User interface menu layout"; }
108 std::string GetIconPath() const override { return "Resources/Icons/ui_menu.png"; }
109 std::string GetDefaultFolder() const override { return "Blueprints/UI/"; }
110
111 nlohmann::json CreateNew(const std::string& name) override;
112 bool CanHandle(const nlohmann::json& blueprint) const override;
113 std::vector<ValidationError> Validate(const nlohmann::json& blueprint) override;
114
115 void RenderEditor(nlohmann::json& blueprintData, EditorContext_st& ctx) override;
116 void RenderProperties(const nlohmann::json& blueprintData) override;
117 void RenderToolbar(nlohmann::json& blueprintData) override;
118 };
119}
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
std::string GetDefaultFolder() const override
void RenderProperties(const nlohmann::json &blueprintData) override
void RenderToolbar(nlohmann::json &blueprintData) override
std::string GetDisplayName() const override
bool CanHandle(const nlohmann::json &blueprint) const override
std::vector< ValidationError > Validate(const nlohmann::json &blueprint) override
nlohmann::json CreateNew(const std::string &name) override
std::string GetIconPath() const override
std::string GetDescription() const override
std::string GetBlueprintType() const override
void RenderEditor(nlohmann::json &blueprintData, EditorContext_st &ctx) override
BlueprintEditorPlugin - Base interface for blueprint type plugins Each plugin handles a specific blue...
nlohmann::json CreateNew(const std::string &name) override
std::string GetBlueprintType() const override
void RenderProperties(const nlohmann::json &blueprintData) override
std::vector< ValidationError > Validate(const nlohmann::json &blueprint) override
std::string GetDefaultFolder() const override
void RenderToolbar(nlohmann::json &blueprintData) override
std::string GetDisplayName() const override
bool CanHandle(const nlohmann::json &blueprint) const override
void RenderEditor(nlohmann::json &blueprintData, EditorContext_st &ctx) override
std::string GetIconPath() const override
std::string GetDescription() const override
std::string GetIconPath() const override
bool CanHandle(const nlohmann::json &blueprint) const override
std::string GetDisplayName() const override
void RenderEditor(nlohmann::json &blueprintData, EditorContext_st &ctx) override
std::string GetDefaultFolder() const override
std::string GetDescription() const override
void RenderToolbar(nlohmann::json &blueprintData) override
void RenderProperties(const nlohmann::json &blueprintData) override
std::string GetBlueprintType() const override
nlohmann::json CreateNew(const std::string &name) override
std::vector< ValidationError > Validate(const nlohmann::json &blueprint) override
void RenderEditor(nlohmann::json &blueprintData, EditorContext_st &ctx) override
bool CanHandle(const nlohmann::json &blueprint) const override
std::string GetDisplayName() const override
std::string GetBlueprintType() const override
void RenderProperties(const nlohmann::json &blueprintData) override
void RenderToolbar(nlohmann::json &blueprintData) override
std::string GetDefaultFolder() const override
nlohmann::json CreateNew(const std::string &name) override
std::vector< ValidationError > Validate(const nlohmann::json &blueprint) override
std::string GetDescription() const override
std::string GetIconPath() const override
std::string GetDefaultFolder() const override
nlohmann::json CreateNew(const std::string &name) override
std::string GetIconPath() const override
bool CanHandle(const nlohmann::json &blueprint) const override
std::string GetDescription() const override
std::string GetBlueprintType() const override
void RenderToolbar(nlohmann::json &blueprintData) override
std::string GetDisplayName() const override
void RenderProperties(const nlohmann::json &blueprintData) override
void RenderEditor(nlohmann::json &blueprintData, EditorContext_st &ctx) override
std::vector< ValidationError > Validate(const nlohmann::json &blueprint) override
nlohmann::json json