void AnimationTreeEditor::_notification(int p_what) { if (p_what == NOTIFICATION_PROCESS) { ObjectID root = 0; if (tree && tree->get_tree_root().is_valid()) { root = tree->get_tree_root()->get_instance_id(); } if (root != current_root) { edit_path(Vector<String>()); } if (button_path.size() != edited_path.size()) { edit_path(edited_path); } } }
void EditorInputCenter::mark_object() { delete_markers(); auto dc1 = dynamic_cast<AmbientSound*>(dragged_object); auto dc2 = dynamic_cast<Climbable*>(dragged_object); auto dc3 = dynamic_cast<ScriptTrigger*>(dragged_object); auto dc4 = dynamic_cast<SecretAreaTrigger*>(dragged_object); auto dc5 = dynamic_cast<SequenceTrigger*>(dragged_object); auto dc6 = dynamic_cast<Wind*>(dragged_object); auto dc7 = dynamic_cast<InvisibleWall*>(dragged_object); if (dc1 || dc2 || dc3 || dc4 || dc5 || dc6 || dc7) { marked_object = dragged_object; dragged_object->edit_bbox(); return; } auto coin = dynamic_cast<Coin*>(dragged_object); if (coin) { if (coin->get_path()) { edit_path(coin->get_path(), dragged_object); } return; } auto willo = dynamic_cast<WillOWisp*>(dragged_object); if (willo) { if (willo->get_path()) { edit_path(willo->get_path(), dragged_object); } return; } auto platform = dynamic_cast<Platform*>(dragged_object); if (platform) { edit_path(&platform->get_path(), dragged_object); return; } }
void AnimationTreeEditor::edit(AnimationTree *p_tree) { if (tree == p_tree) return; tree = p_tree; Vector<String> path; if (tree->has_meta("_tree_edit_path")) { path = tree->get_meta("_tree_edit_path"); edit_path(path); } else { current_root = 0; } }
void AnimationTreeEditor::enter_editor(const String &p_path) { Vector<String> path = edited_path; path.push_back(p_path); edit_path(path); }