feat: selection tracking
This commit is contained in:
parent
4aa1075fb6
commit
cb43179770
15 changed files with 217 additions and 20 deletions
|
|
@ -1,6 +1,5 @@
|
|||
#include "terrain_mesh_editor.h"
|
||||
#include "core/input/input_event.h"
|
||||
#include "core/io/file_access.h"
|
||||
#include "core/io/resource_loader.h"
|
||||
#include "core/io/resource_saver.h"
|
||||
#include "core/os/keyboard.h"
|
||||
|
|
@ -36,9 +35,13 @@ Array SaveData::get_primitives() const {
|
|||
return this->primitives;
|
||||
}
|
||||
|
||||
String const TerrainMeshEditor::sig_selection_changed{ "selection_changed" };
|
||||
|
||||
void TerrainMeshEditor::_bind_methods() {
|
||||
BIND_HPROPERTY(Variant::OBJECT, point_primitive_object, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
ClassDB::bind_method(D_METHOD("save_data"), &self_type::save_data);
|
||||
BIND_HPROPERTY(Variant::OBJECT, current_selected, PROPERTY_HINT_RESOURCE_TYPE, "TerrainPrimitive");
|
||||
ADD_SIGNAL(MethodInfo(sig_selection_changed, PropertyInfo(Variant::OBJECT, "new_selection", PROPERTY_HINT_RESOURCE_TYPE, "TerrainPrimitive")));
|
||||
}
|
||||
|
||||
void TerrainMeshEditor::ready() {
|
||||
|
|
@ -54,7 +57,6 @@ void TerrainMeshEditor::ready() {
|
|||
}
|
||||
|
||||
void TerrainMeshEditor::on_primitive_list_changed(Array primitives) {
|
||||
this->out_of_date = true;
|
||||
for (Node3D *existing : this->primitive_nodes) {
|
||||
existing->queue_free();
|
||||
}
|
||||
|
|
@ -162,6 +164,15 @@ void TerrainMeshEditor::save_data() {
|
|||
}
|
||||
}
|
||||
|
||||
void TerrainMeshEditor::set_current_selected(Ref<TerrainPrimitive> primitive) {
|
||||
this->current_selected = primitive;
|
||||
emit_signal(sig_selection_changed, primitive);
|
||||
}
|
||||
|
||||
Ref<TerrainPrimitive> TerrainMeshEditor::get_current_selected() const {
|
||||
return this->current_selected;
|
||||
}
|
||||
|
||||
void TerrainMeshEditor::set_point_primitive_object(Ref<PackedScene> scene) {
|
||||
this->point_primitive_object = scene;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue