terrain-editor/modules/terrain_editor/layer_editor.h

28 lines
702 B
C++

#pragma once
#include "scene/gui/tab_container.h"
#include "terrain_editor/terrain_mesh_editor.h"
#include "terrain_primitive.h"
class LayerEditor : public TabContainer {
GDCLASS(LayerEditor, TabContainer);
static void _bind_methods();
protected:
void _selected_changed();
public:
void deselect_current();
void select(Ref<TerrainPrimitive> primitive);
void set_inspectors(Dictionary dict);
Dictionary get_inspectors() const;
void set_terrain(TerrainMeshEditor *terrain);
TerrainMeshEditor *get_terrain() const;
private:
Ref<TerrainPrimitive> selected{};
HashMap<StringName, Ref<PackedScene>> inspectors{};
Node *current_inspector{ nullptr };
TerrainMeshEditor *terrain{ nullptr };
};