You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Create AudioStreamPlayer when dropping AudioStream
- Create AudioStreamPlayer if dropped in between nodes in the Scene dock - Create AudioStreamPlayer2D if dropped into 2D editor - Create AudioStreamPlayer3D if dropped into 3D editor
This commit is contained in:
@@ -1368,23 +1368,36 @@ bool SceneTreeEditor::can_drop_data_fw(const Point2 &p_point, const Variant &p_d
|
||||
}
|
||||
|
||||
bool scene_drop = true;
|
||||
bool audio_drop = true;
|
||||
for (int i = 0; i < files.size(); i++) {
|
||||
String ftype = EditorFileSystem::get_singleton()->get_file_type(files[i]);
|
||||
if (ftype != "PackedScene") {
|
||||
scene_drop = false;
|
||||
break;
|
||||
}
|
||||
if (audio_drop && !ClassDB::is_parent_class(ftype, "AudioStream")) {
|
||||
audio_drop = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (scene_drop) {
|
||||
tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN | Tree::DROP_MODE_ON_ITEM);
|
||||
} else {
|
||||
if (files.size() > 1) {
|
||||
return false;
|
||||
}
|
||||
tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (audio_drop) {
|
||||
if (files.size() > 1) {
|
||||
tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN);
|
||||
} else {
|
||||
tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN | Tree::DROP_MODE_ON_ITEM);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (files.size() > 1) {
|
||||
return false;
|
||||
}
|
||||
tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user