diff options
Diffstat (limited to 'editor')
189 files changed, 3550 insertions, 4555 deletions
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp index 712b11d7d7..cb8d98932d 100644 --- a/editor/action_map_editor.cpp +++ b/editor/action_map_editor.cpp @@ -354,10 +354,6 @@ void ActionMapEditor::_notification(int p_what) { } void ActionMapEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &ActionMapEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &ActionMapEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &ActionMapEditor::drop_data_fw); - ADD_SIGNAL(MethodInfo("action_added", PropertyInfo(Variant::STRING, "name"))); ADD_SIGNAL(MethodInfo("action_edited", PropertyInfo(Variant::STRING, "name"), PropertyInfo(Variant::DICTIONARY, "new_action"))); ADD_SIGNAL(MethodInfo("action_removed", PropertyInfo(Variant::STRING, "name"))); @@ -578,7 +574,7 @@ ActionMapEditor::ActionMapEditor() { action_tree->connect("button_clicked", callable_mp(this, &ActionMapEditor::_tree_button_pressed)); main_vbox->add_child(action_tree); - action_tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(action_tree, ActionMapEditor); // Adding event dialog event_config_dialog = memnew(InputEventConfigurationDialog); diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp index d4ab907e78..639f5e6de5 100644 --- a/editor/animation_bezier_editor.cpp +++ b/editor/animation_bezier_editor.cpp @@ -788,7 +788,7 @@ void AnimationBezierTrackEdit::_clear_selection() { } void AnimationBezierTrackEdit::_change_selected_keys_handle_mode(Animation::HandleMode p_mode, bool p_auto) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Update Selected Key Handles")); for (SelectionSet::Element *E = selection.back(); E; E = E->prev()) { const IntPair track_key_pair = E->get(); @@ -985,7 +985,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) { if (I.value.has_point(mb->get_position())) { if (I.key == REMOVE_ICON) { if (!read_only) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action("Remove Bezier Track"); undo_redo->add_do_method(this, "_update_locked_tracks_after", track); @@ -1172,7 +1172,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) { time += 0.0001; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Bezier Point")); undo_redo->add_do_method(animation.ptr(), "bezier_track_insert_key", selected_track, time, new_point); undo_redo->add_undo_method(animation.ptr(), "track_remove_key_at_time", selected_track, time); @@ -1270,7 +1270,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) { if (moving_selection) { //combit it - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Bezier Points")); List<AnimMoveRestore> to_restore; @@ -1471,7 +1471,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) { if ((moving_handle == -1 || moving_handle == 1) && mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT) { if (!read_only) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Bezier Points")); if (moving_handle == -1) { real_t ratio = timeline->get_zoom_scale() * v_zoom; @@ -1543,7 +1543,7 @@ void AnimationBezierTrackEdit::_menu_selected(int p_index) { time += 0.001; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Bezier Point")); undo_redo->add_do_method(animation.ptr(), "track_insert_key", selected_track, time, new_point); undo_redo->add_undo_method(animation.ptr(), "track_remove_key_at_time", selected_track, time); @@ -1591,7 +1591,7 @@ void AnimationBezierTrackEdit::duplicate_selection() { } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Duplicate Keys")); List<Pair<int, real_t>> new_selection_values; @@ -1637,7 +1637,7 @@ void AnimationBezierTrackEdit::duplicate_selection() { void AnimationBezierTrackEdit::delete_selection() { if (selection.size()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Delete Keys")); for (SelectionSet::Element *E = selection.back(); E; E = E->prev()) { diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 89bb1f5ae6..857a9a664a 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -107,7 +107,7 @@ bool AnimationTrackKeyEdit::_set(const StringName &p_name, const Variant &p_valu float val = p_value; float prev_val = animation->track_get_key_transition(track, key); setting = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Change Transition"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(animation.ptr(), "track_set_key_transition", track, key, val); undo_redo->add_undo_method(animation.ptr(), "track_set_key_transition", track, key, prev_val); @@ -119,7 +119,7 @@ bool AnimationTrackKeyEdit::_set(const StringName &p_name, const Variant &p_valu return true; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (animation->track_get_type(track)) { case Animation::TYPE_POSITION_3D: case Animation::TYPE_ROTATION_3D: @@ -704,7 +704,7 @@ bool AnimationMultiTrackKeyEdit::_set(const StringName &p_name, const Variant &p float val = p_value; float prev_val = animation->track_get_key_transition(track, key); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (!setting) { setting = true; undo_redo->create_action(TTR("Animation Multi Change Transition"), UndoRedo::MERGE_ENDS); @@ -714,7 +714,7 @@ bool AnimationMultiTrackKeyEdit::_set(const StringName &p_name, const Variant &p update_obj = true; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (animation->track_get_type(track)) { case Animation::TYPE_POSITION_3D: case Animation::TYPE_ROTATION_3D: @@ -925,7 +925,7 @@ bool AnimationMultiTrackKeyEdit::_set(const StringName &p_name, const Variant &p } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (setting) { if (update_obj) { undo_redo->add_do_method(this, "_update_obj", animation); @@ -1252,7 +1252,7 @@ void AnimationTimelineEdit::_anim_length_changed(double p_new_len) { } editing = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Length"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(animation.ptr(), "set_length", p_new_len); undo_redo->add_undo_method(animation.ptr(), "set_length", animation->get_length()); @@ -1265,7 +1265,7 @@ void AnimationTimelineEdit::_anim_length_changed(double p_new_len) { void AnimationTimelineEdit::_anim_loop_pressed() { if (!read_only) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Loop")); switch (animation->get_loop_mode()) { case Animation::LOOP_NONE: { @@ -2392,7 +2392,7 @@ void AnimationTrackEdit::_zoom_changed() { } void AnimationTrackEdit::_path_submitted(const String &p_text) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Track Path")); undo_redo->add_do_method(animation.ptr(), "track_set_path", track, p_text); undo_redo->add_undo_method(animation.ptr(), "track_set_path", track, animation->track_get_path(track)); @@ -2630,7 +2630,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) { if (!read_only) { if (check_rect.has_point(pos)) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Toggle Track Enabled")); undo_redo->add_do_method(animation.ptr(), "track_set_enabled", track, !animation->track_is_enabled(track)); undo_redo->add_undo_method(animation.ptr(), "track_set_enabled", track, animation->track_is_enabled(track)); @@ -3020,7 +3020,7 @@ void AnimationTrackEdit::_menu_selected(int p_index) { case MENU_CALL_MODE_DISCRETE: case MENU_CALL_MODE_CAPTURE: { Animation::UpdateMode update_mode = Animation::UpdateMode(p_index); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Update Mode")); undo_redo->add_do_method(animation.ptr(), "value_track_set_update_mode", track, update_mode); undo_redo->add_undo_method(animation.ptr(), "value_track_set_update_mode", track, animation->value_track_get_update_mode(track)); @@ -3034,7 +3034,7 @@ void AnimationTrackEdit::_menu_selected(int p_index) { case MENU_INTERPOLATION_LINEAR_ANGLE: case MENU_INTERPOLATION_CUBIC_ANGLE: { Animation::InterpolationType interp_mode = Animation::InterpolationType(p_index - MENU_INTERPOLATION_NEAREST); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Interpolation Mode")); undo_redo->add_do_method(animation.ptr(), "track_set_interpolation_type", track, interp_mode); undo_redo->add_undo_method(animation.ptr(), "track_set_interpolation_type", track, animation->track_get_interpolation_type(track)); @@ -3044,7 +3044,7 @@ void AnimationTrackEdit::_menu_selected(int p_index) { case MENU_LOOP_WRAP: case MENU_LOOP_CLAMP: { bool loop_wrap = p_index == MENU_LOOP_WRAP; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Loop Mode")); undo_redo->add_do_method(animation.ptr(), "track_set_interpolation_loop_wrap", track, loop_wrap); undo_redo->add_undo_method(animation.ptr(), "track_set_interpolation_loop_wrap", track, animation->track_get_interpolation_loop_wrap(track)); @@ -3438,7 +3438,7 @@ void AnimationTrackEditor::_animation_track_remove_request(int p_track, Ref<Anim } int idx = p_track; if (idx >= 0 && idx < p_from_animation->get_track_count()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Anim Track"), UndoRedo::MERGE_DISABLE, p_from_animation.ptr()); // Remove corresponding reset tracks if they are no longer needed. @@ -3639,7 +3639,7 @@ void AnimationTrackEditor::_query_insert(const InsertData &p_id) { } void AnimationTrackEditor::_insert_track(bool p_reset_wanted, bool p_create_beziers) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Insert Key")); Ref<Animation> reset_anim; @@ -3968,7 +3968,7 @@ Ref<Animation> AnimationTrackEditor::_create_and_get_reset_animation() { Ref<Animation> reset_anim; reset_anim.instantiate(); reset_anim->set_length(ANIM_MIN_LENGTH); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(al.ptr(), "add_animation", SceneStringNames::get_singleton()->RESET, reset_anim); undo_redo->add_do_method(AnimationPlayerEditor::get_singleton(), "_animation_player_changed", player); undo_redo->add_undo_method(al.ptr(), "remove_animation", SceneStringNames::get_singleton()->RESET); @@ -3978,7 +3978,7 @@ Ref<Animation> AnimationTrackEditor::_create_and_get_reset_animation() { } void AnimationTrackEditor::_confirm_insert_list() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Insert Key")); bool create_reset = insert_confirm_reset->is_visible() && insert_confirm_reset->is_pressed(); @@ -4148,7 +4148,7 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (create_normal_track) { if (p_create_beziers) { bool valid; @@ -4600,7 +4600,7 @@ void AnimationTrackEditor::_update_scroll(double) { } void AnimationTrackEditor::_update_step(double p_new_step) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Step")); float step_value = p_new_step; if (timeline->is_using_fps()) { @@ -4627,7 +4627,7 @@ void AnimationTrackEditor::_dropped_track(int p_from_track, int p_to_track) { } _clear_selection(true); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rearrange Tracks")); undo_redo->add_do_method(animation.ptr(), "track_move_to", p_from_track, p_to_track); // Take into account that the position of the tracks that come after the one removed will change. @@ -4671,7 +4671,7 @@ void AnimationTrackEditor::_new_track_node_selected(NodePath p_path) { case Animation::TYPE_ROTATION_3D: case Animation::TYPE_SCALE_3D: case Animation::TYPE_METHOD: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Track")); undo_redo->add_do_method(animation.ptr(), "add_track", adding_track_type); undo_redo->add_do_method(animation.ptr(), "track_set_path", animation->get_track_count(), path_to); @@ -4700,7 +4700,7 @@ void AnimationTrackEditor::_new_track_node_selected(NodePath p_path) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Track")); undo_redo->add_do_method(animation.ptr(), "add_track", adding_track_type); undo_redo->add_do_method(animation.ptr(), "track_set_path", animation->get_track_count(), path_to); @@ -4719,7 +4719,7 @@ void AnimationTrackEditor::_new_track_node_selected(NodePath p_path) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Track")); undo_redo->add_do_method(animation.ptr(), "add_track", adding_track_type); undo_redo->add_do_method(animation.ptr(), "track_set_path", animation->get_track_count(), path_to); @@ -4744,7 +4744,7 @@ void AnimationTrackEditor::_add_track(int p_type) { void AnimationTrackEditor::_new_track_property_selected(String p_name) { String full_path = String(adding_track_path) + ":" + p_name; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (adding_track_type == Animation::TYPE_VALUE) { Animation::UpdateMode update_mode = Animation::UPDATE_DISCRETE; { @@ -4835,7 +4835,7 @@ void AnimationTrackEditor::_insert_key_from_track(float p_ofs, int p_track) { p_ofs += 0.0001; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (animation->track_get_type(p_track)) { case Animation::TYPE_POSITION_3D: { if (!root->has_node(animation->track_get_path(p_track))) { @@ -4991,7 +4991,7 @@ void AnimationTrackEditor::_add_method_key(const String &p_method) { } d["args"] = params; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Method Track Key")); undo_redo->add_do_method(animation.ptr(), "track_insert_key", insert_key_from_track_call_track, insert_key_from_track_call_ofs, d); undo_redo->add_undo_method(animation.ptr(), "track_remove_key_at_time", insert_key_from_track_call_track, insert_key_from_track_call_ofs); @@ -5178,7 +5178,7 @@ void AnimationTrackEditor::_select_at_anim(const Ref<Animation> &p_anim, int p_t } void AnimationTrackEditor::_move_selection_commit() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Move Keys")); List<_AnimMoveRestore> to_restore; @@ -5430,7 +5430,7 @@ void AnimationTrackEditor::_anim_duplicate_keys(bool transpose) { int start_track = transpose ? _get_track_selected() : top_track; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Duplicate Keys")); List<Pair<int, float>> new_selection_values; @@ -5660,7 +5660,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { } int base_track = animation->get_track_count(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Paste Tracks")); for (int i = 0; i < track_clipboard.size(); i++) { undo_redo->add_do_method(animation.ptr(), "add_track", track_clipboard[i].track_type); @@ -5730,7 +5730,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { float s = scale->get_value(); ERR_FAIL_COND_MSG(s == 0, "Can't scale to 0."); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Scale Keys")); List<_AnimMoveRestore> to_restore; @@ -5810,7 +5810,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { ease_dialog->popup_centered(Size2(200, 100) * EDSCALE); } break; case EDIT_EASE_CONFIRM: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Make Easing Keys")); Tween::TransitionType transition_type = static_cast<Tween::TransitionType>(transition_selection->get_selected_id()); @@ -5917,7 +5917,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { _anim_duplicate_keys(true); } break; case EDIT_ADD_RESET_KEY: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Add RESET Keys")); Ref<Animation> reset = _create_and_get_reset_animation(); @@ -5978,7 +5978,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { } if (selection.size()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Delete Keys")); for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) { @@ -6009,7 +6009,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { bake_dialog->popup_centered(Size2(200, 100) * EDSCALE); } break; case EDIT_BAKE_ANIMATION_CONFIRM: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Bake Animation as Linear keys.")); int track_len = animation->get_track_count(); @@ -6130,7 +6130,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { animation->optimize(optimize_velocity_error->get_value(), optimize_angular_error->get_value(), optimize_precision_error->get_value()); _redraw_tracks(); _update_key_edit(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->clear_history(true, undo_redo->get_history_id_for_object(animation.ptr())); undo_redo->clear_history(true, undo_redo->get_history_id_for_object(this)); @@ -6200,7 +6200,7 @@ void AnimationTrackEditor::_cleanup_animation(Ref<Animation> p_animation) { } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->clear_history(true, undo_redo->get_history_id_for_object(animation.ptr())); undo_redo->clear_history(true, undo_redo->get_history_id_for_object(this)); _update_tracks(); @@ -6801,7 +6801,7 @@ void AnimationTrackKeyEditEditor::_time_edit_exited() { } int existing = animation->track_find_key(track, new_time, Animation::FIND_MODE_APPROX); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Animation Change Keyframe Time"), UndoRedo::MERGE_ENDS); if (existing != -1) { diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index 0926a63f88..ba73a63245 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -31,7 +31,6 @@ #include "animation_track_editor_plugins.h" #include "editor/audio_stream_preview.h" -#include "editor/editor_node.h" #include "editor/editor_resource_preview.h" #include "editor/editor_scale.h" #include "editor/editor_undo_redo_manager.h" @@ -1018,7 +1017,7 @@ void AnimationTrackEditTypeAudio::drop_data(const Point2 &p_point, const Variant ofs += 0.0001; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Audio Track Clip")); undo_redo->add_do_method(get_animation().ptr(), "audio_track_insert_key", get_track(), ofs, stream); undo_redo->add_undo_method(get_animation().ptr(), "track_remove_key_at_time", get_track(), ofs); @@ -1125,7 +1124,7 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (len_resizing && mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT) { if (len_resizing_rel == 0 || len_resizing_index < 0) { len_resizing = false; diff --git a/editor/array_property_edit.cpp b/editor/array_property_edit.cpp deleted file mode 100644 index b2e12e2409..0000000000 --- a/editor/array_property_edit.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/**************************************************************************/ -/* array_property_edit.cpp */ -/**************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/**************************************************************************/ -/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/**************************************************************************/ - -#include "array_property_edit.h" - -#include "core/io/marshalls.h" -#include "editor/editor_node.h" -#include "editor/editor_undo_redo_manager.h" - -#define ITEMS_PER_PAGE 100 - -Variant ArrayPropertyEdit::get_array() const { - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return Array(); - } - Variant arr = o->get(property); - if (!arr.is_array()) { - Callable::CallError ce; - Variant::construct(default_type, arr, nullptr, 0, ce); - } - return arr; -} - -void ArrayPropertyEdit::_notif_change() { - notify_property_list_changed(); -} - -void ArrayPropertyEdit::_set_size(int p_size) { - Variant arr = get_array(); - arr.call("resize", p_size); - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return; - } - - o->set(property, arr); -} - -void ArrayPropertyEdit::_set_value(int p_idx, const Variant &p_value) { - Variant arr = get_array(); - arr.set(p_idx, p_value); - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return; - } - - o->set(property, arr); -} - -bool ArrayPropertyEdit::_set(const StringName &p_name, const Variant &p_value) { - String pn = p_name; - - if (pn.begins_with("array/")) { - if (pn == "array/size") { - Variant arr = get_array(); - int size = arr.call("size"); - - int newsize = p_value; - if (newsize == size) { - return true; - } - - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); - ur->create_action(TTR("Resize Array")); - ur->add_do_method(this, "_set_size", newsize); - ur->add_undo_method(this, "_set_size", size); - if (newsize < size) { - for (int i = newsize; i < size; i++) { - ur->add_undo_method(this, "_set_value", i, arr.get(i)); - } - } else if (newsize > size) { - Variant init; - Callable::CallError ce; - Variant::Type new_type = subtype; - if (new_type == Variant::NIL && size) { - new_type = arr.get(size - 1).get_type(); - } - if (new_type != Variant::NIL) { - Variant::construct(new_type, init, nullptr, 0, ce); - for (int i = size; i < newsize; i++) { - ur->add_do_method(this, "_set_value", i, init); - } - } - } - ur->add_do_method(this, "_notif_change"); - ur->add_undo_method(this, "_notif_change"); - ur->commit_action(); - return true; - } - if (pn == "array/page") { - page = p_value; - notify_property_list_changed(); - return true; - } - - } else if (pn.begins_with("indices")) { - if (pn.contains("_")) { - //type - int idx = pn.get_slicec('/', 1).get_slicec('_', 0).to_int(); - - int type = p_value; - - Variant arr = get_array(); - - Variant value = arr.get(idx); - if (value.get_type() != type && type >= 0 && type < Variant::VARIANT_MAX) { - Callable::CallError ce; - Variant new_value; - Variant::construct(Variant::Type(type), new_value, nullptr, 0, ce); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); - - ur->create_action(TTR("Change Array Value Type")); - ur->add_do_method(this, "_set_value", idx, new_value); - ur->add_undo_method(this, "_set_value", idx, value); - ur->add_do_method(this, "_notif_change"); - ur->add_undo_method(this, "_notif_change"); - ur->commit_action(); - } - return true; - - } else { - int idx = pn.get_slicec('/', 1).to_int(); - Variant arr = get_array(); - - Variant value = arr.get(idx); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); - - ur->create_action(TTR("Change Array Value")); - ur->add_do_method(this, "_set_value", idx, p_value); - ur->add_undo_method(this, "_set_value", idx, value); - ur->commit_action(); - return true; - } - } - - return false; -} - -bool ArrayPropertyEdit::_get(const StringName &p_name, Variant &r_ret) const { - Variant arr = get_array(); - //int size = arr.call("size"); - - String pn = p_name; - if (pn.begins_with("array/")) { - if (pn == "array/size") { - r_ret = arr.call("size"); - return true; - } - if (pn == "array/page") { - r_ret = page; - return true; - } - } else if (pn.begins_with("indices")) { - if (pn.contains("_")) { - //type - int idx = pn.get_slicec('/', 1).get_slicec('_', 0).to_int(); - bool valid; - r_ret = arr.get(idx, &valid); - if (valid) { - r_ret = r_ret.get_type(); - } - return valid; - - } else { - int idx = pn.get_slicec('/', 1).to_int(); - bool valid; - r_ret = arr.get(idx, &valid); - - if (r_ret.get_type() == Variant::OBJECT && Object::cast_to<EncodedObjectAsID>(r_ret)) { - r_ret = Object::cast_to<EncodedObjectAsID>(r_ret)->get_object_id(); - } - - return valid; - } - } - - return false; -} - -void ArrayPropertyEdit::_get_property_list(List<PropertyInfo> *p_list) const { - Variant arr = get_array(); - int size = arr.call("size"); - - p_list->push_back(PropertyInfo(Variant::INT, "array/size", PROPERTY_HINT_RANGE, "0,100000,1")); - int pages = size / ITEMS_PER_PAGE; - if (pages > 0) { - p_list->push_back(PropertyInfo(Variant::INT, "array/page", PROPERTY_HINT_RANGE, "0," + itos(pages) + ",1")); - } - - int offset = page * ITEMS_PER_PAGE; - - int items = MIN(size - offset, ITEMS_PER_PAGE); - - for (int i = 0; i < items; i++) { - Variant v = arr.get(i + offset); - bool is_typed = arr.get_type() != Variant::ARRAY || subtype != Variant::NIL; - - if (!is_typed) { - p_list->push_back(PropertyInfo(Variant::INT, "indices/" + itos(i + offset) + "_type", PROPERTY_HINT_ENUM, vtypes)); - } - - if (v.get_type() == Variant::OBJECT && Object::cast_to<EncodedObjectAsID>(v)) { - p_list->push_back(PropertyInfo(Variant::INT, "indices/" + itos(i + offset), PROPERTY_HINT_OBJECT_ID, "Object")); - continue; - } - - if (is_typed || v.get_type() != Variant::NIL) { - PropertyInfo pi(v.get_type(), "indices/" + itos(i + offset)); - if (subtype != Variant::NIL) { - pi.type = Variant::Type(subtype); - pi.hint = PropertyHint(subtype_hint); - pi.hint_string = subtype_hint_string; - } else if (v.get_type() == Variant::OBJECT) { - pi.hint = PROPERTY_HINT_RESOURCE_TYPE; - pi.hint_string = "Resource"; - } - - p_list->push_back(pi); - } - } -} - -void ArrayPropertyEdit::edit(Object *p_obj, const StringName &p_prop, const String &p_hint_string, Variant::Type p_deftype) { - page = 0; - property = p_prop; - obj = p_obj->get_instance_id(); - default_type = p_deftype; - - if (!p_hint_string.is_empty()) { - int hint_subtype_separator = p_hint_string.find(":"); - if (hint_subtype_separator >= 0) { - String subtype_string = p_hint_string.substr(0, hint_subtype_separator); - - int slash_pos = subtype_string.find("/"); - if (slash_pos >= 0) { - subtype_hint = PropertyHint(subtype_string.substr(slash_pos + 1, subtype_string.size() - slash_pos - 1).to_int()); - subtype_string = subtype_string.substr(0, slash_pos); - } - - subtype_hint_string = p_hint_string.substr(hint_subtype_separator + 1, p_hint_string.size() - hint_subtype_separator - 1); - subtype = Variant::Type(subtype_string.to_int()); - } - } -} - -Node *ArrayPropertyEdit::get_node() { - return Object::cast_to<Node>(ObjectDB::get_instance(obj)); -} - -bool ArrayPropertyEdit::_dont_undo_redo() { - return true; -} - -void ArrayPropertyEdit::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_size"), &ArrayPropertyEdit::_set_size); - ClassDB::bind_method(D_METHOD("_set_value"), &ArrayPropertyEdit::_set_value); - ClassDB::bind_method(D_METHOD("_notif_change"), &ArrayPropertyEdit::_notif_change); - ClassDB::bind_method(D_METHOD("_dont_undo_redo"), &ArrayPropertyEdit::_dont_undo_redo); -} - -ArrayPropertyEdit::ArrayPropertyEdit() { - page = 0; - for (int i = 0; i < Variant::VARIANT_MAX; i++) { - if (i > 0) { - vtypes += ","; - } - vtypes += Variant::get_type_name(Variant::Type(i)); - } - default_type = Variant::NIL; - subtype = Variant::NIL; - subtype_hint = PROPERTY_HINT_NONE; - subtype_hint_string = ""; -} diff --git a/editor/array_property_edit.h b/editor/array_property_edit.h deleted file mode 100644 index 6e34a06943..0000000000 --- a/editor/array_property_edit.h +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************/ -/* array_property_edit.h */ -/**************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/**************************************************************************/ -/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/**************************************************************************/ - -#ifndef ARRAY_PROPERTY_EDIT_H -#define ARRAY_PROPERTY_EDIT_H - -#include "scene/main/node.h" - -class ArrayPropertyEdit : public RefCounted { - GDCLASS(ArrayPropertyEdit, RefCounted); - - int page; - ObjectID obj; - StringName property; - String vtypes; - String subtype_hint_string; - PropertyHint subtype_hint; - Variant::Type subtype; - Variant get_array() const; - Variant::Type default_type; - - void _notif_change(); - void _set_size(int p_size); - void _set_value(int p_idx, const Variant &p_value); - - bool _dont_undo_redo(); - -protected: - static void _bind_methods(); - bool _set(const StringName &p_name, const Variant &p_value); - bool _get(const StringName &p_name, Variant &r_ret) const; - void _get_property_list(List<PropertyInfo> *p_list) const; - -public: - void edit(Object *p_obj, const StringName &p_prop, const String &p_hint_string, Variant::Type p_deftype); - - Node *get_node(); - - ArrayPropertyEdit(); -}; - -#endif // ARRAY_PROPERTY_EDIT_H diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index ba7e7f2877..644735a4d8 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -143,6 +143,7 @@ void FindReplaceBar::unhandled_input(const Ref<InputEvent> &p_event) { } bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col) { + text_editor->remove_secondary_carets(); String text = get_search_text(); Point2i pos = text_editor->search(text, p_flags, p_from_line, p_from_col); @@ -178,6 +179,7 @@ bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col) } void FindReplaceBar::_replace() { + text_editor->remove_secondary_carets(); bool selection_enabled = text_editor->has_selection(0); Point2i selection_begin, selection_end; if (selection_enabled) { @@ -225,6 +227,7 @@ void FindReplaceBar::_replace() { } void FindReplaceBar::_replace_all() { + text_editor->remove_secondary_carets(); text_editor->disconnect("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed)); // Line as x so it gets priority in comparison, column as y. Point2i orig_cursor(text_editor->get_caret_line(0), text_editor->get_caret_column(0)); @@ -2083,6 +2086,7 @@ CodeTextEditor::CodeTextEditor() { text_editor = memnew(CodeEdit); add_child(text_editor); text_editor->set_v_size_flags(SIZE_EXPAND_FILL); + text_editor->set_structured_text_bidi_override(TextServer::STRUCTURED_TEXT_GDSCRIPT); int ot_mode = EDITOR_GET("interface/editor/code_font_contextual_ligatures"); Ref<FontVariation> fc = text_editor->get_theme_font(SNAME("font")); diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index 78987ee6ef..6f4736dca7 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -685,7 +685,7 @@ void ConnectionsDock::_connect(ConnectDialog::ConnectionData p_cd) { } Callable callable = p_cd.get_callable(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(p_cd.signal), String(p_cd.method))); undo_redo->add_do_method(source, "connect", p_cd.signal, callable, p_cd.flags); undo_redo->add_undo_method(source, "disconnect", p_cd.signal, callable); @@ -706,7 +706,7 @@ void ConnectionsDock::_disconnect(TreeItem &p_item) { ERR_FAIL_COND(cd.source != selected_node); // Shouldn't happen but... Bugcheck. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), cd.signal, cd.method)); Callable callable = cd.get_callable(); @@ -733,7 +733,7 @@ void ConnectionsDock::_disconnect_all() { TreeItem *child = item->get_first_child(); String signal_name = item->get_metadata(0).operator Dictionary()["name"]; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signal_name)); while (child) { @@ -1196,6 +1196,7 @@ ConnectionsDock::ConnectionsDock() { tree->set_columns(1); tree->set_select_mode(Tree::SELECT_ROW); tree->set_hide_root(true); + tree->set_column_clip_content(0, true); vbc->add_child(tree); tree->set_v_size_flags(Control::SIZE_EXPAND_FILL); tree->set_allow_rmb_select(true); diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 98fcde17c4..0814d5b5ca 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -724,12 +724,6 @@ void CreateDialog::_load_favorites_and_history() { } void CreateDialog::_bind_methods() { - ClassDB::bind_method(D_METHOD("_save_and_update_favorite_list"), &CreateDialog::_save_and_update_favorite_list); - - ClassDB::bind_method("_get_drag_data_fw", &CreateDialog::get_drag_data_fw); - ClassDB::bind_method("_can_drop_data_fw", &CreateDialog::can_drop_data_fw); - ClassDB::bind_method("_drop_data_fw", &CreateDialog::drop_data_fw); - ADD_SIGNAL(MethodInfo("create")); ADD_SIGNAL(MethodInfo("favorites_updated")); } @@ -759,7 +753,7 @@ CreateDialog::CreateDialog() { favorites->connect("cell_selected", callable_mp(this, &CreateDialog::_favorite_selected)); favorites->connect("item_activated", callable_mp(this, &CreateDialog::_favorite_activated)); favorites->add_theme_constant_override("draw_guides", 1); - favorites->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(favorites, CreateDialog); fav_vb->add_margin_child(TTR("Favorites:"), favorites, true); VBoxContainer *rec_vb = memnew(VBoxContainer); diff --git a/editor/debugger/debug_adapter/debug_adapter_parser.cpp b/editor/debugger/debug_adapter/debug_adapter_parser.cpp index d685db40d9..fc806ded5e 100644 --- a/editor/debugger/debug_adapter/debug_adapter_parser.cpp +++ b/editor/debugger/debug_adapter/debug_adapter_parser.cpp @@ -213,7 +213,7 @@ Dictionary DebugAdapterParser::req_launch(const Dictionary &p_params) const { } EditorNode *editor = EditorNode::get_singleton(); - Error err = platform_string == "android" ? editor->run_play_native(device, idx) : editor->run_play_native(-1, idx); + Error err = platform_string == "android" ? editor->run_play_native(device * 10000 + idx) : editor->run_play_native(idx); if (err) { if (err == ERR_INVALID_PARAMETER && platform_string == "android") { return prepare_error_response(p_params, DAP::ErrorType::MISSING_DEVICE); diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp index e4afbde89f..a368cacf56 100644 --- a/editor/debugger/editor_debugger_node.cpp +++ b/editor/debugger/editor_debugger_node.cpp @@ -275,7 +275,7 @@ void EditorDebuggerNode::stop(bool p_force) { }); _break_state_changed(); breakpoints.clear(); - EditorNode::get_undo_redo()->clear_history(false, EditorUndoRedoManager::REMOTE_HISTORY); + EditorUndoRedoManager::get_singleton()->clear_history(false, EditorUndoRedoManager::REMOTE_HISTORY); set_process(false); } diff --git a/editor/dictionary_property_edit.cpp b/editor/dictionary_property_edit.cpp deleted file mode 100644 index 0d191cabe8..0000000000 --- a/editor/dictionary_property_edit.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/**************************************************************************/ -/* dictionary_property_edit.cpp */ -/**************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/**************************************************************************/ -/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/**************************************************************************/ - -#include "dictionary_property_edit.h" -#include "editor/editor_node.h" -#include "editor/editor_undo_redo_manager.h" - -void DictionaryPropertyEdit::_notif_change() { - notify_property_list_changed(); -} - -void DictionaryPropertyEdit::_set_key(const Variant &p_old_key, const Variant &p_new_key) { - // TODO: Set key of a dictionary is not allowed yet -} - -void DictionaryPropertyEdit::_set_value(const Variant &p_key, const Variant &p_value) { - Dictionary dict = get_dictionary(); - dict[p_key] = p_value; - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return; - } - - o->set(property, dict); -} - -Variant DictionaryPropertyEdit::get_dictionary() const { - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return Dictionary(); - } - Variant dict = o->get(property); - if (dict.get_type() != Variant::DICTIONARY) { - return Dictionary(); - } - return dict; -} - -void DictionaryPropertyEdit::_get_property_list(List<PropertyInfo> *p_list) const { - Dictionary dict = get_dictionary(); - - Array keys = dict.keys(); - keys.sort(); - - for (int i = 0; i < keys.size(); i++) { - String index = itos(i); - - const Variant &key = keys[i]; - PropertyInfo pi(key.get_type(), index + ": key"); - p_list->push_back(pi); - - const Variant &value = dict[key]; - pi = PropertyInfo(value.get_type(), index + ": value"); - p_list->push_back(pi); - } -} - -void DictionaryPropertyEdit::edit(Object *p_obj, const StringName &p_prop) { - property = p_prop; - obj = p_obj->get_instance_id(); -} - -Node *DictionaryPropertyEdit::get_node() { - Object *o = ObjectDB::get_instance(obj); - if (!o) { - return nullptr; - } - - return cast_to<Node>(o); -} - -bool DictionaryPropertyEdit::_dont_undo_redo() { - return true; -} - -void DictionaryPropertyEdit::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_key"), &DictionaryPropertyEdit::_set_key); - ClassDB::bind_method(D_METHOD("_set_value"), &DictionaryPropertyEdit::_set_value); - ClassDB::bind_method(D_METHOD("_notif_change"), &DictionaryPropertyEdit::_notif_change); - ClassDB::bind_method(D_METHOD("_dont_undo_redo"), &DictionaryPropertyEdit::_dont_undo_redo); -} - -bool DictionaryPropertyEdit::_set(const StringName &p_name, const Variant &p_value) { - Dictionary dict = get_dictionary(); - Array keys = dict.keys(); - keys.sort(); - - String pn = p_name; - int slash = pn.find(": "); - if (slash != -1 && pn.length() > slash) { - String type = pn.substr(slash + 2, pn.length()); - int index = pn.substr(0, slash).to_int(); - if (type == "key" && index < keys.size()) { - const Variant &key = keys[index]; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); - - ur->create_action(TTR("Change Dictionary Key")); - ur->add_do_method(this, "_set_key", key, p_value); - ur->add_undo_method(this, "_set_key", p_value, key); - ur->commit_action(); - - return true; - } else if (type == "value" && index < keys.size()) { - const Variant &key = keys[index]; - if (dict.has(key)) { - Variant value = dict[key]; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); - - ur->create_action(TTR("Change Dictionary Value")); - ur->add_do_method(this, "_set_value", key, p_value); - ur->add_undo_method(this, "_set_value", key, value); - ur->commit_action(); - - return true; - } - } - } - - return false; -} - -bool DictionaryPropertyEdit::_get(const StringName &p_name, Variant &r_ret) const { - Dictionary dict = get_dictionary(); - Array keys = dict.keys(); - keys.sort(); - - String pn = p_name; - int slash = pn.find(": "); - - if (slash != -1 && pn.length() > slash) { - String type = pn.substr(slash + 2, pn.length()); - int index = pn.substr(0, slash).to_int(); - - if (type == "key" && index < keys.size()) { - r_ret = keys[index]; - return true; - } else if (type == "value" && index < keys.size()) { - const Variant &key = keys[index]; - if (dict.has(key)) { - r_ret = dict[key]; - return true; - } - } - } - - return false; -} - -DictionaryPropertyEdit::DictionaryPropertyEdit() { -} diff --git a/editor/dictionary_property_edit.h b/editor/dictionary_property_edit.h deleted file mode 100644 index 197bb394d4..0000000000 --- a/editor/dictionary_property_edit.h +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************/ -/* dictionary_property_edit.h */ -/**************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/**************************************************************************/ -/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/**************************************************************************/ - -#ifndef DICTIONARY_PROPERTY_EDIT_H -#define DICTIONARY_PROPERTY_EDIT_H - -#include "scene/main/node.h" - -class DictionaryPropertyEdit : public RefCounted { - GDCLASS(DictionaryPropertyEdit, RefCounted); - - ObjectID obj; - StringName property; - - void _notif_change(); - void _set_key(const Variant &p_old_key, const Variant &p_new_key); - void _set_value(const Variant &p_key, const Variant &p_value); - - Variant get_dictionary() const; - - bool _dont_undo_redo(); - -protected: - static void _bind_methods(); - bool _set(const StringName &p_name, const Variant &p_value); - bool _get(const StringName &p_name, Variant &r_ret) const; - void _get_property_list(List<PropertyInfo> *p_list) const; - -public: - void edit(Object *p_obj, const StringName &p_prop); - - Node *get_node(); - - DictionaryPropertyEdit(); -}; - -#endif // DICTIONARY_PROPERTY_EDIT_H diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp index 85adc312f2..5bdef32c60 100644 --- a/editor/doc_tools.cpp +++ b/editor/doc_tools.cpp @@ -750,6 +750,7 @@ void DocTools::generate(bool p_basic_types) { MethodInfo mi; mi.name = "operator []"; mi.return_val.type = Variant::get_indexed_element_type(Variant::Type(i)); + mi.return_val.usage = Variant::get_indexed_element_usage(Variant::Type(i)); PropertyInfo arg; arg.name = "index"; arg.type = Variant::INT; @@ -1021,15 +1022,15 @@ static Error _parse_methods(Ref<XMLParser> &parser, Vector<DocData::MethodDoc> & if (parser->get_node_name() == element) { DocData::MethodDoc method; ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - method.name = parser->get_attribute_value("name"); + method.name = parser->get_named_attribute_value("name"); if (parser->has_attribute("qualifiers")) { - method.qualifiers = parser->get_attribute_value("qualifiers"); + method.qualifiers = parser->get_named_attribute_value("qualifiers"); } if (parser->has_attribute("is_deprecated")) { - method.is_deprecated = parser->get_attribute_value("is_deprecated").to_lower() == "true"; + method.is_deprecated = parser->get_named_attribute_value("is_deprecated").to_lower() == "true"; } if (parser->has_attribute("is_experimental")) { - method.is_experimental = parser->get_attribute_value("is_experimental").to_lower() == "true"; + method.is_experimental = parser->get_named_attribute_value("is_experimental").to_lower() == "true"; } while (parser->read() == OK) { @@ -1037,21 +1038,21 @@ static Error _parse_methods(Ref<XMLParser> &parser, Vector<DocData::MethodDoc> & String name = parser->get_node_name(); if (name == "return") { ERR_FAIL_COND_V(!parser->has_attribute("type"), ERR_FILE_CORRUPT); - method.return_type = parser->get_attribute_value("type"); + method.return_type = parser->get_named_attribute_value("type"); if (parser->has_attribute("enum")) { - method.return_enum = parser->get_attribute_value("enum"); + method.return_enum = parser->get_named_attribute_value("enum"); } } else if (name == "returns_error") { ERR_FAIL_COND_V(!parser->has_attribute("number"), ERR_FILE_CORRUPT); - method.errors_returned.push_back(parser->get_attribute_value("number").to_int()); + method.errors_returned.push_back(parser->get_named_attribute_value("number").to_int()); } else if (name == "param") { DocData::ArgumentDoc argument; ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - argument.name = parser->get_attribute_value("name"); + argument.name = parser->get_named_attribute_value("name"); ERR_FAIL_COND_V(!parser->has_attribute("type"), ERR_FILE_CORRUPT); - argument.type = parser->get_attribute_value("type"); + argument.type = parser->get_named_attribute_value("type"); if (parser->has_attribute("enum")) { - argument.enumeration = parser->get_attribute_value("enum"); + argument.enumeration = parser->get_named_attribute_value("enum"); } method.arguments.push_back(argument); @@ -1153,21 +1154,21 @@ Error DocTools::_load(Ref<XMLParser> parser) { ERR_FAIL_COND_V(parser->get_node_name() != "class", ERR_FILE_CORRUPT); ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - String name = parser->get_attribute_value("name"); + String name = parser->get_named_attribute_value("name"); class_list[name] = DocData::ClassDoc(); DocData::ClassDoc &c = class_list[name]; c.name = name; if (parser->has_attribute("inherits")) { - c.inherits = parser->get_attribute_value("inherits"); + c.inherits = parser->get_named_attribute_value("inherits"); } if (parser->has_attribute("is_deprecated")) { - c.is_deprecated = parser->get_attribute_value("is_deprecated").to_lower() == "true"; + c.is_deprecated = parser->get_named_attribute_value("is_deprecated").to_lower() == "true"; } if (parser->has_attribute("is_experimental")) { - c.is_experimental = parser->get_attribute_value("is_experimental").to_lower() == "true"; + c.is_experimental = parser->get_named_attribute_value("is_experimental").to_lower() == "true"; } while (parser->read() == OK) { @@ -1193,7 +1194,7 @@ Error DocTools::_load(Ref<XMLParser> parser) { if (name3 == "link") { DocData::TutorialDoc tutorial; if (parser->has_attribute("title")) { - tutorial.title = parser->get_attribute_value("title"); + tutorial.title = parser->get_named_attribute_value("title"); } parser->read(); if (parser->get_node_type() == XMLParser::NODE_TEXT) { @@ -1231,23 +1232,23 @@ Error DocTools::_load(Ref<XMLParser> parser) { DocData::PropertyDoc prop2; ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - prop2.name = parser->get_attribute_value("name"); + prop2.name = parser->get_named_attribute_value("name"); ERR_FAIL_COND_V(!parser->has_attribute("type"), ERR_FILE_CORRUPT); - prop2.type = parser->get_attribute_value("type"); + prop2.type = parser->get_named_attribute_value("type"); if (parser->has_attribute("setter")) { - prop2.setter = parser->get_attribute_value("setter"); + prop2.setter = parser->get_named_attribute_value("setter"); } if (parser->has_attribute("getter")) { - prop2.getter = parser->get_attribute_value("getter"); + prop2.getter = parser->get_named_attribute_value("getter"); } if (parser->has_attribute("enum")) { - prop2.enumeration = parser->get_attribute_value("enum"); + prop2.enumeration = parser->get_named_attribute_value("enum"); } if (parser->has_attribute("is_deprecated")) { - prop2.is_deprecated = parser->get_attribute_value("is_deprecated").to_lower() == "true"; + prop2.is_deprecated = parser->get_named_attribute_value("is_deprecated").to_lower() == "true"; } if (parser->has_attribute("is_experimental")) { - prop2.is_experimental = parser->get_attribute_value("is_experimental").to_lower() == "true"; + prop2.is_experimental = parser->get_named_attribute_value("is_experimental").to_lower() == "true"; } if (!parser->is_empty()) { parser->read(); @@ -1274,11 +1275,11 @@ Error DocTools::_load(Ref<XMLParser> parser) { DocData::ThemeItemDoc prop2; ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - prop2.name = parser->get_attribute_value("name"); + prop2.name = parser->get_named_attribute_value("name"); ERR_FAIL_COND_V(!parser->has_attribute("type"), ERR_FILE_CORRUPT); - prop2.type = parser->get_attribute_value("type"); + prop2.type = parser->get_named_attribute_value("type"); ERR_FAIL_COND_V(!parser->has_attribute("data_type"), ERR_FILE_CORRUPT); - prop2.data_type = parser->get_attribute_value("data_type"); + prop2.data_type = parser->get_named_attribute_value("data_type"); if (!parser->is_empty()) { parser->read(); if (parser->get_node_type() == XMLParser::NODE_TEXT) { @@ -1303,21 +1304,21 @@ Error DocTools::_load(Ref<XMLParser> parser) { if (name3 == "constant") { DocData::ConstantDoc constant2; ERR_FAIL_COND_V(!parser->has_attribute("name"), ERR_FILE_CORRUPT); - constant2.name = parser->get_attribute_value("name"); + constant2.name = parser->get_named_attribute_value("name"); ERR_FAIL_COND_V(!parser->has_attribute("value"), ERR_FILE_CORRUPT); - constant2.value = parser->get_attribute_value("value"); + constant2.value = parser->get_named_attribute_value("value"); constant2.is_value_valid = true; if (parser->has_attribute("enum")) { - constant2.enumeration = parser->get_attribute_value("enum"); + constant2.enumeration = parser->get_named_attribute_value("enum"); } if (parser->has_attribute("is_bitfield")) { - constant2.is_bitfield = parser->get_attribute_value("is_bitfield").to_lower() == "true"; + constant2.is_bitfield = parser->get_named_attribute_value("is_bitfield").to_lower() == "true"; } if (parser->has_attribute("is_deprecated")) { - constant2.is_deprecated = parser->get_attribute_value("is_deprecated").to_lower() == "true"; + constant2.is_deprecated = parser->get_named_attribute_value("is_deprecated").to_lower() == "true"; } if (parser->has_attribute("is_experimental")) { - constant2.is_experimental = parser->get_attribute_value("is_experimental").to_lower() == "true"; + constant2.is_experimental = parser->get_named_attribute_value("is_experimental").to_lower() == "true"; } if (!parser->is_empty()) { parser->read(); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 7ef99d56ab..f4cefc606b 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -282,7 +282,7 @@ void EditorAudioBus::_name_changed(const String &p_new_name) { } updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); StringName current = AudioServer::get_singleton()->get_bus_name(get_index()); ur->create_action(TTR("Rename Audio Bus")); @@ -323,7 +323,7 @@ void EditorAudioBus::_volume_changed(float p_normalized) { slider->set_value(_scaled_db_to_normalized_volume(Math::round(p_db))); } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Audio Bus Volume"), UndoRedo::MERGE_ENDS); ur->add_do_method(AudioServer::get_singleton(), "set_bus_volume_db", get_index(), p_db); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_volume_db", get_index(), AudioServer::get_singleton()->get_bus_volume_db(get_index())); @@ -417,7 +417,7 @@ void EditorAudioBus::_hide_value_preview() { void EditorAudioBus::_solo_toggled() { updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Toggle Audio Bus Solo")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_solo", get_index(), solo->is_pressed()); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_solo", get_index(), AudioServer::get_singleton()->is_bus_solo(get_index())); @@ -431,7 +431,7 @@ void EditorAudioBus::_solo_toggled() { void EditorAudioBus::_mute_toggled() { updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Toggle Audio Bus Mute")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_mute", get_index(), mute->is_pressed()); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_mute", get_index(), AudioServer::get_singleton()->is_bus_mute(get_index())); @@ -445,7 +445,7 @@ void EditorAudioBus::_mute_toggled() { void EditorAudioBus::_bypass_toggled() { updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Toggle Audio Bus Bypass Effects")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_bypass_effects", get_index(), bypass->is_pressed()); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_bypass_effects", get_index(), AudioServer::get_singleton()->is_bus_bypassing_effects(get_index())); @@ -459,7 +459,7 @@ void EditorAudioBus::_bypass_toggled() { void EditorAudioBus::_send_selected(int p_which) { updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Select Audio Bus Send")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_send", get_index(), send->get_item_text(p_which)); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_send", get_index(), AudioServer::get_singleton()->get_bus_send(get_index())); @@ -509,7 +509,7 @@ void EditorAudioBus::_effect_edited() { int index = effect->get_metadata(0); updating_bus = true; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Select Audio Bus Send")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_effect_enabled", get_index(), index, effect->is_checked(0)); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_effect_enabled", get_index(), index, AudioServer::get_singleton()->is_bus_effect_enabled(get_index(), index)); @@ -536,7 +536,7 @@ void EditorAudioBus::_effect_add(int p_which) { afxr->set_name(effect_options->get_item_text(p_which)); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Add Audio Bus Effect")); ur->add_do_method(AudioServer::get_singleton(), "add_bus_effect", get_index(), afxr, -1); ur->add_undo_method(AudioServer::get_singleton(), "remove_bus_effect", get_index(), AudioServer::get_singleton()->get_bus_effect_count(get_index())); @@ -690,7 +690,7 @@ void EditorAudioBus::drop_data_fw(const Point2 &p_point, const Variant &p_data, bool enabled = AudioServer::get_singleton()->is_bus_effect_enabled(bus, effect); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Move Bus Effect")); ur->add_do_method(AudioServer::get_singleton(), "remove_bus_effect", bus, effect); ur->add_do_method(AudioServer::get_singleton(), "add_bus_effect", get_index(), AudioServer::get_singleton()->get_bus_effect(bus, effect), paste_at); @@ -732,7 +732,7 @@ void EditorAudioBus::_delete_effect_pressed(int p_option) { int index = item->get_metadata(0); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Delete Bus Effect")); ur->add_do_method(AudioServer::get_singleton(), "remove_bus_effect", get_index(), index); ur->add_undo_method(AudioServer::get_singleton(), "add_bus_effect", get_index(), AudioServer::get_singleton()->get_bus_effect(get_index(), index), index); @@ -765,10 +765,6 @@ void EditorAudioBus::_bind_methods() { ClassDB::bind_method("update_bus", &EditorAudioBus::update_bus); ClassDB::bind_method("update_send", &EditorAudioBus::update_send); - ClassDB::bind_method("_get_drag_data_fw", &EditorAudioBus::get_drag_data_fw); - ClassDB::bind_method("_can_drop_data_fw", &EditorAudioBus::can_drop_data_fw); - ClassDB::bind_method("_drop_data_fw", &EditorAudioBus::drop_data_fw); - ADD_SIGNAL(MethodInfo("duplicate_request")); ADD_SIGNAL(MethodInfo("delete_request")); ADD_SIGNAL(MethodInfo("vol_reset_request")); @@ -903,7 +899,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { effects->connect("item_edited", callable_mp(this, &EditorAudioBus::_effect_edited)); effects->connect("cell_selected", callable_mp(this, &EditorAudioBus::_effect_selected)); effects->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); - effects->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(effects, EditorAudioBus); effects->connect("item_mouse_selected", callable_mp(this, &EditorAudioBus::_effect_rmb)); effects->set_allow_rmb_select(true); effects->set_focus_mode(FOCUS_CLICK); @@ -1065,7 +1061,7 @@ void EditorAudioBuses::_notification(int p_what) { } void EditorAudioBuses::_add_bus() { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Add Audio Bus")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_count", AudioServer::get_singleton()->get_bus_count() + 1); @@ -1097,7 +1093,7 @@ void EditorAudioBuses::_delete_bus(Object *p_which) { return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Delete Audio Bus")); ur->add_do_method(AudioServer::get_singleton(), "remove_bus", index); @@ -1119,7 +1115,7 @@ void EditorAudioBuses::_delete_bus(Object *p_which) { void EditorAudioBuses::_duplicate_bus(int p_which) { int add_at_pos = p_which + 1; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Duplicate Audio Bus")); ur->add_do_method(AudioServer::get_singleton(), "add_bus", add_at_pos); ur->add_do_method(AudioServer::get_singleton(), "set_bus_name", add_at_pos, AudioServer::get_singleton()->get_bus_name(p_which) + " Copy"); @@ -1142,7 +1138,7 @@ void EditorAudioBuses::_reset_bus_volume(Object *p_which) { EditorAudioBus *bus = Object::cast_to<EditorAudioBus>(p_which); int index = bus->get_index(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Reset Bus Volume")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_volume_db", index, 0.f); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_volume_db", index, AudioServer::get_singleton()->get_bus_volume_db(index)); @@ -1162,7 +1158,7 @@ void EditorAudioBuses::_request_drop_end() { } void EditorAudioBuses::_drop_at_index(int p_bus, int p_index) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Move Audio Bus")); ur->add_do_method(AudioServer::get_singleton(), "move_bus", p_bus, p_index); @@ -1221,7 +1217,7 @@ void EditorAudioBuses::_load_default_layout() { file->set_text(String(TTR("Layout:")) + " " + layout_path.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); - EditorNode::get_undo_redo()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); + EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); call_deferred(SNAME("_select_layout")); } @@ -1237,7 +1233,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { file->set_text(String(TTR("Layout:")) + " " + p_string.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); - EditorNode::get_undo_redo()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); + EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); call_deferred(SNAME("_select_layout")); } else if (file_dialog->get_file_mode() == EditorFileDialog::FILE_MODE_SAVE_FILE) { @@ -1257,7 +1253,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { edited_path = p_string; file->set_text(String(TTR("Layout:")) + " " + p_string.get_file()); _update_buses(); - EditorNode::get_undo_redo()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); + EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); call_deferred(SNAME("_select_layout")); } } @@ -1356,7 +1352,7 @@ void EditorAudioBuses::open_layout(const String &p_path) { file->set_text(p_path.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); - EditorNode::get_undo_redo()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); + EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); call_deferred(SNAME("_select_layout")); } diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index 4001b849ff..f843733f2c 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -194,7 +194,7 @@ void EditorAutoloadSettings::_autoload_edited() { TreeItem *ti = tree->get_edited(); int column = tree->get_edited_column(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (column == 0) { String name = ti->get_text(0); @@ -289,7 +289,7 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu String name = "autoload/" + ti->get_text(0); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_button) { case BUTTON_OPEN: { @@ -717,7 +717,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & orders.sort(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rearrange Autoloads")); @@ -760,7 +760,7 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_ name = "autoload/" + name; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Autoload")); // Singleton autoloads are represented with a leading "*" in their path. @@ -786,7 +786,7 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_ void EditorAutoloadSettings::autoload_remove(const String &p_name) { String name = "autoload/" + p_name; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); int order = ProjectSettings::get_singleton()->get_order(name); @@ -808,12 +808,6 @@ void EditorAutoloadSettings::autoload_remove(const String &p_name) { } void EditorAutoloadSettings::_bind_methods() { - ClassDB::bind_method("_autoload_open", &EditorAutoloadSettings::_autoload_open); - - ClassDB::bind_method("_get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw); - ClassDB::bind_method("_can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw); - ClassDB::bind_method("_drop_data_fw", &EditorAutoloadSettings::drop_data_fw); - ClassDB::bind_method("update_autoload", &EditorAutoloadSettings::update_autoload); ClassDB::bind_method("autoload_add", &EditorAutoloadSettings::autoload_add); ClassDB::bind_method("autoload_remove", &EditorAutoloadSettings::autoload_remove); @@ -935,7 +929,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { tree->set_select_mode(Tree::SELECT_MULTI); tree->set_allow_reselect(true); - tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(tree, EditorAutoloadSettings); tree->set_columns(4); tree->set_column_titles_visible(true); diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index c5fe89e35d..3059ce445c 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -122,12 +122,6 @@ int EditorSelectionHistory::get_history_pos() { return current_elem_idx; } -bool EditorSelectionHistory::is_history_obj_inspector_only(int p_obj) const { - ERR_FAIL_INDEX_V(p_obj, history.size(), false); - ERR_FAIL_INDEX_V(history[p_obj].level, history[p_obj].path.size(), false); - return history[p_obj].path[history[p_obj].level].inspector_only; -} - ObjectID EditorSelectionHistory::get_history_obj(int p_obj) const { ERR_FAIL_INDEX_V(p_obj, history.size(), ObjectID()); ERR_FAIL_INDEX_V(history[p_obj].level, history[p_obj].path.size(), ObjectID()); @@ -351,18 +345,6 @@ void EditorData::apply_changes_in_editors() { } } -void EditorData::save_editor_global_states() { - for (int i = 0; i < editor_plugins.size(); i++) { - editor_plugins[i]->save_global_state(); - } -} - -void EditorData::restore_editor_global_states() { - for (int i = 0; i < editor_plugins.size(); i++) { - editor_plugins[i]->restore_global_state(); - } -} - void EditorData::paste_object_params(Object *p_object) { ERR_FAIL_NULL(p_object); undo_redo_manager->create_action(TTR("Paste Params")); @@ -390,7 +372,7 @@ void EditorData::set_scene_as_saved(int p_idx) { } ERR_FAIL_INDEX(p_idx, edited_scene.size()); - get_undo_redo()->set_history_as_saved(edited_scene[p_idx].history_id); + undo_redo_manager->set_history_as_saved(edited_scene[p_idx].history_id); } bool EditorData::is_scene_changed(int p_idx) { @@ -399,7 +381,7 @@ bool EditorData::is_scene_changed(int p_idx) { } ERR_FAIL_INDEX_V(p_idx, edited_scene.size(), false); - uint64_t current_scene_version = get_undo_redo()->get_or_create_history(edited_scene[p_idx].history_id).undo_redo->get_version(); + uint64_t current_scene_version = undo_redo_manager->get_or_create_history(edited_scene[p_idx].history_id).undo_redo->get_version(); bool is_changed = edited_scene[p_idx].last_checked_version != current_scene_version; edited_scene.write[p_idx].last_checked_version = current_scene_version; return is_changed; @@ -425,10 +407,6 @@ int EditorData::get_scene_history_id(int p_idx) const { return edited_scene[p_idx].history_id; } -Ref<EditorUndoRedoManager> &EditorData::get_undo_redo() { - return undo_redo_manager; -} - void EditorData::add_undo_redo_inspector_hook_callback(Callable p_callable) { undo_redo_callbacks.push_back(p_callable); } @@ -998,6 +976,8 @@ void EditorData::script_class_set_name(const String &p_path, const StringName &p } void EditorData::script_class_save_icon_paths() { + Array script_classes = ProjectSettings::get_singleton()->get_global_class_list(); + Dictionary d; for (const KeyValue<StringName, String> &E : _script_class_icon_paths) { if (ScriptServer::is_global_class(E.key)) { @@ -1005,27 +985,20 @@ void EditorData::script_class_save_icon_paths() { } } - Dictionary old; - if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) { - old = GLOBAL_GET("_global_script_class_icons"); - } - if ((!old.is_empty() || d.is_empty()) && d.hash() == old.hash()) { - return; - } - - if (d.is_empty()) { - if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) { - ProjectSettings::get_singleton()->clear("_global_script_class_icons"); + for (int i = 0; i < script_classes.size(); i++) { + Dictionary d2 = script_classes[i]; + if (!d2.has("class")) { + continue; } - } else { - ProjectSettings::get_singleton()->set("_global_script_class_icons", d); + d2["icon"] = d.get(d2["class"], ""); } - ProjectSettings::get_singleton()->save(); + ProjectSettings::get_singleton()->store_global_class_list(script_classes); } void EditorData::script_class_load_icon_paths() { script_class_clear_icon_paths(); +#ifndef DISABLE_DEPRECATED if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) { Dictionary d = GLOBAL_GET("_global_script_class_icons"); List<Variant> keys; @@ -1038,15 +1011,33 @@ void EditorData::script_class_load_icon_paths() { String path = ScriptServer::get_global_class_path(name); script_class_set_name(path, name); } + ProjectSettings::get_singleton()->clear("_global_script_class_icons"); + } +#endif + + Array script_classes = ProjectSettings::get_singleton()->get_global_class_list(); + for (int i = 0; i < script_classes.size(); i++) { + Dictionary d = script_classes[i]; + if (!d.has("class") || !d.has("path") || !d.has("icon")) { + continue; + } + + String name = d["class"]; + _script_class_icon_paths[name] = d["icon"]; + script_class_set_name(d["path"], name); } } EditorData::EditorData() { current_edited_scene = -1; - undo_redo_manager.instantiate(); + undo_redo_manager = memnew(EditorUndoRedoManager); script_class_load_icon_paths(); } +EditorData::~EditorData() { + memdelete(undo_redo_manager); +} + /////////////////////////////////////////////////////////////////////////////// void EditorSelection::_node_removed(Node *p_node) { diff --git a/editor/editor_data.h b/editor/editor_data.h index 385bcad1f9..6a89b3572c 100644 --- a/editor/editor_data.h +++ b/editor/editor_data.h @@ -80,7 +80,6 @@ public: // Gets an object from the history. The most recent object would be the object with p_obj = get_history_len() - 1. ObjectID get_history_obj(int p_obj) const; - bool is_history_obj_inspector_only(int p_obj) const; bool next(); bool previous(); @@ -133,7 +132,7 @@ private: HashMap<String, Vector<CustomType>> custom_types; List<PropertyData> clipboard; - Ref<EditorUndoRedoManager> undo_redo_manager; + EditorUndoRedoManager *undo_redo_manager; Vector<Callable> undo_redo_callbacks; HashMap<StringName, Callable> move_element_functions; @@ -168,7 +167,6 @@ public: int get_editor_plugin_count() const; EditorPlugin *get_editor_plugin(int p_idx); - Ref<EditorUndoRedoManager> &get_undo_redo(); void add_undo_redo_inspector_hook_callback(Callable p_callable); // Callbacks should have this signature: void (Object* undo_redo, Object *modified_object, String property, Variant new_value) void remove_undo_redo_inspector_hook_callback(Callable p_callable); const Vector<Callable> get_undo_redo_inspector_hook_callback(); @@ -178,7 +176,6 @@ public: Callable get_move_array_element_function(const StringName &p_class) const; void save_editor_global_states(); - void restore_editor_global_states(); void add_custom_type(const String &p_type, const String &p_inherits, const Ref<Script> &p_script, const Ref<Texture2D> &p_icon); Variant instantiate_custom_type(const String &p_type, const String &p_inherits); @@ -245,6 +242,7 @@ public: void script_class_load_icon_paths(); EditorData(); + ~EditorData(); }; /** diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 4efc7c3055..a9b4c08698 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -602,10 +602,19 @@ bool EditorFileSystem::_update_scan_actions() { fs_changed = true; + if (ClassDB::is_parent_class(ia.new_file->type, SNAME("Script"))) { + _queue_update_script_class(ia.dir->get_file_path(idx)); + } + } break; case ItemAction::ACTION_FILE_REMOVE: { int idx = ia.dir->find_file_index(ia.file); ERR_CONTINUE(idx == -1); + + if (ClassDB::is_parent_class(ia.dir->files[idx]->type, SNAME("Script"))) { + _queue_update_script_class(ia.dir->get_file_path(idx)); + } + _delete_internal_files(ia.dir->files[idx]->file); memdelete(ia.dir->files[idx]); ia.dir->files.remove_at(idx); @@ -640,6 +649,10 @@ bool EditorFileSystem::_update_scan_actions() { ERR_CONTINUE(idx == -1); String full_path = ia.dir->get_file_path(idx); + if (ClassDB::is_parent_class(ia.dir->files[idx]->type, SNAME("Script"))) { + _queue_update_script_class(full_path); + } + reloads.push_back(full_path); } break; @@ -708,9 +721,9 @@ void EditorFileSystem::scan() { new_filesystem = nullptr; _update_scan_actions(); scanning = false; + _update_pending_script_classes(); emit_signal(SNAME("filesystem_changed")); emit_signal(SNAME("sources_changed"), sources_changed.size() > 0); - _queue_update_script_classes(); first_scan = false; } else { ERR_FAIL_COND(thread.is_started()); @@ -911,6 +924,10 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, Ref<DirAc fi->modified_time = mt; fi->import_modified_time = 0; fi->import_valid = true; + + if (ClassDB::is_parent_class(fi->type, SNAME("Script"))) { + _queue_update_script_class(path); + } } } @@ -922,20 +939,6 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, Ref<DirAc } } - for (int i = 0; i < ScriptServer::get_language_count(); i++) { - ScriptLanguage *lang = ScriptServer::get_language(i); - if (lang->supports_documentation() && fi->type == lang->get_type()) { - Ref<Script> scr = ResourceLoader::load(path); - if (scr == nullptr) { - continue; - } - Vector<DocData::ClassDoc> docs = scr->get_documentation(); - for (int j = 0; j < docs.size(); j++) { - EditorHelp::get_doc_data()->add_doc(docs[j]); - } - } - } - p_dir->files.push_back(fi); p_progress.update(idx, total); } @@ -1176,7 +1179,9 @@ void EditorFileSystem::scan_changes() { sp.low = 0; scan_total = 0; _scan_fs_changes(filesystem, sp); - if (_update_scan_actions()) { + bool changed = _update_scan_actions(); + _update_pending_script_classes(); + if (changed) { emit_signal(SNAME("filesystem_changed")); } } @@ -1225,11 +1230,12 @@ void EditorFileSystem::_notification(int p_what) { set_process(false); thread_sources.wait_to_finish(); - if (_update_scan_actions()) { + bool changed = _update_scan_actions(); + _update_pending_script_classes(); + if (changed) { emit_signal(SNAME("filesystem_changed")); } emit_signal(SNAME("sources_changed"), sources_changed.size() > 0); - _queue_update_script_classes(); first_scan = false; } } else if (!scanning && thread.is_started()) { @@ -1242,9 +1248,9 @@ void EditorFileSystem::_notification(int p_what) { new_filesystem = nullptr; thread.wait_to_finish(); _update_scan_actions(); + _update_pending_script_classes(); emit_signal(SNAME("filesystem_changed")); emit_signal(SNAME("sources_changed"), sources_changed.size() > 0); - _queue_update_script_classes(); first_scan = false; } @@ -1491,42 +1497,63 @@ String EditorFileSystem::_get_global_script_class(const String &p_type, const St return String(); } -void EditorFileSystem::_scan_script_classes(EditorFileSystemDirectory *p_dir) { - int filecount = p_dir->files.size(); - const EditorFileSystemDirectory::FileInfo *const *files = p_dir->files.ptr(); - for (int i = 0; i < filecount; i++) { - if (files[i]->script_class_name.is_empty()) { +void EditorFileSystem::_update_script_classes() { + update_script_mutex.lock(); + + for (const String &path : update_script_paths) { + ScriptServer::remove_global_class_by_path(path); // First remove, just in case it changed + + int index = -1; + EditorFileSystemDirectory *efd = find_file(path, &index); + + if (!efd || index < 0) { + // The file was removed continue; } - String lang; - for (int j = 0; j < ScriptServer::get_language_count(); j++) { - if (ScriptServer::get_language(j)->handles_global_class_type(files[i]->type)) { - lang = ScriptServer::get_language(j)->get_name(); + if (!efd->files[index]->script_class_name.is_empty()) { + String lang; + for (int j = 0; j < ScriptServer::get_language_count(); j++) { + if (ScriptServer::get_language(j)->handles_global_class_type(efd->files[index]->type)) { + lang = ScriptServer::get_language(j)->get_name(); + } } + if (lang.is_empty()) { + continue; // No lang found that can handle this global class + } + + ScriptServer::add_global_class(efd->files[index]->script_class_name, efd->files[index]->script_class_extends, lang, path); + EditorNode::get_editor_data().script_class_set_icon_path(efd->files[index]->script_class_name, efd->files[index]->script_class_icon_path); + EditorNode::get_editor_data().script_class_set_name(efd->files[index]->file, efd->files[index]->script_class_name); } - ScriptServer::add_global_class(files[i]->script_class_name, files[i]->script_class_extends, lang, p_dir->get_file_path(i)); - EditorNode::get_editor_data().script_class_set_icon_path(files[i]->script_class_name, files[i]->script_class_icon_path); - EditorNode::get_editor_data().script_class_set_name(files[i]->file, files[i]->script_class_name); } - for (int i = 0; i < p_dir->get_subdir_count(); i++) { - _scan_script_classes(p_dir->get_subdir(i)); - } -} -void EditorFileSystem::update_script_classes() { - if (!update_script_classes_queued.is_set()) { - return; - } + // Parse documentation second, as it requires the class names to be correct and registered + for (const String &path : update_script_paths) { + int index = -1; + EditorFileSystemDirectory *efd = find_file(path, &index); - update_script_classes_queued.clear(); - ScriptServer::global_classes_clear(); - if (get_filesystem()) { - _scan_script_classes(get_filesystem()); + for (int i = 0; i < ScriptServer::get_language_count(); i++) { + ScriptLanguage *lang = ScriptServer::get_language(i); + if (lang->supports_documentation() && efd->files[index]->type == lang->get_type()) { + Ref<Script> scr = ResourceLoader::load(path); + if (scr.is_null()) { + continue; + } + Vector<DocData::ClassDoc> docs = scr->get_documentation(); + for (int j = 0; j < docs.size(); j++) { + EditorHelp::get_doc_data()->add_doc(docs[j]); + } + } + } } + update_script_paths.clear(); + update_script_mutex.unlock(); + ScriptServer::save_global_classes(); EditorNode::get_editor_data().script_class_save_icon_paths(); + emit_signal("script_classes_updated"); // Rescan custom loaders and savers. // Doing the following here because the `filesystem_changed` signal fires multiple times and isn't always followed by script classes update. @@ -1537,13 +1564,16 @@ void EditorFileSystem::update_script_classes() { ResourceSaver::add_custom_savers(); } -void EditorFileSystem::_queue_update_script_classes() { - if (update_script_classes_queued.is_set()) { - return; +void EditorFileSystem::_update_pending_script_classes() { + if (!update_script_paths.is_empty()) { + _update_script_classes(); } +} - update_script_classes_queued.set(); - call_deferred(SNAME("update_script_classes")); +void EditorFileSystem::_queue_update_script_class(const String &p_path) { + update_script_mutex.lock(); + update_script_paths.insert(p_path); + update_script_mutex.unlock(); } void EditorFileSystem::update_file(const String &p_file) { @@ -1565,12 +1595,16 @@ void EditorFileSystem::update_file(const String &p_file) { ResourceUID::get_singleton()->remove_id(fs->files[cpos]->uid); } } + if (ClassDB::is_parent_class(fs->files[cpos]->type, SNAME("Script"))) { + _queue_update_script_class(p_file); + } + memdelete(fs->files[cpos]); fs->files.remove_at(cpos); } + _update_pending_script_classes(); call_deferred(SNAME("emit_signal"), "filesystem_changed"); //update later - _queue_update_script_classes(); return; } @@ -1630,8 +1664,12 @@ void EditorFileSystem::update_file(const String &p_file) { // Update preview EditorResourcePreview::get_singleton()->check_for_invalidation(p_file); + if (ClassDB::is_parent_class(fs->files[cpos]->type, SNAME("Script"))) { + _queue_update_script_class(p_file); + } + + _update_pending_script_classes(); call_deferred(SNAME("emit_signal"), "filesystem_changed"); //update later - _queue_update_script_classes(); } HashSet<String> EditorFileSystem::get_valid_extensions() const { @@ -2413,10 +2451,10 @@ void EditorFileSystem::_bind_methods() { ClassDB::bind_method(D_METHOD("update_file", "path"), &EditorFileSystem::update_file); ClassDB::bind_method(D_METHOD("get_filesystem_path", "path"), &EditorFileSystem::get_filesystem_path); ClassDB::bind_method(D_METHOD("get_file_type", "path"), &EditorFileSystem::get_file_type); - ClassDB::bind_method(D_METHOD("update_script_classes"), &EditorFileSystem::update_script_classes); ClassDB::bind_method(D_METHOD("reimport_files", "files"), &EditorFileSystem::reimport_files); ADD_SIGNAL(MethodInfo("filesystem_changed")); + ADD_SIGNAL(MethodInfo("script_classes_updated")); ADD_SIGNAL(MethodInfo("sources_changed", PropertyInfo(Variant::BOOL, "exist"))); ADD_SIGNAL(MethodInfo("resources_reimported", PropertyInfo(Variant::PACKED_STRING_ARRAY, "resources"))); ADD_SIGNAL(MethodInfo("resources_reload", PropertyInfo(Variant::PACKED_STRING_ARRAY, "resources"))); @@ -2472,7 +2510,6 @@ EditorFileSystem::EditorFileSystem() { using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT"); scan_total = 0; - update_script_classes_queued.clear(); MessageQueue::get_singleton()->push_callable(callable_mp(ResourceUID::get_singleton(), &ResourceUID::clear)); // Will be updated on scan. ResourceSaver::set_get_resource_id_for_path(_resource_saver_get_resource_id_for_path); } diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h index 2985134093..03b1fb4a49 100644 --- a/editor/editor_file_system.h +++ b/editor/editor_file_system.h @@ -257,9 +257,11 @@ class EditorFileSystem : public Node { } }; - void _scan_script_classes(EditorFileSystemDirectory *p_dir); - SafeFlag update_script_classes_queued; - void _queue_update_script_classes(); + Mutex update_script_mutex; + HashSet<String> update_script_paths; + void _queue_update_script_class(const String &p_path); + void _update_script_classes(); + void _update_pending_script_classes(); String _get_global_script_class(const String &p_type, const String &p_path, String *r_extends, String *r_icon_path) const; @@ -312,8 +314,6 @@ public: void reimport_file_with_custom_parameters(const String &p_file, const String &p_importer, const HashMap<StringName, Variant> &p_custom_params); - void update_script_classes(); - bool is_group_file(const String &p_path) const; void move_group_file(const String &p_path, const String &p_new_path); diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 5baa58873e..9b1a5e028b 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -41,7 +41,7 @@ #include "editor/plugins/script_editor_plugin.h" #include "scene/gui/line_edit.h" -#define CONTRIBUTE_URL vformat("%s/community/contributing/updating_the_class_reference.html", VERSION_DOCS_URL) +#define CONTRIBUTE_URL vformat("%s/contributing/documentation/updating_the_class_reference.html", VERSION_DOCS_URL) DocTools *EditorHelp::doc = nullptr; diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 8723354e84..035bd96f4d 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -1680,13 +1680,13 @@ void EditorInspectorArray::_move_element(int p_element_index, int p_to_pos) { } else { action_name = vformat("Move element %d to position %d in property array with prefix %s.", p_element_index, p_to_pos, array_element_prefix); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(action_name); if (mode == MODE_USE_MOVE_ARRAY_ELEMENT_FUNCTION) { // Call the function. Callable move_function = EditorNode::get_singleton()->get_editor_data().get_move_array_element_function(object->get_class_name()); if (move_function.is_valid()) { - Variant args[] = { undo_redo.ptr(), object, array_element_prefix, p_element_index, p_to_pos }; + Variant args[] = { undo_redo, object, array_element_prefix, p_element_index, p_to_pos }; const Variant *args_p[] = { &args[0], &args[1], &args[2], &args[3], &args[4] }; Variant return_value; Callable::CallError call_error; @@ -1824,14 +1824,14 @@ void EditorInspectorArray::_move_element(int p_element_index, int p_to_pos) { } void EditorInspectorArray::_clear_array() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat("Clear property array with prefix %s.", array_element_prefix)); if (mode == MODE_USE_MOVE_ARRAY_ELEMENT_FUNCTION) { for (int i = count - 1; i >= 0; i--) { // Call the function. Callable move_function = EditorNode::get_singleton()->get_editor_data().get_move_array_element_function(object->get_class_name()); if (move_function.is_valid()) { - Variant args[] = { undo_redo.ptr(), object, array_element_prefix, i, -1 }; + Variant args[] = { undo_redo, object, array_element_prefix, i, -1 }; const Variant *args_p[] = { &args[0], &args[1], &args[2], &args[3], &args[4] }; Variant return_value; Callable::CallError call_error; @@ -1877,7 +1877,7 @@ void EditorInspectorArray::_resize_array(int p_size) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat("Resize property array with prefix %s.", array_element_prefix)); if (p_size > count) { if (mode == MODE_USE_MOVE_ARRAY_ELEMENT_FUNCTION) { @@ -1885,7 +1885,7 @@ void EditorInspectorArray::_resize_array(int p_size) { // Call the function. Callable move_function = EditorNode::get_singleton()->get_editor_data().get_move_array_element_function(object->get_class_name()); if (move_function.is_valid()) { - Variant args[] = { undo_redo.ptr(), object, array_element_prefix, -1, -1 }; + Variant args[] = { undo_redo, object, array_element_prefix, -1, -1 }; const Variant *args_p[] = { &args[0], &args[1], &args[2], &args[3], &args[4] }; Variant return_value; Callable::CallError call_error; @@ -1904,7 +1904,7 @@ void EditorInspectorArray::_resize_array(int p_size) { // Call the function. Callable move_function = EditorNode::get_singleton()->get_editor_data().get_move_array_element_function(object->get_class_name()); if (move_function.is_valid()) { - Variant args[] = { undo_redo.ptr(), object, array_element_prefix, i, -1 }; + Variant args[] = { undo_redo, object, array_element_prefix, i, -1 }; const Variant *args_p[] = { &args[0], &args[1], &args[2], &args[3], &args[4] }; Variant return_value; Callable::CallError call_error; @@ -2049,7 +2049,7 @@ void EditorInspectorArray::_setup() { ae.panel = memnew(PanelContainer); ae.panel->set_focus_mode(FOCUS_ALL); ae.panel->set_mouse_filter(MOUSE_FILTER_PASS); - ae.panel->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(ae.panel, EditorInspectorArray); ae.panel->set_meta("index", begin_array_index + i); ae.panel->set_tooltip_text(vformat(TTR("Element %d: %s%d*"), i, array_element_prefix, i)); ae.panel->connect("focus_entered", callable_mp((CanvasItem *)ae.panel, &PanelContainer::queue_redraw)); @@ -2220,10 +2220,6 @@ void EditorInspectorArray::_notification(int p_what) { } void EditorInspectorArray::_bind_methods() { - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &EditorInspectorArray::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &EditorInspectorArray::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &EditorInspectorArray::drop_data_fw); - ADD_SIGNAL(MethodInfo("page_change_request")); } @@ -3552,8 +3548,8 @@ void EditorInspector::_edit_set(const String &p_name, const Variant &p_value, bo } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); - if (!undo_redo.is_valid() || bool(object->call("_dont_undo_redo"))) { + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); + if (bool(object->call("_dont_undo_redo"))) { object->set(p_name, p_value); if (p_refresh_all) { _edit_request_change(object, ""); @@ -3673,7 +3669,7 @@ void EditorInspector::_multiple_properties_changed(Vector<String> p_paths, Array } names += p_paths[i]; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Multiple:") + " " + names, UndoRedo::MERGE_ENDS); for (int i = 0; i < p_paths.size(); i++) { _edit_set(p_paths[i], p_values[i], false, ""); @@ -3708,7 +3704,7 @@ void EditorInspector::_property_deleted(const String &p_path) { if (p_path.begins_with("metadata/")) { String name = p_path.replace_first("metadata/", ""); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Remove metadata %s"), name)); undo_redo->add_do_method(object, "remove_meta", name); undo_redo->add_undo_method(object, "set_meta", name, object->get_meta(name)); @@ -3774,26 +3770,17 @@ void EditorInspector::_property_pinned(const String &p_path, bool p_pinned) { Node *node = Object::cast_to<Node>(object); ERR_FAIL_COND(!node); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); - if (undo_redo.is_valid()) { - undo_redo->create_action(vformat(p_pinned ? TTR("Pinned %s") : TTR("Unpinned %s"), p_path)); - undo_redo->add_do_method(node, "_set_property_pinned", p_path, p_pinned); - undo_redo->add_undo_method(node, "_set_property_pinned", p_path, !p_pinned); - if (editor_property_map.has(p_path)) { - for (List<EditorProperty *>::Element *E = editor_property_map[p_path].front(); E; E = E->next()) { - undo_redo->add_do_method(E->get(), "_update_editor_property_status"); - undo_redo->add_undo_method(E->get(), "_update_editor_property_status"); - } - } - undo_redo->commit_action(); - } else { - node->set_property_pinned(p_path, p_pinned); - if (editor_property_map.has(p_path)) { - for (List<EditorProperty *>::Element *E = editor_property_map[p_path].front(); E; E = E->next()) { - E->get()->update_editor_property_status(); - } + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); + undo_redo->create_action(vformat(p_pinned ? TTR("Pinned %s") : TTR("Unpinned %s"), p_path)); + undo_redo->add_do_method(node, "_set_property_pinned", p_path, p_pinned); + undo_redo->add_undo_method(node, "_set_property_pinned", p_path, !p_pinned); + if (editor_property_map.has(p_path)) { + for (List<EditorProperty *>::Element *E = editor_property_map[p_path].front(); E; E = E->next()) { + undo_redo->add_do_method(E->get(), "_update_editor_property_status"); + undo_redo->add_undo_method(E->get(), "_update_editor_property_status"); } } + undo_redo->commit_action(); } void EditorInspector::_property_selected(const String &p_path, int p_focusable) { @@ -3972,7 +3959,7 @@ void EditorInspector::_add_meta_confirm() { Variant defval; Callable::CallError ce; Variant::construct(Variant::Type(add_meta_type->get_selected_id()), defval, nullptr, 0, ce); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add metadata %s"), name)); undo_redo->add_do_method(object, "set_meta", name, defval); undo_redo->add_undo_method(object, "remove_meta", name); diff --git a/editor/editor_locale_dialog.cpp b/editor/editor_locale_dialog.cpp index d57b3b66cc..5a372412fa 100644 --- a/editor/editor_locale_dialog.cpp +++ b/editor/editor_locale_dialog.cpp @@ -31,7 +31,6 @@ #include "editor_locale_dialog.h" #include "core/config/project_settings.h" -#include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_undo_redo_manager.h" #include "scene/gui/check_button.h" @@ -141,7 +140,7 @@ void EditorLocaleDialog::_filter_lang_option_changed() { f_lang_all.sort(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Changed Locale Language Filter")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/language_filter", f_lang_all); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/language_filter", prev); @@ -175,7 +174,7 @@ void EditorLocaleDialog::_filter_script_option_changed() { f_script_all.sort(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Changed Locale Script Filter")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/script_filter", f_script_all); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/script_filter", prev); @@ -209,7 +208,7 @@ void EditorLocaleDialog::_filter_cnt_option_changed() { f_cnt_all.sort(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Changed Locale Country Filter")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/country_filter", f_cnt_all); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/country_filter", prev); @@ -224,7 +223,7 @@ void EditorLocaleDialog::_filter_mode_changed(int p_mode) { prev = GLOBAL_GET("internationalization/locale/locale_filter_mode"); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Changed Locale Filter Mode")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter_mode", f_mode); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter_mode", prev); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index ae9261864f..b0278030f9 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -288,7 +288,7 @@ void EditorNode::_update_scene_tabs() { icon = EditorNode::get_singleton()->get_object_icon(type_node, "Node"); } - bool unsaved = get_undo_redo()->is_history_unsaved(editor_data.get_scene_history_id(i)); + bool unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(editor_data.get_scene_history_id(i)); scene_tabs->add_tab(disambiguated_scene_names[i] + (unsaved ? "(*)" : ""), icon); if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_GLOBAL_MENU)) { @@ -533,8 +533,8 @@ void EditorNode::_notification(int p_what) { opening_prev = false; } - bool global_unsaved = get_undo_redo()->is_history_unsaved(EditorUndoRedoManager::GLOBAL_HISTORY); - bool scene_or_global_unsaved = global_unsaved || get_undo_redo()->is_history_unsaved(editor_data.get_current_edited_scene_history_id()); + bool global_unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(EditorUndoRedoManager::GLOBAL_HISTORY); + bool scene_or_global_unsaved = global_unsaved || EditorUndoRedoManager::get_singleton()->is_history_unsaved(editor_data.get_current_edited_scene_history_id()); if (unsaved_cache != scene_or_global_unsaved) { unsaved_cache = scene_or_global_unsaved; _update_title(); @@ -584,10 +584,11 @@ void EditorNode::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { Engine::get_singleton()->set_editor_hint(true); - Window *window = static_cast<Window *>(get_tree()->get_root()); + Window *window = get_window(); if (window) { // Handle macOS fullscreen and extend-to-title changes. window->connect("titlebar_changed", callable_mp(this, &EditorNode::_titlebar_resized)); + window->set_theme(theme); } OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec"))); @@ -633,6 +634,10 @@ void EditorNode::_notification(int p_what) { set_addon_plugin_enabled(addons[i], true); } _initializing_plugins = false; + + if (!pending_addons.is_empty()) { + EditorFileSystem::get_singleton()->connect("script_classes_updated", callable_mp(this, &EditorNode::_enable_pending_addons)); + } } RenderingServer::get_singleton()->viewport_set_disable_2d(get_scene_root()->get_viewport_rid(), true); @@ -695,6 +700,7 @@ void EditorNode::_notification(int p_what) { theme_base->set_theme(theme); gui_base->set_theme(theme); + get_window()->set_theme(theme); gui_base->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Background"), SNAME("EditorStyles"))); scene_root_parent->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Content"), SNAME("EditorStyles"))); @@ -1128,7 +1134,7 @@ void EditorNode::_version_button_pressed() { } void EditorNode::_update_undo_redo_allowed() { - Ref<EditorUndoRedoManager> undo_redo = get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); file_menu->set_item_disabled(file_menu->get_item_index(EDIT_UNDO), !undo_redo->has_undo()); file_menu->set_item_disabled(file_menu->get_item_index(EDIT_REDO), !undo_redo->has_redo()); } @@ -1680,7 +1686,7 @@ int EditorNode::_save_external_resources() { saved++; } - get_undo_redo()->set_history_as_saved(EditorUndoRedoManager::GLOBAL_HISTORY); + EditorUndoRedoManager::get_singleton()->set_history_as_saved(EditorUndoRedoManager::GLOBAL_HISTORY); return saved; } @@ -1857,7 +1863,7 @@ void EditorNode::_mark_unsaved_scenes() { String path = node->get_scene_file_path(); if (!path.is_empty() && !FileAccess::exists(path)) { // Mark scene tab as unsaved if the file is gone. - get_undo_redo()->set_history_as_unsaved(editor_data.get_scene_history_id(i)); + EditorUndoRedoManager::get_singleton()->set_history_as_unsaved(editor_data.get_scene_history_id(i)); } } @@ -2744,9 +2750,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { if ((int)Input::get_singleton()->get_mouse_button_mask() & 0x7) { log->add_message(TTR("Can't undo while mouse buttons are pressed."), EditorLog::MSG_TYPE_EDITOR); } else { - String action = editor_data.get_undo_redo()->get_current_action_name(); - int id = editor_data.get_undo_redo()->get_current_action_history_id(); - if (!editor_data.get_undo_redo()->undo()) { + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); + String action = undo_redo->get_current_action_name(); + int id = undo_redo->get_current_action_history_id(); + if (!undo_redo->undo()) { log->add_message(TTR("Nothing to undo."), EditorLog::MSG_TYPE_EDITOR); } else if (!action.is_empty()) { switch (id) { @@ -2763,18 +2770,19 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } } break; case EDIT_REDO: { + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if ((int)Input::get_singleton()->get_mouse_button_mask() & 0x7) { log->add_message(TTR("Can't redo while mouse buttons are pressed."), EditorLog::MSG_TYPE_EDITOR); } else { - if (!editor_data.get_undo_redo()->redo()) { + if (!undo_redo->redo()) { log->add_message(TTR("Nothing to redo."), EditorLog::MSG_TYPE_EDITOR); } else { - String action = editor_data.get_undo_redo()->get_current_action_name(); + String action = undo_redo->get_current_action_name(); if (action.is_empty()) { break; } - switch (editor_data.get_undo_redo()->get_current_action_history_id()) { + switch (undo_redo->get_current_action_history_id()) { case EditorUndoRedoManager::GLOBAL_HISTORY: log->add_message(vformat(TTR("Global Redo: %s"), action), EditorLog::MSG_TYPE_EDITOR); break; @@ -2817,7 +2825,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { ERR_PRINT("Failed to load scene"); } editor_data.move_edited_scene_to_index(cur_idx); - get_undo_redo()->clear_history(false, editor_data.get_current_edited_scene_history_id()); + EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_current_edited_scene_history_id()); scene_tabs->set_current_tab(cur_idx); } break; @@ -2909,7 +2917,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { case RELOAD_CURRENT_PROJECT: { if (!p_confirmed) { bool save_each = EDITOR_GET("interface/editor/save_each_scene_on_quit"); - if (_next_unsaved_scene(!save_each) == -1 && !get_undo_redo()->is_history_unsaved(EditorUndoRedoManager::GLOBAL_HISTORY)) { + if (_next_unsaved_scene(!save_each) == -1 && !EditorUndoRedoManager::get_singleton()->is_history_unsaved(EditorUndoRedoManager::GLOBAL_HISTORY)) { _discard_changes(); break; } else { @@ -3148,7 +3156,7 @@ int EditorNode::_next_unsaved_scene(bool p_valid_filename, int p_start) { if (!editor_data.get_edited_scene_root(i)) { continue; } - bool unsaved = get_undo_redo()->is_history_unsaved(editor_data.get_scene_history_id(i)); + bool unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(editor_data.get_scene_history_id(i)); if (unsaved) { String scene_filename = editor_data.get_edited_scene_root(i)->get_scene_file_path(); if (p_valid_filename && scene_filename.length() == 0) { @@ -3469,6 +3477,12 @@ void EditorNode::set_addon_plugin_enabled(const String &p_addon, bool p_enabled, // Errors in the script cause the base_type to be an empty StringName. if (scr->get_instance_base_type() == StringName()) { + if (_initializing_plugins) { + // However, if it happens during initialization, waiting for file scan might help. + pending_addons.push_back(p_addon); + return; + } + show_warning(vformat(TTR("Unable to load addon script from path: '%s'. This might be due to a code error in that script.\nDisabling the addon at '%s' to prevent further errors."), script_path, addon_path)); _remove_plugin_from_enabled(addon_path); return; @@ -3657,7 +3671,7 @@ void EditorNode::set_current_scene(int p_idx) { editor_folding.load_scene_folding(editor_data.get_edited_scene_root(p_idx), editor_data.get_scene_path(p_idx)); } - get_undo_redo()->clear_history(false, editor_data.get_scene_history_id(p_idx)); + EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_scene_history_id(p_idx)); } changing_scene = true; @@ -3724,7 +3738,7 @@ int EditorNode::new_scene() { // Remove placeholder empty scene. if (editor_data.get_edited_scene_count() > 1) { for (int i = 0; i < editor_data.get_edited_scene_count() - 1; i++) { - bool unsaved = get_undo_redo()->is_history_unsaved(editor_data.get_scene_history_id(i)); + bool unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(editor_data.get_scene_history_id(i)); if (!unsaved && editor_data.get_scene_path(i).is_empty() && editor_data.get_edited_scene_root(i) == nullptr) { editor_data.remove_scene(i); idx--; @@ -3949,10 +3963,6 @@ void EditorNode::request_instantiate_scenes(const Vector<String> &p_files) { SceneTreeDock::get_singleton()->instantiate_scenes(p_files); } -Ref<EditorUndoRedoManager> &EditorNode::get_undo_redo() { - return singleton->editor_data.get_undo_redo(); -} - void EditorNode::_inherit_request(String p_file) { current_menu_option = FILE_NEW_INHERITED_SCENE; _dialog_action(p_file); @@ -4378,6 +4388,13 @@ void EditorNode::_build_icon_type_cache() { } } +void EditorNode::_enable_pending_addons() { + for (uint32_t i = 0; i < pending_addons.size(); i++) { + set_addon_plugin_enabled(pending_addons[i], true); + } + pending_addons.clear(); +} + void EditorNode::_file_dialog_register(FileDialog *p_dialog) { singleton->file_dialogs.insert(p_dialog); } @@ -5065,8 +5082,8 @@ bool EditorNode::ensure_main_scene(bool p_from_native) { return true; } -Error EditorNode::run_play_native(int p_idx, int p_platform) { - return run_native->run_native(p_idx, p_platform); +Error EditorNode::run_play_native(int p_id) { + return run_native->run_native(p_id); } void EditorNode::run_play() { @@ -5222,7 +5239,7 @@ void EditorNode::_scene_tab_closed(int p_tab, int option) { return; } - bool unsaved = get_undo_redo()->is_history_unsaved(editor_data.get_scene_history_id(p_tab)); + bool unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(editor_data.get_scene_history_id(p_tab)); if (unsaved) { save_confirmation->set_ok_button_text(TTR("Save & Close")); save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), !scene->get_scene_file_path().is_empty() ? scene->get_scene_file_path() : "unsaved scene")); @@ -5721,7 +5738,7 @@ void EditorNode::reload_scene(const String &p_path) { if (scene_idx == -1) { if (get_edited_scene()) { // Scene is not open, so at it might be instantiated. We'll refresh the whole scene later. - editor_data.get_undo_redo()->clear_history(false, editor_data.get_current_edited_scene_history_id()); + EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_current_edited_scene_history_id()); } return; } @@ -5737,7 +5754,7 @@ void EditorNode::reload_scene(const String &p_path) { // Adjust index so tab is back a the previous position. editor_data.move_edited_scene_to_index(scene_idx); - get_undo_redo()->clear_history(false, editor_data.get_scene_history_id(scene_idx)); + EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_scene_history_id(scene_idx)); // Recover the tab. scene_tabs->set_current_tab(current_tab); @@ -6055,8 +6072,8 @@ EditorNode::EditorNode() { singleton = this; - get_undo_redo()->connect("version_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed)); - get_undo_redo()->connect("history_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed)); + EditorUndoRedoManager::get_singleton()->connect("version_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed)); + EditorUndoRedoManager::get_singleton()->connect("history_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed)); TranslationServer::get_singleton()->set_enabled(false); // Load settings. @@ -7051,8 +7068,8 @@ EditorNode::EditorNode() { right_r_vsplit->hide(); // Add some offsets to left_r and main hsplits to make LEFT_R and RIGHT_L docks wider than minsize. - left_r_hsplit->set_split_offset(70 * EDSCALE); - main_hsplit->set_split_offset(-70 * EDSCALE); + left_r_hsplit->set_split_offset(270 * EDSCALE); + main_hsplit->set_split_offset(-270 * EDSCALE); // Define corresponding default layout. @@ -7067,8 +7084,8 @@ EditorNode::EditorNode() { default_layout->set_value(docks_section, "dock_split_" + itos(i + 1), 0); } default_layout->set_value(docks_section, "dock_hsplit_1", 0); - default_layout->set_value(docks_section, "dock_hsplit_2", 70 * EDSCALE); - default_layout->set_value(docks_section, "dock_hsplit_3", -70 * EDSCALE); + default_layout->set_value(docks_section, "dock_hsplit_2", 270 * EDSCALE); + default_layout->set_value(docks_section, "dock_hsplit_3", -270 * EDSCALE); default_layout->set_value(docks_section, "dock_hsplit_4", 0); _update_layouts_menu(); @@ -7383,7 +7400,6 @@ EditorNode::EditorNode() { _update_recent_scenes(); - editor_data.restore_editor_global_states(); set_process_shortcut_input(true); load_errors = memnew(RichTextLabel); diff --git a/editor/editor_node.h b/editor/editor_node.h index ae951808d5..fb2544c141 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -292,6 +292,7 @@ private: Vector<EditorPlugin *> editor_plugins; bool _initializing_plugins = false; HashMap<String, EditorPlugin *> addon_name_to_plugin; + LocalVector<String> pending_addons; PanelContainer *scene_root_parent = nullptr; Control *theme_base = nullptr; @@ -535,6 +536,7 @@ private: static void _resource_loaded(Ref<Resource> p_resource, const String &p_path); void _build_icon_type_cache(); + void _enable_pending_addons(); void _dialog_action(String p_file); @@ -729,7 +731,6 @@ public: static EditorLog *get_log() { return singleton->log; } static EditorData &get_editor_data() { return singleton->editor_data; } static EditorFolding &get_editor_folding() { return singleton->editor_folding; } - static Ref<EditorUndoRedoManager> &get_undo_redo(); static HBoxContainer *get_menu_hb() { return singleton->menu_hb; } static VSplitContainer *get_top_split() { return singleton->top_split; } @@ -914,7 +915,7 @@ public: bool ensure_main_scene(bool p_from_native); - Error run_play_native(int p_idx, int p_platform); + Error run_play_native(int p_id); void run_play(); void run_play_current(); void run_play_custom(const String &p_custom); diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index a5d1ddb2fa..7f02148dfc 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -45,6 +45,7 @@ #include "editor/inspector_dock.h" #include "editor/plugins/canvas_item_editor_plugin.h" #include "editor/plugins/editor_debugger_plugin.h" +#include "editor/plugins/editor_resource_conversion_plugin.h" #include "editor/plugins/node_3d_editor_plugin.h" #include "editor/plugins/script_editor_plugin.h" #include "editor/project_settings_editor.h" @@ -711,9 +712,6 @@ bool EditorPlugin::get_remove_list(List<Node *> *p_list) { return false; } -void EditorPlugin::restore_global_state() {} -void EditorPlugin::save_global_state() {} - void EditorPlugin::add_undo_redo_inspector_hook_callback(Callable p_callable) { EditorNode::get_singleton()->get_editor_data().add_undo_redo_inspector_hook_callback(p_callable); } @@ -856,6 +854,14 @@ void EditorPlugin::remove_debugger_plugin(const Ref<EditorDebuggerPlugin> &p_plu EditorDebuggerNode::get_singleton()->remove_debugger_plugin(p_plugin); } +void EditorPlugin::add_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin) { + EditorNode::get_singleton()->add_resource_conversion_plugin(p_plugin); +} + +void EditorPlugin::remove_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin) { + EditorNode::get_singleton()->remove_resource_conversion_plugin(p_plugin); +} + void EditorPlugin::_editor_project_settings_changed() { emit_signal(SNAME("project_settings_changed")); } @@ -911,6 +917,8 @@ void EditorPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("remove_node_3d_gizmo_plugin", "plugin"), &EditorPlugin::remove_node_3d_gizmo_plugin); ClassDB::bind_method(D_METHOD("add_inspector_plugin", "plugin"), &EditorPlugin::add_inspector_plugin); ClassDB::bind_method(D_METHOD("remove_inspector_plugin", "plugin"), &EditorPlugin::remove_inspector_plugin); + ClassDB::bind_method(D_METHOD("add_resource_conversion_plugin", "plugin"), &EditorPlugin::add_resource_conversion_plugin); + ClassDB::bind_method(D_METHOD("remove_resource_conversion_plugin", "plugin"), &EditorPlugin::remove_resource_conversion_plugin); ClassDB::bind_method(D_METHOD("set_input_event_forwarding_always_enabled"), &EditorPlugin::set_input_event_forwarding_always_enabled); ClassDB::bind_method(D_METHOD("set_force_draw_over_forwarding_enabled"), &EditorPlugin::set_force_draw_over_forwarding_enabled); @@ -977,8 +985,8 @@ void EditorPlugin::_bind_methods() { BIND_ENUM_CONSTANT(AFTER_GUI_INPUT_CUSTOM); } -Ref<EditorUndoRedoManager> EditorPlugin::get_undo_redo() { - return EditorNode::get_undo_redo(); +EditorUndoRedoManager *EditorPlugin::get_undo_redo() { + return EditorUndoRedoManager::get_singleton(); } EditorPluginCreateFunc EditorPlugins::creation_funcs[MAX_CREATE_FUNCS]; diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h index 33081e867a..a5a17acdf1 100644 --- a/editor/editor_plugin.h +++ b/editor/editor_plugin.h @@ -48,6 +48,7 @@ class EditorInspector; class EditorInspectorPlugin; class EditorNode3DGizmoPlugin; class EditorPaths; +class EditorResourceConversionPlugin; class EditorResourcePreview; class EditorSceneFormatImporter; class EditorScenePostImportPlugin; @@ -148,7 +149,7 @@ protected: void _notification(int p_what); static void _bind_methods(); - Ref<EditorUndoRedoManager> get_undo_redo(); + EditorUndoRedoManager *get_undo_redo(); void add_custom_type(const String &p_type, const String &p_base, const Ref<Script> &p_script, const Ref<Texture2D> &p_icon); void remove_custom_type(const String &p_type); @@ -277,9 +278,6 @@ public: void make_bottom_panel_item_visible(Control *p_item); void hide_bottom_panel(); - virtual void restore_global_state(); - virtual void save_global_state(); - void add_translation_parser_plugin(const Ref<EditorTranslationParserPlugin> &p_parser); void remove_translation_parser_plugin(const Ref<EditorTranslationParserPlugin> &p_parser); @@ -307,6 +305,9 @@ public: void add_debugger_plugin(const Ref<EditorDebuggerPlugin> &p_plugin); void remove_debugger_plugin(const Ref<EditorDebuggerPlugin> &p_plugin); + void add_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin); + void remove_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin); + void enable_plugin(); void disable_plugin(); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 6c917a0c4f..46f52ec4af 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -342,12 +342,17 @@ void EditorPropertyTextEnum::_notification(int p_what) { } EditorPropertyTextEnum::EditorPropertyTextEnum() { + HBoxContainer *hb = memnew(HBoxContainer); + add_child(hb); + default_layout = memnew(HBoxContainer); - add_child(default_layout); + default_layout->set_h_size_flags(SIZE_EXPAND_FILL); + hb->add_child(default_layout); edit_custom_layout = memnew(HBoxContainer); + edit_custom_layout->set_h_size_flags(SIZE_EXPAND_FILL); edit_custom_layout->hide(); - add_child(edit_custom_layout); + hb->add_child(edit_custom_layout); option_button = memnew(OptionButton); option_button->set_h_size_flags(SIZE_EXPAND_FILL); @@ -561,15 +566,13 @@ bool EditorPropertyPath::_can_drop_data_fw(const Point2 &p_point, const Variant } void EditorPropertyPath::_bind_methods() { - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "position", "data", "from"), &EditorPropertyPath::_can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "position", "data", "from"), &EditorPropertyPath::_drop_data_fw); } EditorPropertyPath::EditorPropertyPath() { HBoxContainer *path_hb = memnew(HBoxContainer); add_child(path_hb); path = memnew(LineEdit); - path->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CDU(path, EditorPropertyPath); path->set_structured_text_bidi_override(TextServer::STRUCTURED_TEXT_FILE); path_hb->add_child(path); path->connect("text_submitted", callable_mp(this, &EditorPropertyPath::_path_selected)); @@ -3673,8 +3676,6 @@ void EditorPropertyNodePath::_notification(int p_what) { } void EditorPropertyNodePath::_bind_methods() { - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "position", "data", "from"), &EditorPropertyNodePath::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "position", "data", "from"), &EditorPropertyNodePath::drop_data_fw); } EditorPropertyNodePath::EditorPropertyNodePath() { @@ -3686,7 +3687,7 @@ EditorPropertyNodePath::EditorPropertyNodePath() { assign->set_h_size_flags(SIZE_EXPAND_FILL); assign->set_clip_text(true); assign->connect("pressed", callable_mp(this, &EditorPropertyNodePath::_node_assign)); - assign->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CD(assign, EditorPropertyNodePath); hbc->add_child(assign); clear = memnew(Button); @@ -3805,6 +3806,8 @@ static bool _find_recursive_resources(const Variant &v, HashSet<Resource *> &res return true; } } + + resources_found.erase(r.ptr()); } break; default: { } diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 069e80fc05..28c0b047d8 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -702,8 +702,6 @@ void EditorPropertyArray::_reorder_button_up() { } void EditorPropertyArray::_bind_methods() { - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &EditorPropertyArray::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &EditorPropertyArray::drop_data_fw); } EditorPropertyArray::EditorPropertyArray() { @@ -715,7 +713,7 @@ EditorPropertyArray::EditorPropertyArray() { edit->set_clip_text(true); edit->connect("pressed", callable_mp(this, &EditorPropertyArray::_edit_pressed)); edit->set_toggle_mode(true); - edit->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CD(edit, EditorPropertyArray); edit->connect("draw", callable_mp(this, &EditorPropertyArray::_button_draw)); add_child(edit); add_focusable(edit); diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp index 81b2fff97a..a1c913aadd 100644 --- a/editor/editor_resource_picker.cpp +++ b/editor/editor_resource_picker.cpp @@ -772,9 +772,6 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_ void EditorResourcePicker::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_resource_preview"), &EditorResourcePicker::_update_resource_preview); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw", "position", "from"), &EditorResourcePicker::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "position", "data", "from"), &EditorResourcePicker::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "position", "data", "from"), &EditorResourcePicker::drop_data_fw); ClassDB::bind_method(D_METHOD("set_base_type", "base_type"), &EditorResourcePicker::set_base_type); ClassDB::bind_method(D_METHOD("get_base_type"), &EditorResourcePicker::get_base_type); @@ -950,7 +947,7 @@ EditorResourcePicker::EditorResourcePicker(bool p_hide_assign_button_controls) { assign_button->set_flat(true); assign_button->set_h_size_flags(SIZE_EXPAND_FILL); assign_button->set_clip_text(true); - assign_button->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(assign_button, EditorResourcePicker); add_child(assign_button); assign_button->connect("pressed", callable_mp(this, &EditorResourcePicker::_resource_selected)); assign_button->connect("draw", callable_mp(this, &EditorResourcePicker::_button_draw)); diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index eab4e08cec..0628dc7116 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -37,56 +37,38 @@ void EditorRunNative::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - for (int i = 0; i < EditorExport::get_singleton()->get_export_platform_count(); i++) { - Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(i); - if (eep.is_null()) { - continue; - } - Ref<ImageTexture> icon = eep->get_run_icon(); - if (!icon.is_null()) { - Ref<Image> im = icon->get_image(); - im = im->duplicate(); - im->clear_mipmaps(); - if (!im->is_empty()) { - im->resize(16 * EDSCALE, 16 * EDSCALE); - Ref<ImageTexture> small_icon = ImageTexture::create_from_image(im); - MenuButton *mb = memnew(MenuButton); - mb->get_popup()->connect("id_pressed", callable_mp(this, &EditorRunNative::run_native).bind(i)); - mb->connect("pressed", callable_mp(this, &EditorRunNative::run_native).bind(-1, i)); - mb->set_icon(small_icon); - add_child(mb); - menus[i] = mb; - } - } - } + case NOTIFICATION_THEME_CHANGED: { + remote_debug->set_icon(get_theme_icon(SNAME("PlayRemote"), SNAME("EditorIcons"))); } break; - case NOTIFICATION_PROCESS: { bool changed = EditorExport::get_singleton()->poll_export_platforms() || first; if (changed) { - for (KeyValue<int, MenuButton *> &E : menus) { - Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(E.key); - MenuButton *mb = E.value; - int dc = eep->get_options_count(); - - if (dc == 0) { - mb->hide(); - } else { - mb->get_popup()->clear(); - mb->show(); - if (dc == 1) { - mb->set_tooltip_text(eep->get_option_tooltip(0)); - } else { - mb->set_tooltip_text(eep->get_options_tooltip()); - for (int i = 0; i < dc; i++) { - mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i)); - mb->get_popup()->set_item_tooltip(-1, eep->get_option_tooltip(i)); - } + PopupMenu *popup = remote_debug->get_popup(); + popup->clear(); + for (int i = 0; i < EditorExport::get_singleton()->get_export_platform_count(); i++) { + Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(i); + if (eep.is_null()) { + continue; + } + int dc = MIN(eep->get_options_count(), 9000); + if (dc > 0) { + popup->add_icon_item(eep->get_run_icon(), eep->get_name(), -1); + popup->set_item_disabled(-1, true); + for (int j = 0; j < dc; j++) { + popup->add_icon_item(eep->get_option_icon(j), eep->get_option_label(j), 10000 * i + j); + popup->set_item_tooltip(-1, eep->get_option_tooltip(j)); + popup->set_item_indent(-1, 2); } } } + if (popup->get_item_count() == 0) { + remote_debug->set_disabled(true); + remote_debug->set_tooltip_text(TTR("No Remote Debug export presets configured.")); + } else { + remote_debug->set_disabled(false); + remote_debug->set_tooltip_text(TTR("Remote Debug")); + } first = false; } @@ -94,25 +76,22 @@ void EditorRunNative::_notification(int p_what) { } } -Error EditorRunNative::run_native(int p_idx, int p_platform) { - if (!EditorNode::get_singleton()->ensure_main_scene(true)) { - resume_idx = p_idx; - resume_platform = p_platform; +Error EditorRunNative::run_native(int p_id) { + if (p_id < 0) { return OK; } - Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(p_platform); - ERR_FAIL_COND_V(eep.is_null(), ERR_UNAVAILABLE); + int platform = p_id / 10000; + int idx = p_id % 10000; - if (p_idx == -1) { - if (eep->get_options_count() == 1) { - menus[p_platform]->get_popup()->hide(); - p_idx = 0; - } else { - return ERR_INVALID_PARAMETER; - } + if (!EditorNode::get_singleton()->ensure_main_scene(true)) { + resume_id = p_id; + return OK; } + Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(platform); + ERR_FAIL_COND_V(eep.is_null(), ERR_UNAVAILABLE); + Ref<EditorExportPreset> preset; for (int i = 0; i < EditorExport::get_singleton()->get_export_preset_count(); i++) { @@ -151,7 +130,7 @@ Error EditorRunNative::run_native(int p_idx, int p_platform) { } eep->clear_messages(); - Error err = eep->run(preset, p_idx, flags); + Error err = eep->run(preset, idx, flags); result_dialog_log->clear(); if (eep->fill_log_messages(result_dialog_log, err)) { if (eep->get_worst_message_type() >= EditorExportPlatform::EXPORT_MESSAGE_ERROR) { @@ -162,7 +141,7 @@ Error EditorRunNative::run_native(int p_idx, int p_platform) { } void EditorRunNative::resume_run_native() { - run_native(resume_idx, resume_platform); + run_native(resume_id); } void EditorRunNative::_bind_methods() { @@ -174,6 +153,14 @@ bool EditorRunNative::is_deploy_debug_remote_enabled() const { } EditorRunNative::EditorRunNative() { + remote_debug = memnew(MenuButton); + remote_debug->get_popup()->connect("id_pressed", callable_mp(this, &EditorRunNative::run_native)); + remote_debug->set_icon(get_theme_icon(SNAME("PlayRemote"), SNAME("EditorIcons"))); + remote_debug->set_tooltip_text(TTR("Remote Debug")); + remote_debug->set_disabled(true); + + add_child(remote_debug); + result_dialog = memnew(AcceptDialog); result_dialog->set_title(TTR("Project Run")); result_dialog_log = memnew(RichTextLabel); @@ -184,6 +171,4 @@ EditorRunNative::EditorRunNative() { result_dialog->hide(); set_process(true); - resume_idx = 0; - resume_platform = 0; } diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h index a87e27de97..2a5431e54b 100644 --- a/editor/editor_run_native.h +++ b/editor/editor_run_native.h @@ -42,18 +42,17 @@ class EditorRunNative : public HBoxContainer { RichTextLabel *result_dialog_log = nullptr; AcceptDialog *result_dialog = nullptr; - HashMap<int, MenuButton *> menus; + MenuButton *remote_debug = nullptr; bool first = true; - int resume_idx; - int resume_platform; + int resume_id = -1; protected: static void _bind_methods(); void _notification(int p_what); public: - Error run_native(int p_idx, int p_platform); + Error run_native(int p_id); bool is_deploy_debug_remote_enabled() const; void resume_run_native(); diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp index 2881302775..ad614b1769 100644 --- a/editor/editor_settings_dialog.cpp +++ b/editor/editor_settings_dialog.cpp @@ -132,7 +132,7 @@ void EditorSettingsDialog::_notification(int p_what) { } break; case NOTIFICATION_READY: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->get_or_create_history(EditorUndoRedoManager::GLOBAL_HISTORY).undo_redo->set_method_notify_callback(EditorDebuggerNode::_method_changeds, nullptr); undo_redo->get_or_create_history(EditorUndoRedoManager::GLOBAL_HISTORY).undo_redo->set_property_notify_callback(EditorDebuggerNode::_property_changeds, nullptr); undo_redo->get_or_create_history(EditorUndoRedoManager::GLOBAL_HISTORY).undo_redo->set_commit_notify_callback(_undo_redo_callback, this); @@ -161,7 +161,7 @@ void EditorSettingsDialog::_notification(int p_what) { void EditorSettingsDialog::shortcut_input(const Ref<InputEvent> &p_event) { ERR_FAIL_COND(p_event.is_null()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); const Ref<InputEventKey> k = p_event; if (k.is_valid() && k->is_pressed()) { @@ -232,7 +232,7 @@ void EditorSettingsDialog::_event_config_confirmed() { void EditorSettingsDialog::_update_builtin_action(const String &p_name, const Array &p_events) { Array old_input_array = EditorSettings::get_singleton()->get_builtin_action_overrides(p_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Edit Built-in Action") + " '" + p_name + "'"); undo_redo->add_do_method(EditorSettings::get_singleton(), "mark_setting_changed", "builtin_action_overrides"); undo_redo->add_undo_method(EditorSettings::get_singleton(), "mark_setting_changed", "builtin_action_overrides"); @@ -248,7 +248,7 @@ void EditorSettingsDialog::_update_builtin_action(const String &p_name, const Ar void EditorSettingsDialog::_update_shortcut_events(const String &p_path, const Array &p_events) { Ref<Shortcut> current_sc = EditorSettings::get_singleton()->get_shortcut(p_path); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Edit Shortcut") + " '" + p_path + "'"); undo_redo->add_do_method(current_sc.ptr(), "set_events", p_events); undo_redo->add_undo_method(current_sc.ptr(), "set_events", current_sc->get_events()); @@ -694,10 +694,6 @@ void EditorSettingsDialog::_editor_restart_close() { void EditorSettingsDialog::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_shortcuts"), &EditorSettingsDialog::_update_shortcuts); ClassDB::bind_method(D_METHOD("_settings_changed"), &EditorSettingsDialog::_settings_changed); - - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &EditorSettingsDialog::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &EditorSettingsDialog::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &EditorSettingsDialog::drop_data_fw); } EditorSettingsDialog::EditorSettingsDialog() { @@ -793,7 +789,7 @@ EditorSettingsDialog::EditorSettingsDialog() { shortcuts->connect("item_activated", callable_mp(this, &EditorSettingsDialog::_shortcut_cell_double_clicked)); tab_shortcuts->add_child(shortcuts); - shortcuts->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(shortcuts, EditorSettingsDialog); // Adding event dialog shortcut_editor = memnew(InputEventConfigurationDialog); diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp index dd5d68a08e..558423df78 100644 --- a/editor/editor_toaster.cpp +++ b/editor/editor_toaster.cpp @@ -90,11 +90,12 @@ void EditorToaster::_notification(int p_what) { } // Hide element if it is not visible anymore. - if (modulate_fade.a <= 0) { - if (element.key->is_visible()) { - element.key->hide(); - needs_update = true; - } + if (modulate_fade.a <= 0 && element.key->is_visible()) { + element.key->hide(); + needs_update = true; + } else if (modulate_fade.a >= 0 && !element.key->is_visible()) { + element.key->show(); + needs_update = true; } } @@ -419,12 +420,21 @@ void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_t // Create a new message if needed. if (control == nullptr) { + HBoxContainer *hb = memnew(HBoxContainer); + hb->add_theme_constant_override("separation", 0); + Label *label = memnew(Label); + hb->add_child(label); - control = popup(label, p_severity, default_message_duration, p_tooltip); + Label *count_label = memnew(Label); + hb->add_child(count_label); + + control = popup(hb, p_severity, default_message_duration, p_tooltip); toasts[control].message = p_message; toasts[control].tooltip = p_tooltip; toasts[control].count = 1; + toasts[control].message_label = label; + toasts[control].message_count_label = count_label; } else { if (toasts[control].popped) { toasts[control].count += 1; @@ -441,14 +451,31 @@ void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_t main_button->queue_redraw(); } - // Retrieve the label back then update the text. - Label *label = Object::cast_to<Label>(control->get_child(0)->get_child(0)); - ERR_FAIL_COND(!label); + // Retrieve the label back, then update the text. + Label *message_label = toasts[control].message_label; + ERR_FAIL_COND(!message_label); + message_label->set_text(p_message); + message_label->set_text_overrun_behavior(TextServer::OVERRUN_NO_TRIMMING); + message_label->set_custom_minimum_size(Size2()); + + Size2i size = message_label->get_combined_minimum_size(); + int limit_width = get_viewport_rect().size.x / 2; // Limit label size to half the viewport size. + if (size.x > limit_width) { + message_label->set_text_overrun_behavior(TextServer::OVERRUN_TRIM_ELLIPSIS); + message_label->set_custom_minimum_size(Size2(limit_width, 0)); + } + + // Retrieve the count label back, then update the text. + Label *message_count_label = toasts[control].message_count_label; if (toasts[control].count == 1) { - label->set_text(p_message); + message_count_label->hide(); } else { - label->set_text(vformat("%s (%d)", p_message, toasts[control].count)); + message_count_label->set_text(vformat("(%d)", toasts[control].count)); + message_count_label->show(); } + + vbox_container->reset_size(); + is_processing_error = false; } diff --git a/editor/editor_toaster.h b/editor/editor_toaster.h index acd2a8fbf3..6b834f8288 100644 --- a/editor/editor_toaster.h +++ b/editor/editor_toaster.h @@ -79,6 +79,8 @@ private: String message; String tooltip; int count = 0; + Label *message_label = nullptr; + Label *message_count_label = nullptr; }; HashMap<Control *, Toast> toasts; diff --git a/editor/editor_undo_redo_manager.cpp b/editor/editor_undo_redo_manager.cpp index 2ef52bd85a..f65f905b25 100644 --- a/editor/editor_undo_redo_manager.cpp +++ b/editor/editor_undo_redo_manager.cpp @@ -39,6 +39,8 @@ #include "editor/editor_node.h" #include "scene/main/node.h" +EditorUndoRedoManager *EditorUndoRedoManager::singleton = nullptr; + EditorUndoRedoManager::History &EditorUndoRedoManager::get_or_create_history(int p_idx) { if (!history_map.has(p_idx)) { History history; @@ -503,6 +505,16 @@ void EditorUndoRedoManager::_bind_methods() { BIND_ENUM_CONSTANT(INVALID_HISTORY); } +EditorUndoRedoManager *EditorUndoRedoManager::get_singleton() { + return singleton; +} + +EditorUndoRedoManager::EditorUndoRedoManager() { + if (!singleton) { + singleton = this; + } +} + EditorUndoRedoManager::~EditorUndoRedoManager() { for (const KeyValue<int, History> &E : history_map) { discard_history(E.key, false); diff --git a/editor/editor_undo_redo_manager.h b/editor/editor_undo_redo_manager.h index 960d17d410..10daeae807 100644 --- a/editor/editor_undo_redo_manager.h +++ b/editor/editor_undo_redo_manager.h @@ -32,11 +32,13 @@ #define EDITOR_UNDO_REDO_MANAGER_H #include "core/object/class_db.h" -#include "core/object/ref_counted.h" +#include "core/object/object.h" #include "core/object/undo_redo.h" -class EditorUndoRedoManager : public RefCounted { - GDCLASS(EditorUndoRedoManager, RefCounted); +class EditorUndoRedoManager : public Object { + GDCLASS(EditorUndoRedoManager, Object); + + static EditorUndoRedoManager *singleton; public: enum SpecialHistory { @@ -132,6 +134,9 @@ public: int get_current_action_history_id(); void discard_history(int p_idx, bool p_erase_from_map = true); + + static EditorUndoRedoManager *get_singleton(); + EditorUndoRedoManager(); ~EditorUndoRedoManager(); }; diff --git a/editor/export/editor_export.cpp b/editor/export/editor_export.cpp index cc96107f97..1d147cc5b9 100644 --- a/editor/export/editor_export.cpp +++ b/editor/export/editor_export.cpp @@ -77,7 +77,6 @@ void EditorExport::_save() { config->set_value(section, "encryption_exclude_filters", preset->get_enc_ex_filter()); config->set_value(section, "encrypt_pck", preset->get_enc_pck()); config->set_value(section, "encrypt_directory", preset->get_enc_directory()); - config->set_value(section, "script_export_mode", preset->get_script_export_mode()); config->set_value(section, "script_encryption_key", preset->get_script_encryption_key()); String option_section = "preset." + itos(i) + ".options"; @@ -264,9 +263,6 @@ void EditorExport::load_config() { if (config->has_section_key(section, "encryption_exclude_filters")) { preset->set_enc_ex_filter(config->get_value(section, "encryption_exclude_filters")); } - if (config->has_section_key(section, "script_export_mode")) { - preset->set_script_export_mode(config->get_value(section, "script_export_mode")); - } if (config->has_section_key(section, "script_encryption_key")) { preset->set_script_encryption_key(config->get_value(section, "script_encryption_key")); } diff --git a/editor/export/editor_export_platform.cpp b/editor/export/editor_export_platform.cpp index 6478f99fb1..cacd181ad8 100644 --- a/editor/export/editor_export_platform.cpp +++ b/editor/export/editor_export_platform.cpp @@ -786,6 +786,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & HashSet<String> paths; Vector<String> path_remaps; + paths.insert(ProjectSettings::get_singleton()->get_project_data_path().path_join("global_script_class_cache.cfg")); if (p_preset->get_export_filter() == EditorExportPreset::EXPORT_ALL_RESOURCES) { //find stuff _export_find_resources(EditorFileSystem::get_singleton()->get_filesystem(), paths); diff --git a/editor/export/editor_export_preset.cpp b/editor/export/editor_export_preset.cpp index 6cd8e85e6a..c6365806b3 100644 --- a/editor/export/editor_export_preset.cpp +++ b/editor/export/editor_export_preset.cpp @@ -203,15 +203,6 @@ bool EditorExportPreset::get_enc_directory() const { return enc_directory; } -void EditorExportPreset::set_script_export_mode(int p_mode) { - script_mode = p_mode; - EditorExport::singleton->save_presets(); -} - -int EditorExportPreset::get_script_export_mode() const { - return script_mode; -} - void EditorExportPreset::set_script_encryption_key(const String &p_key) { script_key = p_key; EditorExport::singleton->save_presets(); diff --git a/editor/export/editor_export_preset.h b/editor/export/editor_export_preset.h index 2055416d4b..de208f410e 100644 --- a/editor/export/editor_export_preset.h +++ b/editor/export/editor_export_preset.h @@ -46,11 +46,6 @@ public: EXCLUDE_SELECTED_RESOURCES, }; - enum ScriptExportMode { - MODE_SCRIPT_TEXT, - MODE_SCRIPT_COMPILED, - }; - private: Ref<EditorExportPlatform> platform; ExportFilter export_filter = EXPORT_ALL_RESOURCES; @@ -78,7 +73,6 @@ private: bool enc_pck = false; bool enc_directory = false; - int script_mode = MODE_SCRIPT_COMPILED; String script_key; protected: @@ -132,9 +126,6 @@ public: void set_enc_directory(bool p_enabled); bool get_enc_directory() const; - void set_script_export_mode(int p_mode); - int get_script_export_mode() const; - void set_script_encryption_key(const String &p_key); String get_script_encryption_key() const; diff --git a/editor/export/project_export.cpp b/editor/export/project_export.cpp index df5d2dcd29..2caebc6f04 100644 --- a/editor/export/project_export.cpp +++ b/editor/export/project_export.cpp @@ -317,9 +317,6 @@ void ProjectExportDialog::_edit_preset(int p_index) { bool enc_directory_mode = current->get_enc_directory(); enc_directory->set_pressed(enc_directory_mode); - int script_export_mode = current->get_script_export_mode(); - script_mode->select(script_export_mode); - String key = current->get_script_encryption_key(); if (!updating_script_key) { script_key->set_text(key); @@ -480,7 +477,7 @@ void ProjectExportDialog::_enc_filters_changed(const String &p_filters) { } void ProjectExportDialog::_open_key_help_link() { - OS::get_singleton()->shell_open(vformat("%s/development/compiling/compiling_with_script_encryption_key.html", VERSION_DOCS_URL)); + OS::get_singleton()->shell_open(vformat("%s/contributing/development/compiling/compiling_with_script_encryption_key.html", VERSION_DOCS_URL)); } void ProjectExportDialog::_enc_pck_changed(bool p_pressed) { @@ -513,19 +510,6 @@ void ProjectExportDialog::_enc_directory_changed(bool p_pressed) { _update_current_preset(); } -void ProjectExportDialog::_script_export_mode_changed(int p_mode) { - if (updating) { - return; - } - - Ref<EditorExportPreset> current = get_current_preset(); - ERR_FAIL_COND(current.is_null()); - - current->set_script_export_mode(p_mode); - - _update_current_preset(); -} - void ProjectExportDialog::_script_encryption_key_changed(const String &p_key) { if (updating) { return; @@ -979,9 +963,6 @@ void ProjectExportDialog::_export_all(bool p_debug) { } void ProjectExportDialog::_bind_methods() { - ClassDB::bind_method("_get_drag_data_fw", &ProjectExportDialog::get_drag_data_fw); - ClassDB::bind_method("_can_drop_data_fw", &ProjectExportDialog::can_drop_data_fw); - ClassDB::bind_method("_drop_data_fw", &ProjectExportDialog::drop_data_fw); ClassDB::bind_method("_export_all", &ProjectExportDialog::_export_all); ClassDB::bind_method("set_export_path", &ProjectExportDialog::set_export_path); ClassDB::bind_method("get_export_path", &ProjectExportDialog::get_export_path); @@ -1022,8 +1003,7 @@ ProjectExportDialog::ProjectExportDialog() { preset_vb->add_child(mc); mc->set_v_size_flags(Control::SIZE_EXPAND_FILL); presets = memnew(ItemList); - // TODO: Must reimplement drag forwarding. - //presets->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(presets, ProjectExportDialog); mc->add_child(presets); presets->connect("item_selected", callable_mp(this, &ProjectExportDialog::_edit_preset)); duplicate_preset = memnew(Button); @@ -1115,12 +1095,6 @@ ProjectExportDialog::ProjectExportDialog() { exclude_filters); exclude_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_filter_changed)); - script_mode = memnew(OptionButton); - resources_vb->add_margin_child(TTR("GDScript Export Mode:"), script_mode); - script_mode->add_item(TTR("Text"), (int)EditorExportPreset::MODE_SCRIPT_TEXT); - script_mode->add_item(TTR("Compiled Bytecode (Faster Loading)"), (int)EditorExportPreset::MODE_SCRIPT_COMPILED); - script_mode->connect("item_selected", callable_mp(this, &ProjectExportDialog::_script_export_mode_changed)); - // Feature tags. VBoxContainer *feature_vb = memnew(VBoxContainer); diff --git a/editor/export/project_export.h b/editor/export/project_export.h index 1138d598cb..d392dba2a4 100644 --- a/editor/export/project_export.h +++ b/editor/export/project_export.h @@ -86,7 +86,6 @@ private: LineEdit *custom_features = nullptr; RichTextLabel *custom_feature_display = nullptr; - OptionButton *script_mode = nullptr; LineEdit *script_key = nullptr; Label *script_key_error = nullptr; @@ -152,7 +151,6 @@ private: void _enc_pck_changed(bool p_pressed); void _enc_directory_changed(bool p_pressed); void _enc_filters_changed(const String &p_text); - void _script_export_mode_changed(int p_mode); void _script_encryption_key_changed(const String &p_key); bool _validate_script_encryption_key(const String &p_key); diff --git a/editor/fbx_importer_manager.cpp b/editor/fbx_importer_manager.cpp index dfea2e706a..2a005034a5 100644 --- a/editor/fbx_importer_manager.cpp +++ b/editor/fbx_importer_manager.cpp @@ -144,12 +144,8 @@ FBXImporterManager::FBXImporterManager() { browse_dialog = memnew(EditorFileDialog); browse_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM); browse_dialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); -#if defined(X11_ENABLED) - browse_dialog->add_filter("FBX2glTF-linux-x86_64"); -#elif defined(OSX_ENABLED) - browse_dialog->add_filter("FBX2glTF-macos-x86_64"); -#elif defined(WINDOWS_ENABLED) - browse_dialog->add_filter("FBX2glTF-windows-x86_64"); +#ifdef WINDOWS_ENABLED + browse_dialog->add_filter("*.exe"); #endif browse_dialog->connect("file_selected", callable_mp(this, &FBXImporterManager::_select_file)); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 6eed3e3e61..f1ea8e8e65 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -2051,7 +2051,8 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected if (!fpath.ends_with("/")) { fpath = fpath.get_base_dir(); } - ScriptEditor::get_singleton()->open_text_file_create_dialog(fpath); + String dir = ProjectSettings::get_singleton()->globalize_path(fpath); + ScriptEditor::get_singleton()->open_text_file_create_dialog(dir); } break; } } @@ -2589,11 +2590,18 @@ void FileSystemDock::_file_and_folders_fill_popup(PopupMenu *p_popup, Vector<Str if (p_paths.size() == 1) { p_popup->add_separator(); if (p_display_path_dependent_options) { - p_popup->add_icon_item(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")), TTR("New Folder..."), FILE_NEW_FOLDER); - p_popup->add_icon_item(get_theme_icon(SNAME("PackedScene"), SNAME("EditorIcons")), TTR("New Scene..."), FILE_NEW_SCENE); - p_popup->add_icon_item(get_theme_icon(SNAME("Script"), SNAME("EditorIcons")), TTR("New Script..."), FILE_NEW_SCRIPT); - p_popup->add_icon_item(get_theme_icon(SNAME("Object"), SNAME("EditorIcons")), TTR("New Resource..."), FILE_NEW_RESOURCE); - p_popup->add_icon_item(get_theme_icon(SNAME("TextFile"), SNAME("EditorIcons")), TTR("New TextFile..."), FILE_NEW_TEXTFILE); + PopupMenu *new_menu = memnew(PopupMenu); + new_menu->set_name("New"); + new_menu->connect("id_pressed", callable_mp(this, &FileSystemDock::_tree_rmb_option)); + + p_popup->add_child(new_menu); + p_popup->add_submenu_item(TTR("New"), "New"); + + new_menu->add_icon_item(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")), TTR("Folder..."), FILE_NEW_FOLDER); + new_menu->add_icon_item(get_theme_icon(SNAME("PackedScene"), SNAME("EditorIcons")), TTR("Scene..."), FILE_NEW_SCENE); + new_menu->add_icon_item(get_theme_icon(SNAME("Script"), SNAME("EditorIcons")), TTR("Script..."), FILE_NEW_SCRIPT); + new_menu->add_icon_item(get_theme_icon(SNAME("Object"), SNAME("EditorIcons")), TTR("Resource..."), FILE_NEW_RESOURCE); + new_menu->add_icon_item(get_theme_icon(SNAME("TextFile"), SNAME("EditorIcons")), TTR("TextFile..."), FILE_NEW_TEXTFILE); p_popup->add_separator(); } @@ -3020,9 +3028,6 @@ void FileSystemDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_tree_thumbnail_done"), &FileSystemDock::_tree_thumbnail_done); ClassDB::bind_method(D_METHOD("_select_file"), &FileSystemDock::_select_file); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw", "position", "from"), &FileSystemDock::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "position", "data", "from"), &FileSystemDock::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "position", "data", "from"), &FileSystemDock::drop_data_fw); ClassDB::bind_method(D_METHOD("navigate_to_path", "path"), &FileSystemDock::navigate_to_path); ClassDB::bind_method(D_METHOD("_update_import_dock"), &FileSystemDock::_update_import_dock); @@ -3122,10 +3127,11 @@ FileSystemDock::FileSystemDock() { tree = memnew(Tree); tree->set_hide_root(true); - tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(tree, FileSystemDock); tree->set_allow_rmb_select(true); tree->set_select_mode(Tree::SELECT_MULTI); tree->set_custom_minimum_size(Size2(0, 15 * EDSCALE)); + tree->set_column_clip_content(0, true); split_box->add_child(tree); tree->connect("item_activated", callable_mp(this, &FileSystemDock::_tree_activate_file)); @@ -3159,7 +3165,7 @@ FileSystemDock::FileSystemDock() { files = memnew(ItemList); files->set_v_size_flags(SIZE_EXPAND_FILL); files->set_select_mode(ItemList::SELECT_MULTI); - files->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(files, FileSystemDock); files->connect("item_clicked", callable_mp(this, &FileSystemDock::_file_list_item_clicked)); files->connect("gui_input", callable_mp(this, &FileSystemDock::_file_list_gui_input)); files->connect("multi_selected", callable_mp(this, &FileSystemDock::_file_multi_selected)); diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp index 3ee7d5ddd8..7f0417ea29 100644 --- a/editor/groups_editor.cpp +++ b/editor/groups_editor.cpp @@ -130,7 +130,7 @@ void GroupDialog::_add_pressed() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add to Group")); while (selected) { @@ -160,7 +160,7 @@ void GroupDialog::_removed_pressed() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove from Group")); while (selected) { @@ -248,7 +248,7 @@ void GroupDialog::_group_renamed() { renamed_group->set_text(0, name); // Spaces trimmed. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Group")); List<Node *> nodes; @@ -325,7 +325,7 @@ void GroupDialog::_modify_group_pressed(Object *p_item, int p_column, int p_id, case DELETE_GROUP: { String name = ti->get_text(0); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Group")); List<Node *> nodes; @@ -597,7 +597,7 @@ void GroupsEditor::_add_group(const String &p_group) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add to Group")); undo_redo->add_do_method(node, "add_to_group", name, true); @@ -652,7 +652,7 @@ void GroupsEditor::_group_renamed() { ti->set_text(0, name); // Spaces trimmed. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Group")); undo_redo->add_do_method(node, "remove_from_group", selected_group); @@ -688,7 +688,7 @@ void GroupsEditor::_modify_group(Object *p_item, int p_column, int p_id, MouseBu switch (p_id) { case DELETE_GROUP: { const String name = ti->get_text(0); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove from Group")); undo_redo->add_do_method(node, "remove_from_group", name); diff --git a/editor/history_dock.cpp b/editor/history_dock.cpp index f9fe1093b8..41ca519400 100644 --- a/editor/history_dock.cpp +++ b/editor/history_dock.cpp @@ -221,7 +221,7 @@ void HistoryDock::_notification(int p_notification) { HistoryDock::HistoryDock() { set_name("History"); - ur_manager = EditorNode::get_undo_redo(); + ur_manager = EditorUndoRedoManager::get_singleton(); ur_manager->connect("history_changed", callable_mp(this, &HistoryDock::on_history_changed)); ur_manager->connect("version_changed", callable_mp(this, &HistoryDock::on_version_changed)); diff --git a/editor/history_dock.h b/editor/history_dock.h index 81d1d02b79..d507f19b07 100644 --- a/editor/history_dock.h +++ b/editor/history_dock.h @@ -40,7 +40,7 @@ class EditorUndoRedoManager; class HistoryDock : public VBoxContainer { GDCLASS(HistoryDock, VBoxContainer); - Ref<EditorUndoRedoManager> ur_manager; + EditorUndoRedoManager *ur_manager; ItemList *action_list = nullptr; CheckBox *current_scene_checkbox = nullptr; diff --git a/editor/icons/PlayRemote.svg b/editor/icons/PlayRemote.svg new file mode 100644 index 0000000000..ea2195294f --- /dev/null +++ b/editor/icons/PlayRemote.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="16" height="16"><path d="m12.998 2.548-9.996.005a2.006 2.006 0 0 0-2.006 2v4.61c0 1.107.898 2.003 2.006 2.003h3.996v.9h-1.68v.381H3.001v2h2.315v.38h5.366v-.38H13v-2.004h-2.315v-.378H9.004v-.9h3.994a2.006 2.006 0 0 0 2.006-2.003v-4.61c0-1.106-.9-2.003-2.006-2.003zm-7.496 1.31 5 3-5 3z" style="fill:#e0e0e0;fill-opacity:1"/></svg> diff --git a/editor/icons/README.md b/editor/icons/README.md index 3159565180..d191000985 100644 --- a/editor/icons/README.md +++ b/editor/icons/README.md @@ -3,5 +3,5 @@ This folder contains all the icons used by Godot editor (except for platform icons which are located in their respective platform folder). -See [Editor icons](https://docs.godotengine.org/en/latest/development/editor/creating_icons.html) +See [Editor icons](https://docs.godotengine.org/en/latest/contributing/development/editor/creating_icons.html) in the documentation for details on creating icons for the Godot editor. diff --git a/editor/import/collada.cpp b/editor/import/collada.cpp index fcd706627d..a8d746fde6 100644 --- a/editor/import/collada.cpp +++ b/editor/import/collada.cpp @@ -262,7 +262,7 @@ void Collada::_parse_asset(XMLParser &parser) { COLLADA_PRINT("up axis: " + parser.get_node_data()); } else if (name == "unit") { - state.unit_scale = parser.get_attribute_value("meter").to_float(); + state.unit_scale = parser.get_named_attribute_value("meter").to_float(); COLLADA_PRINT("unit scale: " + rtos(state.unit_scale)); } @@ -273,7 +273,7 @@ void Collada::_parse_asset(XMLParser &parser) { } void Collada::_parse_image(XMLParser &parser) { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); if (!(state.import_flags & IMPORT_FLAG_SCENE)) { if (!parser.is_empty()) { @@ -286,7 +286,7 @@ void Collada::_parse_image(XMLParser &parser) { if (state.version < State::Version(1, 4, 0)) { /* <1.4 */ - String path = parser.get_attribute_value("source").strip_edges(); + String path = parser.get_named_attribute_value("source").strip_edges(); if (!path.contains("://") && path.is_relative_path()) { // path is relative to file being loaded, so convert to a resource path image.path = ProjectSettings::get_singleton()->localize_path(state.local_path.get_base_dir().path_join(path.uri_decode())); @@ -337,9 +337,9 @@ void Collada::_parse_material(XMLParser &parser) { Material material; - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); if (parser.has_attribute("name")) { - material.name = parser.get_attribute_value("name"); + material.name = parser.get_named_attribute_value("name"); } if (state.version < State::Version(1, 4, 0)) { @@ -348,7 +348,7 @@ void Collada::_parse_material(XMLParser &parser) { } else { while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT && parser.get_node_name() == "instance_effect") { - material.instance_effect = _uri_to_id(parser.get_attribute_value("url")); + material.instance_effect = _uri_to_id(parser.get_named_attribute_value("url")); } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name() == "material") { break; //end of <asset> } @@ -549,7 +549,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & _parse_effect_material(parser, effect, id); // try again } else if (parser.get_node_name() == "newparam") { - String name = parser.get_attribute_value("sid"); + String name = parser.get_named_attribute_value("sid"); Variant value = _parse_param(parser); effect.params[name] = value; COLLADA_PRINT("param: " + name + " value:" + String(value)); @@ -591,7 +591,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & } } else if (parser.get_node_name() == "texture") { - String sampler = parser.get_attribute_value("texture"); + String sampler = parser.get_named_attribute_value("texture"); if (!effect.params.has(sampler)) { ERR_PRINT(String("Couldn't find sampler: " + sampler + " in material:" + id).utf8().get_data()); } else { @@ -609,7 +609,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & } else if (what == "emission") { effect.emission.texture = uri; } else if (what == "bump") { - if (parser.has_attribute("bumptype") && parser.get_attribute_value("bumptype") != "NORMALMAP") { + if (parser.has_attribute("bumptype") && parser.get_named_attribute_value("bumptype") != "NORMALMAP") { WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported."); } @@ -654,7 +654,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "texture") { - String sampler = parser.get_attribute_value("texture"); + String sampler = parser.get_named_attribute_value("texture"); if (!effect.params.has(sampler)) { ERR_PRINT(String("Couldn't find sampler: " + sampler + " in material:" + id).utf8().get_data()); } else { @@ -665,7 +665,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & } else { String uri = effect.params[surface]; - if (parser.has_attribute("bumptype") && parser.get_attribute_value("bumptype") != "NORMALMAP") { + if (parser.has_attribute("bumptype") && parser.get_named_attribute_value("bumptype") != "NORMALMAP") { WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported."); } @@ -703,11 +703,11 @@ void Collada::_parse_effect(XMLParser &parser) { return; } - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); Effect effect; if (parser.has_attribute("name")) { - effect.name = parser.get_attribute_value("name"); + effect.name = parser.get_named_attribute_value("name"); } _parse_effect_material(parser, effect, id); @@ -724,7 +724,7 @@ void Collada::_parse_camera(XMLParser &parser) { return; } - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); state.camera_data_map[id] = CameraData(); CameraData &camera = state.camera_data_map[id]; @@ -780,7 +780,7 @@ void Collada::_parse_light(XMLParser &parser) { return; } - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); state.light_data_map[id] = LightData(); LightData &light = state.light_data_map[id]; @@ -848,7 +848,7 @@ void Collada::_parse_curve_geometry(XMLParser &parser, String p_id, String p_nam CurveData &curvedata = state.curve_data_map[p_id]; curvedata.name = p_name; - String closed = parser.get_attribute_value_safe("closed").to_lower(); + String closed = parser.get_named_attribute_value_safe("closed").to_lower(); curvedata.closed = closed == "true" || closed == "1"; COLLADA_PRINT("curve name: " + p_name); @@ -865,7 +865,7 @@ void Collada::_parse_curve_geometry(XMLParser &parser, String p_id, String p_nam String section = parser.get_node_name(); if (section == "source") { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); curvedata.sources[id] = CurveData::Source(); current_source = id; COLLADA_PRINT("source data: " + id); @@ -888,15 +888,15 @@ void Collada::_parse_curve_geometry(XMLParser &parser, String p_id, String p_nam } else if (section == "accessor") { // child of source (below a technique tag) if (curvedata.sources.has(current_source)) { - curvedata.sources[current_source].stride = parser.get_attribute_value("stride").to_int(); + curvedata.sources[current_source].stride = parser.get_named_attribute_value("stride").to_int(); COLLADA_PRINT("section: " + current_source + " stride " + itos(curvedata.sources[current_source].stride)); } } else if (section == "control_vertices") { while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); curvedata.control_vertices[semantic] = source; @@ -945,7 +945,7 @@ void Collada::_parse_mesh_geometry(XMLParser &parser, String p_id, String p_name String section = parser.get_node_name(); if (section == "source") { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); meshdata.sources[id] = MeshData::Source(); current_source = id; COLLADA_PRINT("source data: " + id); @@ -961,19 +961,19 @@ void Collada::_parse_mesh_geometry(XMLParser &parser, String p_id, String p_name } else if (section == "accessor") { // child of source (below a technique tag) if (meshdata.sources.has(current_source)) { - meshdata.sources[current_source].stride = parser.get_attribute_value("stride").to_int(); + meshdata.sources[current_source].stride = parser.get_named_attribute_value("stride").to_int(); COLLADA_PRINT("section: " + current_source + " stride " + itos(meshdata.sources[current_source].stride)); } } else if (section == "vertices") { MeshData::Vertices vert; - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); int last_ref = 0; while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); if (semantic == "TEXCOORD") { semantic = "TEXCOORD" + itos(last_ref++); @@ -998,22 +998,22 @@ void Collada::_parse_mesh_geometry(XMLParser &parser, String p_id, String p_name MeshData::Primitives prim; if (parser.has_attribute("material")) { - prim.material = parser.get_attribute_value("material"); + prim.material = parser.get_named_attribute_value("material"); } - prim.count = parser.get_attribute_value("count").to_int(); + prim.count = parser.get_named_attribute_value("count").to_int(); prim.vertex_size = 0; int last_ref = 0; while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); if (semantic == "TEXCOORD") { semantic = "TEXCOORD" + itos(last_ref++); } - int offset = parser.get_attribute_value("offset").to_int(); + int offset = parser.get_named_attribute_value("offset").to_int(); MeshData::Primitives::SourceRef sref; sref.source = source; @@ -1074,7 +1074,7 @@ void Collada::_parse_skin_controller(XMLParser &parser, String p_id) { state.skin_controller_data_map[p_id] = SkinControllerData(); SkinControllerData &skindata = state.skin_controller_data_map[p_id]; - skindata.base = _uri_to_id(parser.get_attribute_value("source")); + skindata.base = _uri_to_id(parser.get_named_attribute_value("source")); String current_source; @@ -1091,7 +1091,7 @@ void Collada::_parse_skin_controller(XMLParser &parser, String p_id) { COLLADA_PRINT("skeleton bind shape transform: " + skindata.bind_shape); } else if (section == "source") { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); skindata.sources[id] = SkinControllerData::Source(); current_source = id; COLLADA_PRINT("source data: " + id); @@ -1125,7 +1125,7 @@ void Collada::_parse_skin_controller(XMLParser &parser, String p_id) { if (skindata.sources.has(current_source)) { int stride = 1; if (parser.has_attribute("stride")) { - stride = parser.get_attribute_value("stride").to_int(); + stride = parser.get_named_attribute_value("stride").to_int(); } skindata.sources[current_source].stride = stride; @@ -1138,8 +1138,8 @@ void Collada::_parse_skin_controller(XMLParser &parser, String p_id) { while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); joint.sources[semantic] = source; @@ -1155,15 +1155,15 @@ void Collada::_parse_skin_controller(XMLParser &parser, String p_id) { } else if (section == "vertex_weights") { SkinControllerData::Weights weights; - weights.count = parser.get_attribute_value("count").to_int(); + weights.count = parser.get_named_attribute_value("count").to_int(); while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); - int offset = parser.get_attribute_value("offset").to_int(); + int offset = parser.get_named_attribute_value("offset").to_int(); SkinControllerData::Weights::SourceRef sref; sref.source = source; @@ -1228,8 +1228,8 @@ void Collada::_parse_morph_controller(XMLParser &parser, String p_id) { state.morph_controller_data_map[p_id] = MorphControllerData(); MorphControllerData &morphdata = state.morph_controller_data_map[p_id]; - morphdata.mesh = _uri_to_id(parser.get_attribute_value("source")); - morphdata.mode = parser.get_attribute_value("method"); + morphdata.mesh = _uri_to_id(parser.get_named_attribute_value("source")); + morphdata.mode = parser.get_named_attribute_value("method"); String current_source; while (parser.read() == OK) { @@ -1237,7 +1237,7 @@ void Collada::_parse_morph_controller(XMLParser &parser, String p_id) { String section = parser.get_node_name(); if (section == "source") { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); morphdata.sources[id] = MorphControllerData::Source(); current_source = id; COLLADA_PRINT("source data: " + id); @@ -1261,7 +1261,7 @@ void Collada::_parse_morph_controller(XMLParser &parser, String p_id) { if (morphdata.sources.has(current_source)) { int stride = 1; if (parser.has_attribute("stride")) { - stride = parser.get_attribute_value("stride").to_int(); + stride = parser.get_named_attribute_value("stride").to_int(); } morphdata.sources[current_source].stride = stride; @@ -1272,8 +1272,8 @@ void Collada::_parse_morph_controller(XMLParser &parser, String p_id) { while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "input") { - String semantic = parser.get_attribute_value("semantic"); - String source = _uri_to_id(parser.get_attribute_value("source")); + String semantic = parser.get_named_attribute_value("semantic"); + String source = _uri_to_id(parser.get_named_attribute_value("source")); morphdata.targets[semantic] = source; @@ -1295,7 +1295,7 @@ void Collada::_parse_morph_controller(XMLParser &parser, String p_id) { } void Collada::_parse_controller(XMLParser &parser) { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); if (parser.is_empty()) { return; @@ -1320,7 +1320,7 @@ Collada::Node *Collada::_parse_visual_instance_geometry(XMLParser &parser) { String type = parser.get_node_name(); NodeGeometry *geom = memnew(NodeGeometry); geom->controller = type == "instance_controller"; - geom->source = _uri_to_id(parser.get_attribute_value_safe("url")); + geom->source = _uri_to_id(parser.get_named_attribute_value_safe("url")); if (parser.is_empty()) { //nothing else to parse... return geom; @@ -1329,8 +1329,8 @@ Collada::Node *Collada::_parse_visual_instance_geometry(XMLParser &parser) { while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "instance_material") { - String symbol = parser.get_attribute_value("symbol"); - String target = _uri_to_id(parser.get_attribute_value("target")); + String symbol = parser.get_named_attribute_value("symbol"); + String target = _uri_to_id(parser.get_named_attribute_value("target")); NodeGeometry::Material mat; mat.target = target; @@ -1370,7 +1370,7 @@ Collada::Node *Collada::_parse_visual_instance_geometry(XMLParser &parser) { Collada::Node *Collada::_parse_visual_instance_camera(XMLParser &parser) { NodeCamera *cam = memnew(NodeCamera); - cam->camera = _uri_to_id(parser.get_attribute_value_safe("url")); + cam->camera = _uri_to_id(parser.get_named_attribute_value_safe("url")); if (state.up_axis == Vector3::AXIS_Z) { //collada weirdness cam->post_transform.basis.rotate(Vector3(1, 0, 0), -Math_PI * 0.5); @@ -1391,7 +1391,7 @@ Collada::Node *Collada::_parse_visual_instance_camera(XMLParser &parser) { Collada::Node *Collada::_parse_visual_instance_light(XMLParser &parser) { NodeLight *cam = memnew(NodeLight); - cam->light = _uri_to_id(parser.get_attribute_value_safe("url")); + cam->light = _uri_to_id(parser.get_named_attribute_value_safe("url")); if (state.up_axis == Vector3::AXIS_Z) { //collada weirdness cam->post_transform.basis.rotate(Vector3(1, 0, 0), -Math_PI * 0.5); @@ -1437,7 +1437,7 @@ Collada::Node *Collada::_parse_visual_node_instance_data(XMLParser &parser) { Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { String name; - String id = parser.get_attribute_value_safe("id"); + String id = parser.get_named_attribute_value_safe("id"); bool found_name = false; @@ -1455,25 +1455,25 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { Node *node = nullptr; - name = parser.has_attribute("name") ? parser.get_attribute_value_safe("name") : parser.get_attribute_value_safe("id"); + name = parser.has_attribute("name") ? parser.get_named_attribute_value_safe("name") : parser.get_named_attribute_value_safe("id"); if (name.is_empty()) { name = id; } else { found_name = true; } - if ((parser.has_attribute("type") && parser.get_attribute_value("type") == "JOINT") || state.idref_joints.has(name)) { + if ((parser.has_attribute("type") && parser.get_named_attribute_value("type") == "JOINT") || state.idref_joints.has(name)) { // handle a bone NodeJoint *joint = memnew(NodeJoint); if (parser.has_attribute("sid")) { //bones may not have sid - joint->sid = parser.get_attribute_value("sid"); + joint->sid = parser.get_named_attribute_value("sid"); //state.bone_map[joint->sid]=joint; } else if (state.idref_joints.has(name)) { joint->sid = name; //kind of a cheat but.. } else if (parser.has_attribute("name")) { - joint->sid = parser.get_attribute_value_safe("name"); + joint->sid = parser.get_named_attribute_value_safe("name"); } if (!joint->sid.is_empty()) { @@ -1490,7 +1490,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { if (section == "translate") { Node::XForm xf; if (parser.has_attribute("sid")) { - xf.id = parser.get_attribute_value("sid"); + xf.id = parser.get_named_attribute_value("sid"); } xf.op = Node::XForm::OP_TRANSLATE; @@ -1501,7 +1501,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { } else if (section == "rotate") { Node::XForm xf; if (parser.has_attribute("sid")) { - xf.id = parser.get_attribute_value("sid"); + xf.id = parser.get_named_attribute_value("sid"); } xf.op = Node::XForm::OP_ROTATE; @@ -1513,7 +1513,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { } else if (section == "scale") { Node::XForm xf; if (parser.has_attribute("sid")) { - xf.id = parser.get_attribute_value("sid"); + xf.id = parser.get_named_attribute_value("sid"); } xf.op = Node::XForm::OP_SCALE; @@ -1527,7 +1527,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { } else if (section == "matrix") { Node::XForm xf; if (parser.has_attribute("sid")) { - xf.id = parser.get_attribute_value("sid"); + xf.id = parser.get_named_attribute_value("sid"); } xf.op = Node::XForm::OP_MATRIX; @@ -1544,7 +1544,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { } else if (section == "visibility") { Node::XForm xf; if (parser.has_attribute("sid")) { - xf.id = parser.get_attribute_value("sid"); + xf.id = parser.get_named_attribute_value("sid"); } xf.op = Node::XForm::OP_VISIBILITY; @@ -1609,7 +1609,7 @@ Collada::Node *Collada::_parse_visual_scene_node(XMLParser &parser) { } void Collada::_parse_visual_scene(XMLParser &parser) { - String id = parser.get_attribute_value("id"); + String id = parser.get_named_attribute_value("id"); if (parser.is_empty()) { return; @@ -1619,7 +1619,7 @@ void Collada::_parse_visual_scene(XMLParser &parser) { VisualScene &vscene = state.visual_scene_map[id]; if (parser.has_attribute("name")) { - vscene.name = parser.get_attribute_value("name"); + vscene.name = parser.get_named_attribute_value("name"); } while (parser.read() == OK) { @@ -1656,7 +1656,7 @@ void Collada::_parse_animation(XMLParser &parser) { String id = ""; if (parser.has_attribute("id")) { - id = parser.get_attribute_value("id"); + id = parser.get_named_attribute_value("id"); } String current_source; @@ -1668,7 +1668,7 @@ void Collada::_parse_animation(XMLParser &parser) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { String name = parser.get_node_name(); if (name == "source") { - current_source = parser.get_attribute_value("id"); + current_source = parser.get_named_attribute_value("id"); source_param_names[current_source] = Vector<String>(); source_param_types[current_source] = Vector<String>(); @@ -1683,32 +1683,32 @@ void Collada::_parse_animation(XMLParser &parser) { } } else if (name == "accessor") { if (!current_source.is_empty() && parser.has_attribute("stride")) { - source_strides[current_source] = parser.get_attribute_value("stride").to_int(); + source_strides[current_source] = parser.get_named_attribute_value("stride").to_int(); } } else if (name == "sampler") { - current_sampler = parser.get_attribute_value("id"); + current_sampler = parser.get_named_attribute_value("id"); samplers[current_sampler] = HashMap<String, String>(); } else if (name == "param") { if (parser.has_attribute("name")) { - source_param_names[current_source].push_back(parser.get_attribute_value("name")); + source_param_names[current_source].push_back(parser.get_named_attribute_value("name")); } else { source_param_names[current_source].push_back(""); } if (parser.has_attribute("type")) { - source_param_types[current_source].push_back(parser.get_attribute_value("type")); + source_param_types[current_source].push_back(parser.get_named_attribute_value("type")); } else { source_param_types[current_source].push_back(""); } } else if (name == "input") { if (!current_sampler.is_empty()) { - samplers[current_sampler][parser.get_attribute_value("semantic")] = parser.get_attribute_value("source"); + samplers[current_sampler][parser.get_named_attribute_value("semantic")] = parser.get_named_attribute_value("source"); } } else if (name == "channel") { - channel_sources.push_back(parser.get_attribute_value("source")); - channel_targets.push_back(parser.get_attribute_value("target")); + channel_sources.push_back(parser.get_named_attribute_value("source")); + channel_targets.push_back(parser.get_named_attribute_value("target")); } } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name() == "animation") { @@ -1857,22 +1857,22 @@ void Collada::_parse_animation_clip(XMLParser &parser) { AnimationClip clip; if (parser.has_attribute("name")) { - clip.name = parser.get_attribute_value("name"); + clip.name = parser.get_named_attribute_value("name"); } else if (parser.has_attribute("id")) { - clip.name = parser.get_attribute_value("id"); + clip.name = parser.get_named_attribute_value("id"); } if (parser.has_attribute("start")) { - clip.begin = parser.get_attribute_value("start").to_float(); + clip.begin = parser.get_named_attribute_value("start").to_float(); } if (parser.has_attribute("end")) { - clip.end = parser.get_attribute_value("end").to_float(); + clip.end = parser.get_named_attribute_value("end").to_float(); } while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { String name = parser.get_node_name(); if (name == "instance_animation") { - String url = _uri_to_id(parser.get_attribute_value("url")); + String url = _uri_to_id(parser.get_named_attribute_value("url")); clip.tracks.push_back(url); } @@ -1894,9 +1894,9 @@ void Collada::_parse_scene(XMLParser &parser) { String name = parser.get_node_name(); if (name == "instance_visual_scene") { - state.root_visual_scene = _uri_to_id(parser.get_attribute_value("url")); + state.root_visual_scene = _uri_to_id(parser.get_named_attribute_value("url")); } else if (name == "instance_physics_scene") { - state.root_physics_scene = _uri_to_id(parser.get_attribute_value("url")); + state.root_physics_scene = _uri_to_id(parser.get_named_attribute_value("url")); } } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name() == "scene") { @@ -1925,8 +1925,8 @@ void Collada::_parse_library(XMLParser &parser) { } else if (name == "light") { _parse_light(parser); } else if (name == "geometry") { - String id = parser.get_attribute_value("id"); - String name2 = parser.get_attribute_value_safe("name"); + String id = parser.get_named_attribute_value("id"); + String name2 = parser.get_named_attribute_value_safe("name"); while (parser.read() == OK) { if (parser.get_node_type() == XMLParser::NODE_ELEMENT) { if (parser.get_node_name() == "mesh") { @@ -2346,7 +2346,7 @@ Error Collada::load(const String &p_path, int p_flags) { { //version - String version = parser.get_attribute_value("version"); + String version = parser.get_named_attribute_value("version"); state.version.major = version.get_slice(".", 0).to_int(); state.version.minor = version.get_slice(".", 1).to_int(); state.version.rev = version.get_slice(".", 2).to_int(); diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp index f1fd1d5a03..3dd01754a3 100644 --- a/editor/import/resource_importer_obj.cpp +++ b/editor/import/resource_importer_obj.cpp @@ -206,6 +206,20 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_ Ref<FileAccess> f = FileAccess::open(p_path, FileAccess::READ); ERR_FAIL_COND_V_MSG(f.is_null(), ERR_CANT_OPEN, vformat("Couldn't open OBJ file '%s', it may not exist or not be readable.", p_path)); + // Avoid trying to load/interpret potential build artifacts from Visual Studio (e.g. when compiling native plugins inside the project tree) + // This should only match, if it's indeed a COFF file header + // https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#machine-types + const int first_bytes = f->get_16(); + static const Vector<int> coff_header_machines{ + 0x0, // IMAGE_FILE_MACHINE_UNKNOWN + 0x8664, // IMAGE_FILE_MACHINE_AMD64 + 0x1c0, // IMAGE_FILE_MACHINE_ARM + 0x14c, // IMAGE_FILE_MACHINE_I386 + 0x200, // IMAGE_FILE_MACHINE_IA64 + }; + ERR_FAIL_COND_V_MSG(coff_header_machines.find(first_bytes) != -1, ERR_FILE_CORRUPT, vformat("Couldn't read OBJ file '%s', it seems to be binary, corrupted, or empty.", p_path)); + f->seek(0); + Ref<ArrayMesh> mesh; mesh.instantiate(); @@ -218,7 +232,8 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_ Vector<Vector3> normals; Vector<Vector2> uvs; Vector<Color> colors; - String name; + const String default_name = "Mesh"; + String name = default_name; HashMap<String, HashMap<String, Ref<StandardMaterial3D>>> material_map; @@ -395,9 +410,12 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_ if (l.begins_with("o ") || f->eof_reached()) { if (!p_single_mesh) { - mesh->set_name(name); - r_meshes.push_back(mesh); - mesh.instantiate(); + if (mesh->get_surface_count() > 0) { + mesh->set_name(name); + r_meshes.push_back(mesh); + mesh.instantiate(); + } + name = default_name; current_group = ""; current_material = ""; } @@ -460,6 +478,7 @@ Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, co for (const Ref<Mesh> &m : meshes) { Ref<ImporterMesh> mesh; mesh.instantiate(); + mesh->set_name(m->get_name()); for (int i = 0; i < m->get_surface_count(); i++) { mesh->add_surface(m->surface_get_primitive_type(i), m->surface_get_arrays(i), Array(), Dictionary(), m->surface_get_material(i)); } diff --git a/editor/import/resource_importer_shader_file.cpp b/editor/import/resource_importer_shader_file.cpp index 7187e85df0..ba48fc9029 100644 --- a/editor/import/resource_importer_shader_file.cpp +++ b/editor/import/resource_importer_shader_file.cpp @@ -91,6 +91,7 @@ static String _include_function(const String &p_path, void *userpointer) { Error ResourceImporterShaderFile::import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) { /* STEP 1, Read shader code */ + ERR_FAIL_COND_V_EDMSG((OS::get_singleton()->get_current_rendering_method() == "gl_compatibility"), ERR_UNAVAILABLE, "Cannot import custom .glsl shaders when using the gl_compatibility rendering_method. Please switch to the forward_plus or mobile rendering methods to use custom shaders."); Error err; Ref<FileAccess> file = FileAccess::open(p_source_file, FileAccess::READ, &err); diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index f6ec7da158..044f7475c2 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -703,15 +703,17 @@ void SceneImportSettings::_select(Tree *p_from, String p_type, String p_id) { } MeshData &md = mesh_map[p_id]; - if (p_from != mesh_tree) { - md.mesh_node->uncollapse_tree(); - md.mesh_node->select(0); - mesh_tree->ensure_cursor_is_visible(); - } - if (p_from != scene_tree) { - md.scene_node->uncollapse_tree(); - md.scene_node->select(0); - scene_tree->ensure_cursor_is_visible(); + if (md.mesh_node != nullptr) { + if (p_from != mesh_tree) { + md.mesh_node->uncollapse_tree(); + md.mesh_node->select(0); + mesh_tree->ensure_cursor_is_visible(); + } + if (p_from != scene_tree) { + md.scene_node->uncollapse_tree(); + md.scene_node->select(0); + scene_tree->ensure_cursor_is_visible(); + } } mesh_preview->set_mesh(md.mesh); @@ -1234,6 +1236,12 @@ SceneImportSettings::SceneImportSettings() { action_menu = memnew(MenuButton); action_menu->set_text(TTR("Actions...")); + // Style the MenuButton like a regular Button to make it more noticeable. + action_menu->set_flat(false); + action_menu->add_theme_style_override("normal", get_theme_stylebox("normal", "Button")); + action_menu->add_theme_style_override("hover", get_theme_stylebox("hover", "Button")); + action_menu->add_theme_style_override("pressed", get_theme_stylebox("pressed", "Button")); + action_menu->set_focus_mode(Control::FOCUS_ALL); menu_hb->add_child(action_menu); action_menu->get_popup()->add_item(TTR("Extract Materials"), ACTION_EXTRACT_MATERIALS); diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index 4cd8976e80..b28373e308 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -186,8 +186,8 @@ void InspectorDock::_menu_option_confirm(int p_option, bool p_confirmed) { } } - int history_id = editor_data->get_undo_redo()->get_history_for_object(current).id; - editor_data->get_undo_redo()->clear_history(true, history_id); + int history_id = EditorUndoRedoManager::get_singleton()->get_history_for_object(current).id; + EditorUndoRedoManager::get_singleton()->clear_history(true, history_id); EditorNode::get_singleton()->get_editor_plugins_over()->edit(nullptr); EditorNode::get_singleton()->get_editor_plugins_over()->edit(current); diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp index 6fa980a8e5..5503645930 100644 --- a/editor/localization_editor.cpp +++ b/editor/localization_editor.cpp @@ -33,7 +33,6 @@ #include "core/config/project_settings.h" #include "core/string/translation.h" #include "editor/editor_file_dialog.h" -#include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_translation_parser.h" #include "editor/editor_undo_redo_manager.h" @@ -81,7 +80,7 @@ void LocalizationEditor::_translation_add(const PackedStringArray &p_paths) { } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add %d Translations"), p_paths.size())); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", GLOBAL_GET("internationalization/locale/translations")); @@ -112,7 +111,7 @@ void LocalizationEditor::_translation_delete(Object *p_item, int p_column, int p translations.remove_at(idx); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Translation")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", GLOBAL_GET("internationalization/locale/translations")); @@ -143,7 +142,7 @@ void LocalizationEditor::_translation_res_add(const PackedStringArray &p_paths) } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Path(s)"), p_paths.size())); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", prev); @@ -175,7 +174,7 @@ void LocalizationEditor::_translation_res_option_add(const PackedStringArray &p_ } remaps[key] = r; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Remap(s)"), p_paths.size())); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps")); @@ -239,7 +238,7 @@ void LocalizationEditor::_translation_res_option_changed() { updating_translations = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Resource Remap Language")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps")); @@ -273,7 +272,7 @@ void LocalizationEditor::_translation_res_delete(Object *p_item, int p_column, i remaps.erase(key); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Resource Remap")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps")); @@ -313,7 +312,7 @@ void LocalizationEditor::_translation_res_option_delete(Object *p_item, int p_co r.remove_at(idx); remaps[key] = r; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Resource Remap Option")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps")); @@ -332,7 +331,7 @@ void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) { } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add %d file(s) for POT generation"), p_paths.size())); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", GLOBAL_GET("internationalization/locale/translations_pot_files")); @@ -359,7 +358,7 @@ void LocalizationEditor::_pot_delete(Object *p_item, int p_column, int p_button, pot_translations.remove_at(idx); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove file from POT generation")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations); undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", GLOBAL_GET("internationalization/locale/translations_pot_files")); diff --git a/editor/multi_node_edit.cpp b/editor/multi_node_edit.cpp index 2bf5e7979d..4f0db70681 100644 --- a/editor/multi_node_edit.cpp +++ b/editor/multi_node_edit.cpp @@ -57,7 +57,7 @@ bool MultiNodeEdit::_set_impl(const StringName &p_name, const Variant &p_value, node_path_target = es->get_node(p_value); } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(vformat(TTR("Set %s on %d nodes"), name, get_node_count()), UndoRedo::MERGE_ENDS); for (const NodePath &E : nodes) { diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index 8e94ae871b..7c23e19564 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -91,7 +91,7 @@ void AbstractPolygon2DEditor::_set_polygon(int p_idx, const Variant &p_polygon) void AbstractPolygon2DEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { Node2D *node = _get_node(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(node, "set_polygon", p_polygon); undo_redo->add_undo_method(node, "set_polygon", p_previous); } @@ -101,7 +101,7 @@ Vector2 AbstractPolygon2DEditor::_get_offset(int p_idx) const { } void AbstractPolygon2DEditor::_commit_action() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(canvas_item_editor, "update_viewport"); undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); undo_redo->commit_action(); @@ -205,7 +205,7 @@ void AbstractPolygon2DEditor::_wip_close() { if (_is_line()) { _set_polygon(0, wip); } else if (wip.size() >= (_is_line() ? 2 : 3)) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create Polygon")); _action_add_polygon(wip); if (_has_uv()) { @@ -257,7 +257,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) return false; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<InputEventMouseButton> mb = p_event; if (!_has_resource()) { @@ -619,7 +619,7 @@ void AbstractPolygon2DEditor::_bind_methods() { } void AbstractPolygon2DEditor::remove_point(const Vertex &p_vertex) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Vector<Vector2> vertices = _get_polygon(p_vertex.polygon); if (vertices.size() > (_is_line() ? 2 : 3)) { diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp index 85cca23e64..33aebe5883 100644 --- a/editor/plugins/animation_blend_space_1d_editor.cpp +++ b/editor/plugins/animation_blend_space_1d_editor.cpp @@ -157,7 +157,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Node Point")); undo_redo->add_do_method(blend_space.ptr(), "set_blend_point_position", selected_point, point); undo_redo->add_undo_method(blend_space.ptr(), "set_blend_point_position", selected_point, blend_space->get_blend_point_position(selected_point)); @@ -351,7 +351,7 @@ void AnimationNodeBlendSpace1DEditor::_config_changed(double) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change BlendSpace1D Config")); undo_redo->add_do_method(blend_space.ptr(), "set_max_space", max_value->get_value()); undo_redo->add_undo_method(blend_space.ptr(), "set_max_space", blend_space->get_max_space()); @@ -375,7 +375,7 @@ void AnimationNodeBlendSpace1DEditor::_labels_changed(String) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change BlendSpace1D Labels"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(blend_space.ptr(), "set_value_label", label_value->get_text()); undo_redo->add_undo_method(blend_space.ptr(), "set_value_label", blend_space->get_value_label()); @@ -431,7 +431,7 @@ void AnimationNodeBlendSpace1DEditor::_add_menu_type(int p_index) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node Point")); undo_redo->add_do_method(blend_space.ptr(), "add_blend_point", node, add_point_pos); undo_redo->add_undo_method(blend_space.ptr(), "remove_blend_point", blend_space->get_blend_point_count()); @@ -450,7 +450,7 @@ void AnimationNodeBlendSpace1DEditor::_add_animation_type(int p_index) { anim->set_animation(animations_to_add[p_index]); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Animation Point")); undo_redo->add_do_method(blend_space.ptr(), "add_blend_point", anim, add_point_pos); undo_redo->add_undo_method(blend_space.ptr(), "remove_blend_point", blend_space->get_blend_point_count()); @@ -524,7 +524,7 @@ void AnimationNodeBlendSpace1DEditor::_erase_selected() { if (selected_point != -1) { updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove BlendSpace1D Point")); undo_redo->add_do_method(blend_space.ptr(), "remove_blend_point", selected_point); undo_redo->add_undo_method(blend_space.ptr(), "add_blend_point", blend_space->get_blend_point_node(selected_point), blend_space->get_blend_point_position(selected_point), selected_point); @@ -544,7 +544,7 @@ void AnimationNodeBlendSpace1DEditor::_edit_point_pos(double) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move BlendSpace1D Node Point")); undo_redo->add_do_method(blend_space.ptr(), "set_blend_point_position", selected_point, edit_value->get_value()); undo_redo->add_undo_method(blend_space.ptr(), "set_blend_point_position", selected_point, blend_space->get_blend_point_position(selected_point)); diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp index c22f0a9f15..0daf934e17 100644 --- a/editor/plugins/animation_blend_space_2d_editor.cpp +++ b/editor/plugins/animation_blend_space_2d_editor.cpp @@ -74,7 +74,6 @@ void AnimationNodeBlendSpace2DEditor::edit(const Ref<AnimationNode> &p_node) { } tool_create->set_disabled(read_only); - interpolation->set_disabled(read_only); max_x_value->set_editable(!read_only); min_x_value->set_editable(!read_only); max_y_value->set_editable(!read_only); @@ -228,7 +227,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Triangle")); undo_redo->add_do_method(blend_space.ptr(), "add_triangle", making_triangle[0], making_triangle[1], making_triangle[2]); undo_redo->add_undo_method(blend_space.ptr(), "remove_triangle", blend_space->get_triangle_count()); @@ -254,7 +253,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven if (!read_only) { updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Node Point")); undo_redo->add_do_method(blend_space.ptr(), "set_blend_point_position", selected_point, point); undo_redo->add_undo_method(blend_space.ptr(), "set_blend_point_position", selected_point, blend_space->get_blend_point_position(selected_point)); @@ -362,7 +361,7 @@ void AnimationNodeBlendSpace2DEditor::_add_menu_type(int p_index) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node Point")); undo_redo->add_do_method(blend_space.ptr(), "add_blend_point", node, add_point_pos); undo_redo->add_undo_method(blend_space.ptr(), "remove_blend_point", blend_space->get_blend_point_count()); @@ -381,7 +380,7 @@ void AnimationNodeBlendSpace2DEditor::_add_animation_type(int p_index) { anim->set_animation(animations_to_add[p_index]); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Animation Point")); undo_redo->add_do_method(blend_space.ptr(), "add_blend_point", anim, add_point_pos); undo_redo->add_undo_method(blend_space.ptr(), "remove_blend_point", blend_space->get_blend_point_count()); @@ -676,7 +675,7 @@ void AnimationNodeBlendSpace2DEditor::_config_changed(double) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change BlendSpace2D Config")); undo_redo->add_do_method(blend_space.ptr(), "set_max_space", Vector2(max_x_value->get_value(), max_y_value->get_value())); undo_redo->add_undo_method(blend_space.ptr(), "set_max_space", blend_space->get_max_space()); @@ -702,7 +701,7 @@ void AnimationNodeBlendSpace2DEditor::_labels_changed(String) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change BlendSpace2D Labels"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(blend_space.ptr(), "set_x_label", label_x->get_text()); undo_redo->add_undo_method(blend_space.ptr(), "set_x_label", blend_space->get_x_label()); @@ -715,7 +714,7 @@ void AnimationNodeBlendSpace2DEditor::_labels_changed(String) { } void AnimationNodeBlendSpace2DEditor::_erase_selected() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (selected_point != -1) { updating = true; undo_redo->create_action(TTR("Remove BlendSpace2D Point")); @@ -778,7 +777,7 @@ void AnimationNodeBlendSpace2DEditor::_edit_point_pos(double) { return; } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Node Point")); undo_redo->add_do_method(blend_space.ptr(), "set_blend_point_position", selected_point, Vector2(edit_x->get_value(), edit_y->get_value())); undo_redo->add_undo_method(blend_space.ptr(), "set_blend_point_position", selected_point, blend_space->get_blend_point_position(selected_point)); @@ -856,7 +855,7 @@ void AnimationNodeBlendSpace2DEditor::_open_editor() { } void AnimationNodeBlendSpace2DEditor::_auto_triangles_toggled() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Toggle Auto Triangles")); undo_redo->add_do_method(blend_space.ptr(), "set_auto_triangles", auto_triangles->is_pressed()); undo_redo->add_undo_method(blend_space.ptr(), "set_auto_triangles", blend_space->get_auto_triangles()); diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp index f680993026..f5f9ec11b3 100644 --- a/editor/plugins/animation_blend_tree_editor_plugin.cpp +++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp @@ -103,7 +103,7 @@ void AnimationNodeBlendTreeEditor::_property_changed(const StringName &p_propert return; } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Parameter Changed:") + " " + String(p_property), UndoRedo::MERGE_ENDS); undo_redo->add_do_property(tree, p_property, p_value); undo_redo->add_undo_property(tree, p_property, tree->get(p_property)); @@ -187,7 +187,7 @@ void AnimationNodeBlendTreeEditor::update_graph() { String base_path = AnimationTreeEditor::get_singleton()->get_base_path() + String(E) + "/" + F.name; EditorProperty *prop = EditorInspector::instantiate_property_editor(tree, F.type, base_path, F.hint, F.hint_string, F.usage); if (prop) { - prop->set_read_only(read_only); + prop->set_read_only(read_only || (F.usage & PROPERTY_USAGE_READ_ONLY)); prop->set_object_and_property(tree, base_path); prop->update_property(); prop->set_name_split_ratio(0); @@ -363,7 +363,7 @@ void AnimationNodeBlendTreeEditor::_add_node(int p_idx) { name = base_name + " " + itos(base); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node to BlendTree")); undo_redo->add_do_method(blend_tree.ptr(), "add_node", name, anode, instance_pos / EDSCALE); undo_redo->add_undo_method(blend_tree.ptr(), "remove_node", name); @@ -432,7 +432,7 @@ void AnimationNodeBlendTreeEditor::_popup_hide() { void AnimationNodeBlendTreeEditor::_node_dragged(const Vector2 &p_from, const Vector2 &p_to, const StringName &p_which) { updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Node Moved")); undo_redo->add_do_method(blend_tree.ptr(), "set_node_position", p_which, p_to / EDSCALE); undo_redo->add_undo_method(blend_tree.ptr(), "set_node_position", p_which, p_from / EDSCALE); @@ -454,7 +454,7 @@ void AnimationNodeBlendTreeEditor::_connection_request(const String &p_from, int return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Nodes Connected")); undo_redo->add_do_method(blend_tree.ptr(), "connect_node", p_to, p_to_index, p_from); undo_redo->add_undo_method(blend_tree.ptr(), "disconnect_node", p_to, p_to_index); @@ -471,7 +471,7 @@ void AnimationNodeBlendTreeEditor::_disconnection_request(const String &p_from, graph->disconnect_node(p_from, p_from_index, p_to, p_to_index); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Nodes Disconnected")); undo_redo->add_do_method(blend_tree.ptr(), "disconnect_node", p_to, p_to_index); undo_redo->add_undo_method(blend_tree.ptr(), "connect_node", p_to, p_to_index, p_from); @@ -487,7 +487,7 @@ void AnimationNodeBlendTreeEditor::_anim_selected(int p_index, Array p_options, Ref<AnimationNodeAnimation> anim = blend_tree->get_node(p_node); ERR_FAIL_COND(!anim.is_valid()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Animation")); undo_redo->add_do_method(anim.ptr(), "set_animation", option); undo_redo->add_undo_method(anim.ptr(), "set_animation", anim->get_animation()); @@ -501,7 +501,7 @@ void AnimationNodeBlendTreeEditor::_delete_request(const String &p_which) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Node")); undo_redo->add_do_method(blend_tree.ptr(), "remove_node", p_which); undo_redo->add_undo_method(blend_tree.ptr(), "add_node", p_which, blend_tree->get_node(p_which), blend_tree.ptr()->get_node_position(p_which)); @@ -546,7 +546,7 @@ void AnimationNodeBlendTreeEditor::_delete_nodes_request(const TypedArray<String return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Node(s)")); for (const StringName &F : to_erase) { @@ -580,7 +580,7 @@ void AnimationNodeBlendTreeEditor::_open_in_editor(const String &p_which) { void AnimationNodeBlendTreeEditor::_filter_toggled() { updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Toggle Filter On/Off")); undo_redo->add_do_method(_filter_edit.ptr(), "set_filter_enabled", filter_enabled->is_pressed()); undo_redo->add_undo_method(_filter_edit.ptr(), "set_filter_enabled", _filter_edit->is_filter_enabled()); @@ -598,7 +598,7 @@ void AnimationNodeBlendTreeEditor::_filter_edited() { bool filtered = edited->is_checked(0); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Filter")); undo_redo->add_do_method(_filter_edit.ptr(), "set_filter_path", edited_path, filtered); undo_redo->add_undo_method(_filter_edit.ptr(), "set_filter_path", edited_path, _filter_edit->is_path_filtered(edited_path)); @@ -981,7 +981,7 @@ void AnimationNodeBlendTreeEditor::_node_renamed(const String &p_text, Ref<Anima String base_path = AnimationTreeEditor::get_singleton()->get_base_path(); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Node Renamed")); undo_redo->add_do_method(blend_tree.ptr(), "rename_node", prev_name, name); undo_redo->add_undo_method(blend_tree.ptr(), "rename_node", name, prev_name); diff --git a/editor/plugins/animation_library_editor.cpp b/editor/plugins/animation_library_editor.cpp index 9decbef51b..bf7e419fe4 100644 --- a/editor/plugins/animation_library_editor.cpp +++ b/editor/plugins/animation_library_editor.cpp @@ -94,7 +94,7 @@ void AnimationLibraryEditor::_add_library_validate(const String &p_name) { void AnimationLibraryEditor::_add_library_confirm() { if (adding_animation) { String anim_name = add_library_name->get_text(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<AnimationLibrary> al = player->call("get_animation_library", adding_animation_to_library); ERR_FAIL_COND(!al.is_valid()); @@ -111,7 +111,7 @@ void AnimationLibraryEditor::_add_library_confirm() { } else { String lib_name = add_library_name->get_text(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<AnimationLibrary> al; al.instantiate(); @@ -211,7 +211,7 @@ void AnimationLibraryEditor::_file_popup_selected(int p_id) { ald->add_animation(animation_name, animation); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Make Animation Library Unique: %s"), lib_name)); undo_redo->add_do_method(player, "remove_animation_library", lib_name); undo_redo->add_do_method(player, "add_animation_library", lib_name, ald); @@ -280,7 +280,7 @@ void AnimationLibraryEditor::_file_popup_selected(int p_id) { Ref<Animation> animd = anim->duplicate(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Make Animation Unique: %s"), anim_name)); undo_redo->add_do_method(al.ptr(), "remove_animation", anim_name); undo_redo->add_do_method(al.ptr(), "add_animation", anim_name, animd); @@ -328,7 +328,7 @@ void AnimationLibraryEditor::_load_file(String p_path) { name = p_path.get_file().get_basename() + " " + itos(attempt); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add Animation Library: %s"), name)); undo_redo->add_do_method(player, "add_animation_library", name, al); @@ -366,7 +366,7 @@ void AnimationLibraryEditor::_load_file(String p_path) { name = p_path.get_file().get_basename() + " " + itos(attempt); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Load Animation into Library: %s"), name)); undo_redo->add_do_method(al.ptr(), "add_animation", name, anim); @@ -382,7 +382,7 @@ void AnimationLibraryEditor::_load_file(String p_path) { EditorNode::get_singleton()->save_resource_in_path(al, p_path); if (al->get_path() != prev_path) { // Save successful. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Save Animation library to File: %s"), file_dialog_library)); undo_redo->add_do_method(al.ptr(), "set_path", al->get_path()); @@ -403,7 +403,7 @@ void AnimationLibraryEditor::_load_file(String p_path) { String prev_path = anim->get_path(); EditorNode::get_singleton()->save_resource_in_path(anim, p_path); if (anim->get_path() != prev_path) { // Save successful. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Save Animation to File: %s"), file_dialog_animation)); undo_redo->add_do_method(anim.ptr(), "set_path", anim->get_path()); @@ -421,7 +421,7 @@ void AnimationLibraryEditor::_item_renamed() { String text = ti->get_text(0); String old_text = ti->get_metadata(0); bool restore_text = false; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (String(text).contains("/") || String(text).contains(":") || String(text).contains(",") || String(text).contains("[")) { restore_text = true; @@ -535,7 +535,7 @@ void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int name = base_name + " (" + itos(attempt) + ")"; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add Animation to Library: %s"), name)); undo_redo->add_do_method(al.ptr(), "add_animation", name, anim); @@ -554,14 +554,14 @@ void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int file_popup->add_separator(); file_popup->add_item(TTR("Open in Inspector"), FILE_MENU_EDIT_LIBRARY); Rect2 pos = tree->get_item_rect(p_item, 1, 0); - Vector2 popup_pos = tree->get_screen_position() + pos.position + Vector2(0, pos.size.height); + Vector2 popup_pos = tree->get_screen_transform().xform(pos.position + Vector2(0, pos.size.height)); file_popup->popup(Rect2(popup_pos, Size2())); file_dialog_animation = StringName(); file_dialog_library = lib_name; } break; case LIB_BUTTON_DELETE: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Remove Animation Library: %s"), lib_name)); undo_redo->add_do_method(player, "remove_animation_library", lib_name); undo_redo->add_undo_method(player, "add_animation_library", lib_name, al); @@ -594,7 +594,7 @@ void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int file_popup->add_separator(); file_popup->add_item(TTR("Open in Inspector"), FILE_MENU_EDIT_ANIMATION); Rect2 pos = tree->get_item_rect(p_item, 1, 0); - Vector2 popup_pos = tree->get_screen_position() + pos.position + Vector2(0, pos.size.height); + Vector2 popup_pos = tree->get_screen_transform().xform(pos.position + Vector2(0, pos.size.height)); file_popup->popup(Rect2(popup_pos, Size2())); file_dialog_animation = anim_name; @@ -602,7 +602,7 @@ void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int } break; case ANIM_BUTTON_DELETE: { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Remove Animation from Library: %s"), anim_name)); undo_redo->add_do_method(al.ptr(), "remove_animation", anim_name); undo_redo->add_undo_method(al.ptr(), "add_animation", anim_name, anim); diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index 10f2ce25d9..06241d07cf 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -94,6 +94,7 @@ void AnimationPlayerEditor::_notification(int p_what) { // Need the last frame after it stopped. frame->set_value(player->get_current_animation_position()); track_editor->set_anim_pos(player->get_current_animation_position()); + stop->set_icon(stop_icon); } last_active = player->is_playing(); @@ -119,8 +120,15 @@ void AnimationPlayerEditor::_notification(int p_what) { case NOTIFICATION_TRANSLATION_CHANGED: case NOTIFICATION_LAYOUT_DIRECTION_CHANGED: case NOTIFICATION_THEME_CHANGED: { - autoplay->set_icon(get_theme_icon(SNAME("AutoPlay"), SNAME("EditorIcons"))); + stop_icon = get_theme_icon(SNAME("Stop"), SNAME("EditorIcons")); + pause_icon = get_theme_icon(SNAME("Pause"), SNAME("EditorIcons")); + if (player && player->is_playing()) { + stop->set_icon(pause_icon); + } else { + stop->set_icon(stop_icon); + } + autoplay->set_icon(get_theme_icon(SNAME("AutoPlay"), SNAME("EditorIcons"))); play->set_icon(get_theme_icon(SNAME("PlayStart"), SNAME("EditorIcons"))); play_from->set_icon(get_theme_icon(SNAME("Play"), SNAME("EditorIcons"))); play_bw->set_icon(get_theme_icon(SNAME("PlayStartBackwards"), SNAME("EditorIcons"))); @@ -137,7 +145,6 @@ void AnimationPlayerEditor::_notification(int p_what) { autoplay_reset_img->blit_rect(reset_img, Rect2i(Point2i(), icon_size), Point2i(icon_size.x, 0)); autoplay_reset_icon = ImageTexture::create_from_image(autoplay_reset_img); } - stop->set_icon(get_theme_icon(SNAME("Stop"), SNAME("EditorIcons"))); onion_toggle->set_icon(get_theme_icon(SNAME("Onion"), SNAME("EditorIcons"))); onion_skinning->set_icon(get_theme_icon(SNAME("GuiTabMenuHl"), SNAME("EditorIcons"))); @@ -170,7 +177,7 @@ void AnimationPlayerEditor::_autoplay_pressed() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); String current = animation->get_item_text(animation->get_selected()); if (player->get_autoplay() == current) { //unset @@ -204,7 +211,7 @@ void AnimationPlayerEditor::_play_pressed() { } //unstop - stop->set_pressed(false); + stop->set_icon(pause_icon); } void AnimationPlayerEditor::_play_from_pressed() { @@ -221,7 +228,7 @@ void AnimationPlayerEditor::_play_from_pressed() { } //unstop - stop->set_pressed(false); + stop->set_icon(pause_icon); } String AnimationPlayerEditor::_get_current() const { @@ -242,7 +249,7 @@ void AnimationPlayerEditor::_play_bw_pressed() { } //unstop - stop->set_pressed(false); + stop->set_icon(pause_icon); } void AnimationPlayerEditor::_play_bw_from_pressed() { @@ -259,7 +266,7 @@ void AnimationPlayerEditor::_play_bw_from_pressed() { } //unstop - stop->set_pressed(false); + stop->set_icon(pause_icon); } void AnimationPlayerEditor::_stop_pressed() { @@ -267,9 +274,16 @@ void AnimationPlayerEditor::_stop_pressed() { return; } - player->pause(); - play->set_pressed(false); - stop->set_pressed(true); + if (player->is_playing()) { + player->pause(); + } else { + String current = _get_current(); + player->stop(); + player->set_assigned_animation(current); + frame->set_value(0); + track_editor->set_anim_pos(0); + } + stop->set_icon(stop_icon); } void AnimationPlayerEditor::_animation_selected(int p_which) { @@ -310,7 +324,7 @@ void AnimationPlayerEditor::_animation_selected(int p_which) { void AnimationPlayerEditor::_animation_new() { int count = 1; - String base = TTR("New Anim"); + String base = "new_animation"; String current_library_name = ""; if (animation->has_selectable_items()) { String current_animation_name = animation->get_item_text(animation->get_selected()); @@ -323,7 +337,7 @@ void AnimationPlayerEditor::_animation_new() { while (true) { String attempt = base; if (count > 1) { - attempt += " (" + itos(count) + ")"; + attempt += vformat("_%d", count); } if (player->has_animation(attempt_prefix + attempt)) { count++; @@ -388,7 +402,7 @@ void AnimationPlayerEditor::_animation_remove_confirmed() { if (current.contains("/")) { current = current.get_slice("/", 1); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Animation")); if (player->get_autoplay() == current) { undo_redo->add_do_method(player, "set_autoplay", ""); @@ -464,7 +478,7 @@ void AnimationPlayerEditor::_animation_name_edited() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (name_dialog_op) { case TOOL_RENAME_ANIM: { String current = animation->get_item_text(animation->get_selected()); @@ -599,7 +613,7 @@ void AnimationPlayerEditor::_blend_editor_next_changed(const int p_idx) { String current = animation->get_item_text(animation->get_selected()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Blend Next Changed")); undo_redo->add_do_method(player, "animation_set_next", current, blend_editor.next->get_item_text(p_idx)); undo_redo->add_undo_method(player, "animation_set_next", current, player->animation_get_next(current)); @@ -686,7 +700,7 @@ void AnimationPlayerEditor::_blend_edited() { float blend_time = selected->get_range(1); float prev_blend_time = player->get_blend_time(current, to); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Blend Time")); undo_redo->add_do_method(player, "set_blend_time", current, to, blend_time); undo_redo->add_undo_method(player, "set_blend_time", current, to, prev_blend_time); @@ -798,12 +812,9 @@ void AnimationPlayerEditor::_update_animation() { updating = true; if (player->is_playing()) { - play->set_pressed(true); - stop->set_pressed(false); - + stop->set_icon(pause_icon); } else { - play->set_pressed(false); - stop->set_pressed(true); + stop->set_icon(stop_icon); } scale->set_text(String::num(player->get_speed_scale(), 2)); @@ -1663,7 +1674,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug stop = memnew(Button); stop->set_flat(true); - stop->set_toggle_mode(true); hb->add_child(stop); stop->set_tooltip_text(TTR("Stop animation playback. (S)")); diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h index 6c690c812c..327200506f 100644 --- a/editor/plugins/animation_player_editor_plugin.h +++ b/editor/plugins/animation_player_editor_plugin.h @@ -101,6 +101,8 @@ class AnimationPlayerEditor : public VBoxContainer { OptionButton *library = nullptr; Label *name_title = nullptr; + Ref<Texture2D> stop_icon; + Ref<Texture2D> pause_icon; Ref<Texture2D> autoplay_icon; Ref<Texture2D> reset_icon; Ref<ImageTexture> autoplay_reset_icon; diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index 0de5064a00..a675495429 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -246,7 +246,7 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv Ref<AnimationNode> an = state_machine->get_node(selected_node); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Node")); for (int i = 0; i < node_rects.size(); i++) { @@ -543,7 +543,7 @@ void AnimationNodeStateMachineEditor::_group_selected_nodes() { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action("Group"); // Move selected nodes to the new state machine @@ -658,7 +658,7 @@ void AnimationNodeStateMachineEditor::_ungroup_selected_nodes() { Vector<TransitionUR> transitions_ur; updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action("Ungroup"); // Move all child nodes to current state machine @@ -935,7 +935,7 @@ void AnimationNodeStateMachineEditor::_stop_connecting() { void AnimationNodeStateMachineEditor::_delete_selected() { TreeItem *item = delete_tree->get_next_selected(nullptr); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); while (item) { if (!updating) { updating = true; @@ -963,7 +963,7 @@ void AnimationNodeStateMachineEditor::_delete_all() { selected_multi_transition = TransitionLine(); updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action("Transition(s) Removed"); _erase_selected(true); for (int i = 0; i < multi_transitions.size(); i++) { @@ -1043,7 +1043,7 @@ void AnimationNodeStateMachineEditor::_add_menu_type(int p_index) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node and Transition")); undo_redo->add_do_method(state_machine.ptr(), "add_node", name, node, add_node_pos); undo_redo->add_undo_method(state_machine.ptr(), "remove_node", name); @@ -1070,7 +1070,7 @@ void AnimationNodeStateMachineEditor::_add_animation_type(int p_index) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node and Transition")); undo_redo->add_do_method(state_machine.ptr(), "add_node", name, anim, add_node_pos); undo_redo->add_undo_method(state_machine.ptr(), "remove_node", name); @@ -1100,7 +1100,7 @@ void AnimationNodeStateMachineEditor::_add_transition(const bool p_nested_action tr->set_advance_mode(auto_advance->is_pressed() ? AnimationNodeStateMachineTransition::AdvanceMode::ADVANCE_MODE_AUTO : AnimationNodeStateMachineTransition::AdvanceMode::ADVANCE_MODE_ENABLED); tr->set_switch_mode(AnimationNodeStateMachineTransition::SwitchMode(switch_mode->get_selected())); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (!p_nested_action) { updating = true; undo_redo->create_action(TTR("Add Transition")); @@ -1778,7 +1778,7 @@ void AnimationNodeStateMachineEditor::_name_edited(const String &p_text) { } updating = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Node Renamed")); undo_redo->add_do_method(state_machine.ptr(), "rename_node", prev_name, name); undo_redo->add_undo_method(state_machine.ptr(), "rename_node", name, prev_name); @@ -1813,7 +1813,7 @@ void AnimationNodeStateMachineEditor::_erase_selected(const bool p_nested_action if (!p_nested_action) { updating = true; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Node Removed")); for (int i = 0; i < node_rects.size(); i++) { @@ -1882,7 +1882,7 @@ void AnimationNodeStateMachineEditor::_erase_selected(const bool p_nested_action if (!p_nested_action) { updating = true; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Transition Removed")); undo_redo->add_do_method(state_machine.ptr(), "remove_transition", selected_transition_from, selected_transition_to); undo_redo->add_undo_method(state_machine.ptr(), "add_transition", selected_transition_from, selected_transition_to, tr); diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 9f2cfc8d9c..eab5eb0404 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -705,6 +705,12 @@ const char *EditorAssetLibrary::support_key[SUPPORT_MAX] = { "testing", }; +const char *EditorAssetLibrary::support_text[SUPPORT_MAX] = { + TTRC("Official"), + TTRC("Community"), + TTRC("Testing"), +}; + void EditorAssetLibrary::_select_author(int p_id) { // Open author window. } @@ -1242,15 +1248,28 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const library_vb->add_child(asset_bottom_page); if (result.is_empty()) { + String support_list; + for (int i = 0; i < SUPPORT_MAX; i++) { + if (support->get_popup()->is_item_checked(i)) { + if (!support_list.is_empty()) { + support_list += ", "; + } + support_list += TTRGET(support_text[i]); + } + } + if (support_list.is_empty()) { + support_list = "-"; + } + if (!filter->get_text().is_empty()) { library_info->set_text( - vformat(TTR("No results for \"%s\"."), filter->get_text())); + vformat(TTR("No results for \"%s\" for support level(s): %s."), filter->get_text(), support_list)); } else { // No results, even though the user didn't search for anything specific. // This is typically because the version number changed recently // and no assets compatible with the new version have been published yet. library_info->set_text( - vformat(TTR("No results compatible with %s %s."), String(VERSION_SHORT_NAME).capitalize(), String(VERSION_BRANCH))); + vformat(TTR("No results compatible with %s %s for support level(s): %s.\nCheck the enabled support levels using the 'Support' button in the top-right corner."), String(VERSION_SHORT_NAME).capitalize(), String(VERSION_BRANCH), support_list)); } library_info->show(); } else { @@ -1510,9 +1529,9 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { search_hb2->add_child(support); support->set_text(TTR("Support")); support->get_popup()->set_hide_on_checkable_item_selection(false); - support->get_popup()->add_check_item(TTR("Official"), SUPPORT_OFFICIAL); - support->get_popup()->add_check_item(TTR("Community"), SUPPORT_COMMUNITY); - support->get_popup()->add_check_item(TTR("Testing"), SUPPORT_TESTING); + support->get_popup()->add_check_item(TTRGET(support_text[SUPPORT_OFFICIAL]), SUPPORT_OFFICIAL); + support->get_popup()->add_check_item(TTRGET(support_text[SUPPORT_COMMUNITY]), SUPPORT_COMMUNITY); + support->get_popup()->add_check_item(TTRGET(support_text[SUPPORT_TESTING]), SUPPORT_TESTING); support->get_popup()->set_item_checked(SUPPORT_OFFICIAL, true); support->get_popup()->set_item_checked(SUPPORT_COMMUNITY, true); support->get_popup()->connect("id_pressed", callable_mp(this, &EditorAssetLibrary::_support_toggled)); diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index 0667f474da..8c74da0e2a 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -234,6 +234,7 @@ class EditorAssetLibrary : public PanelContainer { static const char *sort_key[SORT_MAX]; static const char *sort_text[SORT_MAX]; static const char *support_key[SUPPORT_MAX]; + static const char *support_text[SUPPORT_MAX]; ///MainListing diff --git a/editor/plugins/audio_stream_randomizer_editor_plugin.cpp b/editor/plugins/audio_stream_randomizer_editor_plugin.cpp index acd3271f97..bb3b8a124e 100644 --- a/editor/plugins/audio_stream_randomizer_editor_plugin.cpp +++ b/editor/plugins/audio_stream_randomizer_editor_plugin.cpp @@ -44,8 +44,8 @@ void AudioStreamRandomizerEditorPlugin::make_visible(bool p_visible) { } void AudioStreamRandomizerEditorPlugin::_move_stream_array_element(Object *p_undo_redo, Object *p_edited, String p_array_prefix, int p_from_index, int p_to_pos) { - Ref<EditorUndoRedoManager> undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(undo_redo_man.is_null()); + EditorUndoRedoManager *undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo_man); AudioStreamRandomizer *randomizer = Object::cast_to<AudioStreamRandomizer>(p_edited); if (!randomizer) { diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index bd7b7ff1cb..4c14755b03 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -868,7 +868,7 @@ void CanvasItemEditor::_commit_canvas_item_state(List<CanvasItem *> p_canvas_ite return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(action_name); for (CanvasItem *ci : modified_canvas_items) { CanvasItemEditorSelectedItem *se = editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(ci); @@ -933,7 +933,7 @@ void CanvasItemEditor::_add_node_pressed(int p_result) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Node(s) to Position")); for (Node *node : nodes_to_move) { CanvasItem *ci = Object::cast_to<CanvasItem>(node); @@ -1022,7 +1022,7 @@ void CanvasItemEditor::_on_grid_menu_id_pressed(int p_id) { } bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_event) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<InputEventMouseButton> b = p_event; Ref<InputEventMouseMotion> m = p_event; @@ -1850,7 +1850,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { // Drag resize handles if (drag_type == DRAG_NONE) { - if (b.is_valid() && b->get_button_index() == MouseButton::LEFT && b->is_pressed() && ((b->is_alt_pressed() && b->is_ctrl_pressed()) || tool == TOOL_SCALE)) { + if (b.is_valid() && b->get_button_index() == MouseButton::LEFT && b->is_pressed() && ((b->is_alt_pressed() && b->is_command_or_control_pressed()) || tool == TOOL_SCALE)) { List<CanvasItem *> selection = _get_edited_canvas_items(); if (selection.size() == 1) { CanvasItem *ci = selection[0]; @@ -1897,7 +1897,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { Transform2D simple_xform = (viewport->get_transform() * unscaled_transform).affine_inverse() * transform; bool uniform = m->is_shift_pressed(); - bool is_ctrl = Input::get_singleton()->is_key_pressed(Key::CTRL); + bool is_ctrl = m->is_ctrl_pressed(); Point2 drag_from_local = simple_xform.xform(drag_from); Point2 drag_to_local = simple_xform.xform(drag_to); @@ -1989,7 +1989,7 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) { if (drag_type == DRAG_NONE) { //Start moving the nodes if (b.is_valid() && b->get_button_index() == MouseButton::LEFT && b->is_pressed()) { - if ((b->is_alt_pressed() && !b->is_ctrl_pressed()) || tool == TOOL_MOVE) { + if ((b->is_alt_pressed() && !b->is_command_or_control_pressed()) || tool == TOOL_MOVE) { List<CanvasItem *> selection = _get_edited_canvas_items(); drag_selection.clear(); @@ -3418,7 +3418,7 @@ void CanvasItemEditor::_draw_selection() { } // Draw the move handles - bool is_ctrl = Input::get_singleton()->is_key_pressed(Key::CTRL); + bool is_ctrl = Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL); bool is_alt = Input::get_singleton()->is_key_pressed(Key::ALT); if (tool == TOOL_MOVE && show_transformation_gizmos) { if (_is_node_movable(ci)) { @@ -4263,7 +4263,7 @@ void CanvasItemEditor::_update_override_camera_button(bool p_game_running) { } void CanvasItemEditor::_popup_callback(int p_op) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); last_option = MenuOption(p_op); switch (p_op) { case SHOW_ORIGIN: { @@ -5570,7 +5570,7 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String & String name = path.get_file().get_basename(); child->set_name(Node::adjust_name_casing(name)); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<Texture2D> texture = ResourceCache::get_ref(path); if (parent) { @@ -5649,7 +5649,7 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path)); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(parent, "add_child", instantiated_scene, true); undo_redo->add_do_method(instantiated_scene, "set_owner", edited_scene); undo_redo->add_do_reference(instantiated_scene); @@ -5690,7 +5690,7 @@ void CanvasItemEditorViewport::_perform_drop_data() { Vector<String> error_files; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create Node")); for (int i = 0; i < selected_files.size(); i++) { diff --git a/editor/plugins/cast_2d_editor_plugin.cpp b/editor/plugins/cast_2d_editor_plugin.cpp index 078198e64b..723082c293 100644 --- a/editor/plugins/cast_2d_editor_plugin.cpp +++ b/editor/plugins/cast_2d_editor_plugin.cpp @@ -77,7 +77,7 @@ bool Cast2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_event) { return false; } } else if (pressed) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set target_position")); undo_redo->add_do_property(node, "target_position", target_position); undo_redo->add_do_method(canvas_item_editor, "update_viewport"); diff --git a/editor/plugins/collision_shape_2d_editor_plugin.cpp b/editor/plugins/collision_shape_2d_editor_plugin.cpp index bed4658976..c2d5885e43 100644 --- a/editor/plugins/collision_shape_2d_editor_plugin.cpp +++ b/editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -219,7 +219,7 @@ void CollisionShape2DEditor::set_handle(int idx, Point2 &p_point) { } void CollisionShape2DEditor::commit_handle(int idx, Variant &p_org) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Handle")); switch (shape_type) { diff --git a/editor/plugins/control_editor_plugin.cpp b/editor/plugins/control_editor_plugin.cpp index ad3e861b79..470b90aa7f 100644 --- a/editor/plugins/control_editor_plugin.cpp +++ b/editor/plugins/control_editor_plugin.cpp @@ -721,7 +721,7 @@ void ControlEditorToolbar::_anchors_preset_selected(int p_preset) { LayoutPreset preset = (LayoutPreset)p_preset; List<Node *> selection = editor_selection->get_selected_node_list(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Anchors, Offsets, Grow Direction")); for (Node *E : selection) { @@ -742,7 +742,7 @@ void ControlEditorToolbar::_anchors_preset_selected(int p_preset) { void ControlEditorToolbar::_anchors_to_current_ratio() { List<Node *> selection = editor_selection->get_selected_node_list(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Anchors, Offsets (Keep Ratio)")); for (Node *E : selection) { @@ -793,7 +793,7 @@ void ControlEditorToolbar::_anchor_mode_toggled(bool p_status) { void ControlEditorToolbar::_container_flags_selected(int p_flags, bool p_vertical) { List<Node *> selection = editor_selection->get_selected_node_list(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (p_vertical) { undo_redo->create_action(TTR("Change Vertical Size Flags")); } else { diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp index b0bcda946e..20710bac19 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -140,7 +140,7 @@ void CurveEditor::gui_input(const Ref<InputEvent> &p_event) { if (!mb.is_pressed() && _dragging && mb.get_button_index() == MouseButton::LEFT) { _dragging = false; if (_has_undo_data) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(_selected_tangent == TANGENT_NONE ? TTR("Modify Curve Point") : TTR("Modify Curve Tangent")); undo_redo->add_do_method(*_curve_ref, "_set_data", _curve_ref->get_data()); undo_redo->add_undo_method(*_curve_ref, "_set_data", _undo_data); @@ -301,7 +301,7 @@ void CurveEditor::on_preset_item_selected(int preset_id) { break; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Load Curve Preset")); undo_redo->add_do_method(&curve, "_set_data", curve.get_data()); undo_redo->add_undo_method(&curve, "_set_data", previous_data); @@ -433,7 +433,7 @@ CurveEditor::TangentIndex CurveEditor::get_tangent_at(Vector2 pos) const { void CurveEditor::add_point(Vector2 pos) { ERR_FAIL_COND(_curve_ref.is_null()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Curve Point")); Vector2 point_pos = get_world_pos(pos); @@ -455,7 +455,7 @@ void CurveEditor::add_point(Vector2 pos) { void CurveEditor::remove_point(int index) { ERR_FAIL_COND(_curve_ref.is_null()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Curve Point")); Curve::Point p = _curve_ref->get_point(index); @@ -477,7 +477,7 @@ void CurveEditor::remove_point(int index) { void CurveEditor::toggle_linear(TangentIndex tangent) { ERR_FAIL_COND(_curve_ref.is_null()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Toggle Curve Linear Tangent")); if (tangent == TANGENT_NONE) { @@ -621,8 +621,8 @@ struct CanvasItemPlotCurve { color2(p_color2) {} void operator()(Vector2 pos0, Vector2 pos1, bool in_definition) { - // FIXME: Using a line width greater than 1 breaks curve rendering - ci.draw_line(pos0, pos1, in_definition ? color1 : color2, 1); + // FIXME: Using a quad line breaks curve rendering. + ci.draw_line(pos0, pos1, in_definition ? color1 : color2, -1); } }; diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp index 1a51224198..04b2a9337e 100644 --- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp @@ -113,7 +113,7 @@ void GPUParticles2DEditorPlugin::_menu_callback(int p_idx) { cpu_particles->set_process_mode(particles->get_process_mode()); cpu_particles->set_z_index(particles->get_z_index()); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Convert to CPUParticles2D")); ur->add_do_method(SceneTreeDock::get_singleton(), "replace_node", particles, cpu_particles, true, false); ur->add_do_reference(cpu_particles); @@ -161,7 +161,7 @@ void GPUParticles2DEditorPlugin::_generate_visibility_rect() { particles->set_emitting(false); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Generate Visibility Rect")); undo_redo->add_do_method(particles, "set_visibility_rect", rect); undo_redo->add_undo_method(particles, "set_visibility_rect", particles->get_visibility_rect()); diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp index 19ac553708..65f66c2661 100644 --- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp @@ -274,7 +274,7 @@ void GPUParticles3DEditor::_menu_option(int p_option) { cpu_particles->set_visible(node->is_visible()); cpu_particles->set_process_mode(node->get_process_mode()); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Convert to CPUParticles3D")); ur->add_do_method(SceneTreeDock::get_singleton(), "replace_node", node, cpu_particles, true, false); ur->add_do_reference(cpu_particles); @@ -324,7 +324,7 @@ void GPUParticles3DEditor::_generate_aabb() { node->set_emitting(false); } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Generate Visibility AABB")); ur->add_do_method(node, "set_visibility_aabb", rect); ur->add_undo_method(node, "set_visibility_aabb", node->get_visibility_aabb()); diff --git a/editor/plugins/gradient_editor.cpp b/editor/plugins/gradient_editor.cpp index 68aafd6fa8..3676c2c222 100644 --- a/editor/plugins/gradient_editor.cpp +++ b/editor/plugins/gradient_editor.cpp @@ -99,7 +99,7 @@ void GradientEditor::_gradient_changed() { void GradientEditor::_ramp_changed() { editing = true; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Gradient Edited"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(gradient.ptr(), "set_offsets", get_offsets()); undo_redo->add_do_method(gradient.ptr(), "set_colors", get_colors()); diff --git a/editor/plugins/gradient_texture_2d_editor_plugin.cpp b/editor/plugins/gradient_texture_2d_editor_plugin.cpp index e03353a67b..7bd159a5b8 100644 --- a/editor/plugins/gradient_texture_2d_editor_plugin.cpp +++ b/editor/plugins/gradient_texture_2d_editor_plugin.cpp @@ -55,7 +55,7 @@ void GradientTexture2DEditorRect::_update_fill_position() { String property_name = handle == HANDLE_FILL_FROM ? "fill_from" : "fill_to"; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Set %s"), property_name), UndoRedo::MERGE_ENDS); undo_redo->add_do_property(texture.ptr(), property_name, percent); undo_redo->add_undo_property(texture.ptr(), property_name, handle == HANDLE_FILL_FROM ? texture->get_fill_from() : texture->get_fill_to()); @@ -188,7 +188,7 @@ GradientTexture2DEditorRect::GradientTexture2DEditorRect() { /////////////////////// void GradientTexture2DEditor::_reverse_button_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Swap GradientTexture2D Fill Points")); undo_redo->add_do_property(texture.ptr(), "fill_from", texture->get_fill_to()); undo_redo->add_do_property(texture.ptr(), "fill_to", texture->get_fill_from()); diff --git a/editor/plugins/light_occluder_2d_editor_plugin.cpp b/editor/plugins/light_occluder_2d_editor_plugin.cpp index bee1206b90..429add4540 100644 --- a/editor/plugins/light_occluder_2d_editor_plugin.cpp +++ b/editor/plugins/light_occluder_2d_editor_plugin.cpp @@ -84,7 +84,7 @@ void LightOccluder2DEditor::_set_polygon(int p_idx, const Variant &p_polygon) co void LightOccluder2DEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { Ref<OccluderPolygon2D> occluder = _ensure_occluder(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(occluder.ptr(), "set_polygon", p_polygon); undo_redo->add_undo_method(occluder.ptr(), "set_polygon", p_previous); } @@ -98,7 +98,7 @@ void LightOccluder2DEditor::_create_resource() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create Occluder Polygon")); undo_redo->add_do_method(node, "set_occluder_polygon", Ref<OccluderPolygon2D>(memnew(OccluderPolygon2D))); undo_redo->add_undo_method(node, "set_occluder_polygon", Variant(Ref<RefCounted>())); diff --git a/editor/plugins/line_2d_editor_plugin.cpp b/editor/plugins/line_2d_editor_plugin.cpp index f2c487dd14..0185617c36 100644 --- a/editor/plugins/line_2d_editor_plugin.cpp +++ b/editor/plugins/line_2d_editor_plugin.cpp @@ -55,7 +55,7 @@ void Line2DEditor::_set_polygon(int p_idx, const Variant &p_polygon) const { void Line2DEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { Node2D *_node = _get_node(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(_node, "set_points", p_polygon); undo_redo->add_undo_method(_node, "set_points", p_previous); } diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp index bb2bac7c04..36c143ca8d 100644 --- a/editor/plugins/material_editor_plugin.cpp +++ b/editor/plugins/material_editor_plugin.cpp @@ -291,8 +291,8 @@ void EditorInspectorPluginMaterial::parse_begin(Object *p_object) { } void EditorInspectorPluginMaterial::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value) { - Ref<EditorUndoRedoManager> undo_redo = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(!undo_redo.is_valid()); + EditorUndoRedoManager *undo_redo = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo); // For BaseMaterial3D, if a roughness or metallic textures is being assigned to an empty slot, // set the respective metallic or roughness factor to 1.0 as a convenience feature diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp index 6cc551d367..e8976667dd 100644 --- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp +++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp @@ -65,7 +65,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { switch (p_option) { case MENU_OPTION_CREATE_STATIC_TRIMESH_BODY: { EditorSelection *editor_selection = EditorNode::get_singleton()->get_editor_selection(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); List<Node *> selection = editor_selection->get_selected_node_list(); @@ -152,7 +152,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { Node *owner = get_tree()->get_edited_scene_root(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Trimesh Static Shape")); @@ -182,7 +182,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { err_dialog->popup_centered(); return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (simplify) { ur->create_action(TTR("Create Simplified Convex Shape")); @@ -222,7 +222,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { err_dialog->popup_centered(); return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Multiple Convex Shapes")); @@ -259,7 +259,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { Node *owner = get_tree()->get_edited_scene_root(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Navigation Mesh")); ur->add_do_method(node, "add_child", nmi, true); @@ -275,7 +275,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { outline_dialog->popup_centered(Vector2(200, 90)); } break; case MENU_OPTION_CREATE_DEBUG_TANGENTS: { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Debug Tangents")); MeshInstance3D *tangents = node->create_debug_tangents_node(); @@ -334,7 +334,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) { return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Unwrap UV2")); ur->add_do_method(node, "set_mesh", unwrapped_mesh); @@ -460,7 +460,7 @@ void MeshInstance3DEditor::_debug_uv_draw() { debug_uv->draw_rect(Rect2(Vector2(), debug_uv->get_size()), get_theme_color(SNAME("dark_color_3"), SNAME("Editor"))); debug_uv->draw_set_transform(Vector2(), 0, debug_uv->get_size()); // Use a translucent color to allow overlapping triangles to be visible. - debug_uv->draw_multiline(uv_lines, get_theme_color(SNAME("mono_color"), SNAME("Editor")) * Color(1, 1, 1, 0.5), Math::round(EDSCALE)); + debug_uv->draw_multiline(uv_lines, get_theme_color(SNAME("mono_color"), SNAME("Editor")) * Color(1, 1, 1, 0.5)); } void MeshInstance3DEditor::_create_outline_mesh() { @@ -493,7 +493,7 @@ void MeshInstance3DEditor::_create_outline_mesh() { mi->set_mesh(mesho); Node *owner = get_tree()->get_edited_scene_root(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Outline")); diff --git a/editor/plugins/navigation_link_2d_editor_plugin.cpp b/editor/plugins/navigation_link_2d_editor_plugin.cpp index 53f9ff019f..21a1d839f0 100644 --- a/editor/plugins/navigation_link_2d_editor_plugin.cpp +++ b/editor/plugins/navigation_link_2d_editor_plugin.cpp @@ -85,7 +85,7 @@ bool NavigationLink2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_e end_grabbed = false; } } else { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (start_grabbed) { undo_redo->create_action(TTR("Set start_location")); undo_redo->add_do_method(node, "set_start_location", node->get_start_location()); diff --git a/editor/plugins/navigation_polygon_editor_plugin.cpp b/editor/plugins/navigation_polygon_editor_plugin.cpp index cbc225a7ff..957a520d8a 100644 --- a/editor/plugins/navigation_polygon_editor_plugin.cpp +++ b/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -76,7 +76,7 @@ void NavigationPolygonEditor::_set_polygon(int p_idx, const Variant &p_polygon) void NavigationPolygonEditor::_action_add_polygon(const Variant &p_polygon) { Ref<NavigationPolygon> navpoly = _ensure_navpoly(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(navpoly.ptr(), "add_outline", p_polygon); undo_redo->add_undo_method(navpoly.ptr(), "remove_outline", navpoly->get_outline_count()); undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); @@ -85,7 +85,7 @@ void NavigationPolygonEditor::_action_add_polygon(const Variant &p_polygon) { void NavigationPolygonEditor::_action_remove_polygon(int p_idx) { Ref<NavigationPolygon> navpoly = _ensure_navpoly(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(navpoly.ptr(), "remove_outline", p_idx); undo_redo->add_undo_method(navpoly.ptr(), "add_outline_at_index", navpoly->get_outline(p_idx), p_idx); undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); @@ -94,7 +94,7 @@ void NavigationPolygonEditor::_action_remove_polygon(int p_idx) { void NavigationPolygonEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { Ref<NavigationPolygon> navpoly = _ensure_navpoly(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(navpoly.ptr(), "set_outline", p_idx, p_polygon); undo_redo->add_undo_method(navpoly.ptr(), "set_outline", p_idx, p_previous); undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines"); @@ -110,7 +110,7 @@ void NavigationPolygonEditor::_create_resource() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create Navigation Polygon")); undo_redo->add_do_method(node, "set_navigation_polygon", Ref<NavigationPolygon>(memnew(NavigationPolygon))); undo_redo->add_undo_method(node, "set_navigation_polygon", Variant(Ref<RefCounted>())); diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp index 74db91a309..bb71c27bff 100644 --- a/editor/plugins/node_3d_editor_gizmos.cpp +++ b/editor/plugins/node_3d_editor_gizmos.cpp @@ -1337,13 +1337,13 @@ void Light3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_i light->set_param(p_id == 0 ? Light3D::PARAM_RANGE : Light3D::PARAM_SPOT_ANGLE, p_restore); } else if (p_id == 0) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Light Radius")); ur->add_do_method(light, "set_param", Light3D::PARAM_RANGE, light->get_param(Light3D::PARAM_RANGE)); ur->add_undo_method(light, "set_param", Light3D::PARAM_RANGE, p_restore); ur->commit_action(); } else if (p_id == 1) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Light Radius")); ur->add_do_method(light, "set_param", Light3D::PARAM_SPOT_ANGLE, light->get_param(Light3D::PARAM_SPOT_ANGLE)); ur->add_undo_method(light, "set_param", Light3D::PARAM_SPOT_ANGLE, p_restore); @@ -1562,7 +1562,7 @@ void AudioStreamPlayer3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gi player->set_emission_angle(p_restore); } else { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change AudioStreamPlayer3D Emission Angle")); ur->add_do_method(player, "set_emission_angle", player->get_emission_angle()); ur->add_undo_method(player, "set_emission_angle", p_restore); @@ -1823,7 +1823,7 @@ void Camera3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_ if (p_cancel) { camera->set("fov", p_restore); } else { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Camera FOV")); ur->add_do_property(camera, "fov", camera->get_fov()); ur->add_undo_property(camera, "fov", p_restore); @@ -1834,7 +1834,7 @@ void Camera3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_ if (p_cancel) { camera->set("size", p_restore); } else { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Camera Size")); ur->add_do_property(camera, "size", camera->get_size()); ur->add_undo_property(camera, "size", p_restore); @@ -2160,7 +2160,7 @@ void OccluderInstance3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_giz return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Sphere Shape Radius")); ur->add_do_method(so.ptr(), "set_radius", so->get_radius()); ur->add_undo_method(so.ptr(), "set_radius", p_restore); @@ -2174,7 +2174,7 @@ void OccluderInstance3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_giz return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Box Shape Size")); ur->add_do_method(bo.ptr(), "set_size", bo->get_size()); ur->add_undo_method(bo.ptr(), "set_size", p_restore); @@ -2188,7 +2188,7 @@ void OccluderInstance3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_giz return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Box Shape Size")); ur->add_do_method(qo.ptr(), "set_size", qo->get_size()); ur->add_undo_method(qo.ptr(), "set_size", p_restore); @@ -2902,7 +2902,7 @@ void VisibleOnScreenNotifier3DGizmoPlugin::commit_handle(const EditorNode3DGizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Notifier AABB")); ur->add_do_method(notifier, "set_aabb", notifier->get_aabb()); ur->add_undo_method(notifier, "set_aabb", p_restore); @@ -3093,7 +3093,7 @@ void GPUParticles3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Particles AABB")); ur->add_do_method(particles, "set_visibility_aabb", particles->get_visibility_aabb()); ur->add_undo_method(particles, "set_visibility_aabb", p_restore); @@ -3259,7 +3259,7 @@ void GPUParticlesCollision3DGizmoPlugin::commit_handle(const EditorNode3DGizmo * return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Radius")); ur->add_do_method(sn, "set_radius", sn->call("get_radius")); ur->add_undo_method(sn, "set_radius", p_restore); @@ -3272,7 +3272,7 @@ void GPUParticlesCollision3DGizmoPlugin::commit_handle(const EditorNode3DGizmo * return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Box Shape Extents")); ur->add_do_method(sn, "set_extents", sn->call("get_extents")); ur->add_undo_method(sn, "set_extents", p_restore); @@ -3531,7 +3531,7 @@ void ReflectionProbeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Probe Extents")); ur->add_do_method(probe, "set_extents", probe->get_extents()); ur->add_do_method(probe, "set_origin_offset", probe->get_origin_offset()); @@ -3683,7 +3683,7 @@ void DecalGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Decal Extents")); ur->add_do_method(decal, "set_extents", decal->get_extents()); ur->add_undo_method(decal, "set_extents", restore); @@ -3823,7 +3823,7 @@ void VoxelGIGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_i return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Probe Extents")); ur->add_do_method(probe, "set_extents", probe->get_extents()); ur->add_undo_method(probe, "set_extents", restore); @@ -4438,7 +4438,7 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Sphere Shape Radius")); ur->add_do_method(ss.ptr(), "set_radius", ss->get_radius()); ur->add_undo_method(ss.ptr(), "set_radius", p_restore); @@ -4452,7 +4452,7 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Box Shape Size")); ur->add_do_method(ss.ptr(), "set_size", ss->get_size()); ur->add_undo_method(ss.ptr(), "set_size", p_restore); @@ -4469,7 +4469,7 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (p_id == 0) { ur->create_action(TTR("Change Capsule Shape Radius")); ur->add_do_method(ss.ptr(), "set_radius", ss->get_radius()); @@ -4494,7 +4494,7 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (p_id == 0) { ur->create_action(TTR("Change Cylinder Shape Radius")); ur->add_do_method(ss.ptr(), "set_radius", ss->get_radius()); @@ -4519,7 +4519,7 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Separation Ray Shape Length")); ur->add_do_method(ss.ptr(), "set_length", ss->get_length()); ur->add_undo_method(ss.ptr(), "set_length", p_restore); @@ -5184,7 +5184,7 @@ void NavigationLink3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (p_id == 0) { ur->create_action(TTR("Change Start Location")); ur->add_do_method(link, "set_start_location", link->get_start_location()); @@ -5946,7 +5946,7 @@ void FogVolumeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change Fog Volume Extents")); ur->add_do_method(sn, "set_extents", sn->call("get_extents")); ur->add_undo_method(sn, "set_extents", p_restore); diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 4fe1a6c034..dea07ab50c 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -3104,7 +3104,7 @@ void Node3DEditorViewport::_draw() { } void Node3DEditorViewport::_menu_option(int p_option) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_option) { case VIEW_TOP: { cursor.y_rot = 0; @@ -3894,8 +3894,6 @@ Dictionary Node3DEditorViewport::get_state() const { void Node3DEditorViewport::_bind_methods() { ClassDB::bind_method(D_METHOD("update_transform_gizmo_view"), &Node3DEditorViewport::update_transform_gizmo_view); // Used by call_deferred. - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &Node3DEditorViewport::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &Node3DEditorViewport::drop_data_fw); ADD_SIGNAL(MethodInfo("toggle_maximize_view", PropertyInfo(Variant::OBJECT, "viewport"))); ADD_SIGNAL(MethodInfo("clicked", PropertyInfo(Variant::OBJECT, "viewport"))); @@ -4257,7 +4255,7 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path)); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(parent, "add_child", instantiated_scene, true); undo_redo->add_do_method(instantiated_scene, "set_owner", EditorNode::get_singleton()->get_edited_scene()); undo_redo->add_do_reference(instantiated_scene); @@ -4286,7 +4284,7 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po } void Node3DEditorViewport::_perform_drop_data() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (spatial_editor->get_preview_material_target().is_valid()) { GeometryInstance3D *geometry_instance = Object::cast_to<GeometryInstance3D>(ObjectDB::get_instance(spatial_editor->get_preview_material_target())); MeshInstance3D *mesh_instance = Object::cast_to<MeshInstance3D>(ObjectDB::get_instance(spatial_editor->get_preview_material_target())); @@ -4496,7 +4494,7 @@ void Node3DEditorViewport::commit_transform() { TTRC("Translate"), TTRC("Scale"), }; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(_transform_name[_edit.mode]); List<Node *> &selection = editor_selection->get_selected_node_list(); @@ -4921,7 +4919,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p c->add_child(viewport); surface = memnew(Control); - surface->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CD(surface, Node3DEditorViewport); add_child(surface); surface->set_anchors_and_offsets_preset(Control::PRESET_FULL_RECT); surface->set_clip_contents(true); @@ -6014,7 +6012,7 @@ void Node3DEditor::_xform_dialog_action() { t.basis.rotate(rotate); t.origin = translate; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("XForm Dialog")); const List<Node *> &selection = editor_selection->get_selected_node_list(); @@ -6126,7 +6124,7 @@ void Node3DEditor::_update_camera_override_viewport(Object *p_viewport) { } void Node3DEditor::_menu_item_pressed(int p_option) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_option) { case MENU_TOOL_SELECT: case MENU_TOOL_MOVE: @@ -7312,7 +7310,7 @@ void Node3DEditor::_snap_selected_nodes_to_floor() { } if (snapped_to_floor) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Snap Nodes to Floor")); // Perform snapping if at least one node can be snapped @@ -7382,7 +7380,7 @@ void Node3DEditor::_add_sun_to_scene(bool p_already_added_environment) { ERR_FAIL_COND(!base); Node *new_sun = preview_sun->duplicate(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Preview Sun to Scene")); undo_redo->add_do_method(base, "add_child", new_sun, true); // Move to the beginning of the scene tree since more "global" nodes @@ -7416,7 +7414,7 @@ void Node3DEditor::_add_environment_to_scene(bool p_already_added_sun) { new_env->set_camera_attributes(preview_environment->get_camera_attributes()->duplicate(true)); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Preview Environment to Scene")); undo_redo->add_do_method(base, "add_child", new_env, true); // Move to the beginning of the scene tree since more "global" nodes diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp index b78ffb7612..63f6643ba3 100644 --- a/editor/plugins/path_2d_editor_plugin.cpp +++ b/editor/plugins/path_2d_editor_plugin.cpp @@ -120,7 +120,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { } // Check for point deletion. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if ((mb->get_button_index() == MouseButton::RIGHT && mode == MODE_EDIT) || (mb->get_button_index() == MouseButton::LEFT && mode == MODE_DELETE)) { if (dist_to_p < grab_threshold) { undo_redo->create_action(TTR("Remove Point from Curve")); @@ -155,7 +155,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && ((mb->is_command_or_control_pressed() && mode == MODE_EDIT) || mode == MODE_CREATE)) { Ref<Curve2D> curve = node->get_curve(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Point to Curve")); undo_redo->add_do_method(curve.ptr(), "add_point", cpoint); undo_redo->add_undo_method(curve.ptr(), "remove_point", curve->get_point_count()); @@ -191,7 +191,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { insertion_point = curve->get_point_count() - 2; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Split Curve")); undo_redo->add_do_method(curve.ptr(), "add_point", xform.affine_inverse().xform(gpoint2), Vector2(0, 0), Vector2(0, 0), insertion_point + 1); undo_redo->add_undo_method(curve.ptr(), "remove_point", insertion_point + 1); @@ -215,7 +215,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (!mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && action != ACTION_NONE) { Ref<Curve2D> curve = node->get_curve(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Vector2 new_pos = moving_from + xform.affine_inverse().basis_xform(gpoint - moving_screen_from); switch (action) { case ACTION_NONE: @@ -491,7 +491,7 @@ void Path2DEditor::_mode_selected(int p_mode) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Point from Curve")); undo_redo->add_do_method(node->get_curve().ptr(), "add_point", begin); undo_redo->add_undo_method(node->get_curve().ptr(), "remove_point", node->get_curve()->get_point_count()); diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp index 917b8245a3..75cd04bee8 100644 --- a/editor/plugins/path_3d_editor_plugin.cpp +++ b/editor/plugins/path_3d_editor_plugin.cpp @@ -174,7 +174,7 @@ void Path3DGizmo::commit_handle(int p_id, bool p_secondary, const Variant &p_res return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (!p_secondary) { if (p_cancel) { @@ -409,7 +409,7 @@ EditorPlugin::AfterGUIInput Path3DEditorPlugin::forward_3d_gui_input(Camera3D *p } } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); if (closest_seg != -1) { //subdivide @@ -451,21 +451,21 @@ EditorPlugin::AfterGUIInput Path3DEditorPlugin::forward_3d_gui_input(Camera3D *p // Find the offset and point index of the place to break up. // Also check for the control points. if (dist_to_p < click_dist) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Path Point")); ur->add_do_method(c.ptr(), "remove_point", i); ur->add_undo_method(c.ptr(), "add_point", c->get_point_position(i), c->get_point_in(i), c->get_point_out(i), i); ur->commit_action(); return EditorPlugin::AFTER_GUI_INPUT_STOP; } else if (dist_to_p_out < click_dist) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Out-Control Point")); ur->add_do_method(c.ptr(), "set_point_out", i, Vector3()); ur->add_undo_method(c.ptr(), "set_point_out", i, c->get_point_out(i)); ur->commit_action(); return EditorPlugin::AFTER_GUI_INPUT_STOP; } else if (dist_to_p_in < click_dist) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove In-Control Point")); ur->add_do_method(c.ptr(), "set_point_in", i, Vector3()); ur->add_undo_method(c.ptr(), "set_point_in", i, c->get_point_in(i)); @@ -544,7 +544,7 @@ void Path3DEditorPlugin::_close_curve() { if (c->get_point_position(0) == c->get_point_position(c->get_point_count() - 1)) { return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Close Curve")); ur->add_do_method(c.ptr(), "add_point", c->get_point_position(0), c->get_point_in(0), c->get_point_out(0), -1); ur->add_undo_method(c.ptr(), "remove_point", c->get_point_count()); diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index 9d8f1a1578..05fc464226 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -156,7 +156,7 @@ void Polygon2DEditor::_sync_bones() { Array new_bones = node->call("_get_bones"); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Sync Bones")); undo_redo->add_do_method(node, "_set_bones", new_bones); undo_redo->add_undo_method(node, "_set_bones", prev_bones); @@ -286,7 +286,7 @@ void Polygon2DEditor::_uv_edit_popup_hide() { } void Polygon2DEditor::_menu_option(int p_option) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_option) { case MODE_EDIT_UV: { if (node->get_texture().is_null()) { @@ -399,7 +399,7 @@ void Polygon2DEditor::_update_polygon_editing_state() { void Polygon2DEditor::_commit_action() { // Makes that undo/redoing actions made outside of the UV editor still affect its polygon. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(uv_edit_draw, "queue_redraw"); undo_redo->add_undo_method(uv_edit_draw, "queue_redraw"); undo_redo->add_do_method(CanvasItemEditor::get_singleton(), "update_viewport"); @@ -467,7 +467,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { mtx.columns[2] = -uv_draw_ofs; mtx.scale_basis(Vector2(uv_draw_zoom, uv_draw_zoom)); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<InputEventMouseButton> mb = p_input; if (mb.is_valid()) { diff --git a/editor/plugins/polygon_3d_editor_plugin.cpp b/editor/plugins/polygon_3d_editor_plugin.cpp index 8dc0ca9431..9defb4de9b 100644 --- a/editor/plugins/polygon_3d_editor_plugin.cpp +++ b/editor/plugins/polygon_3d_editor_plugin.cpp @@ -96,7 +96,7 @@ void Polygon3DEditor::_menu_option(int p_option) { void Polygon3DEditor::_wip_close() { Object *obj = node_resource.is_valid() ? (Object *)node_resource.ptr() : node; ERR_FAIL_COND_MSG(!obj, "Edited object is not valid."); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create Polygon3D")); undo_redo->add_undo_method(obj, "set_polygon", obj->call("get_polygon")); undo_redo->add_do_method(obj, "set_polygon", wip); @@ -186,7 +186,7 @@ EditorPlugin::AfterGUIInput Polygon3DEditor::forward_3d_gui_input(Camera3D *p_ca if (mb->is_pressed()) { if (mb->is_ctrl_pressed()) { if (poly.size() < 3) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Edit Poly")); undo_redo->add_undo_method(obj, "set_polygon", poly); poly.push_back(cpoint); @@ -265,7 +265,7 @@ EditorPlugin::AfterGUIInput Polygon3DEditor::forward_3d_gui_input(Camera3D *p_ca ERR_FAIL_INDEX_V(edited_point, poly.size(), EditorPlugin::AFTER_GUI_INPUT_PASS); poly.write[edited_point] = edited_point_pos; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Edit Poly")); undo_redo->add_do_method(obj, "set_polygon", poly); undo_redo->add_undo_method(obj, "set_polygon", pre_move_edit); @@ -294,7 +294,7 @@ EditorPlugin::AfterGUIInput Polygon3DEditor::forward_3d_gui_input(Camera3D *p_ca } if (closest_idx >= 0) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Edit Poly (Remove Point)")); undo_redo->add_undo_method(obj, "set_polygon", poly); poly.remove_at(closest_idx); diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index 2a5529e229..dcbff2c756 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -71,7 +71,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String> &p_paths) name = basename + " " + itos(counter); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Resource")); undo_redo->add_do_method(preloader, "add_resource", name, resource); undo_redo->add_undo_method(preloader, "remove_resource", name); @@ -116,7 +116,7 @@ void ResourcePreloaderEditor::_item_edited() { } Ref<Resource> samp = preloader->get_resource(old_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Resource")); undo_redo->add_do_method(preloader, "remove_resource", old_name); undo_redo->add_do_method(preloader, "add_resource", new_name, samp); @@ -129,7 +129,7 @@ void ResourcePreloaderEditor::_item_edited() { } void ResourcePreloaderEditor::_remove_resource(const String &p_to_remove) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Resource")); undo_redo->add_do_method(preloader, "remove_resource", p_to_remove); undo_redo->add_undo_method(preloader, "add_resource", p_to_remove, preloader->get_resource(p_to_remove)); @@ -163,7 +163,7 @@ void ResourcePreloaderEditor::_paste_pressed() { name = basename + " " + itos(counter); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Paste Resource")); undo_redo->add_do_method(preloader, "add_resource", name, r); undo_redo->add_undo_method(preloader, "remove_resource", name); @@ -322,7 +322,7 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2 &p_point, const Variant name = basename + "_" + itos(counter); } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Resource")); undo_redo->add_do_method(preloader, "add_resource", name, r); undo_redo->add_undo_method(preloader, "remove_resource", name); @@ -342,10 +342,6 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2 &p_point, const Variant void ResourcePreloaderEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_library"), &ResourcePreloaderEditor::_update_library); ClassDB::bind_method(D_METHOD("_remove_resource", "to_remove"), &ResourcePreloaderEditor::_remove_resource); - - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &ResourcePreloaderEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &ResourcePreloaderEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &ResourcePreloaderEditor::drop_data_fw); } ResourcePreloaderEditor::ResourcePreloaderEditor() { @@ -379,7 +375,7 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() { tree->set_column_expand(1, true); tree->set_v_size_flags(SIZE_EXPAND_FILL); - tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(tree, ResourcePreloaderEditor); vbc->add_child(tree); dialog = memnew(AcceptDialog); diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index caa42b677c..e515b46b1e 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -439,6 +439,8 @@ void ScriptEditor::_goto_script_line(Ref<RefCounted> p_script, int p_line) { } else if (current) { current->goto_line(p_line, true); } + + _save_history(); } } } @@ -2172,6 +2174,8 @@ Error ScriptEditor::_save_text_file(Ref<TextFile> p_text_file, const String &p_p p_text_file->set_last_modified_time(FileAccess::get_modified_time(p_path)); } + EditorFileSystem::get_singleton()->update_file(p_path); + _res_saved_callback(sqscr); return OK; } @@ -2254,11 +2258,14 @@ bool ScriptEditor::edit(const Ref<Resource> &p_resource, int p_line, int p_col, args.push_back(script_path); } - Error err = OS::get_singleton()->create_process(path, args); - if (err == OK) { - return false; + if (!path.is_empty()) { + Error err = OS::get_singleton()->create_process(path, args); + if (err == OK) { + return false; + } } - WARN_PRINT("Couldn't open external text editor, using internal"); + + ERR_PRINT("Couldn't open external text editor, falling back to the internal editor. Review your `text_editor/external/` editor settings."); } for (int i = 0; i < tab_container->get_tab_count(); i++) { @@ -2487,7 +2494,6 @@ void ScriptEditor::save_all_scripts() { } _update_script_names(); - EditorFileSystem::get_singleton()->update_script_classes(); } void ScriptEditor::apply_scripts() const { @@ -2553,9 +2559,9 @@ void ScriptEditor::open_script_create_dialog(const String &p_base_name, const St } void ScriptEditor::open_text_file_create_dialog(const String &p_base_path, const String &p_base_name) { - file_dialog->set_current_file(p_base_name); - file_dialog->set_current_dir(p_base_path); _menu_option(FILE_NEW_TEXTFILE); + file_dialog->set_current_dir(p_base_path); + file_dialog->set_current_file(p_base_name); open_textfile_after_create = false; } @@ -3610,10 +3616,6 @@ void ScriptEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("register_syntax_highlighter", "syntax_highlighter"), &ScriptEditor::register_syntax_highlighter); ClassDB::bind_method(D_METHOD("unregister_syntax_highlighter", "syntax_highlighter"), &ScriptEditor::unregister_syntax_highlighter); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw", "point", "from"), &ScriptEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "point", "data", "from"), &ScriptEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "point", "data", "from"), &ScriptEditor::drop_data_fw); - ClassDB::bind_method(D_METHOD("goto_line", "line_number"), &ScriptEditor::_goto_script_line2); ClassDB::bind_method(D_METHOD("get_current_script"), &ScriptEditor::_get_current_script); ClassDB::bind_method(D_METHOD("get_open_scripts"), &ScriptEditor::_get_open_scripts); @@ -3669,7 +3671,7 @@ ScriptEditor::ScriptEditor() { _sort_list_on_update = true; script_list->connect("item_clicked", callable_mp(this, &ScriptEditor::_script_list_clicked), CONNECT_DEFERRED); script_list->set_allow_rmb_select(true); - script_list->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(script_list, ScriptEditor); context_menu = memnew(PopupMenu); add_child(context_menu); @@ -4005,12 +4007,6 @@ void ScriptEditorPlugin::apply_changes() { script_editor->apply_scripts(); } -void ScriptEditorPlugin::restore_global_state() { -} - -void ScriptEditorPlugin::save_global_state() { -} - void ScriptEditorPlugin::set_window_layout(Ref<ConfigFile> p_layout) { script_editor->set_window_layout(p_layout); } diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index d4c80c416b..988d07621c 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -542,9 +542,6 @@ public: virtual void save_external_data() override; virtual void apply_changes() override; - virtual void restore_global_state() override; - virtual void save_global_state() override; - virtual void set_window_layout(Ref<ConfigFile> p_layout) override; virtual void get_window_layout(Ref<ConfigFile> p_layout) override; diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 4d525cc5a9..6bb725f7a0 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -1490,14 +1490,6 @@ void ScriptTextEditor::_notification(int p_what) { } } -void ScriptTextEditor::_bind_methods() { - ClassDB::bind_method("_update_connected_methods", &ScriptTextEditor::_update_connected_methods); - - ClassDB::bind_method("_get_drag_data_fw", &ScriptTextEditor::get_drag_data_fw); - ClassDB::bind_method("_can_drop_data_fw", &ScriptTextEditor::can_drop_data_fw); - ClassDB::bind_method("_drop_data_fw", &ScriptTextEditor::drop_data_fw); -} - Control *ScriptTextEditor::get_edit_menu() { return edit_hb; } @@ -2167,7 +2159,7 @@ ScriptTextEditor::ScriptTextEditor() { connection_info_dialog = memnew(ConnectionInfoDialog); - code_editor->get_text_editor()->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(code_editor, ScriptTextEditor); } ScriptTextEditor::~ScriptTextEditor() { diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h index 9db0191128..1d96376748 100644 --- a/editor/plugins/script_text_editor.h +++ b/editor/plugins/script_text_editor.h @@ -176,7 +176,6 @@ protected: void _warning_clicked(Variant p_line); void _notification(int p_what); - static void _bind_methods(); HashMap<String, Ref<EditorSyntaxHighlighter>> highlighters; void _change_syntax_highlighter(int p_idx); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index a822584619..87d602ccf1 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -229,7 +229,7 @@ void ShaderEditorPlugin::_close_shader(int p_index) { memdelete(c); edited_shaders.remove_at(p_index); _update_shader_list(); - EditorNode::get_undo_redo()->clear_history(); // To prevent undo on deleted graphs. + EditorUndoRedoManager::get_singleton()->clear_history(); // To prevent undo on deleted graphs. } void ShaderEditorPlugin::_resource_saved(Object *obj) { @@ -413,12 +413,6 @@ void ShaderEditorPlugin::drop_data_fw(const Point2 &p_point, const Variant &p_da } } -void ShaderEditorPlugin::_bind_methods() { - ClassDB::bind_method(D_METHOD("_get_drag_data_fw", "point", "from"), &ShaderEditorPlugin::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw", "point", "data", "from"), &ShaderEditorPlugin::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw", "point", "data", "from"), &ShaderEditorPlugin::drop_data_fw); -} - ShaderEditorPlugin::ShaderEditorPlugin() { main_split = memnew(HSplitContainer); @@ -451,7 +445,7 @@ ShaderEditorPlugin::ShaderEditorPlugin() { vb->add_child(shader_list); shader_list->connect("item_selected", callable_mp(this, &ShaderEditorPlugin::_shader_selected)); shader_list->connect("item_clicked", callable_mp(this, &ShaderEditorPlugin::_shader_list_clicked)); - shader_list->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(shader_list, ShaderEditorPlugin); main_split->add_child(vb); vb->set_custom_minimum_size(Size2(200, 300) * EDSCALE); diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h index 8ca4a534ab..408d08ade0 100644 --- a/editor/plugins/shader_editor_plugin.h +++ b/editor/plugins/shader_editor_plugin.h @@ -92,9 +92,6 @@ class ShaderEditorPlugin : public EditorPlugin { bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); -protected: - static void _bind_methods(); - public: virtual String get_name() const override { return "Shader"; } virtual void edit(Object *p_object) override; diff --git a/editor/plugins/skeleton_2d_editor_plugin.cpp b/editor/plugins/skeleton_2d_editor_plugin.cpp index d90d6b6756..06db696330 100644 --- a/editor/plugins/skeleton_2d_editor_plugin.cpp +++ b/editor/plugins/skeleton_2d_editor_plugin.cpp @@ -61,7 +61,7 @@ void Skeleton2DEditor::_menu_option(int p_option) { err_dialog->popup_centered(); return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Rest Pose to Bones")); for (int i = 0; i < node->get_bone_count(); i++) { Bone2D *bone = node->get_bone(i); @@ -77,7 +77,7 @@ void Skeleton2DEditor::_menu_option(int p_option) { err_dialog->popup_centered(); return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Rest Pose from Bones")); for (int i = 0; i < node->get_bone_count(); i++) { Bone2D *bone = node->get_bone(i); diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 956150ec69..3ee9823f3a 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -116,7 +116,7 @@ void BoneTransformEditor::_value_changed(const String &p_property, Variant p_val return; } if (skeleton) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Bone Transform"), UndoRedo::MERGE_ENDS); undo_redo->add_undo_property(skeleton, p_property, skeleton->get(p_property)); undo_redo->add_do_property(skeleton, p_property, p_value); @@ -271,7 +271,7 @@ void Skeleton3DEditor::reset_pose(const bool p_all_bones) { return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Bone Transform"), UndoRedo::MERGE_ENDS); if (p_all_bones) { for (int i = 0; i < bone_len; i++) { @@ -338,7 +338,7 @@ void Skeleton3DEditor::pose_to_rest(const bool p_all_bones) { return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Bone Rest"), UndoRedo::MERGE_ENDS); if (p_all_bones) { for (int i = 0; i < bone_len; i++) { @@ -358,7 +358,7 @@ void Skeleton3DEditor::pose_to_rest(const bool p_all_bones) { } void Skeleton3DEditor::create_physical_skeleton() { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ERR_FAIL_COND(!get_tree()); Node *owner = get_tree()->get_edited_scene_root(); @@ -593,7 +593,7 @@ void Skeleton3DEditor::move_skeleton_bone(NodePath p_skeleton_path, int32_t p_se Node *node = get_node_or_null(p_skeleton_path); Skeleton3D *skeleton_node = Object::cast_to<Skeleton3D>(node); ERR_FAIL_NULL(skeleton_node); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Bone Parentage")); // If the target is a child of ourselves, we move only *us* and not our children. if (skeleton_node->is_bone_parent_of(p_target_boneidx, p_selected_boneidx)) { @@ -813,7 +813,7 @@ void Skeleton3DEditor::create_editors() { joint_tree->set_v_size_flags(SIZE_EXPAND_FILL); joint_tree->set_h_size_flags(SIZE_EXPAND_FILL); joint_tree->set_allow_rmb_select(true); - joint_tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(joint_tree, Skeleton3DEditor); s_con->add_child(joint_tree); pose_editor = memnew(BoneTransformEditor(skeleton)); @@ -889,10 +889,6 @@ void Skeleton3DEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_properties"), &Skeleton3DEditor::_update_properties); ClassDB::bind_method(D_METHOD("_on_click_skeleton_option"), &Skeleton3DEditor::_on_click_skeleton_option); - ClassDB::bind_method(D_METHOD("get_drag_data_fw"), &Skeleton3DEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("can_drop_data_fw"), &Skeleton3DEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("drop_data_fw"), &Skeleton3DEditor::drop_data_fw); - ClassDB::bind_method(D_METHOD("move_skeleton_bone"), &Skeleton3DEditor::move_skeleton_bone); ClassDB::bind_method(D_METHOD("_draw_gizmo"), &Skeleton3DEditor::_draw_gizmo); @@ -1323,7 +1319,7 @@ void Skeleton3DGizmoPlugin::commit_subgizmos(const EditorNode3DGizmo *p_gizmo, c Skeleton3DEditor *se = Skeleton3DEditor::get_singleton(); Node3DEditor *ne = Node3DEditor::get_singleton(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Bone Transform")); if (ne->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || ne->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE) { for (int i = 0; i < p_ids.size(); i++) { diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp index 2a8994d239..0d00bfa8fd 100644 --- a/editor/plugins/sprite_2d_editor_plugin.cpp +++ b/editor/plugins/sprite_2d_editor_plugin.cpp @@ -344,7 +344,7 @@ void Sprite2DEditor::_convert_to_mesh_2d_node() { MeshInstance2D *mesh_instance = memnew(MeshInstance2D); mesh_instance->set_mesh(mesh); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Convert to MeshInstance2D")); ur->add_do_method(SceneTreeDock::get_singleton(), "replace_node", node, mesh_instance, true, false); ur->add_do_reference(mesh_instance); @@ -402,7 +402,7 @@ void Sprite2DEditor::_convert_to_polygon_2d_node() { polygon_2d_instance->set_polygon(polygon); polygon_2d_instance->set_polygons(polys); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Convert to Polygon2D")); ur->add_do_method(SceneTreeDock::get_singleton(), "replace_node", node, polygon_2d_instance, true, false); ur->add_do_reference(polygon_2d_instance); @@ -424,7 +424,7 @@ void Sprite2DEditor::_create_collision_polygon_2d_node() { CollisionPolygon2D *collision_polygon_2d_instance = memnew(CollisionPolygon2D); collision_polygon_2d_instance->set_polygon(outline); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create CollisionPolygon2D Sibling")); ur->add_do_method(this, "_add_as_sibling_or_child", node, collision_polygon_2d_instance); ur->add_do_reference(collision_polygon_2d_instance); @@ -457,7 +457,7 @@ void Sprite2DEditor::_create_light_occluder_2d_node() { LightOccluder2D *light_occluder_2d_instance = memnew(LightOccluder2D); light_occluder_2d_instance->set_occluder_polygon(polygon); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create LightOccluder2D Sibling")); ur->add_do_method(this, "_add_as_sibling_or_child", node, light_occluder_2d_instance); ur->add_do_reference(light_occluder_2d_instance); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index f4ec026504..74c9286325 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -251,7 +251,7 @@ void SpriteFramesEditor::_sheet_add_frames() { const Size2i offset = _get_offset(); const Size2i separation = _get_separation(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Frame")); int fc = frames->get_frame_count(edited_anim); @@ -470,7 +470,7 @@ void SpriteFramesEditor::_file_load_request(const Vector<String> &p_path, int p_ return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Frame")); int fc = frames->get_frame_count(edited_anim); @@ -541,7 +541,7 @@ void SpriteFramesEditor::_paste_pressed() { return; ///beh should show an error i guess } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Paste Frame")); undo_redo->add_do_method(frames, "add_frame", edited_anim, texture, duration); undo_redo->add_undo_method(frames, "remove_frame", edited_anim, frames->get_frame_count(edited_anim)); @@ -584,7 +584,7 @@ void SpriteFramesEditor::_empty_pressed() { Ref<Texture2D> texture; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Empty")); undo_redo->add_do_method(frames, "add_frame", edited_anim, texture, 1.0, from); undo_redo->add_undo_method(frames, "remove_frame", edited_anim, from); @@ -608,7 +608,7 @@ void SpriteFramesEditor::_empty2_pressed() { Ref<Texture2D> texture; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Empty")); undo_redo->add_do_method(frames, "add_frame", edited_anim, texture, 1.0, from + 1); undo_redo->add_undo_method(frames, "remove_frame", edited_anim, from + 1); @@ -632,7 +632,7 @@ void SpriteFramesEditor::_up_pressed() { sel = to_move; sel -= 1; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Frame")); undo_redo->add_do_method(frames, "set_frame", edited_anim, to_move, frames->get_frame_texture(edited_anim, to_move - 1), frames->get_frame_duration(edited_anim, to_move - 1)); undo_redo->add_do_method(frames, "set_frame", edited_anim, to_move - 1, frames->get_frame_texture(edited_anim, to_move), frames->get_frame_duration(edited_anim, to_move)); @@ -658,7 +658,7 @@ void SpriteFramesEditor::_down_pressed() { sel = to_move; sel += 1; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Move Frame")); undo_redo->add_do_method(frames, "set_frame", edited_anim, to_move, frames->get_frame_texture(edited_anim, to_move + 1), frames->get_frame_duration(edited_anim, to_move + 1)); undo_redo->add_do_method(frames, "set_frame", edited_anim, to_move + 1, frames->get_frame_texture(edited_anim, to_move), frames->get_frame_duration(edited_anim, to_move)); @@ -681,7 +681,7 @@ void SpriteFramesEditor::_delete_pressed() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Resource")); undo_redo->add_do_method(frames, "remove_frame", edited_anim, to_delete); undo_redo->add_undo_method(frames, "add_frame", edited_anim, frames->get_frame_texture(edited_anim, to_delete), frames->get_frame_duration(edited_anim, to_delete), to_delete); @@ -768,7 +768,7 @@ void SpriteFramesEditor::_animation_name_edited() { List<Node *> nodes; _find_anim_sprites(EditorNode::get_singleton()->get_edited_scene(), &nodes, Ref<SpriteFrames>(frames)); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Animation")); undo_redo->add_do_method(frames, "rename_animation", edited_anim, name); undo_redo->add_undo_method(frames, "rename_animation", name, edited_anim); @@ -788,17 +788,17 @@ void SpriteFramesEditor::_animation_name_edited() { } void SpriteFramesEditor::_animation_add() { - String name = "New Anim"; + String name = "new_animation"; int counter = 0; while (frames->has_animation(name)) { counter++; - name = "New Anim " + itos(counter); + name = vformat("new_animation_%d", counter); } List<Node *> nodes; _find_anim_sprites(EditorNode::get_singleton()->get_edited_scene(), &nodes, Ref<SpriteFrames>(frames)); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Animation")); undo_redo->add_do_method(frames, "add_animation", name); undo_redo->add_undo_method(frames, "remove_animation", name); @@ -831,7 +831,7 @@ void SpriteFramesEditor::_animation_remove() { } void SpriteFramesEditor::_animation_remove_confirmed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Animation")); undo_redo->add_do_method(frames, "remove_animation", edited_anim); undo_redo->add_undo_method(frames, "add_animation", edited_anim); @@ -860,7 +860,7 @@ void SpriteFramesEditor::_animation_loop_changed() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation Loop")); undo_redo->add_do_method(frames, "set_animation_loop", edited_anim, anim_loop->is_pressed()); undo_redo->add_undo_method(frames, "set_animation_loop", edited_anim, frames->get_animation_loop(edited_anim)); @@ -874,7 +874,7 @@ void SpriteFramesEditor::_animation_speed_changed(double p_value) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Animation FPS"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(frames, "set_animation_speed", edited_anim, p_value); undo_redo->add_undo_method(frames, "set_animation_speed", edited_anim, frames->get_animation_speed(edited_anim)); @@ -926,7 +926,7 @@ void SpriteFramesEditor::_frame_duration_changed(double p_value) { Ref<Texture2D> texture = frames->get_frame_texture(edited_anim, index); float old_duration = frames->get_frame_duration(edited_anim, index); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Frame Duration")); undo_redo->add_do_method(frames, "set_frame", edited_anim, index, texture, p_value); undo_redo->add_undo_method(frames, "set_frame", edited_anim, index, texture, old_duration); @@ -1206,7 +1206,7 @@ void SpriteFramesEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da reorder = true; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (reorder) { //drop is from reordering frames int from_frame = -1; float duration = 1.0; @@ -1247,9 +1247,6 @@ void SpriteFramesEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da void SpriteFramesEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_library", "skipsel"), &SpriteFramesEditor::_update_library, DEFVAL(false)); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &SpriteFramesEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &SpriteFramesEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &SpriteFramesEditor::drop_data_fw); } SpriteFramesEditor::SpriteFramesEditor() { @@ -1408,7 +1405,7 @@ SpriteFramesEditor::SpriteFramesEditor() { frame_list->set_max_columns(0); frame_list->set_icon_mode(ItemList::ICON_MODE_TOP); frame_list->set_max_text_lines(2); - frame_list->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(frame_list, SpriteFramesEditor); frame_list->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_frame_list_gui_input)); frame_list->connect("item_selected", callable_mp(this, &SpriteFramesEditor::_frame_list_item_selected)); diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index ad5881c76f..a376699e54 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -649,8 +649,6 @@ TextEditor::TextEditor() { goto_line_dialog = memnew(GotoLineDialog); add_child(goto_line_dialog); - - code_editor->get_text_editor()->set_drag_forwarding_compat(this); } TextEditor::~TextEditor() { diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 05d32e1d08..9bad2f2fbf 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -300,7 +300,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { mtx.xform(rect.position + Vector2(0, rect.size.y / 2)) + Vector2(-handle_offset, 0) }; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<InputEventMouseButton> mb = p_input; if (mb.is_valid()) { if (mb->get_button_index() == MouseButton::LEFT) { @@ -349,7 +349,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { for (const Rect2 &E : autoslice_cache) { if (E.has_point(point)) { rect = E; - if (Input::get_singleton()->is_key_pressed(Key::CTRL) && !(Input::get_singleton()->is_key_pressed(Key(Key::SHIFT | Key::ALT)))) { + if (Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !(Input::get_singleton()->is_key_pressed(Key(Key::SHIFT | Key::ALT)))) { Rect2 r; if (atlas_tex.is_valid()) { r = atlas_tex->get_region(); diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 68c1041a0b..40aac77a99 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -800,7 +800,7 @@ void ThemeItemImportTree::_import_selected() { ProgressDialog::get_singleton()->end_task("import_theme_items"); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Import Theme Items")); ur->add_do_method(*edited_theme, "clear"); @@ -1498,7 +1498,7 @@ void ThemeItemEditorDialog::_item_tree_button_pressed(Object *p_item, int p_colu String item_name = item->get_text(0); int data_type = item->get_parent()->get_metadata(0); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Theme Item")); ur->add_do_method(*edited_theme, "clear_theme_item", (Theme::DataType)data_type, item_name, edited_item_type); ur->add_undo_method(*edited_theme, "set_theme_item", (Theme::DataType)data_type, item_name, edited_item_type, edited_theme->get_theme_item((Theme::DataType)data_type, item_name, edited_item_type)); @@ -1517,7 +1517,7 @@ void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) { const String new_type = edit_add_type_value->get_text().strip_edges(); edit_add_type_value->clear(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Add Theme Type")); ur->add_do_method(*edited_theme, "add_type", new_type); @@ -1529,7 +1529,7 @@ void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) { } void ThemeItemEditorDialog::_add_theme_item(Theme::DataType p_data_type, String p_item_name, String p_item_type) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Create Theme Item")); switch (p_data_type) { @@ -1574,7 +1574,7 @@ void ThemeItemEditorDialog::_remove_theme_type(const String &p_theme_type) { Ref<Theme> old_snapshot = edited_theme->duplicate(); Ref<Theme> new_snapshot = edited_theme->duplicate(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Theme Type")); new_snapshot->remove_type(p_theme_type); @@ -1597,7 +1597,7 @@ void ThemeItemEditorDialog::_remove_data_type_items(Theme::DataType p_data_type, Ref<Theme> old_snapshot = edited_theme->duplicate(); Ref<Theme> new_snapshot = edited_theme->duplicate(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Data Type Items From Theme")); new_snapshot->get_theme_item_list(p_data_type, p_item_type, &names); @@ -1626,7 +1626,7 @@ void ThemeItemEditorDialog::_remove_class_items() { Ref<Theme> old_snapshot = edited_theme->duplicate(); Ref<Theme> new_snapshot = edited_theme->duplicate(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Class Items From Theme")); for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) { @@ -1662,7 +1662,7 @@ void ThemeItemEditorDialog::_remove_custom_items() { Ref<Theme> old_snapshot = edited_theme->duplicate(); Ref<Theme> new_snapshot = edited_theme->duplicate(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Custom Items From Theme")); for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) { @@ -1698,7 +1698,7 @@ void ThemeItemEditorDialog::_remove_all_items() { Ref<Theme> old_snapshot = edited_theme->duplicate(); Ref<Theme> new_snapshot = edited_theme->duplicate(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove All Items From Theme")); for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) { @@ -1802,7 +1802,7 @@ void ThemeItemEditorDialog::_confirm_edit_theme_item() { if (item_popup_mode == CREATE_THEME_ITEM) { _add_theme_item(edit_item_data_type, theme_item_name->get_text(), edited_item_type); } else if (item_popup_mode == RENAME_THEME_ITEM) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Rename Theme Item")); ur->add_do_method(*edited_theme, "rename_theme_item", edit_item_data_type, edit_item_old_name, theme_item_name->get_text(), edited_item_type); @@ -2828,7 +2828,7 @@ void ThemeTypeEditor::_add_default_type_items() { updating = false; - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Override All Default Theme Items")); ur->add_do_method(*edited_theme, "merge_with", new_snapshot); @@ -2848,7 +2848,7 @@ void ThemeTypeEditor::_item_add_cbk(int p_data_type, Control *p_control) { } String item_name = le->get_text().strip_edges(); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Add Theme Item")); switch (p_data_type) { @@ -2893,7 +2893,7 @@ void ThemeTypeEditor::_item_add_lineedit_cbk(String p_value, int p_data_type, Co } void ThemeTypeEditor::_item_override_cbk(int p_data_type, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Override Theme Item")); switch (p_data_type) { @@ -2932,7 +2932,7 @@ void ThemeTypeEditor::_item_override_cbk(int p_data_type, String p_item_name) { } void ThemeTypeEditor::_item_remove_cbk(int p_data_type, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Remove Theme Item")); switch (p_data_type) { @@ -3006,7 +3006,7 @@ void ThemeTypeEditor::_item_rename_confirmed(int p_data_type, String p_item_name return; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Rename Theme Item")); switch (p_data_type) { @@ -3062,7 +3062,7 @@ void ThemeTypeEditor::_item_rename_canceled(int p_data_type, String p_item_name, } void ThemeTypeEditor::_color_item_changed(Color p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Color Item in Theme"), UndoRedo::MERGE_ENDS); ur->add_do_method(*edited_theme, "set_color", p_item_name, edited_type, p_value); ur->add_undo_method(*edited_theme, "set_color", p_item_name, edited_type, edited_theme->get_color(p_item_name, edited_type)); @@ -3070,7 +3070,7 @@ void ThemeTypeEditor::_color_item_changed(Color p_value, String p_item_name) { } void ThemeTypeEditor::_constant_item_changed(float p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Constant Item in Theme")); ur->add_do_method(*edited_theme, "set_constant", p_item_name, edited_type, p_value); ur->add_undo_method(*edited_theme, "set_constant", p_item_name, edited_type, edited_theme->get_constant(p_item_name, edited_type)); @@ -3078,7 +3078,7 @@ void ThemeTypeEditor::_constant_item_changed(float p_value, String p_item_name) } void ThemeTypeEditor::_font_size_item_changed(float p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Font Size Item in Theme")); ur->add_do_method(*edited_theme, "set_font_size", p_item_name, edited_type, p_value); ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type)); @@ -3090,7 +3090,7 @@ void ThemeTypeEditor::_edit_resource_item(Ref<Resource> p_resource, bool p_edit) } void ThemeTypeEditor::_font_item_changed(Ref<Font> p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Font Item in Theme")); ur->add_do_method(*edited_theme, "set_font", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Font>()); @@ -3107,7 +3107,7 @@ void ThemeTypeEditor::_font_item_changed(Ref<Font> p_value, String p_item_name) } void ThemeTypeEditor::_icon_item_changed(Ref<Texture2D> p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Icon Item in Theme")); ur->add_do_method(*edited_theme, "set_icon", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Texture2D>()); @@ -3124,7 +3124,7 @@ void ThemeTypeEditor::_icon_item_changed(Ref<Texture2D> p_value, String p_item_n } void ThemeTypeEditor::_stylebox_item_changed(Ref<StyleBox> p_value, String p_item_name) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Stylebox Item in Theme")); ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<StyleBox>()); @@ -3167,7 +3167,7 @@ void ThemeTypeEditor::_on_pin_leader_button_pressed(Control *p_editor, String p_ stylebox = Object::cast_to<EditorResourcePicker>(p_editor)->get_edited_resource(); } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Pin Stylebox")); ur->add_do_method(this, "_pin_leading_stylebox", p_item_name, stylebox); @@ -3200,7 +3200,7 @@ void ThemeTypeEditor::_pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_ } void ThemeTypeEditor::_on_unpin_leader_button_pressed() { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Unpin Stylebox")); ur->add_do_method(this, "_unpin_leading_stylebox"); ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox); @@ -3269,7 +3269,7 @@ void ThemeTypeEditor::_update_stylebox_from_leading() { } void ThemeTypeEditor::_type_variation_changed(const String p_value) { - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Set Theme Type Variation")); if (p_value.is_empty()) { diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp index 4128029fc6..eaf72d36ba 100644 --- a/editor/plugins/tiles/atlas_merging_dialog.cpp +++ b/editor/plugins/tiles/atlas_merging_dialog.cpp @@ -31,7 +31,6 @@ #include "atlas_merging_dialog.h" #include "editor/editor_file_dialog.h" -#include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_undo_redo_manager.h" @@ -172,7 +171,7 @@ void AtlasMergingDialog::_merge_confirmed(String p_path) { Ref<Texture2D> new_texture_resource = ResourceLoader::load(p_path, "Texture2D"); merged->set_texture(new_texture_resource); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Merge TileSetAtlasSource")); int next_id = tile_set->get_next_source_id(); undo_redo->add_do_method(*tile_set, "add_source", merged, next_id); @@ -212,7 +211,7 @@ void AtlasMergingDialog::ok_pressed() { } void AtlasMergingDialog::cancel_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (int i = 0; i < commited_actions_count; i++) { undo_redo->undo(); } diff --git a/editor/plugins/tiles/tile_atlas_view.cpp b/editor/plugins/tiles/tile_atlas_view.cpp index 3c6ed0f049..0ac375407c 100644 --- a/editor/plugins/tiles/tile_atlas_view.cpp +++ b/editor/plugins/tiles/tile_atlas_view.cpp @@ -454,21 +454,31 @@ void TileAtlasView::set_padding(Side p_side, int p_padding) { margin_container_paddings[p_side] = p_padding; } -Vector2i TileAtlasView::get_atlas_tile_coords_at_pos(const Vector2 p_pos) const { +Vector2i TileAtlasView::get_atlas_tile_coords_at_pos(const Vector2 p_pos, bool p_clamp) const { Ref<Texture2D> texture = tile_set_atlas_source->get_texture(); - if (texture.is_valid()) { - Vector2i margins = tile_set_atlas_source->get_margins(); - Vector2i separation = tile_set_atlas_source->get_separation(); - Vector2i texture_region_size = tile_set_atlas_source->get_texture_region_size(); + if (!texture.is_valid()) { + return TileSetSource::INVALID_ATLAS_COORDS; + } + + Vector2i margins = tile_set_atlas_source->get_margins(); + Vector2i separation = tile_set_atlas_source->get_separation(); + Vector2i texture_region_size = tile_set_atlas_source->get_texture_region_size(); - // Compute index in atlas - Vector2 pos = p_pos - margins; - Vector2i ret = (pos / (texture_region_size + separation)).floor(); + // Compute index in atlas + Vector2 pos = p_pos - margins; + Vector2i ret = (pos / (texture_region_size + separation)).floor(); - return ret; + // Return invalid value (without clamp). + Rect2i rect = Rect2(Vector2i(), tile_set_atlas_source->get_atlas_grid_size()); + if (!p_clamp && !rect.has_point(ret)) { + return TileSetSource::INVALID_ATLAS_COORDS; } - return TileSetSource::INVALID_ATLAS_COORDS; + // Clamp. + ret.x = CLAMP(ret.x, 0, rect.size.x - 1); + ret.y = CLAMP(ret.y, 0, rect.size.y - 1); + + return ret; } void TileAtlasView::_update_alternative_tiles_rect_cache() { diff --git a/editor/plugins/tiles/tile_atlas_view.h b/editor/plugins/tiles/tile_atlas_view.h index 166abca2a3..f719bee704 100644 --- a/editor/plugins/tiles/tile_atlas_view.h +++ b/editor/plugins/tiles/tile_atlas_view.h @@ -128,7 +128,7 @@ public: void set_texture_grid_visible(bool p_visible) { base_tiles_texture_grid->set_visible(p_visible); }; void set_tile_shape_grid_visible(bool p_visible) { base_tiles_shape_grid->set_visible(p_visible); }; - Vector2i get_atlas_tile_coords_at_pos(const Vector2 p_pos) const; + Vector2i get_atlas_tile_coords_at_pos(const Vector2 p_pos, bool p_clamp = false) const; void add_control_over_atlas_tiles(Control *p_control, bool scaled = true) { if (scaled) { diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp index fb4787f13c..81aa9bf272 100644 --- a/editor/plugins/tiles/tile_data_editors.cpp +++ b/editor/plugins/tiles/tile_data_editors.cpp @@ -265,12 +265,12 @@ void GenericTilePolygonEditor::_zoom_changed() { } void GenericTilePolygonEditor::_advanced_menu_item_pressed(int p_item_pressed) { - Ref<EditorUndoRedoManager> undo_redo; + EditorUndoRedoManager *undo_redo; if (use_undo_redo) { - undo_redo = EditorNode::get_undo_redo(); + undo_redo = EditorUndoRedoManager::get_singleton(); } else { // This nice hack allows for discarding undo actions without making code too complex. - undo_redo.instantiate(); + undo_redo = memnew(EditorUndoRedoManager); } switch (p_item_pressed) { @@ -361,6 +361,10 @@ void GenericTilePolygonEditor::_advanced_menu_item_pressed(int p_item_pressed) { default: break; } + + if (!use_undo_redo) { + memdelete(undo_redo); + } } void GenericTilePolygonEditor::_grab_polygon_point(Vector2 p_pos, const Transform2D &p_polygon_xform, int &r_polygon_index, int &r_point_index) { @@ -445,12 +449,12 @@ void GenericTilePolygonEditor::_snap_to_half_pixel(Point2 &r_point) { } void GenericTilePolygonEditor::_base_control_gui_input(Ref<InputEvent> p_event) { - Ref<EditorUndoRedoManager> undo_redo; + EditorUndoRedoManager *undo_redo; if (use_undo_redo) { - undo_redo = EditorNode::get_undo_redo(); + undo_redo = EditorUndoRedoManager::get_singleton(); } else { // This nice hack allows for discarding undo actions without making code too complex. - undo_redo.instantiate(); + undo_redo = memnew(EditorUndoRedoManager); } real_t grab_threshold = EDITOR_GET("editors/polygon_editor/point_grab_radius"); @@ -493,11 +497,11 @@ void GenericTilePolygonEditor::_base_control_gui_input(Ref<InputEvent> p_event) Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { - if (mb->get_button_index() == MouseButton::WHEEL_UP && mb->is_ctrl_pressed()) { + if (mb->get_button_index() == MouseButton::WHEEL_UP && mb->is_command_or_control_pressed()) { editor_zoom_widget->set_zoom_by_increments(1); _zoom_changed(); accept_event(); - } else if (mb->get_button_index() == MouseButton::WHEEL_DOWN && mb->is_ctrl_pressed()) { + } else if (mb->get_button_index() == MouseButton::WHEEL_DOWN && mb->is_command_or_control_pressed()) { editor_zoom_widget->set_zoom_by_increments(-1); _zoom_changed(); accept_event(); @@ -643,6 +647,10 @@ void GenericTilePolygonEditor::_base_control_gui_input(Ref<InputEvent> p_event) } base_control->queue_redraw(); + + if (!use_undo_redo) { + memdelete(undo_redo); + } } void GenericTilePolygonEditor::set_use_undo_redo(bool p_use_undo_redo) { @@ -902,7 +910,7 @@ Variant TileDataDefaultEditor::_get_value(TileSetAtlasSource *p_tile_set_atlas_s } void TileDataDefaultEditor::_setup_undo_redo_action(TileSetAtlasSource *p_tile_set_atlas_source, HashMap<TileMapCell, Variant, TileMapCell> p_previous_values, Variant p_new_value) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (const KeyValue<TileMapCell, Variant> &E : p_previous_values) { Vector2i coords = E.key.get_atlas_coords(); undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/%s", coords.x, coords.y, E.key.alternative_tile, property), E.value); @@ -918,8 +926,8 @@ void TileDataDefaultEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas_ p_canvas_item->draw_set_transform_matrix(p_transform); Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()))); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()), true)); rect = rect.abs(); RBSet<TileMapCell> edited; @@ -953,7 +961,7 @@ void TileDataDefaultEditor::forward_painting_atlas_gui_input(TileAtlasView *p_ti Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { if (drag_type == DRAG_TYPE_PAINT) { - Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position())); + Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos, true), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position(), true)); for (int i = 0; i < line.size(); i++) { Vector2i coords = p_tile_set_atlas_source->get_tile_at_coords(line[i]); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { @@ -971,19 +979,19 @@ void TileDataDefaultEditor::forward_painting_atlas_gui_input(TileAtlasView *p_ti } } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { if (mb->get_button_index() == MouseButton::LEFT) { if (mb->is_pressed()) { - if (picker_button->is_pressed()) { - Vector2i coords = p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position()); + if (picker_button->is_pressed() || (mb->is_command_or_control_pressed() && !mb->is_shift_pressed())) { + Vector2i coords = p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position(), true); coords = p_tile_set_atlas_source->get_tile_at_coords(coords); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { _set_painted_value(p_tile_set_atlas_source, coords, 0); picker_button->set_pressed(false); } - } else if (mb->is_ctrl_pressed()) { + } else if (mb->is_command_or_control_pressed() && mb->is_shift_pressed()) { drag_type = DRAG_TYPE_PAINT_RECT; drag_modified.clear(); drag_painted_value = _get_painted_value(); @@ -992,7 +1000,7 @@ void TileDataDefaultEditor::forward_painting_atlas_gui_input(TileAtlasView *p_ti drag_type = DRAG_TYPE_PAINT; drag_modified.clear(); drag_painted_value = _get_painted_value(); - Vector2i coords = p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position()); + Vector2i coords = p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position(), true); coords = p_tile_set_atlas_source->get_tile_at_coords(coords); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { TileMapCell cell; @@ -1007,8 +1015,8 @@ void TileDataDefaultEditor::forward_painting_atlas_gui_input(TileAtlasView *p_ti } else { if (drag_type == DRAG_TYPE_PAINT_RECT) { Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position())); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position(), true)); rect = rect.abs(); drag_modified.clear(); @@ -1095,7 +1103,7 @@ void TileDataDefaultEditor::forward_painting_alternatives_gui_input(TileAtlasVie drag_last_pos = mb->get_position(); } } else { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Painting Tiles Property")); _setup_undo_redo_action(p_tile_set_atlas_source, drag_modified, drag_painted_value); undo_redo->commit_action(false); @@ -1345,7 +1353,7 @@ Variant TileDataOcclusionShapeEditor::_get_value(TileSetAtlasSource *p_tile_set_ } void TileDataOcclusionShapeEditor::_setup_undo_redo_action(TileSetAtlasSource *p_tile_set_atlas_source, HashMap<TileMapCell, Variant, TileMapCell> p_previous_values, Variant p_new_value) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (const KeyValue<TileMapCell, Variant> &E : p_previous_values) { Vector2i coords = E.key.get_atlas_coords(); undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/occlusion_layer_%d/polygon", coords.x, coords.y, E.key.alternative_tile, occlusion_layer), E.value); @@ -1524,26 +1532,32 @@ Variant TileDataCollisionEditor::_get_value(TileSetAtlasSource *p_tile_set_atlas } void TileDataCollisionEditor::_setup_undo_redo_action(TileSetAtlasSource *p_tile_set_atlas_source, HashMap<TileMapCell, Variant, TileMapCell> p_previous_values, Variant p_new_value) { - Array new_array = p_new_value; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + Dictionary new_dict = p_new_value; + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (KeyValue<TileMapCell, Variant> &E : p_previous_values) { - Array old_array = E.value; - Vector2i coords = E.key.get_atlas_coords(); - undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygons_count", coords.x, coords.y, E.key.alternative_tile, physics_layer), old_array.size()); - for (int i = 0; i < old_array.size(); i++) { - Dictionary dict = old_array[i]; - undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/points", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["points"]); - undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["one_way"]); - undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way_margin", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["one_way_margin"]); + + Dictionary old_dict = E.value; + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/linear_velocity", coords.x, coords.y, E.key.alternative_tile, physics_layer), old_dict["linear_velocity"]); + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/angular_velocity", coords.x, coords.y, E.key.alternative_tile, physics_layer), old_dict["angular_velocity"]); + Array old_polygon_array = old_dict["polygons"]; + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygons_count", coords.x, coords.y, E.key.alternative_tile, physics_layer), old_polygon_array.size()); + for (int i = 0; i < old_polygon_array.size(); i++) { + Dictionary polygon_dict = old_polygon_array[i]; + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/points", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["points"]); + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["one_way"]); + undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way_margin", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["one_way_margin"]); } - undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygons_count", coords.x, coords.y, E.key.alternative_tile, physics_layer), new_array.size()); - for (int i = 0; i < new_array.size(); i++) { - Dictionary dict = new_array[i]; - undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/points", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["points"]); - undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["one_way"]); - undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way_margin", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), dict["one_way_margin"]); + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/linear_velocity", coords.x, coords.y, E.key.alternative_tile, physics_layer), new_dict["linear_velocity"]); + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/angular_velocity", coords.x, coords.y, E.key.alternative_tile, physics_layer), new_dict["angular_velocity"]); + Array new_polygon_array = new_dict["polygons"]; + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygons_count", coords.x, coords.y, E.key.alternative_tile, physics_layer), new_polygon_array.size()); + for (int i = 0; i < new_polygon_array.size(); i++) { + Dictionary polygon_dict = new_polygon_array[i]; + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/points", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["points"]); + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["one_way"]); + undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/physics_layer_%d/polygon_%d/one_way_margin", coords.x, coords.y, E.key.alternative_tile, physics_layer, i), polygon_dict["one_way_margin"]); } } } @@ -1804,8 +1818,8 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas p_canvas_item->draw_set_transform_matrix(p_transform); Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()))); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()), true)); rect = rect.abs(); RBSet<TileMapCell> edited; @@ -1834,8 +1848,8 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas int terrain_set = int(painted["terrain_set"]); Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()))); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(p_transform.affine_inverse().xform(p_canvas_item->get_local_mouse_position()), true)); rect = rect.abs(); RBSet<TileMapCell> edited; @@ -1995,7 +2009,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { if (drag_type == DRAG_TYPE_PAINT_TERRAIN_SET) { - Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position())); + Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos, true), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position(), true)); for (int i = 0; i < line.size(); i++) { Vector2i coords = p_tile_set_atlas_source->get_tile_at_coords(line[i]); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { @@ -2029,7 +2043,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t } else if (drag_type == DRAG_TYPE_PAINT_TERRAIN_BITS) { int terrain_set = Dictionary(drag_painted_value)["terrain_set"]; int terrain = Dictionary(drag_painted_value)["terrain"]; - Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position())); + Vector<Vector2i> line = Geometry2D::bresenham_line(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_pos, true), p_tile_atlas_view->get_atlas_tile_coords_at_pos(mm->get_position(), true)); for (int i = 0; i < line.size(); i++) { Vector2i coords = p_tile_set_atlas_source->get_tile_at_coords(line[i]); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { @@ -2083,7 +2097,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t if (mb.is_valid()) { if (mb->get_button_index() == MouseButton::LEFT || mb->get_button_index() == MouseButton::RIGHT) { if (mb->is_pressed()) { - if (mb->get_button_index() == MouseButton::LEFT && picker_button->is_pressed()) { + if (picker_button->is_pressed() || (mb->is_command_or_control_pressed() && !mb->is_shift_pressed())) { Vector2i coords = p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position()); coords = p_tile_set_atlas_source->get_tile_at_coords(coords); if (coords != TileSetSource::INVALID_ATLAS_COORDS) { @@ -2126,7 +2140,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t if (mb->get_button_index() == MouseButton::RIGHT) { terrain_set = -1; } - if (mb->is_ctrl_pressed()) { + if (mb->is_command_or_control_pressed() && mb->is_shift_pressed()) { // Paint terrain set with rect. drag_type = DRAG_TYPE_PAINT_TERRAIN_SET_RECT; drag_modified.clear(); @@ -2167,7 +2181,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t if (mb->get_button_index() == MouseButton::RIGHT) { terrain = -1; } - if (mb->is_ctrl_pressed()) { + if (mb->is_command_or_control_pressed() && mb->is_shift_pressed()) { // Paint terrain bits with rect. drag_type = DRAG_TYPE_PAINT_TERRAIN_BITS_RECT; drag_modified.clear(); @@ -2227,11 +2241,11 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t } } } else { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (drag_type == DRAG_TYPE_PAINT_TERRAIN_SET_RECT) { Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position())); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position(), true)); rect = rect.abs(); RBSet<TileMapCell> edited; @@ -2318,8 +2332,8 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t int terrain = int(painted["terrain"]); Rect2i rect; - rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos)); - rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position())); + rect.set_position(p_tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_pos, true)); + rect.set_end(p_tile_atlas_view->get_atlas_tile_coords_at_pos(mb->get_position(), true)); rect = rect.abs(); RBSet<TileMapCell> edited; @@ -2600,7 +2614,7 @@ void TileDataTerrainsEditor::forward_painting_alternatives_gui_input(TileAtlasVi } } } else { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (drag_type == DRAG_TYPE_PAINT_TERRAIN_SET) { undo_redo->create_action(TTR("Painting Tiles Property")); for (KeyValue<TileMapCell, Variant> &E : drag_modified) { @@ -2747,7 +2761,7 @@ Variant TileDataNavigationEditor::_get_value(TileSetAtlasSource *p_tile_set_atla } void TileDataNavigationEditor::_setup_undo_redo_action(TileSetAtlasSource *p_tile_set_atlas_source, HashMap<TileMapCell, Variant, TileMapCell> p_previous_values, Variant p_new_value) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (const KeyValue<TileMapCell, Variant> &E : p_previous_values) { Vector2i coords = E.key.get_atlas_coords(); undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/navigation_layer_%d/polygon", coords.x, coords.y, E.key.alternative_tile, navigation_layer), E.value); diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp index e9c313a372..885d41b8da 100644 --- a/editor/plugins/tiles/tile_map_editor.cpp +++ b/editor/plugins/tiles/tile_map_editor.cpp @@ -273,7 +273,7 @@ void TileMapEditorTilesPlugin::_patterns_item_list_gui_input(const Ref<InputEven if (ED_IS_SHORTCUT("tiles_editor/paste", p_event) && p_event->is_pressed() && !p_event->is_echo()) { select_last_pattern = true; int new_pattern_index = tile_set->get_patterns_count(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add TileSet pattern")); undo_redo->add_do_method(*tile_set, "add_pattern", tile_map_clipboard, new_pattern_index); undo_redo->add_undo_method(*tile_set, "remove_pattern", new_pattern_index); @@ -283,7 +283,7 @@ void TileMapEditorTilesPlugin::_patterns_item_list_gui_input(const Ref<InputEven if (ED_IS_SHORTCUT("tiles_editor/delete", p_event) && p_event->is_pressed() && !p_event->is_echo()) { Vector<int> selected = patterns_item_list->get_selected_items(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove TileSet patterns")); for (int i = 0; i < selected.size(); i++) { int pattern_index = selected[i]; @@ -515,7 +515,7 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p if (ED_IS_SHORTCUT("tiles_editor/cut", p_event)) { // Delete selected tiles. if (!tile_map_selection.is_empty()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete tiles")); for (const Vector2i &E : tile_map_selection) { undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE); @@ -547,7 +547,7 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p if (ED_IS_SHORTCUT("tiles_editor/delete", p_event)) { // Delete selected tiles. if (!tile_map_selection.is_empty()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete tiles")); for (const Vector2i &E : tile_map_selection) { undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE); @@ -646,12 +646,12 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p } } else { // Check if we are picking a tile. - if (picker_button->is_pressed() || (Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { + if (picker_button->is_pressed() || (Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { drag_type = DRAG_TYPE_PICK; drag_start_mouse_pos = mpos; } else { // Paint otherwise. - if (tool_buttons_group->get_pressed_button() == paint_tool_button && !Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT)) { + if (tool_buttons_group->get_pressed_button() == paint_tool_button && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT)) { drag_type = DRAG_TYPE_PAINT; drag_start_mouse_pos = mpos; drag_modified.clear(); @@ -667,11 +667,11 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } _fix_invalid_tiles_in_tile_map_selection(); - } else if (tool_buttons_group->get_pressed_button() == line_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CTRL))) { + } else if (tool_buttons_group->get_pressed_button() == line_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL))) { drag_type = DRAG_TYPE_LINE; drag_start_mouse_pos = mpos; drag_modified.clear(); - } else if (tool_buttons_group->get_pressed_button() == rect_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && Input::get_singleton()->is_key_pressed(Key::CTRL))) { + } else if (tool_buttons_group->get_pressed_button() == rect_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL))) { drag_type = DRAG_TYPE_RECT; drag_start_mouse_pos = mpos; drag_modified.clear(); @@ -742,7 +742,7 @@ void TileMapEditorTilesPlugin::forward_canvas_draw_over_viewport(Control *p_over // Draw the selection. if ((tiles_bottom_panel->is_visible_in_tree() || patterns_bottom_panel->is_visible_in_tree()) && tool_buttons_group->get_pressed_button() == select_tool_button) { // In select mode, we only draw the current selection if we are modifying it (pressing control or shift). - if (drag_type == DRAG_TYPE_MOVE || (drag_type == DRAG_TYPE_SELECT && !Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { + if (drag_type == DRAG_TYPE_MOVE || (drag_type == DRAG_TYPE_SELECT && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { // Do nothing } else { Color grid_color = EDITOR_GET("editors/tiles_editor/grid_color"); @@ -812,7 +812,7 @@ void TileMapEditorTilesPlugin::forward_canvas_draw_over_viewport(Control *p_over Vector2i coords = tile_map->map_pattern(tile_map->local_to_map(drag_last_mouse_pos - mouse_offset), clipboard_used_cells[i], tile_map_clipboard); preview[coords] = TileMapCell(tile_map_clipboard->get_cell_source_id(clipboard_used_cells[i]), tile_map_clipboard->get_cell_atlas_coords(clipboard_used_cells[i]), tile_map_clipboard->get_cell_alternative_tile(clipboard_used_cells[i])); } - } else if (!picker_button->is_pressed() && !(drag_type == DRAG_TYPE_NONE && Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { + } else if (!picker_button->is_pressed() && !(drag_type == DRAG_TYPE_NONE && Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { bool expand_grid = false; if (tool_buttons_group->get_pressed_button() == paint_tool_button && drag_type == DRAG_TYPE_NONE) { // Preview for a single pattern. @@ -1240,20 +1240,20 @@ void TileMapEditorTilesPlugin::_stop_dragging() { Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * tile_map->get_global_transform(); Vector2 mpos = xform.affine_inverse().xform(CanvasItemEditor::get_singleton()->get_viewport_control()->get_local_mouse_position()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (drag_type) { case DRAG_TYPE_SELECT: { undo_redo->create_action(TTR("Change selection")); undo_redo->add_undo_method(this, "_set_tile_map_selection", _get_tile_map_selection()); - if (!Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CTRL)) { + if (!Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL)) { tile_map_selection.clear(); } Rect2i rect = Rect2i(tile_map->local_to_map(drag_start_mouse_pos), tile_map->local_to_map(mpos) - tile_map->local_to_map(drag_start_mouse_pos)).abs(); for (int x = rect.position.x; x <= rect.get_end().x; x++) { for (int y = rect.position.y; y <= rect.get_end().y; y++) { Vector2i coords = Vector2i(x, y); - if (Input::get_singleton()->is_key_pressed(Key::CTRL)) { + if (Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL)) { if (tile_map_selection.has(coords)) { tile_map_selection.erase(coords); } @@ -1716,8 +1716,8 @@ void TileMapEditorTilesPlugin::_tile_atlas_control_draw() { // Draw the selection rect. if (tile_set_dragging_selection) { - Vector2i start_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_set_drag_start_mouse_pos); - Vector2i end_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_set_drag_start_mouse_pos, true); + Vector2i end_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i region = Rect2i(start_tile, end_tile - start_tile).abs(); region.size += Vector2i(1, 1); @@ -1812,8 +1812,8 @@ void TileMapEditorTilesPlugin::_tile_atlas_control_gui_input(const Ref<InputEven tile_set_selection.clear(); } // Compute the covered area. - Vector2i start_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_set_drag_start_mouse_pos); - Vector2i end_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_set_drag_start_mouse_pos, true); + Vector2i end_tile = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); if (start_tile != TileSetSource::INVALID_ATLAS_COORDS && end_tile != TileSetSource::INVALID_ATLAS_COORDS) { Rect2i region = Rect2i(start_tile, end_tile - start_tile).abs(); region.size += Vector2i(1, 1); @@ -2236,7 +2236,6 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { scene_tiles_list = memnew(ItemList); scene_tiles_list->set_h_size_flags(Control::SIZE_EXPAND_FILL); scene_tiles_list->set_v_size_flags(Control::SIZE_EXPAND_FILL); - scene_tiles_list->set_drag_forwarding_compat(this); scene_tiles_list->set_select_mode(ItemList::SELECT_MULTI); scene_tiles_list->connect("multi_selected", callable_mp(this, &TileMapEditorTilesPlugin::_scenes_list_multi_selected)); scene_tiles_list->connect("empty_clicked", callable_mp(this, &TileMapEditorTilesPlugin::_scenes_list_lmb_empty_clicked)); @@ -2641,7 +2640,7 @@ void TileMapEditorTerrainsPlugin::_stop_dragging() { Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * tile_map->get_global_transform(); Vector2 mpos = xform.affine_inverse().xform(CanvasItemEditor::get_singleton()->get_viewport_control()->get_local_mouse_position()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (drag_type) { case DRAG_TYPE_PICK: { Vector2i coords = tile_map->local_to_map(mpos); @@ -2875,7 +2874,7 @@ bool TileMapEditorTerrainsPlugin::forward_canvas_gui_input(const Ref<InputEvent> drag_type = DRAG_TYPE_PICK; } else { // Paint otherwise. - if (tool_buttons_group->get_pressed_button() == paint_tool_button && !Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT)) { + if (tool_buttons_group->get_pressed_button() == paint_tool_button && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT)) { if (selected_terrain_set < 0 || selected_terrain < 0 || (selected_type == SELECTED_TYPE_PATTERN && !selected_terrains_pattern.is_valid())) { return true; } @@ -2890,14 +2889,14 @@ bool TileMapEditorTerrainsPlugin::forward_canvas_gui_input(const Ref<InputEvent> drag_modified[E.key] = tile_map->get_cell(tile_map_layer, E.key); tile_map->set_cell(tile_map_layer, E.key, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } - } else if (tool_buttons_group->get_pressed_button() == line_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CTRL))) { + } else if (tool_buttons_group->get_pressed_button() == line_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL))) { if (selected_terrain_set < 0 || selected_terrain < 0 || (selected_type == SELECTED_TYPE_PATTERN && !selected_terrains_pattern.is_valid())) { return true; } drag_type = DRAG_TYPE_LINE; drag_start_mouse_pos = mpos; drag_modified.clear(); - } else if (tool_buttons_group->get_pressed_button() == rect_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && Input::get_singleton()->is_key_pressed(Key::CTRL))) { + } else if (tool_buttons_group->get_pressed_button() == rect_tool_button || (tool_buttons_group->get_pressed_button() == paint_tool_button && Input::get_singleton()->is_key_pressed(Key::SHIFT) && Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL))) { if (selected_terrain_set < 0 || selected_terrain < 0 || (selected_type == SELECTED_TYPE_PATTERN && !selected_terrains_pattern.is_valid())) { return true; } @@ -2982,7 +2981,7 @@ void TileMapEditorTerrainsPlugin::forward_canvas_draw_over_viewport(Control *p_o tile_xform.set_scale(tile_shape_size); tile_set->draw_tile_shape(p_overlay, xform * tile_xform, Color(1.0, 1.0, 1.0), false); } - } else if (!picker_button->is_pressed() && !(drag_type == DRAG_TYPE_NONE && Input::get_singleton()->is_key_pressed(Key::CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { + } else if (!picker_button->is_pressed() && !(drag_type == DRAG_TYPE_NONE && Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL) && !Input::get_singleton()->is_key_pressed(Key::SHIFT))) { bool expand_grid = false; if (tool_buttons_group->get_pressed_button() == paint_tool_button && drag_type == DRAG_TYPE_NONE) { // Preview for a single tile. @@ -3489,7 +3488,7 @@ void TileMapEditor::_advanced_menu_button_id_pressed(int p_id) { } if (p_id == 0) { // Replace Tile Proxies - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Replace Tiles with Proxies")); for (int layer_index = 0; layer_index < tile_map->get_layers_count(); layer_index++) { TypedArray<Vector2i> used_cells = tile_map->get_used_cells(layer_index); @@ -3706,8 +3705,8 @@ void TileMapEditor::_update_layers_selection() { } void TileMapEditor::_move_tile_map_array_element(Object *p_undo_redo, Object *p_edited, String p_array_prefix, int p_from_index, int p_to_pos) { - Ref<EditorUndoRedoManager> undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(undo_redo_man.is_null()); + EditorUndoRedoManager *undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo_man); TileMap *tile_map = Object::cast_to<TileMap>(p_edited); if (!tile_map) { diff --git a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp index ef82e748a8..f6aeffa13f 100644 --- a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp +++ b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp @@ -30,10 +30,11 @@ #include "tile_proxies_manager_dialog.h" -#include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/editor_undo_redo_manager.h" +#include "scene/gui/dialogs.h" +#include "scene/gui/popup_menu.h" #include "scene/gui/separator.h" void TileProxiesManagerDialog::_right_clicked(int p_item, Vector2 p_local_mouse_pos, MouseButton p_mouse_button_index, Object *p_item_list) { @@ -55,7 +56,7 @@ void TileProxiesManagerDialog::_menu_id_pressed(int p_id) { } void TileProxiesManagerDialog::_delete_selected_bindings() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Tile Proxies")); Vector<int> source_level_selected = source_level_list->get_selected_items(); @@ -155,7 +156,7 @@ void TileProxiesManagerDialog::_property_changed(const String &p_path, const Var } void TileProxiesManagerDialog::_add_button_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (from.source_id != TileSet::INVALID_SOURCE && to.source_id != TileSet::INVALID_SOURCE) { Vector2i from_coords = from.get_atlas_coords(); Vector2i to_coords = to.get_atlas_coords(); @@ -196,7 +197,7 @@ void TileProxiesManagerDialog::_add_button_pressed() { } void TileProxiesManagerDialog::_clear_invalid_button_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete All Invalid Tile Proxies")); undo_redo->add_do_method(*tile_set, "cleanup_invalid_tile_proxies"); @@ -224,7 +225,7 @@ void TileProxiesManagerDialog::_clear_invalid_button_pressed() { } void TileProxiesManagerDialog::_clear_all_button_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete All Tile Proxies")); undo_redo->add_do_method(*tile_set, "clear_tile_proxies"); @@ -305,7 +306,7 @@ void TileProxiesManagerDialog::_unhandled_key_input(Ref<InputEvent> p_event) { } void TileProxiesManagerDialog::cancel_pressed() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (int i = 0; i < commited_actions_count; i++) { undo_redo->undo(); } diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 146a53f3dd..32421daa92 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -110,7 +110,7 @@ void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get_property_list p_list->push_back(PropertyInfo(Variant::STRING, "name", PROPERTY_HINT_NONE, "")); p_list->push_back(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D")); p_list->push_back(PropertyInfo(Variant::VECTOR2I, "margins", PROPERTY_HINT_NONE, "suffix:px")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE, "suffix:px")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE)); p_list->push_back(PropertyInfo(Variant::VECTOR2I, "texture_region_size", PROPERTY_HINT_NONE, "suffix:px")); p_list->push_back(PropertyInfo(Variant::BOOL, "use_texture_padding", PROPERTY_HINT_NONE, "")); } @@ -164,7 +164,7 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na if (p_name == "atlas_coords") { Vector2i as_vector2i = Vector2i(p_value); bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(as_vector2i, tile_set_atlas_source->get_tile_size_in_atlas(coords), tile_set_atlas_source->get_tile_animation_columns(coords), tile_set_atlas_source->get_tile_animation_separation(coords), tile_set_atlas_source->get_tile_animation_frames_count(coords), coords); - ERR_FAIL_COND_V(!has_room_for_tile, false); + ERR_FAIL_COND_V_EDMSG(!has_room_for_tile, false, "Cannot move the tile, invalid coordinates or not enough room in the atlas for the tile and its animation frames."); if (tiles_set_atlas_source_editor->selection.front()->get().tile == coords) { tiles_set_atlas_source_editor->selection.clear(); @@ -223,7 +223,7 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na for (TileSelection tile : tiles) { bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(tile.tile, tile_set_atlas_source->get_tile_size_in_atlas(tile.tile), p_value, tile_set_atlas_source->get_tile_animation_separation(tile.tile), tile_set_atlas_source->get_tile_animation_frames_count(tile.tile), tile.tile); if (!has_room_for_tile) { - ERR_PRINT("No room for tile"); + ERR_PRINT(vformat("Cannot change the number of columns to %s for tile animation. Not enough room in the atlas to layout %s frame(s).", p_value, tile_set_atlas_source->get_tile_animation_frames_count(tile.tile))); } else { tile_set_atlas_source->set_tile_animation_columns(tile.tile, p_value); } @@ -234,7 +234,7 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na for (TileSelection tile : tiles) { bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(tile.tile, tile_set_atlas_source->get_tile_size_in_atlas(tile.tile), tile_set_atlas_source->get_tile_animation_columns(tile.tile), p_value, tile_set_atlas_source->get_tile_animation_frames_count(tile.tile), tile.tile); if (!has_room_for_tile) { - ERR_PRINT("No room for tile"); + ERR_PRINT(vformat("Cannot change separation between frames of the animation to %s. Not enough room in the atlas to layout %s frame(s).", p_value, tile_set_atlas_source->get_tile_animation_frames_count(tile.tile))); } else { tile_set_atlas_source->set_tile_animation_separation(tile.tile, p_value); } @@ -249,11 +249,16 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na return true; } else if (p_name == "animation_frames_count") { for (TileSelection tile : tiles) { - bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(tile.tile, tile_set_atlas_source->get_tile_size_in_atlas(tile.tile), tile_set_atlas_source->get_tile_animation_columns(tile.tile), tile_set_atlas_source->get_tile_animation_separation(tile.tile), p_value, tile.tile); + int frame_count = p_value; + if (frame_count == 0) { + frame_count = 1; + } + + bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(tile.tile, tile_set_atlas_source->get_tile_size_in_atlas(tile.tile), tile_set_atlas_source->get_tile_animation_columns(tile.tile), tile_set_atlas_source->get_tile_animation_separation(tile.tile), frame_count, tile.tile); if (!has_room_for_tile) { - ERR_PRINT("No room for tile"); + ERR_PRINT(vformat("Cannot add frames to the animation, not enough room in the atlas to layout %s frames.", frame_count)); } else { - tile_set_atlas_source->set_tile_animation_frames_count(tile.tile, p_value); + tile_set_atlas_source->set_tile_animation_frames_count(tile.tile, frame_count); } } notify_property_list_changed(); @@ -1015,44 +1020,13 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven // Handle the event. Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i last_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i last_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_last_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Vector2i grid_size = tile_set_atlas_source->get_atlas_grid_size(); - if (drag_type == DRAG_TYPE_NONE) { - if (selection.size() == 1) { - // Change the cursor depending on the hovered thing. - TileSelection selected = selection.front()->get(); - if (selected.tile != TileSetSource::INVALID_ATLAS_COORDS && selected.alternative == 0) { - Vector2 mouse_local_pos = tile_atlas_control->get_local_mouse_position(); - Vector2i size_in_atlas = tile_set_atlas_source->get_tile_size_in_atlas(selected.tile); - Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile); - Size2 zoomed_size = resize_handle->get_size() / tile_atlas_view->get_zoom(); - Rect2 rect = region.grow_individual(zoomed_size.x, zoomed_size.y, 0, 0); - const Vector2i coords[] = { Vector2i(0, 0), Vector2i(1, 0), Vector2i(1, 1), Vector2i(0, 1) }; - const Vector2i directions[] = { Vector2i(0, -1), Vector2i(1, 0), Vector2i(0, 1), Vector2i(-1, 0) }; - CursorShape cursor_shape = CURSOR_ARROW; - bool can_grow[4]; - for (int i = 0; i < 4; i++) { - can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile); - can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1; - } - for (int i = 0; i < 4; i++) { - Vector2 pos = rect.position + rect.size * coords[i]; - if (can_grow[i] && can_grow[(i + 3) % 4] && Rect2(pos, zoomed_size).has_point(mouse_local_pos)) { - cursor_shape = (i % 2) ? CURSOR_BDIAGSIZE : CURSOR_FDIAGSIZE; - } - Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4]; - if (can_grow[i] && Rect2((pos + next_pos) / 2.0, zoomed_size).has_point(mouse_local_pos)) { - cursor_shape = (i % 2) ? CURSOR_HSIZE : CURSOR_VSIZE; - } - } - tile_atlas_control->set_default_cursor_shape(cursor_shape); - } - } - } else if (drag_type == DRAG_TYPE_CREATE_BIG_TILE) { + if (drag_type == DRAG_TYPE_CREATE_BIG_TILE) { // Create big tile. new_base_tiles_coords = new_base_tiles_coords.max(Vector2i(0, 0)).min(grid_size - Vector2i(1, 1)); @@ -1097,7 +1071,6 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven // Move tile. Vector2 mouse_offset = (Vector2(tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile)) / 2.0 - Vector2(0.5, 0.5)) * tile_set->get_tile_size(); Vector2i coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position() - mouse_offset); - coords = coords.max(Vector2i(0, 0)).min(grid_size - Vector2i(1, 1)); if (drag_current_tile != coords && tile_set_atlas_source->has_room_for_tile(coords, tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile), tile_set_atlas_source->get_tile_animation_columns(drag_current_tile), tile_set_atlas_source->get_tile_animation_separation(drag_current_tile), tile_set_atlas_source->get_tile_animation_frames_count(drag_current_tile), drag_current_tile)) { tile_set_atlas_source->move_tile_in_atlas(drag_current_tile, coords); selection.clear(); @@ -1243,7 +1216,6 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven Rect2 rect = region.grow_individual(zoomed_size.x, zoomed_size.y, 0, 0); const Vector2i coords[] = { Vector2i(0, 0), Vector2i(1, 0), Vector2i(1, 1), Vector2i(0, 1) }; const Vector2i directions[] = { Vector2i(0, -1), Vector2i(1, 0), Vector2i(0, 1), Vector2i(-1, 0) }; - CursorShape cursor_shape = CURSOR_ARROW; bool can_grow[4]; for (int i = 0; i < 4; i++) { can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile); @@ -1257,7 +1229,6 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven drag_last_mouse_pos = drag_start_mouse_pos; drag_current_tile = selected.tile; drag_start_tile_shape = Rect2i(selected.tile, tile_set_atlas_source->get_tile_size_in_atlas(selected.tile)); - cursor_shape = (i % 2) ? CURSOR_BDIAGSIZE : CURSOR_FDIAGSIZE; } Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4]; if (can_grow[i] && Rect2((pos + next_pos) / 2.0, zoomed_size).has_point(mouse_local_pos)) { @@ -1266,10 +1237,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven drag_last_mouse_pos = drag_start_mouse_pos; drag_current_tile = selected.tile; drag_start_tile_shape = Rect2i(selected.tile, tile_set_atlas_source->get_tile_size_in_atlas(selected.tile)); - cursor_shape = (i % 2) ? CURSOR_HSIZE : CURSOR_VSIZE; } } - tile_atlas_control->set_default_cursor_shape(cursor_shape); } } @@ -1292,7 +1261,6 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven drag_last_mouse_pos = drag_start_mouse_pos; drag_current_tile = selected.tile; drag_start_tile_shape = Rect2i(selected.tile, tile_set_atlas_source->get_tile_size_in_atlas(selected.tile)); - tile_atlas_control->set_default_cursor_shape(CURSOR_MOVE); } else { // Start selection dragging. drag_type = DRAG_TYPE_RECT_SELECT; @@ -1332,7 +1300,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven } void TileSetAtlasSourceEditor::_end_dragging() { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (drag_type) { case DRAG_TYPE_CREATE_TILES: undo_redo->create_action(TTR("Create tiles")); @@ -1370,8 +1338,8 @@ void TileSetAtlasSourceEditor::_end_dragging() { undo_redo->commit_action(); } break; case DRAG_TYPE_CREATE_TILES_USING_RECT: { - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i area = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs(); area.set_end((area.get_end() + Vector2i(1, 1)).min(tile_set_atlas_source->get_atlas_grid_size())); undo_redo->create_action(TTR("Create tiles")); @@ -1387,8 +1355,8 @@ void TileSetAtlasSourceEditor::_end_dragging() { undo_redo->commit_action(); } break; case DRAG_TYPE_REMOVE_TILES_USING_RECT: { - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i area = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs(); area.set_end((area.get_end() + Vector2i(1, 1)).min(tile_set_atlas_source->get_atlas_grid_size())); List<PropertyInfo> list; @@ -1438,8 +1406,8 @@ void TileSetAtlasSourceEditor::_end_dragging() { } break; case DRAG_TYPE_RECT_SELECT: { - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); ERR_FAIL_COND(start_base_tiles_coords == TileSetSource::INVALID_ATLAS_COORDS); ERR_FAIL_COND(new_base_tiles_coords == TileSetSource::INVALID_ATLAS_COORDS); @@ -1509,12 +1477,12 @@ void TileSetAtlasSourceEditor::_end_dragging() { // We have a tile. menu_option_coords = selected.tile; menu_option_alternative = 0; - base_tile_popup_menu->popup(Rect2i(get_global_mouse_position(), Size2i())); + base_tile_popup_menu->popup(Rect2i(get_screen_transform().xform(get_local_mouse_position()), Size2i())); } else if (hovered_base_tile_coords != TileSetSource::INVALID_ATLAS_COORDS) { // We don't have a tile, but can create one. menu_option_coords = hovered_base_tile_coords; menu_option_alternative = TileSetSource::INVALID_TILE_ALTERNATIVE; - empty_base_tile_popup_menu->popup(Rect2i(get_global_mouse_position(), Size2i())); + empty_base_tile_popup_menu->popup(Rect2i(get_screen_transform().xform(get_local_mouse_position()), Size2i())); } } break; case DRAG_TYPE_RESIZE_TOP_LEFT: @@ -1543,7 +1511,67 @@ void TileSetAtlasSourceEditor::_end_dragging() { drag_modified_tiles.clear(); drag_type = DRAG_TYPE_NONE; - tile_atlas_control->set_default_cursor_shape(CURSOR_ARROW); + // Change mouse accordingly. +} + +Control::CursorShape TileSetAtlasSourceEditor::get_cursor_shape(const Point2 &p_pos) const { + Control::CursorShape cursor_shape = get_default_cursor_shape(); + if (drag_type == DRAG_TYPE_NONE) { + if (selection.size() == 1) { + // Change the cursor depending on the hovered thing. + TileSelection selected = selection.front()->get(); + if (selected.tile != TileSetSource::INVALID_ATLAS_COORDS && selected.alternative == 0) { + Transform2D xform = tile_atlas_control->get_global_transform().affine_inverse() * get_global_transform(); + Vector2 mouse_local_pos = xform.xform(p_pos); + Vector2i size_in_atlas = tile_set_atlas_source->get_tile_size_in_atlas(selected.tile); + Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile); + Size2 zoomed_size = resize_handle->get_size() / tile_atlas_view->get_zoom(); + Rect2 rect = region.grow_individual(zoomed_size.x, zoomed_size.y, 0, 0); + const Vector2i coords[] = { Vector2i(0, 0), Vector2i(1, 0), Vector2i(1, 1), Vector2i(0, 1) }; + const Vector2i directions[] = { Vector2i(0, -1), Vector2i(1, 0), Vector2i(0, 1), Vector2i(-1, 0) }; + bool can_grow[4]; + for (int i = 0; i < 4; i++) { + can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile); + can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1; + } + for (int i = 0; i < 4; i++) { + Vector2 pos = rect.position + rect.size * coords[i]; + if (can_grow[i] && can_grow[(i + 3) % 4] && Rect2(pos, zoomed_size).has_point(mouse_local_pos)) { + cursor_shape = (i % 2) ? CURSOR_BDIAGSIZE : CURSOR_FDIAGSIZE; + } + Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4]; + if (can_grow[i] && Rect2((pos + next_pos) / 2.0, zoomed_size).has_point(mouse_local_pos)) { + cursor_shape = (i % 2) ? CURSOR_HSIZE : CURSOR_VSIZE; + } + } + } + } + } else { + switch (drag_type) { + case DRAG_TYPE_RESIZE_TOP_LEFT: + case DRAG_TYPE_RESIZE_BOTTOM_RIGHT: + cursor_shape = CURSOR_FDIAGSIZE; + break; + case DRAG_TYPE_RESIZE_TOP: + case DRAG_TYPE_RESIZE_BOTTOM: + cursor_shape = CURSOR_VSIZE; + break; + case DRAG_TYPE_RESIZE_TOP_RIGHT: + case DRAG_TYPE_RESIZE_BOTTOM_LEFT: + cursor_shape = CURSOR_BDIAGSIZE; + break; + case DRAG_TYPE_RESIZE_LEFT: + case DRAG_TYPE_RESIZE_RIGHT: + cursor_shape = CURSOR_HSIZE; + break; + case DRAG_TYPE_MOVE_TILE: + cursor_shape = CURSOR_MOVE; + break; + default: + break; + } + } + return cursor_shape; } HashMap<Vector2i, List<const PropertyInfo *>> TileSetAtlasSourceEditor::_group_properties_per_tiles(const List<PropertyInfo> &r_list, const TileSetAtlasSource *p_atlas) { @@ -1563,7 +1591,7 @@ HashMap<Vector2i, List<const PropertyInfo *>> TileSetAtlasSourceEditor::_group_p } void TileSetAtlasSourceEditor::_menu_option(int p_option) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_option) { case TILE_DELETE: { @@ -1747,8 +1775,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() { } } else if (drag_type == DRAG_TYPE_RECT_SELECT || drag_type == DRAG_TYPE_REMOVE_TILES_USING_RECT) { // Draw tiles to be removed. - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i area = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs(); area.set_end((area.get_end() + Vector2i(1, 1)).min(tile_set_atlas_source->get_atlas_grid_size())); @@ -1777,8 +1805,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() { Vector2i separation = tile_set_atlas_source->get_separation(); Vector2i tile_size = tile_set_atlas_source->get_texture_region_size(); - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i area = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs(); area.set_end((area.get_end() + Vector2i(1, 1)).min(tile_set_atlas_source->get_atlas_grid_size())); for (int x = area.get_position().x; x < area.get_end().x; x++) { @@ -1795,8 +1823,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() { // Draw the hovered tile. if (drag_type == DRAG_TYPE_REMOVE_TILES_USING_RECT || drag_type == DRAG_TYPE_CREATE_TILES_USING_RECT) { // Draw the rect. - Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos); - Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position()); + Vector2i start_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(drag_start_mouse_pos, true); + Vector2i new_base_tiles_coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position(), true); Rect2i area = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs(); area.set_end((area.get_end() + Vector2i(1, 1)).min(tile_set_atlas_source->get_atlas_grid_size())); Vector2i margins = tile_set_atlas_source->get_margins(); @@ -1950,7 +1978,7 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_gui_input(const Ref<In selected = selection.front()->get(); menu_option_coords = selected.tile; menu_option_alternative = selected.alternative; - alternative_tile_popup_menu->popup(Rect2i(get_global_mouse_position(), Size2i())); + alternative_tile_popup_menu->popup(Rect2i(get_screen_transform().xform(get_local_mouse_position()), Size2i())); } } @@ -2079,8 +2107,8 @@ void TileSetAtlasSourceEditor::_atlas_source_proxy_object_changed(String p_what) } void TileSetAtlasSourceEditor::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value) { - Ref<EditorUndoRedoManager> undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(!undo_redo_man.is_valid()); + EditorUndoRedoManager *undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo_man); #define ADD_UNDO(obj, property) undo_redo_man->add_undo_property(obj, property, obj->get(property)); @@ -2210,7 +2238,7 @@ void TileSetAtlasSourceEditor::_auto_create_tiles() { Vector2i separation = tile_set_atlas_source->get_separation(); Vector2i texture_region_size = tile_set_atlas_source->get_texture_region_size(); Size2i grid_size = tile_set_atlas_source->get_atlas_grid_size(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Create tiles in non-transparent texture regions")); for (int y = 0; y < grid_size.y; y++) { for (int x = 0; x < grid_size.x; x++) { @@ -2256,7 +2284,7 @@ void TileSetAtlasSourceEditor::_auto_remove_tiles() { Vector2i texture_region_size = tile_set_atlas_source->get_texture_region_size(); Vector2i grid_size = tile_set_atlas_source->get_atlas_grid_size(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove tiles in fully transparent texture regions")); List<PropertyInfo> list; diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.h b/editor/plugins/tiles/tile_set_atlas_source_editor.h index 85f780ea26..bcab1296ad 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.h +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.h @@ -277,6 +277,8 @@ public: void edit(Ref<TileSet> p_tile_set, TileSetAtlasSource *p_tile_set_source, int p_source_id); void init_source(); + virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override; + TileSetAtlasSourceEditor(); ~TileSetAtlasSourceEditor(); }; diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp index b44cb18dc7..53c2d4de51 100644 --- a/editor/plugins/tiles/tile_set_editor.cpp +++ b/editor/plugins/tiles/tile_set_editor.cpp @@ -67,7 +67,7 @@ void TileSetEditor::_drop_data_fw(const Point2 &p_point, const Variant &p_data, // Actually create the new source. Ref<TileSetAtlasSource> atlas_source = memnew(TileSetAtlasSource); atlas_source->set_texture(resource); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add a new atlas source")); undo_redo->add_do_method(*tile_set, "add_source", atlas_source, source_id); undo_redo->add_do_method(*atlas_source, "set_texture_region_size", tile_set->get_tile_size()); @@ -260,7 +260,7 @@ void TileSetEditor::_source_delete_pressed() { Ref<TileSetSource> source = tile_set->get_source(to_delete); // Remove the source. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove source")); undo_redo->add_do_method(*tile_set, "remove_source", to_delete); undo_redo->add_undo_method(*tile_set, "add_source", source, to_delete); @@ -279,7 +279,7 @@ void TileSetEditor::_source_add_id_pressed(int p_id_pressed) { Ref<TileSetAtlasSource> atlas_source = memnew(TileSetAtlasSource); // Add a new source. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add atlas source")); undo_redo->add_do_method(*tile_set, "add_source", atlas_source, source_id); undo_redo->add_do_method(*atlas_source, "set_texture_region_size", tile_set->get_tile_size()); @@ -294,7 +294,7 @@ void TileSetEditor::_source_add_id_pressed(int p_id_pressed) { Ref<TileSetScenesCollectionSource> scene_collection_source = memnew(TileSetScenesCollectionSource); // Add a new source. - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add atlas source")); undo_redo->add_do_method(*tile_set, "add_source", scene_collection_source, source_id); undo_redo->add_undo_method(*tile_set, "remove_source", source_id); @@ -369,7 +369,7 @@ void TileSetEditor::_patterns_item_list_gui_input(const Ref<InputEvent> &p_event if (ED_IS_SHORTCUT("tiles_editor/delete", p_event) && p_event->is_pressed() && !p_event->is_echo()) { Vector<int> selected = patterns_item_list->get_selected_items(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove TileSet patterns")); for (int i = 0; i < selected.size(); i++) { int pattern_index = selected[i]; @@ -416,8 +416,8 @@ void TileSetEditor::_tab_changed(int p_tab_changed) { } void TileSetEditor::_move_tile_set_array_element(Object *p_undo_redo, Object *p_edited, String p_array_prefix, int p_from_index, int p_to_pos) { - Ref<EditorUndoRedoManager> undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(undo_redo_man.is_null()); + EditorUndoRedoManager *undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo_man); TileSet *ed_tile_set = Object::cast_to<TileSet>(p_edited); if (!ed_tile_set) { @@ -462,6 +462,35 @@ void TileSetEditor::_move_tile_set_array_element(Object *p_undo_redo, Object *p_ } #define ADD_UNDO(obj, property) undo_redo_man->add_undo_property(obj, property, obj->get(property)); + + // Add undo method to adding array element. + if (p_array_prefix == "occlusion_layer_") { + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_occlusion_layer", p_to_pos < 0 ? ed_tile_set->get_occlusion_layers_count() : p_to_pos); + } + } else if (p_array_prefix == "physics_layer_") { + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_physics_layer", p_to_pos < 0 ? ed_tile_set->get_physics_layers_count() : p_to_pos); + } + } else if (p_array_prefix == "terrain_set_") { + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_terrain_set", p_to_pos < 0 ? ed_tile_set->get_terrain_sets_count() : p_to_pos); + } + } else if (components.size() >= 2 && components[0].begins_with("terrain_set_") && components[0].trim_prefix("terrain_set_").is_valid_int() && components[1] == "terrain_") { + int terrain_set = components[0].trim_prefix("terrain_set_").to_int(); + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_terrain", terrain_set, p_to_pos < 0 ? ed_tile_set->get_terrains_count(terrain_set) : p_to_pos); + } + } else if (p_array_prefix == "navigation_layer_") { + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_navigation_layer", p_to_pos < 0 ? ed_tile_set->get_navigation_layers_count() : p_to_pos); + } + } else if (p_array_prefix == "custom_data_layer_") { + if (p_from_index < 0) { + undo_redo_man->add_undo_method(ed_tile_set, "remove_custom_data_layer", p_to_pos < 0 ? ed_tile_set->get_custom_data_layers_count() : p_to_pos); + } + } + // Save layers' properties. List<PropertyInfo> properties; ed_tile_set->get_property_list(&properties); @@ -543,7 +572,7 @@ void TileSetEditor::_move_tile_set_array_element(Object *p_undo_redo, Object *p_ } #undef ADD_UNDO - // Add do method. + // Add do method to add/remove array element. if (p_array_prefix == "occlusion_layer_") { if (p_from_index < 0) { undo_redo_man->add_do_method(ed_tile_set, "add_occlusion_layer", p_to_pos); @@ -597,8 +626,8 @@ void TileSetEditor::_move_tile_set_array_element(Object *p_undo_redo, Object *p_ } void TileSetEditor::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value) { - Ref<EditorUndoRedoManager> undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); - ERR_FAIL_COND(undo_redo_man.is_null()); + EditorUndoRedoManager *undo_redo_man = Object::cast_to<EditorUndoRedoManager>(p_undo_redo); + ERR_FAIL_NULL(undo_redo_man); #define ADD_UNDO(obj, property) undo_redo_man->add_undo_property(obj, property, obj->get(property)); TileSet *ed_tile_set = Object::cast_to<TileSet>(p_edited); @@ -637,11 +666,6 @@ void TileSetEditor::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p #undef ADD_UNDO } -void TileSetEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &TileSetEditor::_can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &TileSetEditor::_drop_data_fw); -} - void TileSetEditor::edit(Ref<TileSet> p_tile_set) { if (p_tile_set == tile_set) { return; @@ -728,7 +752,7 @@ TileSetEditor::TileSetEditor() { sources_list->add_user_signal(MethodInfo("sort_request")); sources_list->connect("sort_request", callable_mp(this, &TileSetEditor::_update_sources_list).bind(-1)); sources_list->set_texture_filter(CanvasItem::TEXTURE_FILTER_NEAREST); - sources_list->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CDU(sources_list, TileSetEditor); split_container_left_side->add_child(sources_list); HBoxContainer *sources_bottom_actions = memnew(HBoxContainer); diff --git a/editor/plugins/tiles/tile_set_editor.h b/editor/plugins/tiles/tile_set_editor.h index 33200a0632..e3dff11277 100644 --- a/editor/plugins/tiles/tile_set_editor.h +++ b/editor/plugins/tiles/tile_set_editor.h @@ -97,7 +97,6 @@ private: protected: void _notification(int p_what); - static void _bind_methods(); public: _FORCE_INLINE_ static TileSetEditor *get_singleton() { return singleton; } diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp index 0ff8788626..6251cd18f7 100644 --- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp @@ -237,7 +237,7 @@ void TileSetScenesCollectionSourceEditor::_scenes_list_item_activated(int p_inde void TileSetScenesCollectionSourceEditor::_source_add_pressed() { int scene_id = tile_set_scenes_collection_source->get_next_scene_tile_id(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add a Scene Tile")); undo_redo->add_do_method(tile_set_scenes_collection_source, "create_scene_tile", Ref<PackedScene>(), scene_id); undo_redo->add_undo_method(tile_set_scenes_collection_source, "remove_scene_tile", scene_id); @@ -252,7 +252,7 @@ void TileSetScenesCollectionSourceEditor::_source_delete_pressed() { ERR_FAIL_COND(selected_indices.size() <= 0); int scene_id = scene_tiles_list->get_item_metadata(selected_indices[0]); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove a Scene Tile")); undo_redo->add_do_method(tile_set_scenes_collection_source, "remove_scene_tile", scene_id); undo_redo->add_undo_method(tile_set_scenes_collection_source, "create_scene_tile", tile_set_scenes_collection_source->get_scene_tile_scene(scene_id), scene_id); @@ -404,7 +404,7 @@ void TileSetScenesCollectionSourceEditor::_drop_data_fw(const Point2 &p_point, c Ref<PackedScene> resource = ResourceLoader::load(files[i]); if (resource.is_valid()) { int scene_id = tile_set_scenes_collection_source->get_next_scene_tile_id(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add a Scene Tile")); undo_redo->add_do_method(tile_set_scenes_collection_source, "create_scene_tile", resource, scene_id); undo_redo->add_undo_method(tile_set_scenes_collection_source, "remove_scene_tile", scene_id); @@ -453,8 +453,6 @@ void TileSetScenesCollectionSourceEditor::_bind_methods() { ADD_SIGNAL(MethodInfo("source_id_changed", PropertyInfo(Variant::INT, "source_id"))); ClassDB::bind_method(D_METHOD("_scene_thumbnail_done"), &TileSetScenesCollectionSourceEditor::_scene_thumbnail_done); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &TileSetScenesCollectionSourceEditor::_can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &TileSetScenesCollectionSourceEditor::_drop_data_fw); } TileSetScenesCollectionSourceEditor::TileSetScenesCollectionSourceEditor() { @@ -509,7 +507,7 @@ TileSetScenesCollectionSourceEditor::TileSetScenesCollectionSourceEditor() { scene_tiles_list = memnew(ItemList); scene_tiles_list->set_h_size_flags(SIZE_EXPAND_FILL); scene_tiles_list->set_v_size_flags(SIZE_EXPAND_FILL); - scene_tiles_list->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_CDU(scene_tiles_list, TileSetScenesCollectionSourceEditor); scene_tiles_list->connect("item_selected", callable_mp(this, &TileSetScenesCollectionSourceEditor::_update_tile_inspector).unbind(1)); scene_tiles_list->connect("item_selected", callable_mp(this, &TileSetScenesCollectionSourceEditor::_update_action_buttons).unbind(1)); scene_tiles_list->connect("item_activated", callable_mp(this, &TileSetScenesCollectionSourceEditor::_scenes_list_item_activated)); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 56dbdb49eb..96b1ad7ee0 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -129,30 +129,32 @@ void VisualShaderGraphPlugin::set_connections(const List<VisualShader::Connectio void VisualShaderGraphPlugin::show_port_preview(VisualShader::Type p_type, int p_node_id, int p_port_id) { if (visual_shader->get_shader_type() == p_type && links.has(p_node_id) && links[p_node_id].output_ports.has(p_port_id)) { - for (const KeyValue<int, Port> &E : links[p_node_id].output_ports) { + Link &link = links[p_node_id]; + + for (const KeyValue<int, Port> &E : link.output_ports) { if (E.value.preview_button != nullptr) { E.value.preview_button->set_pressed(false); } } + bool is_dirty = link.preview_pos < 0; - if (links[p_node_id].preview_visible && !is_dirty() && links[p_node_id].preview_box != nullptr) { - links[p_node_id].graph_node->remove_child(links[p_node_id].preview_box); - memdelete(links[p_node_id].preview_box); - links[p_node_id].graph_node->reset_size(); - links[p_node_id].preview_visible = false; + if (!is_dirty && link.preview_visible && link.preview_box != nullptr) { + link.graph_node->remove_child(link.preview_box); + memdelete(link.preview_box); + link.preview_box = nullptr; + link.graph_node->reset_size(); + link.preview_visible = false; } - if (p_port_id != -1 && links[p_node_id].output_ports[p_port_id].preview_button != nullptr) { - if (is_dirty()) { - links[p_node_id].preview_pos = links[p_node_id].graph_node->get_child_count(); + if (p_port_id != -1 && link.output_ports[p_port_id].preview_button != nullptr) { + if (is_dirty) { + link.preview_pos = link.graph_node->get_child_count(); } VBoxContainer *vbox = memnew(VBoxContainer); - links[p_node_id].graph_node->add_child(vbox); - if (links[p_node_id].preview_pos != -1) { - links[p_node_id].graph_node->move_child(vbox, links[p_node_id].preview_pos); - } - links[p_node_id].graph_node->set_slot_draw_stylebox(vbox->get_index(), false); + link.graph_node->add_child(vbox); + link.graph_node->move_child(vbox, link.preview_pos); + link.graph_node->set_slot_draw_stylebox(vbox->get_index(), false); Control *offset = memnew(Control); offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE)); @@ -162,9 +164,9 @@ void VisualShaderGraphPlugin::show_port_preview(VisualShader::Type p_type, int p port_preview->setup(visual_shader, visual_shader->get_shader_type(), p_node_id, p_port_id); port_preview->set_h_size_flags(Control::SIZE_SHRINK_CENTER); vbox->add_child(port_preview); - links[p_node_id].preview_visible = true; - links[p_node_id].preview_box = vbox; - links[p_node_id].output_ports[p_port_id].preview_button->set_pressed(true); + link.preview_visible = true; + link.preview_box = vbox; + link.output_ports[p_port_id].preview_button->set_pressed(true); } } } @@ -329,14 +331,6 @@ void VisualShaderGraphPlugin::clear_links() { links.clear(); } -bool VisualShaderGraphPlugin::is_dirty() const { - return dirty; -} - -void VisualShaderGraphPlugin::make_dirty(bool p_enabled) { - dirty = p_enabled; -} - void VisualShaderGraphPlugin::register_link(VisualShader::Type p_type, int p_id, VisualShaderNode *p_visual_node, GraphNode *p_graph_node) { links.insert(p_id, { p_type, p_visual_node, p_graph_node, p_visual_node->get_output_port_for_preview() != -1, -1, HashMap<int, InputPort>(), HashMap<int, Port>(), nullptr, nullptr, nullptr, { nullptr, nullptr, nullptr } }); } @@ -426,7 +420,13 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id, bool editor->_update_created_node(node); if (p_just_update) { - links[p_id].graph_node = node; + Link &link = links[p_id]; + + link.graph_node = node; + link.preview_box = nullptr; + link.preview_pos = -1; + link.output_ports.clear(); + link.input_ports.clear(); } else { register_link(p_type, p_id, vsnode.ptr(), node); } @@ -1861,7 +1861,7 @@ void VisualShaderEditor::_update_parameters(bool p_update_refs) { } void VisualShaderEditor::_update_parameter_refs(HashSet<String> &p_deleted_names) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (int i = 0; i < VisualShader::TYPE_MAX; i++) { VisualShader::Type type = VisualShader::Type(i); @@ -1916,15 +1916,12 @@ void VisualShaderEditor::_update_graph() { _update_varyings(); graph_plugin->clear_links(); - graph_plugin->make_dirty(true); graph_plugin->update_theme(); for (int n_i = 0; n_i < nodes.size(); n_i++) { graph_plugin->add_node(type, nodes[n_i], false); } - graph_plugin->make_dirty(false); - for (const VisualShader::Connection &E : node_connections) { int from = E.from_node; int from_idx = E.from_port; @@ -1961,7 +1958,7 @@ void VisualShaderEditor::_add_input_port(int p_node, int p_port, int p_port_type return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Input Port")); undo_redo->add_do_method(node.ptr(), "add_input_port", p_port, p_port_type, p_name); undo_redo->add_undo_method(node.ptr(), "remove_input_port", p_port); @@ -1977,7 +1974,7 @@ void VisualShaderEditor::_add_output_port(int p_node, int p_port, int p_port_typ return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Output Port")); undo_redo->add_do_method(node.ptr(), "add_output_port", p_port, p_port_type, p_name); undo_redo->add_undo_method(node.ptr(), "remove_output_port", p_port); @@ -1993,7 +1990,7 @@ void VisualShaderEditor::_change_input_port_type(int p_type, int p_node, int p_p return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Input Port Type")); undo_redo->add_do_method(node.ptr(), "set_input_port_type", p_port, p_type); undo_redo->add_undo_method(node.ptr(), "set_input_port_type", p_port, node->get_input_port_type(p_port)); @@ -2009,7 +2006,7 @@ void VisualShaderEditor::_change_output_port_type(int p_type, int p_node, int p_ return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Output Port Type")); undo_redo->add_do_method(node.ptr(), "set_output_port_type", p_port, p_type); undo_redo->add_undo_method(node.ptr(), "set_output_port_type", p_port, node->get_output_port_type(p_port)); @@ -2038,7 +2035,7 @@ void VisualShaderEditor::_change_input_port_name(const String &p_text, Object *p return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Input Port Name")); undo_redo->add_do_method(node.ptr(), "set_input_port_name", p_port_id, validated_name); undo_redo->add_undo_method(node.ptr(), "set_input_port_name", p_port_id, node->get_input_port_name(p_port_id)); @@ -2065,7 +2062,7 @@ void VisualShaderEditor::_change_output_port_name(const String &p_text, Object * return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Change Output Port Name")); undo_redo->add_do_method(node.ptr(), "set_output_port_name", p_port_id, validated_name); undo_redo->add_undo_method(node.ptr(), "set_output_port_name", p_port_id, prev_name); @@ -2078,7 +2075,7 @@ void VisualShaderEditor::_expand_output_port(int p_node, int p_port, bool p_expa Ref<VisualShaderNode> node = visual_shader->get_node(type, p_node); ERR_FAIL_COND(!node.is_valid()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (p_expand) { undo_redo->create_action(TTR("Expand Output Port")); } else { @@ -2176,7 +2173,7 @@ void VisualShaderEditor::_remove_input_port(int p_node, int p_port) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Input Port")); List<VisualShader::Connection> conns; @@ -2226,7 +2223,7 @@ void VisualShaderEditor::_remove_output_port(int p_node, int p_port) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Remove Output Port")); List<VisualShader::Connection> conns; @@ -2293,7 +2290,7 @@ void VisualShaderEditor::_expression_focus_out(Object *code_edit, int p_node) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set VisualShader Expression")); undo_redo->add_do_method(node.ptr(), "set_expression", expression_box->get_text()); undo_redo->add_undo_method(node.ptr(), "set_expression", node->get_expression()); @@ -2357,7 +2354,7 @@ void VisualShaderEditor::_node_resized(const Vector2 &p_new_size, int p_type, in return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Resize VisualShader Node"), UndoRedo::MERGE_ENDS); undo_redo->add_do_method(this, "_set_node_size", p_type, p_node, p_new_size); undo_redo->add_undo_method(this, "_set_node_size", p_type, p_node, node->get_size()); @@ -2374,7 +2371,7 @@ void VisualShaderEditor::_preview_select_port(int p_node, int p_port) { if (node->get_output_port_for_preview() == p_port) { p_port = -1; //toggle it } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(p_port == -1 ? TTR("Hide Port Preview") : TTR("Show Port Preview")); undo_redo->add_do_method(node.ptr(), "set_output_port_for_preview", p_port); undo_redo->add_undo_method(node.ptr(), "set_output_port_for_preview", prev_port); @@ -2420,7 +2417,7 @@ void VisualShaderEditor::_comment_title_popup_hide() { if (node->get_title() == comment_title_change_edit->get_text()) { return; // nothing changed - ignored } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Comment Node Title")); undo_redo->add_do_method(node.ptr(), "set_title", comment_title_change_edit->get_text()); undo_redo->add_undo_method(node.ptr(), "set_title", node->get_title()); @@ -2463,7 +2460,7 @@ void VisualShaderEditor::_comment_desc_popup_hide() { if (node->get_description() == comment_desc_change_edit->get_text()) { return; // nothing changed - ignored } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Comment Node Description")); undo_redo->add_do_method(node.ptr(), "set_description", comment_desc_change_edit->get_text()); undo_redo->add_undo_method(node.ptr(), "set_description", node->get_title()); @@ -2484,7 +2481,7 @@ void VisualShaderEditor::_parameter_line_edit_changed(const String &p_text, int return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Parameter Name")); undo_redo->add_do_method(node.ptr(), "set_parameter_name", validated_name); undo_redo->add_undo_method(node.ptr(), "set_parameter_name", node->get_parameter_name()); @@ -2520,7 +2517,7 @@ void VisualShaderEditor::_port_edited(const StringName &p_property, const Varian Ref<VisualShaderNode> vsn = visual_shader->get_node(type, editing_node); ERR_FAIL_COND(!vsn.is_valid()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Input Default Port")); Ref<VisualShaderNodeCustom> custom = Object::cast_to<VisualShaderNodeCustom>(vsn.ptr()); @@ -2966,7 +2963,7 @@ void VisualShaderEditor::_add_node(int p_idx, const Vector<Variant> &p_ops, Stri int id_to_use = visual_shader->get_valid_node_id(type); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (p_resource_path.is_empty()) { undo_redo->create_action(TTR("Add Node to Visual Shader")); } else { @@ -3133,7 +3130,7 @@ void VisualShaderEditor::_add_node(int p_idx, const Vector<Variant> &p_ops, Stri } void VisualShaderEditor::_add_varying(const String &p_name, VisualShader::VaryingMode p_mode, VisualShader::VaryingType p_type) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Add Varying to Visual Shader: %s"), p_name)); undo_redo->add_do_method(visual_shader.ptr(), "add_varying", p_name, p_mode, p_type); @@ -3168,7 +3165,7 @@ void VisualShaderEditor::_add_varying(const String &p_name, VisualShader::Varyin } void VisualShaderEditor::_remove_varying(const String &p_name) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Remove Varying from Visual Shader: %s"), p_name)); VisualShader::VaryingMode var_mode = visual_shader->get_varying_mode(p_name); @@ -3256,7 +3253,7 @@ void VisualShaderEditor::_node_dragged(const Vector2 &p_from, const Vector2 &p_t void VisualShaderEditor::_nodes_dragged() { drag_dirty = false; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Node(s) Moved")); for (const DragOp &E : drag_buffer) { @@ -3280,7 +3277,7 @@ void VisualShaderEditor::_connection_request(const String &p_from, int p_from_in return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Nodes Connected")); List<VisualShader::Connection> conns; @@ -3312,7 +3309,7 @@ void VisualShaderEditor::_disconnection_request(const String &p_from, int p_from int from = p_from.to_int(); int to = p_to.to_int(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Nodes Disconnected")); undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from, p_from_index, to, p_to_index); undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, from, p_from_index, to, p_to_index); @@ -3352,7 +3349,7 @@ void VisualShaderEditor::_delete_nodes(int p_type, const List<int> &p_nodes) { List<VisualShader::Connection> conns; visual_shader->get_node_connections(type, &conns); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); for (const int &F : p_nodes) { for (const VisualShader::Connection &E : conns) { if (E.from_node == F || E.to_node == F) { @@ -3411,7 +3408,7 @@ void VisualShaderEditor::_delete_nodes(int p_type, const List<int> &p_nodes) { } void VisualShaderEditor::_replace_node(VisualShader::Type p_type_id, int p_node_id, const StringName &p_from, const StringName &p_to) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(visual_shader.ptr(), "replace_node", p_type_id, p_node_id, p_to); undo_redo->add_undo_method(visual_shader.ptr(), "replace_node", p_type_id, p_node_id, p_from); } @@ -3446,7 +3443,7 @@ void VisualShaderEditor::_update_parameter(VisualShader::Type p_type_id, int p_n void VisualShaderEditor::_convert_constants_to_parameters(bool p_vice_versa) { VisualShader::Type type_id = get_current_shader_type(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (!p_vice_versa) { undo_redo->create_action(TTR("Convert Constant Node(s) To Parameter(s)")); } else { @@ -3645,7 +3642,7 @@ void VisualShaderEditor::_delete_node_request(int p_type, int p_node) { List<int> to_erase; to_erase.push_back(p_node); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete VisualShader Node")); _delete_nodes(p_type, to_erase); undo_redo->commit_action(); @@ -3674,7 +3671,7 @@ void VisualShaderEditor::_delete_nodes_request(const TypedArray<StringName> &p_n return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete VisualShader Node(s)")); _delete_nodes(get_current_shader_type(), to_erase); undo_redo->commit_action(); @@ -4087,7 +4084,7 @@ void VisualShaderEditor::_dup_copy_nodes(int p_type, List<CopyItem> &r_items, Li } void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, const List<VisualShader::Connection> &p_connections, const Vector2 &p_offset, bool p_duplicate) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (p_duplicate) { undo_redo->create_action(TTR("Duplicate VisualShader Node(s)")); } else { @@ -4206,7 +4203,7 @@ void VisualShaderEditor::_copy_nodes(bool p_cut) { _dup_copy_nodes(get_current_shader_type(), copy_items_buffer, copy_connections_buffer); if (p_cut) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Cut VisualShader Node(s)")); List<int> ids; @@ -4293,7 +4290,7 @@ void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> p_input, bool type_changed = next_input_type != prev_input_type; - Ref<EditorUndoRedoManager> &undo_redo_man = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo_man = EditorUndoRedoManager::get_singleton(); undo_redo_man->create_action(TTR("Visual Shader Input Type Changed")); undo_redo_man->add_do_method(p_input.ptr(), "set_input_name", p_name); @@ -4362,7 +4359,7 @@ void VisualShaderEditor::_parameter_ref_select_item(Ref<VisualShaderNodeParamete bool type_changed = p_parameter_ref->get_parameter_type_by_name(p_name) != p_parameter_ref->get_parameter_type_by_name(prev_name); - Ref<EditorUndoRedoManager> &undo_redo_man = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo_man = EditorUndoRedoManager::get_singleton(); undo_redo_man->create_action(TTR("ParameterRef Name Changed")); undo_redo_man->add_do_method(p_parameter_ref.ptr(), "set_parameter_name", p_name); @@ -4406,7 +4403,7 @@ void VisualShaderEditor::_varying_select_item(Ref<VisualShaderNodeVarying> p_var bool is_getter = Ref<VisualShaderNodeVaryingGetter>(p_varying.ptr()).is_valid(); - Ref<EditorUndoRedoManager> &undo_redo_man = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo_man = EditorUndoRedoManager::get_singleton(); undo_redo_man->create_action(TTR("Varying Name Changed")); undo_redo_man->add_do_method(p_varying.ptr(), "set_varying_name", p_name); @@ -4477,7 +4474,7 @@ void VisualShaderEditor::_float_constant_selected(int p_which) { return; // same } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Set Constant: %s"), float_constant_defs[p_which].name)); undo_redo->add_do_method(node.ptr(), "set_constant", float_constant_defs[p_which].value); undo_redo->add_undo_method(node.ptr(), "set_constant", node->get_constant()); @@ -4741,7 +4738,7 @@ void VisualShaderEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da saved_node_pos_dirty = true; _add_node(idx, add_options[idx].ops); } else if (d.has("files")) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Node(s) to Visual Shader")); if (d["files"].get_type() == Variant::PACKED_STRING_ARRAY) { @@ -4905,10 +4902,6 @@ void VisualShaderEditor::_bind_methods() { ClassDB::bind_method("_update_options_menu_deferred", &VisualShaderEditor::_update_options_menu_deferred); ClassDB::bind_method("_rebuild_shader_deferred", &VisualShaderEditor::_rebuild_shader_deferred); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &VisualShaderEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &VisualShaderEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &VisualShaderEditor::drop_data_fw); - ClassDB::bind_method("_is_available", &VisualShaderEditor::_is_available); } @@ -4922,7 +4915,7 @@ VisualShaderEditor::VisualShaderEditor() { graph->set_h_size_flags(SIZE_EXPAND_FILL); graph->set_show_zoom_label(true); add_child(graph); - graph->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(graph, VisualShaderEditor); float graph_minimap_opacity = EDITOR_GET("editors/visual_editors/minimap_opacity"); graph->set_minimap_opacity(graph_minimap_opacity); float graph_lines_curvature = EDITOR_GET("editors/visual_editors/lines_curvature"); @@ -5153,7 +5146,7 @@ VisualShaderEditor::VisualShaderEditor() { members = memnew(Tree); members_vb->add_child(members); - members->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(members, VisualShaderEditor); members->set_h_size_flags(SIZE_EXPAND_FILL); members->set_v_size_flags(SIZE_EXPAND_FILL); members->set_hide_root(true); @@ -5448,11 +5441,9 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("Binormal", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal", "BINORMAL"), { "binormal" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Color", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "color", "COLOR"), { "color" }, VisualShaderNode::PORT_TYPE_VECTOR_4D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); - add_options.push_back(AddOption("DepthTexture", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "depth_texture", "DEPTH_TEXTURE"), { "depth_texture" }, VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("FragCoord", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord", "FRAGCOORD"), { "fragcoord" }, VisualShaderNode::PORT_TYPE_VECTOR_4D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("FrontFacing", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "front_facing", "FRONT_FACING"), { "front_facing" }, VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("PointCoord", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "point_coord", "POINT_COORD"), { "point_coord" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); - add_options.push_back(AddOption("ScreenTexture", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture", "SCREEN_TEXTURE"), { "screen_texture" }, VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("ScreenUV", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_uv", "SCREEN_UV"), { "screen_uv" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Tangent", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "tangent", "TANGENT"), { "tangent" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Vertex", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex", "VERTEX"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); @@ -5495,7 +5486,6 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("NormalTexture", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "normal_texture", "NORMAL_TEXTURE"), { "normal_texture" }, VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("PointCoord", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "point_coord", "POINT_COORD"), { "point_coord" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("ScreenPixelSize", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_pixel_size", "SCREEN_PIXEL_SIZE"), { "screen_pixel_size" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); - add_options.push_back(AddOption("ScreenTexture", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture", "SCREEN_TEXTURE"), { "screen_texture" }, VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("ScreenUV", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "screen_uv", "SCREEN_UV"), { "screen_uv" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("SpecularShininess", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "specular_shininess", "SPECULAR_SHININESS"), { "specular_shininess" }, VisualShaderNode::PORT_TYPE_VECTOR_4D, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("SpecularShininessTexture", "Input/Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "specular_shininess_texture", "SPECULAR_SHININESS_TEXTURE"), { "specular_shininess_texture" }, VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); @@ -5699,7 +5689,7 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("CurveTexture", "Textures/Functions", "VisualShaderNodeCurveTexture", TTR("Perform the curve texture lookup."), {}, VisualShaderNode::PORT_TYPE_SCALAR)); curve_xyz_node_option_idx = add_options.size(); add_options.push_back(AddOption("CurveXYZTexture", "Textures/Functions", "VisualShaderNodeCurveXYZTexture", TTR("Perform the three components curve texture lookup."), {}, VisualShaderNode::PORT_TYPE_VECTOR_3D)); - add_options.push_back(AddOption("LinearSceneDepth", "Textures/Functions", "VisualShaderNodeLinearSceneDepth", TTR("Returns the depth value of the DEPTH_TEXTURE node in a linear space."), {}, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("LinearSceneDepth", "Textures/Functions", "VisualShaderNodeLinearSceneDepth", TTR("Returns the depth value obtained from the depth prepass in a linear space."), {}, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); texture2d_node_option_idx = add_options.size(); add_options.push_back(AddOption("Texture2D", "Textures/Functions", "VisualShaderNodeTexture", TTR("Perform the 2D texture lookup."), {}, VisualShaderNode::PORT_TYPE_VECTOR_4D)); texture2d_array_node_option_idx = add_options.size(); @@ -6172,7 +6162,7 @@ public: return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); updating = true; undo_redo->create_action(TTR("Edit Visual Property:") + " " + p_property, UndoRedo::MERGE_ENDS); @@ -6374,7 +6364,7 @@ void EditorPropertyVisualShaderMode::_option_selected(int p_which) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Visual Shader Mode Changed")); //do is easy undo_redo->add_do_method(visual_shader.ptr(), "set_mode", p_which); diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h index 88f5e3359c..c4f6b4952c 100644 --- a/editor/plugins/visual_shader_editor_plugin.h +++ b/editor/plugins/visual_shader_editor_plugin.h @@ -95,7 +95,6 @@ private: Ref<VisualShader> visual_shader; HashMap<int, Link> links; List<VisualShader::Connection> connections; - bool dirty = false; Color vector_expanded_color[4]; @@ -115,8 +114,6 @@ public: void clear_links(); void set_shader_type(VisualShader::Type p_type); bool is_preview_visible(int p_id) const; - bool is_dirty() const; - void make_dirty(bool p_enabled); void update_node(VisualShader::Type p_type, int p_id); void update_node_deferred(VisualShader::Type p_type, int p_node_id); void add_node(VisualShader::Type p_type, int p_id, bool p_just_update); diff --git a/editor/project_converter_3_to_4.cpp b/editor/project_converter_3_to_4.cpp index 8396d50a0e..b5dca26c63 100644 --- a/editor/project_converter_3_to_4.cpp +++ b/editor/project_converter_3_to_4.cpp @@ -210,6 +210,7 @@ static const char *gdscript_function_renames[][2] = { // { "set_v_offset", "set_drag_vertical_offset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D // {"get_points","get_points_id"},// Astar, broke Line2D, Convexpolygonshape // {"get_v_scroll","get_v_scroll_bar"},//ItemList, broke TextView + // { "get_stylebox", "get_theme_stylebox" }, // Control - Will rename the method in Theme as well, skipping { "_about_to_show", "_about_to_popup" }, // ColorPickerButton { "_get_configuration_warning", "_get_configuration_warnings" }, // Node { "_set_current", "set_current" }, // Camera2D @@ -237,7 +238,6 @@ static const char *gdscript_function_renames[][2] = { { "bumpmap_to_normalmap", "bump_map_to_normal_map" }, // Image { "can_be_hidden", "_can_be_hidden" }, // EditorNode3DGizmoPlugin { "can_drop_data", "_can_drop_data" }, // Control - { "can_drop_data_fw", "_can_drop_data_fw" }, // ScriptEditor { "can_generate_small_preview", "_can_generate_small_preview" }, // EditorResourcePreviewGenerator { "can_instance", "can_instantiate" }, // PackedScene, Script { "canvas_light_set_scale", "canvas_light_set_texture_scale" }, // RenderingServer @@ -264,7 +264,6 @@ static const char *gdscript_function_renames[][2] = { { "deselect_items", "deselect_all" }, // FileDialog { "disable_plugin", "_disable_plugin" }, // EditorPlugin { "drop_data", "_drop_data" }, // Control - { "drop_data_fw", "_drop_data_fw" }, // ScriptEditor { "exclude_polygons_2d", "exclude_polygons" }, // Geometry2D { "find_node", "find_child" }, // Node { "find_scancode_from_string", "find_keycode_from_string" }, // OS @@ -303,7 +302,6 @@ static const char *gdscript_function_renames[][2] = { { "get_d", "get_distance" }, // LineShape2D { "get_depth_bias_enable", "get_depth_bias_enabled" }, // RDPipelineRasterizationState { "get_drag_data", "_get_drag_data" }, // Control - { "get_drag_data_fw", "_get_drag_data_fw" }, // ScriptEditor { "get_editor_viewport", "get_editor_main_screen" }, // EditorPlugin { "get_enabled_focus_mode", "get_focus_mode" }, // BaseButton { "get_endian_swap", "is_big_endian" }, // File @@ -668,6 +666,7 @@ static const char *csharp_function_renames[][2] = { // { "SetVOffset", "SetDragVerticalOffset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D // {"GetPoints","GetPointsId"},// Astar, broke Line2D, Convexpolygonshape // {"GetVScroll","GetVScrollBar"},//ItemList, broke TextView + // { "GetStylebox", "GetThemeStylebox" }, // Control - Will rename the method in Theme as well, skipping { "AddSpatialGizmoPlugin", "AddNode3dGizmoPlugin" }, // EditorPlugin { "RenderingServer", "GetTabAlignment" }, // Tab { "_AboutToShow", "_AboutToPopup" }, // ColorPickerButton @@ -1081,6 +1080,7 @@ static const char *gdscript_properties_renames[][2] = { // { "zfar", "far" }, // Camera3D // { "znear", "near" }, // Camera3D // { "filename", "scene_file_path" }, // Node + // { "pressed", "button_pressed" }, // BaseButton - Will also rename the signal, skipping for now { "as_normalmap", "as_normal_map" }, // NoiseTexture { "bbcode_text", "text" }, // RichTextLabel { "bg", "panel" }, // Theme @@ -1116,6 +1116,7 @@ static const char *gdscript_properties_renames[][2] = { { "gravity_vec", "gravity_direction" }, // Area2D { "hint_tooltip", "tooltip_text" }, // Control { "hseparation", "h_separation" }, // Theme + { "icon_align", "icon_alignment" }, // Button { "iterations_per_second", "physics_ticks_per_second" }, // Engine { "invert_enable", "invert_enabled" }, // Polygon2D { "margin_bottom", "offset_bottom" }, // Control broke NinePatchRect, StyleBox @@ -1140,7 +1141,7 @@ static const char *gdscript_properties_renames[][2] = { { "rect_position", "position" }, // Control { "rect_global_position", "global_position" }, // Control { "rect_size", "size" }, // Control - { "rect_min_size", "minimum_size" }, // Control + { "rect_min_size", "custom_minimum_size" }, // Control { "rect_rotation", "rotation" }, // Control { "rect_scale", "scale" }, // Control { "rect_pivot_offset", "pivot_offset" }, // Control @@ -1195,6 +1196,7 @@ static const char *csharp_properties_renames[][2] = { // { "WrapEnabled", "WrapMode" }, // TextEdit // { "Zfar", "Far" }, // Camera3D // { "Znear", "Near" }, // Camera3D + // { "Pressed", "ButtonPressed" }, // BaseButton - Will also rename the signal, skipping for now { "AsNormalmap", "AsNormalMap" }, // NoiseTexture { "BbcodeText", "Text" }, // RichTextLabel { "CaretBlinkSpeed", "CaretBlinkInterval" }, // TextEdit, LineEdit @@ -1224,6 +1226,7 @@ static const char *csharp_properties_renames[][2] = { { "GravityVec", "GravityDirection" }, // Area2D { "HintTooltip", "TooltipText" }, // Control { "Hseparation", "HSeparation" }, // Theme + { "IconAlign", "IconAlignment" }, // Button { "IterationsPerSecond", "PhysicsTicksPerSecond" }, // Engine { "InvertEnable", "InvertEnabled" }, // Polygon2D { "MarginBottom", "OffsetBottom" }, // Control broke NinePatchRect, StyleBox @@ -1366,6 +1369,18 @@ static const char *project_settings_renames[][2] = { { nullptr, nullptr }, }; +static const char *input_map_renames[][2] = { + { ",\"alt\":", ",\"alt_pressed\":" }, + { ",\"shift\":", ",\"shift_pressed\":" }, + { ",\"control\":", ",\"ctrl_pressed\":" }, + { ",\"meta\":", ",\"meta_pressed\":" }, + { ",\"scancode\":", ",\"keycode\":" }, + { ",\"physical_scancode\":", ",\"physical_keycode\":" }, + { ",\"doubleclick\":", ",\"double_click\":" }, + + { nullptr, nullptr }, +}; + static const char *builtin_types_renames[][2] = { { "PoolByteArray", "PackedByteArray" }, { "PoolColorArray", "PackedColorArray" }, @@ -1774,6 +1789,19 @@ static const char *color_renames[][2] = { { nullptr, nullptr }, }; +// Find "OS.set_property(x)", capturing x into $1. +static String make_regex_gds_os_property_set(String name_set) { + return String("\\bOS\\.") + name_set + "\\s*\\((.*)\\)"; +} +// Find "OS.property = x", capturing x into $1 or $2. +static String make_regex_gds_os_property_assign(String name) { + return String("\\bOS\\.") + name + "\\s*=\\s*([^#]+)"; +} +// Find "OS.property" OR "OS.get_property()" / "OS.is_property()". +static String make_regex_gds_os_property_get(String name, String get) { + return String("\\bOS\\.(") + get + "_)?" + name + "(\\s*\\(\\s*\\))?"; +} + class ProjectConverter3To4::RegExContainer { public: // Custom GDScript. @@ -1791,8 +1819,37 @@ public: RegEx reg_join = RegEx("([\\(\\)a-zA-Z0-9_]+)\\.join\\(([^\n^\\)]+)\\)"); RegEx reg_image_lock = RegEx("([a-zA-Z0-9_\\.]+)\\.lock\\(\\)"); RegEx reg_image_unlock = RegEx("([a-zA-Z0-9_\\.]+)\\.unlock\\(\\)"); - RegEx reg_os_fullscreen = RegEx("OS.window_fullscreen[= ]+([^#^\n]+)"); RegEx reg_instantiate = RegEx("\\.instance\\(([^\\)]*)\\)"); + // Simple OS properties with getters/setters. + RegEx reg_os_current_screen = RegEx("\\bOS\\.(set_|get_)?current_screen\\b"); + RegEx reg_os_min_window_size = RegEx("\\bOS\\.(set_|get_)?min_window_size\\b"); + RegEx reg_os_max_window_size = RegEx("\\bOS\\.(set_|get_)?max_window_size\\b"); + RegEx reg_os_window_position = RegEx("\\bOS\\.(set_|get_)?window_position\\b"); + RegEx reg_os_window_size = RegEx("\\bOS\\.(set_|get_)?window_size\\b"); + RegEx reg_os_getset_screen_orient = RegEx("\\bOS\\.(s|g)et_screen_orientation\\b"); + // OS property getters/setters for non trivial replacements. + RegEx reg_os_set_window_resizable = RegEx(make_regex_gds_os_property_set("set_window_resizable")); + RegEx reg_os_assign_window_resizable = RegEx(make_regex_gds_os_property_assign("window_resizable")); + RegEx reg_os_is_window_resizable = RegEx(make_regex_gds_os_property_get("window_resizable", "is")); + RegEx reg_os_set_fullscreen = RegEx(make_regex_gds_os_property_set("set_window_fullscreen")); + RegEx reg_os_assign_fullscreen = RegEx(make_regex_gds_os_property_assign("window_fullscreen")); + RegEx reg_os_is_fullscreen = RegEx(make_regex_gds_os_property_get("window_fullscreen", "is")); + RegEx reg_os_set_maximized = RegEx(make_regex_gds_os_property_set("set_window_maximized")); + RegEx reg_os_assign_maximized = RegEx(make_regex_gds_os_property_assign("window_maximized")); + RegEx reg_os_is_maximized = RegEx(make_regex_gds_os_property_get("window_maximized", "is")); + RegEx reg_os_set_minimized = RegEx(make_regex_gds_os_property_set("set_window_minimized")); + RegEx reg_os_assign_minimized = RegEx(make_regex_gds_os_property_assign("window_minimized")); + RegEx reg_os_is_minimized = RegEx(make_regex_gds_os_property_get("window_minimized", "is")); + RegEx reg_os_set_vsync = RegEx(make_regex_gds_os_property_set("set_use_vsync")); + RegEx reg_os_assign_vsync = RegEx(make_regex_gds_os_property_assign("vsync_enabled")); + RegEx reg_os_is_vsync = RegEx(make_regex_gds_os_property_get("vsync_enabled", "is")); + // OS properties specific cases & specific replacements. + RegEx reg_os_assign_screen_orient = RegEx("^(\\s*)OS\\.screen_orientation\\s*=\\s*([^#]+)"); // $1 - indent, $2 - value + RegEx reg_os_set_always_on_top = RegEx(make_regex_gds_os_property_set("set_window_always_on_top")); + RegEx reg_os_is_always_on_top = RegEx("\\bOS\\.is_window_always_on_top\\s*\\(.*\\)"); + RegEx reg_os_set_borderless = RegEx(make_regex_gds_os_property_set("set_borderless_window")); + RegEx reg_os_get_borderless = RegEx("\\bOS\\.get_borderless_window\\s*\\(\\s*\\)"); + RegEx reg_os_screen_orient_enum = RegEx("\\bOS\\.SCREEN_ORIENTATION_(\\w+)\\b"); // $1 - constant suffix // GDScript keywords. RegEx keyword_gdscript_tool = RegEx("^tool"); @@ -1839,6 +1896,7 @@ public: LocalVector<RegEx *> enum_regexes; LocalVector<RegEx *> gdscript_function_regexes; LocalVector<RegEx *> project_settings_regexes; + LocalVector<RegEx *> input_map_regexes; LocalVector<RegEx *> gdscript_properties_regexes; LocalVector<RegEx *> gdscript_signals_regexes; LocalVector<RegEx *> shaders_regexes; @@ -1862,6 +1920,10 @@ public: for (unsigned int current_index = 0; project_settings_renames[current_index][0]; current_index++) { project_settings_regexes.push_back(memnew(RegEx(String("\\b") + project_settings_renames[current_index][0] + "\\b"))); } + // Input Map. + for (unsigned int current_index = 0; input_map_renames[current_index][0]; current_index++) { + input_map_regexes.push_back(memnew(RegEx(String("\\b") + input_map_renames[current_index][0] + "\\b"))); + } // GDScript properties. for (unsigned int current_index = 0; gdscript_properties_renames[current_index][0]; current_index++) { gdscript_properties_regexes.push_back(memnew(RegEx(String("\\b") + gdscript_properties_renames[current_index][0] + "\\b"))); @@ -1933,6 +1995,9 @@ public: for (unsigned int i = 0; i < project_settings_regexes.size(); i++) { memdelete(project_settings_regexes[i]); } + for (unsigned int i = 0; i < input_map_regexes.size(); i++) { + memdelete(input_map_regexes[i]); + } for (unsigned int i = 0; i < gdscript_properties_regexes.size(); i++) { memdelete(gdscript_properties_regexes[i]); } @@ -2084,6 +2149,7 @@ int ProjectConverter3To4::convert() { } else if (file_name.ends_with("project.godot")) { rename_common(project_settings_renames, reg_container.project_settings_regexes, lines); rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(input_map_renames, reg_container.input_map_regexes, lines); } else if (file_name.ends_with(".csproj")) { // TODO } else { @@ -2249,6 +2315,7 @@ int ProjectConverter3To4::validate_conversion() { } else if (file_name.ends_with("project.godot")) { changed_elements.append_array(check_for_rename_common(project_settings_renames, reg_container.project_settings_regexes, lines)); changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(input_map_renames, reg_container.input_map_regexes, lines)); } else if (file_name.ends_with(".csproj")) { // TODO } else { @@ -2385,6 +2452,8 @@ bool ProjectConverter3To4::test_conversion(RegExContainer ®_container) { valid = valid && test_conversion_basic("audio/channel_disable_threshold_db", "audio/buses/channel_disable_threshold_db", project_settings_renames, reg_container.project_settings_regexes, "project setting"); + valid = valid && test_conversion_basic("\"device\":-1,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"doubleclick\":false,\"scancode\":0,\"physical_scancode\":16777254,\"script\":null", "\"device\":-1,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"double_click\":false,\"keycode\":0,\"physical_keycode\":16777254,\"script\":null", input_map_renames, reg_container.input_map_regexes, "input map"); + valid = valid && test_conversion_basic("Transform", "Transform3D", builtin_types_renames, reg_container.builtin_types_regexes, "builtin type"); // Custom Renames. @@ -2402,8 +2471,41 @@ bool ProjectConverter3To4::test_conversion(RegExContainer ®_container) { valid = valid && test_conversion_with_regex("[Master]", "The master and mastersync rpc behavior is not officially supported anymore. Try using another keyword or making custom logic using Multiplayer.GetRemoteSenderId()\n[RPC]", &ProjectConverter3To4::rename_csharp_attributes, "custom rename csharp", reg_container); valid = valid && test_conversion_with_regex("[MasterSync]", "The master and mastersync rpc behavior is not officially supported anymore. Try using another keyword or making custom logic using Multiplayer.GetRemoteSenderId()\n[RPC(CallLocal = true)]", &ProjectConverter3To4::rename_csharp_attributes, "custom rename csharp", reg_container); - valid = valid && test_conversion_gdscript_builtin("OS.window_fullscreen = Settings.fullscreen", "if Settings.fullscreen:\n\tDisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)\nelse:\n\tDisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); - valid = valid && test_conversion_gdscript_builtin("OS.get_window_safe_area()", "DisplayServer.get_display_safe_area()", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.window_resizable: pass", "\tif (not get_window().unresizable): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_window_resizable(): pass", "\tif (not get_window().unresizable): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_window_resizable(Settings.resizable)", "\tget_window().unresizable = not (Settings.resizable)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.window_resizable = Settings.resizable", "\tget_window().unresizable = not (Settings.resizable)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.window_fullscreen: pass", "\tif ((get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN) or (get_window().mode == Window.MODE_FULLSCREEN)): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_window_fullscreen(): pass", "\tif ((get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN) or (get_window().mode == Window.MODE_FULLSCREEN)): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_window_fullscreen(Settings.fullscreen)", "\tget_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if (Settings.fullscreen) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.window_fullscreen = Settings.fullscreen", "\tget_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if (Settings.fullscreen) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.window_maximized: pass", "\tif (get_window().mode == Window.MODE_MAXIMIZED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_window_maximized(): pass", "\tif (get_window().mode == Window.MODE_MAXIMIZED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_window_maximized(Settings.maximized)", "\tget_window().mode = Window.MODE_MAXIMIZED if (Settings.maximized) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.window_maximized = Settings.maximized", "\tget_window().mode = Window.MODE_MAXIMIZED if (Settings.maximized) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.window_minimized: pass", "\tif (get_window().mode == Window.MODE_MINIMIZED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_window_minimized(): pass", "\tif (get_window().mode == Window.MODE_MINIMIZED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_window_minimized(Settings.minimized)", "\tget_window().mode = Window.MODE_MINIMIZED if (Settings.minimized) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.window_minimized = Settings.minimized", "\tget_window().mode = Window.MODE_MINIMIZED if (Settings.minimized) else Window.MODE_WINDOWED", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.vsync_enabled: pass", "\tif (DisplayServer.window_get_vsync_mode() != DisplayServer.VSYNC_DISABLED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_vsync_enabled(): pass", "\tif (DisplayServer.window_get_vsync_mode() != DisplayServer.VSYNC_DISABLED): pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_use_vsync(Settings.vsync)", "\tDisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if (Settings.vsync) else DisplayServer.VSYNC_DISABLED)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.vsync_enabled = Settings.vsync", "\tDisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if (Settings.vsync) else DisplayServer.VSYNC_DISABLED)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.screen_orientation = OS.SCREEN_ORIENTATION_VERTICAL: pass", "\tif DisplayServer.screen_get_orientation() = DisplayServer.SCREEN_VERTICAL: pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tif OS.get_screen_orientation() = OS.SCREEN_ORIENTATION_LANDSCAPE: pass", "\tif DisplayServer.screen_get_orientation() = DisplayServer.SCREEN_LANDSCAPE: pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_screen_orientation(Settings.orient)", "\tDisplayServer.screen_set_orientation(Settings.orient)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.screen_orientation = Settings.orient", "\tDisplayServer.screen_set_orientation(Settings.orient)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.is_window_always_on_top(): pass", "\tif get_window().always_on_top: pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_window_always_on_top(Settings.alwaystop)", "\tget_window().always_on_top = (Settings.alwaystop)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + + valid = valid && test_conversion_gdscript_builtin("\tif OS.get_borderless_window(): pass", "\tif get_window().borderless: pass", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); + valid = valid && test_conversion_gdscript_builtin("\tOS.set_borderless_window(Settings.borderless)", "\tget_window().borderless = (Settings.borderless)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); valid = valid && test_conversion_gdscript_builtin("\tvar aa = roman(r.move_and_slide( a, b, c, d, e, f )) # Roman", "\tr.set_velocity(a)\n\tr.set_up_direction(b)\n\tr.set_floor_stop_on_slope_enabled(c)\n\tr.set_max_slides(d)\n\tr.set_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tr.move_and_slide()\n\tvar aa = roman(r.velocity) # Roman", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); valid = valid && test_conversion_gdscript_builtin("\tmove_and_slide( a, b, c, d, e, f ) # Roman", "\tset_velocity(a)\n\tset_up_direction(b)\n\tset_floor_stop_on_slope_enabled(c)\n\tset_max_slides(d)\n\tset_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tmove_and_slide() # Roman", &ProjectConverter3To4::rename_gdscript_functions, "custom rename", reg_container, false); @@ -2740,6 +2842,7 @@ bool ProjectConverter3To4::test_array_names() { valid = valid && test_single_array(shaders_renames, true); valid = valid && test_single_array(gdscript_signals_renames); valid = valid && test_single_array(project_settings_renames); + valid = valid && test_single_array(input_map_renames); valid = valid && test_single_array(builtin_types_renames); valid = valid && test_single_array(color_renames); @@ -3166,9 +3269,96 @@ void ProjectConverter3To4::process_gdscript_line(String &line, const RegExContai line = reg_container.reg_setget_get.sub(line, "var $1$2: get = $3", true); } - // OS.window_fullscreen = a -> if a: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + if (line.contains("window_resizable")) { + // OS.set_window_resizable(a) -> get_window().unresizable = not (a) + line = reg_container.reg_os_set_window_resizable.sub(line, "get_window().unresizable = not ($1)", true); + // OS.window_resizable = a -> same + line = reg_container.reg_os_assign_window_resizable.sub(line, "get_window().unresizable = not ($1)", true); + // OS.[is_]window_resizable() -> (not get_window().unresizable) + line = reg_container.reg_os_is_window_resizable.sub(line, "(not get_window().unresizable)", true); + } + if (line.contains("window_fullscreen")) { - line = reg_container.reg_os_fullscreen.sub(line, "if $1:\n\tDisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)\nelse:\n\tDisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)", true); + // OS.window_fullscreen(a) -> get_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if (a) else Window.MODE_WINDOWED + line = reg_container.reg_os_set_fullscreen.sub(line, "get_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if ($1) else Window.MODE_WINDOWED", true); + // window_fullscreen = a -> same + line = reg_container.reg_os_assign_fullscreen.sub(line, "get_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if ($1) else Window.MODE_WINDOWED", true); + // OS.[is_]window_fullscreen() -> ((get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN) or (get_window().mode == Window.MODE_FULLSCREEN)) + line = reg_container.reg_os_is_fullscreen.sub(line, "((get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN) or (get_window().mode == Window.MODE_FULLSCREEN))", true); + } + + if (line.contains("window_maximized")) { + // OS.window_maximized(a) -> get_window().mode = Window.MODE_MAXIMIZED if (a) else Window.MODE_WINDOWED + line = reg_container.reg_os_set_maximized.sub(line, "get_window().mode = Window.MODE_MAXIMIZED if ($1) else Window.MODE_WINDOWED", true); + // window_maximized = a -> same + line = reg_container.reg_os_assign_maximized.sub(line, "get_window().mode = Window.MODE_MAXIMIZED if ($1) else Window.MODE_WINDOWED", true); + // OS.[is_]window_maximized() -> (get_window().mode == Window.MODE_MAXIMIZED) + line = reg_container.reg_os_is_maximized.sub(line, "(get_window().mode == Window.MODE_MAXIMIZED)", true); + } + + if (line.contains("window_minimized")) { + // OS.window_minimized(a) -> get_window().mode = Window.MODE_MINIMIZED if (a) else Window.MODE_WINDOWED + line = reg_container.reg_os_set_minimized.sub(line, "get_window().mode = Window.MODE_MINIMIZED if ($1) else Window.MODE_WINDOWED", true); + // window_minimized = a -> same + line = reg_container.reg_os_assign_minimized.sub(line, "get_window().mode = Window.MODE_MINIMIZED if ($1) else Window.MODE_WINDOWED", true); + // OS.[is_]window_minimized() -> (get_window().mode == Window.MODE_MINIMIZED) + line = reg_container.reg_os_is_minimized.sub(line, "(get_window().mode == Window.MODE_MINIMIZED)", true); + } + + if (line.contains("set_use_vsync")) { + // OS.set_use_vsync(a) -> get_window().window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if (a) else DisplayServer.VSYNC_DISABLED) + line = reg_container.reg_os_set_vsync.sub(line, "DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if ($1) else DisplayServer.VSYNC_DISABLED)", true); + } + if (line.contains("vsync_enabled")) { + // vsync_enabled = a -> get_window().window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if (a) else DisplayServer.VSYNC_DISABLED) + line = reg_container.reg_os_assign_vsync.sub(line, "DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if ($1) else DisplayServer.VSYNC_DISABLED)", true); + // OS.[is_]vsync_enabled() -> (DisplayServer.window_get_vsync_mode() != DisplayServer.VSYNC_DISABLED) + line = reg_container.reg_os_is_vsync.sub(line, "(DisplayServer.window_get_vsync_mode() != DisplayServer.VSYNC_DISABLED)", true); + } + + if (line.contains("OS.screen_orientation")) { // keep "OS." at start + // OS.screen_orientation = a -> DisplayServer.screen_set_orientation(a) + line = reg_container.reg_os_assign_screen_orient.sub(line, "$1DisplayServer.screen_set_orientation($2)", true); // assignment + line = line.replace("OS.screen_orientation", "DisplayServer.screen_get_orientation()"); // value access + } + + if (line.contains("_window_always_on_top")) { + // OS.set_window_always_on_top(a) -> get_window().always_on_top = (a) + line = reg_container.reg_os_set_always_on_top.sub(line, "get_window().always_on_top = ($1)", true); + // OS.is_window_always_on_top() -> get_window().always_on_top + line = reg_container.reg_os_is_always_on_top.sub(line, "get_window().always_on_top", true); + } + + if (line.contains("et_borderless_window")) { + // OS.set_borderless_window(a) -> get_window().borderless = (a) + line = reg_container.reg_os_set_borderless.sub(line, "get_window().borderless = ($1)", true); + // OS.get_borderless_window() -> get_window().borderless + line = reg_container.reg_os_get_borderless.sub(line, "get_window().borderless", true); + } + + // OS.SCREEN_ORIENTATION_* -> DisplayServer.SCREEN_* + if (line.contains("OS.SCREEN_ORIENTATION_")) { + line = reg_container.reg_os_screen_orient_enum.sub(line, "DisplayServer.SCREEN_$1", true); + } + + // OS -> Window simple replacements with optional set/get. + if (line.contains("current_screen")) { + line = reg_container.reg_os_current_screen.sub(line, "get_window().$1current_screen", true); + } + if (line.contains("min_window_size")) { + line = reg_container.reg_os_min_window_size.sub(line, "get_window().$1min_size", true); + } + if (line.contains("max_window_size")) { + line = reg_container.reg_os_max_window_size.sub(line, "get_window().$1max_size", true); + } + if (line.contains("window_position")) { + line = reg_container.reg_os_window_position.sub(line, "get_window().$1position", true); + } + if (line.contains("window_size")) { + line = reg_container.reg_os_window_size.sub(line, "get_window().$1size", true); + } + if (line.contains("et_screen_orientation")) { + line = reg_container.reg_os_getset_screen_orient.sub(line, "DisplayServer.screen_$1et_orientation", true); } // Instantiate @@ -3669,11 +3859,85 @@ void ProjectConverter3To4::process_gdscript_line(String &line, const RegExContai if (line.contains("OS.get_datetime")) { line = line.replace("OS.get_datetime", "Time.get_datetime_dict_from_system"); } + + // OS -> DisplayServer + if (line.contains("OS.get_display_cutouts")) { + line = line.replace("OS.get_display_cutouts", "DisplayServer.get_display_cutouts"); + } + if (line.contains("OS.get_screen_count")) { + line = line.replace("OS.get_screen_count", "DisplayServer.get_screen_count"); + } + if (line.contains("OS.get_screen_dpi")) { + line = line.replace("OS.get_screen_dpi", "DisplayServer.screen_get_dpi"); + } + if (line.contains("OS.get_screen_max_scale")) { + line = line.replace("OS.get_screen_max_scale", "DisplayServer.screen_get_max_scale"); + } + if (line.contains("OS.get_screen_position")) { + line = line.replace("OS.get_screen_position", "DisplayServer.screen_get_position"); + } + if (line.contains("OS.get_screen_refresh_rate")) { + line = line.replace("OS.get_screen_refresh_rate", "DisplayServer.screen_get_refresh_rate"); + } + if (line.contains("OS.get_screen_scale")) { + line = line.replace("OS.get_screen_scale", "DisplayServer.screen_get_scale"); + } + if (line.contains("OS.get_screen_size")) { + line = line.replace("OS.get_screen_size", "DisplayServer.screen_get_size"); + } + if (line.contains("OS.set_icon")) { + line = line.replace("OS.set_icon", "DisplayServer.set_icon"); + } + if (line.contains("OS.set_native_icon")) { + line = line.replace("OS.set_native_icon", "DisplayServer.set_native_icon"); + } + + // OS -> Window + if (line.contains("OS.window_borderless")) { + line = line.replace("OS.window_borderless", "get_window().borderless"); + } + if (line.contains("OS.get_real_window_size")) { + line = line.replace("OS.get_real_window_size", "get_window().get_size_with_decorations"); + } + if (line.contains("OS.is_window_focused")) { + line = line.replace("OS.is_window_focused", "get_window().has_focus"); + } + if (line.contains("OS.move_window_to_foreground")) { + line = line.replace("OS.move_window_to_foreground", "get_window().move_to_foreground"); + } + if (line.contains("OS.request_attention")) { + line = line.replace("OS.request_attention", "get_window().request_attention"); + } + if (line.contains("OS.set_window_title")) { + line = line.replace("OS.set_window_title", "get_window().set_title"); + } + + // get_tree().set_input_as_handled() -> get_viewport().set_input_as_handled() + if (line.contains("get_tree().set_input_as_handled()")) { + line = line.replace("get_tree().set_input_as_handled()", "get_viewport().set_input_as_handled()"); + } + + // Fix the simple case of using _unhandled_key_input + // func _unhandled_key_input(event: InputEventKey) -> _unhandled_key_input(event: InputEvent) + if (line.contains("_unhandled_key_input(event: InputEventKey)")) { + line = line.replace("_unhandled_key_input(event: InputEventKey)", "_unhandled_key_input(event: InputEvent)"); + } } void ProjectConverter3To4::process_csharp_line(String &line, const RegExContainer ®_container) { line = line.replace("OS.GetWindowSafeArea()", "DisplayServer.ScreenGetUsableRect()"); + // GetTree().SetInputAsHandled() -> GetViewport().SetInputAsHandled() + if (line.contains("GetTree().SetInputAsHandled()")) { + line = line.replace("GetTree().SetInputAsHandled()", "GetViewport().SetInputAsHandled()"); + } + + // Fix the simple case of using _UnhandledKeyInput + // func _UnhandledKeyInput(InputEventKey @event) -> _UnhandledKeyInput(InputEvent @event) + if (line.contains("_UnhandledKeyInput(InputEventKey @event)")) { + line = line.replace("_UnhandledKeyInput(InputEventKey @event)", "_UnhandledKeyInput(InputEvent @event)"); + } + // -- Connect(,,,things) -> Connect(,Callable(,),things) Object if (line.contains("Connect(")) { int start = line.find("Connect("); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 69c21177f9..560549d249 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -114,7 +114,7 @@ void ProjectSettingsEditor::_add_setting() { Variant value; Variant::construct(Variant::Type(type_box->get_selected_id()), value, nullptr, 0, ce); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Project Setting")); undo_redo->add_do_property(ps, setting, value); undo_redo->add_undo_property(ps, setting, ps->has_setting(setting) ? ps->get(setting) : Variant()); @@ -134,7 +134,7 @@ void ProjectSettingsEditor::_delete_setting() { Variant value = ps->get(setting); int order = ps->get_order(setting); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Delete Item")); undo_redo->add_do_method(ps, "clear", setting); @@ -223,7 +223,7 @@ void ProjectSettingsEditor::_select_type(Variant::Type p_type) { void ProjectSettingsEditor::shortcut_input(const Ref<InputEvent> &p_event) { ERR_FAIL_COND(p_event.is_null()); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); const Ref<InputEventKey> k = p_event; if (k.is_valid() && k->is_pressed()) { @@ -345,7 +345,7 @@ void ProjectSettingsEditor::_action_added(const String &p_name) { action["events"] = Array(); action["deadzone"] = 0.5f; - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Input Action")); undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", name, action); undo_redo->add_undo_method(ProjectSettings::get_singleton(), "clear", name); @@ -361,7 +361,7 @@ void ProjectSettingsEditor::_action_edited(const String &p_name, const Dictionar const String property_name = "input/" + p_name; Dictionary old_val = GLOBAL_GET(property_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (old_val["deadzone"] != p_action["deadzone"]) { // Deadzone Changed undo_redo->create_action(TTR("Change Action deadzone")); @@ -398,7 +398,7 @@ void ProjectSettingsEditor::_action_removed(const String &p_name) { Dictionary old_val = GLOBAL_GET(property_name); int order = ProjectSettings::get_singleton()->get_order(property_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Erase Input Action")); undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", property_name); undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", property_name, old_val); @@ -421,7 +421,7 @@ void ProjectSettingsEditor::_action_renamed(const String &p_old_name, const Stri int order = ProjectSettings::get_singleton()->get_order(old_property_name); Dictionary action = GLOBAL_GET(old_property_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Input Action Event")); // Do: clear old, set new undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", old_property_name); @@ -451,7 +451,7 @@ void ProjectSettingsEditor::_action_reordered(const String &p_action_name, const HashMap<String, Variant> action_values; ProjectSettings::get_singleton()->get_property_list(&props); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Update Input Action Order")); for (const PropertyInfo &prop : props) { diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp index b7b316df64..c3a99e96ef 100644 --- a/editor/rename_dialog.cpp +++ b/editor/rename_dialog.cpp @@ -583,7 +583,7 @@ void RenameDialog::rename() { _iterate_scene(root_node, selected_node_list, &global_count); if (!to_rename.is_empty()) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Batch Rename")); // Make sure to iterate reversed so that child nodes will find parents. diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index ac6bceaa55..733f140a56 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -231,7 +231,7 @@ void SceneTreeDock::_perform_instantiate_scenes(const Vector<String> &p_files, N return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Instantiate Scene(s)")); for (int i = 0; i < instances.size(); i++) { @@ -275,7 +275,7 @@ void SceneTreeDock::_replace_with_branch_scene(const String &p_file, Node *base) return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Replace with Branch Scene")); Node *parent = base->get_parent(); @@ -540,7 +540,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Detach Script"), UndoRedo::MERGE_DISABLE, EditorNode::get_singleton()->get_edited_scene()); undo_redo->add_do_method(EditorNode::get_singleton(), "push_item", (Script *)nullptr); @@ -611,7 +611,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; // one or more nodes can not be moved } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (selection.size() == 1) { undo_redo->create_action(TTR("Move Node In Parent")); } @@ -661,7 +661,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Duplicate Node(s)"), UndoRedo::MERGE_DISABLE, selection.front()->get()); undo_redo->add_do_method(editor_selection, "clear"); @@ -778,7 +778,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Make node as Root")); undo_redo->add_do_method(node->get_parent(), "remove_child", node); undo_redo->add_do_method(EditorNode::get_singleton(), "set_edited_scene", node); @@ -1023,7 +1023,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { Node *node = e->get(); if (node) { Node *root = EditorNode::get_singleton()->get_edited_scene(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (!root) { break; } @@ -1099,7 +1099,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { bool enabling = !first_selected->get()->is_unique_name_in_owner(); List<Node *> full_selection = editor_selection->get_full_selected_node_list(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (enabling) { Vector<Node *> new_unique_nodes; @@ -1226,7 +1226,7 @@ void SceneTreeDock::_property_selected(int p_idx) { } void SceneTreeDock::_perform_property_drop(Node *p_node, String p_property, Ref<Resource> p_res) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(vformat(TTR("Set %s"), p_property)); undo_redo->add_do_property(p_node, p_property, p_res); undo_redo->add_undo_property(p_node, p_property, p_node->get(p_property)); @@ -1234,7 +1234,7 @@ void SceneTreeDock::_perform_property_drop(Node *p_node, String p_property, Ref< } void SceneTreeDock::add_root_node(Node *p_node) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action_for_history(TTR("New Scene Root"), editor_data->get_current_edited_scene_history_id()); undo_redo->add_do_method(EditorNode::get_singleton(), "set_edited_scene", p_node); undo_redo->add_do_method(scene_tree, "update_tree"); @@ -1385,7 +1385,7 @@ void SceneTreeDock::_notification(int p_what) { void SceneTreeDock::_node_replace_owner(Node *p_base, Node *p_node, Node *p_root, ReplaceOwnerMode p_mode) { if (p_node->get_owner() == p_base && p_node != p_root) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); switch (p_mode) { case MODE_BIDI: { bool disable_unique = p_node->is_unique_name_in_owner() && p_root->get_node_or_null(UNIQUE_NODE_PREFIX + String(p_node->get_name())) != nullptr; @@ -1619,7 +1619,7 @@ void SceneTreeDock::perform_node_renames(Node *p_base, HashMap<Node *, NodePath> Variant old_variant = p_base->get(propertyname); Variant updated_variant = old_variant; if (_check_node_path_recursive(p_base, updated_variant, p_renames)) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_property(p_base, propertyname, updated_variant); undo_redo->add_undo_property(p_base, propertyname, old_variant); p_base->set(propertyname, updated_variant); @@ -1666,7 +1666,7 @@ void SceneTreeDock::perform_node_renames(Node *p_base, HashMap<Node *, NodePath> } HashMap<Node *, NodePath>::Iterator found_path = p_renames->find(n); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (found_path) { if (found_path->value == NodePath()) { //will be erased @@ -1833,7 +1833,7 @@ void SceneTreeDock::_do_reparent(Node *p_new_parent, int p_position_in_parent, V // Sort by tree order, so re-adding is easy. p_nodes.sort_custom<Node::Comparator>(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Reparent Node"), UndoRedo::MERGE_DISABLE, p_nodes[0]); HashMap<Node *, NodePath> path_renames; @@ -1968,7 +1968,7 @@ void SceneTreeDock::_script_created(Ref<Script> p_script) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Attach Script"), UndoRedo::MERGE_DISABLE, selected.front()->get()); for (Node *E : selected) { Ref<Script> existing = E->get_script(); @@ -1994,7 +1994,7 @@ void SceneTreeDock::_shader_created(Ref<Shader> p_shader) { Ref<Shader> existing = selected_shader_material->get_shader(); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Shader")); undo_redo->add_do_method(selected_shader_material.ptr(), "set_shader", p_shader); undo_redo->add_undo_method(selected_shader_material.ptr(), "set_shader", existing); @@ -2063,7 +2063,7 @@ void SceneTreeDock::_delete_confirm(bool p_cut) { EditorNode::get_singleton()->get_editor_plugins_over()->make_visible(false); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(p_cut ? TTR("Cut Node(s)") : TTR("Remove Node(s)"), UndoRedo::MERGE_DISABLE, remove_list.front()->get()); bool entire_scene = false; @@ -2193,7 +2193,7 @@ void SceneTreeDock::_do_create(Node *p_parent) { } child->set_name(new_name); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action_for_history(TTR("Create Node"), editor_data->get_current_edited_scene_history_id()); if (edited_scene) { @@ -2262,7 +2262,7 @@ void SceneTreeDock::_create() { List<Node *> selection = editor_selection->get_selected_node_list(); ERR_FAIL_COND(selection.size() <= 0); - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Change type of node(s)"), UndoRedo::MERGE_DISABLE, selection.front()->get()); for (Node *n : selection) { @@ -2396,7 +2396,7 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop } //p_remove_old was added to support undo if (p_remove_old) { - EditorNode::get_undo_redo()->clear_history(); + EditorUndoRedoManager::get_singleton()->clear_history(); } newnode->set_name(newname); @@ -2618,7 +2618,7 @@ void SceneTreeDock::_script_dropped(String p_file, NodePath p_to) { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (Input::get_singleton()->is_key_pressed(Key::CTRL)) { Object *obj = ClassDB::instantiate(scr->get_instance_base_type()); ERR_FAIL_NULL(obj); @@ -3190,7 +3190,7 @@ List<Node *> SceneTreeDock::paste_nodes() { owner = paste_parent; } - Ref<EditorUndoRedoManager> &ur = EditorNode::get_undo_redo(); + EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton(); ur->create_action(TTR("Paste Node(s)"), UndoRedo::MERGE_DISABLE, EditorNode::get_singleton()->get_edited_scene()); ur->add_do_method(editor_selection, "clear"); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index b4f1ca5d0b..e0d748c478 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -68,7 +68,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i Node *n = get_node(np); ERR_FAIL_COND(!n); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); if (p_id == BUTTON_SUBSCENE) { if (n == get_scene_node()) { if (n && n->get_scene_inherited_state().is_valid()) { @@ -176,7 +176,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i void SceneTreeEditor::_toggle_visible(Node *p_node) { if (p_node->has_method("is_visible") && p_node->has_method("set_visible")) { bool v = bool(p_node->call("is_visible")); - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->add_do_method(p_node, "set_visible", !v); undo_redo->add_undo_method(p_node, "set_visible", v); } @@ -1015,7 +1015,7 @@ void SceneTreeEditor::_renamed() { which->set_metadata(0, n->get_path()); emit_signal(SNAME("node_renamed")); } else { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Rename Node")); emit_signal(SNAME("node_prerename"), n, new_name); undo_redo->add_do_method(this, "_rename_node", n->get_instance_id(), new_name); @@ -1373,10 +1373,6 @@ void SceneTreeEditor::_bind_methods() { ClassDB::bind_method("_rename_node", &SceneTreeEditor::_rename_node); ClassDB::bind_method("_test_update_tree", &SceneTreeEditor::_test_update_tree); - ClassDB::bind_method(D_METHOD("_get_drag_data_fw"), &SceneTreeEditor::get_drag_data_fw); - ClassDB::bind_method(D_METHOD("_can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw); - ClassDB::bind_method(D_METHOD("_drop_data_fw"), &SceneTreeEditor::drop_data_fw); - ClassDB::bind_method(D_METHOD("update_tree"), &SceneTreeEditor::update_tree); ADD_SIGNAL(MethodInfo("node_selected")); @@ -1419,7 +1415,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope add_child(tree); - tree->set_drag_forwarding_compat(this); + SET_DRAG_FORWARDING_GCD(tree, SceneTreeEditor); if (p_can_rename) { tree->set_allow_rmb_select(true); tree->connect("item_mouse_selected", callable_mp(this, &SceneTreeEditor::_rmb_select)); diff --git a/editor/shader_globals_editor.cpp b/editor/shader_globals_editor.cpp index 4ac0a5b672..800de431eb 100644 --- a/editor/shader_globals_editor.cpp +++ b/editor/shader_globals_editor.cpp @@ -70,7 +70,7 @@ class ShaderGlobalsEditorInterface : public Object { GDCLASS(ShaderGlobalsEditorInterface, Object) void _set_var(const StringName &p_name, const Variant &p_value, const Variant &p_prev_value) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Set Shader Global Variable")); undo_redo->add_do_method(RS::get_singleton(), "global_shader_parameter_set", p_name, p_value); @@ -399,7 +399,7 @@ void ShaderGlobalsEditor::_variable_added() { return; } - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); Variant value = create_var(RS::GlobalShaderParameterType(variable_type->get_selected())); @@ -418,7 +418,7 @@ void ShaderGlobalsEditor::_variable_added() { } void ShaderGlobalsEditor::_variable_deleted(const String &p_variable) { - Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_singleton()->get_undo_redo(); + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); undo_redo->create_action(TTR("Add Shader Global Parameter")); undo_redo->add_do_method(RS::get_singleton(), "global_shader_parameter_remove", p_variable); diff --git a/editor/translations/af.po b/editor/translations/af.po index a705eb58fb..605b30cf67 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -11201,7 +11201,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 204dd9a41b..327332ae18 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -70,13 +70,14 @@ # xX-Void-Xx <arandomdude75@gmail.com>, 2022. # أحمد النور <ahmed2699@gmail.com>, 2022. # Commander Gordon <gordoncommander@gmail.com>, 2022. +# Abdulrahman <abdelrahman.ramadan686@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-29 23:55+0000\n" -"Last-Translator: Commander Gordon <gordoncommander@gmail.com>\n" +"PO-Revision-Date: 2022-12-21 07:01+0000\n" +"Last-Translator: Abdulrahman <abdelrahman.ramadan686@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -85,7 +86,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.14.2-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -877,7 +878,7 @@ msgstr "مطابقة المسافات الطويلة" #: core/project_settings.cpp msgid "Compression Level" -msgstr "ضغط المستوى" +msgstr "مستوى الضغط" #: core/project_settings.cpp msgid "Window Log Size" @@ -11177,7 +11178,7 @@ msgstr "نظر من الخلف" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [البوابات مفعلة]" @@ -28516,6 +28517,5 @@ msgid "Log Active Async Compiles Count" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Shader Cache Size (MB)" -msgstr "غيّر حجم الكاميرا" +msgstr "حجم ذاكرة التظليل المؤقتة (مب)" diff --git a/editor/translations/az.po b/editor/translations/az.po index b6b36d99e5..90dfffe257 100644 --- a/editor/translations/az.po +++ b/editor/translations/az.po @@ -10789,7 +10789,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 262a6825a6..728ffabe29 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -10946,7 +10946,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index df79cd5d84..b601d6d668 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -13,13 +13,14 @@ # Hasibul Hasan <d1hasib@yahoo.com>, 2020. # saitama <atik.wowspace@gmail.com>, 2022. # Joysankar Majumdar <joymajumdar15828@gmail.com>, 2022. +# Safuan <safuanhossain12616@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-29 10:04+0000\n" -"Last-Translator: Joysankar Majumdar <joymajumdar15828@gmail.com>\n" +"PO-Revision-Date: 2023-01-09 20:42+0000\n" +"Last-Translator: Safuan <safuanhossain12616@gmail.com>\n" "Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/" "godot/bn/>\n" "Language: bn\n" @@ -27,7 +28,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 4.13.1-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -50,14 +51,12 @@ msgid "V-Sync Enabled" msgstr "ভি-সিঙ্ক সক্রিয় করুন" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "V-Sync Via Compositor" msgstr "কম্পসিটর দ্বারা ভি-সিঙ্ক করা" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "Delta Smoothing" -msgstr "ডেল্টা মসৃণ করন" +msgstr "ডেল্টা মসৃণ" #: core/bind/core_bind.cpp #, fuzzy @@ -86,7 +85,6 @@ msgstr "পর্দা ঝোঁক/ উপস্থাপন" #: core/bind/core_bind.cpp core/project_settings.cpp main/main.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Window" msgstr "উইন্ডো" @@ -156,9 +154,8 @@ msgid "Target FPS" msgstr "লক্ষ্য-এফপিএস(ফ্রেম-প্রতি-সেকেন্ড)" #: core/bind/core_bind.cpp -#, fuzzy msgid "Time Scale" -msgstr "টাইম-স্কেল নোড" +msgstr "টাইম-স্কেল" #: core/bind/core_bind.cpp main/main.cpp #, fuzzy @@ -11772,7 +11769,7 @@ msgstr "পরিপ্রেক্ষিত (Perspective)" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/br.po b/editor/translations/br.po index 0cfc29b4d1..41d6ac8ee8 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -10666,7 +10666,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index d3ced0a876..ab408a0d9f 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -11292,7 +11292,7 @@ msgstr "Perspectiva" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 173d38c85c..ee5bb962be 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -32,13 +32,13 @@ # JoeMoos <josephmoose13@gmail.com>, 2022. # Mirinek <mirek.nozicka77@gmail.com>, 2022. # Lubomír Baloun <lubosbaloun@gmail.com>, 2022. -# Ondřej Pavelka <flamekick97@gmail.com>, 2022. +# Ondřej Pavelka <flamekick97@gmail.com>, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-12 09:46+0000\n" +"PO-Revision-Date: 2023-01-06 09:58+0000\n" "Last-Translator: Ondřej Pavelka <flamekick97@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -47,7 +47,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -251,9 +251,8 @@ msgstr "Data" #: modules/gdscript/language_server/gdscript_language_server.cpp #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Network" -msgstr "Síťový profiler" +msgstr "Síť" #: core/io/file_access_network.cpp #, fuzzy @@ -605,9 +604,8 @@ msgid "Application" msgstr "Akce" #: core/project_settings.cpp main/main.cpp -#, fuzzy msgid "Config" -msgstr "Nastavení přichycení" +msgstr "Konfigurace" #: core/project_settings.cpp #, fuzzy @@ -1582,9 +1580,8 @@ msgid "Editors" msgstr "Editory" #: editor/animation_track_editor.cpp editor/editor_settings.cpp -#, fuzzy msgid "Confirm Insert Track" -msgstr "Animace: Vložit stopu a klíč" +msgstr "Potvrdit vložení stopy" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -4547,17 +4544,16 @@ msgid "Version Control" msgstr "Správa verzí" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Username" -msgstr "Přejmenovat" +msgstr "Uživatelské jméno" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "SSH Public Key Path" -msgstr "" +msgstr "Cesta k veřejnému klíči SSH" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "SSH Private Key Path" -msgstr "" +msgstr "Cesta k soukromému klíči SSH" #: editor/editor_node.cpp msgid "Dock Position" @@ -5191,12 +5187,11 @@ msgstr "Ladicí program" #: editor/editor_profiler.cpp msgid "Profiler Frame History Size" -msgstr "" +msgstr "Velikost historie profilovacího rámce" #: editor/editor_profiler.cpp -#, fuzzy msgid "Profiler Frame Max Functions" -msgstr "Přejmenovat funkci" +msgstr "Maximální počet funkcí profilovacího rámce" #: editor/editor_properties.cpp msgid "Edit Text:" @@ -5723,82 +5718,78 @@ msgid "Show Members Overview" msgstr "Zobrazit přehled členů" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Files" -msgstr "Soubor" +msgstr "Soubory" #: editor/editor_settings.cpp -#, fuzzy msgid "Trim Trailing Whitespace On Save" -msgstr "Osekat koncové mezery" +msgstr "Osekat koncové mezery při uložení" #: editor/editor_settings.cpp msgid "Autosave Interval Secs" -msgstr "" +msgstr "Interval automatického ukládání v sekundách" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp msgid "Restore Scripts On Load" -msgstr "" +msgstr "Obnovit skripty při načtení" #: editor/editor_settings.cpp msgid "Auto Reload And Parse Scripts On Save" -msgstr "" +msgstr "Automaticky aktualizovat a parsovat skripty při uložení" #: editor/editor_settings.cpp msgid "Auto Reload Scripts On External Change" -msgstr "" +msgstr "Automaticky aktualizovat skripty při externí změně" #: editor/editor_settings.cpp msgid "Create Signal Callbacks" -msgstr "" +msgstr "Vytvořit callback signálu" #: editor/editor_settings.cpp msgid "Sort Members Outline Alphabetically" -msgstr "" +msgstr "Seřadit přehled členů abecedně" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Cursor" -msgstr "" +msgstr "Kurzor" #: editor/editor_settings.cpp msgid "Scroll Past End Of File" -msgstr "" +msgstr "Skrolovat za konec souboru" #: editor/editor_settings.cpp msgid "Block Caret" -msgstr "" +msgstr "Blokovat stříšku" #: editor/editor_settings.cpp msgid "Caret Blink" -msgstr "" +msgstr "Blikání stříšky" #: editor/editor_settings.cpp msgid "Caret Blink Speed" -msgstr "" +msgstr "Rychlost blikání stříšky" #: editor/editor_settings.cpp -#, fuzzy msgid "Right Click Moves Caret" -msgstr "Pravý klik pro přidání bodu" +msgstr "Pravý klik posune stříšku" #: editor/editor_settings.cpp modules/gdscript/gdscript.cpp #: modules/gdscript/gdscript_editor.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion" -msgstr "Kopírovat výběr" +msgstr "Dokončování" #: editor/editor_settings.cpp msgid "Idle Parse Delay" -msgstr "" +msgstr "Zpoždění parsování při nečinnosti" #: editor/editor_settings.cpp msgid "Auto Brace Complete" -msgstr "" +msgstr "Automatické doplnění závorky" #: editor/editor_settings.cpp msgid "Code Complete Delay" -msgstr "" +msgstr "Zpoždění dokončení kódu" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" @@ -5806,87 +5797,76 @@ msgstr "" #: editor/editor_settings.cpp msgid "Callhint Tooltip Offset" -msgstr "" +msgstr "Posunutí nápovědy" #: editor/editor_settings.cpp -#, fuzzy msgid "Complete File Paths" -msgstr "Kopírovat cestu k uzlu" +msgstr "Dokončit cestu k souboru" #: editor/editor_settings.cpp modules/gdscript/gdscript_editor.cpp -#, fuzzy msgid "Add Type Hints" -msgstr "Přidat typ" +msgstr "Přidat nápovědy typů" #: editor/editor_settings.cpp -#, fuzzy msgid "Use Single Quotes" -msgstr "Nová dlaždice" +msgstr "Používat jednoduché závorky" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Help Index" -msgstr "Zobrazit pomocníky" +msgstr "Zobrazit index nápovědy" #: editor/editor_settings.cpp msgid "Help Font Size" -msgstr "" +msgstr "Velikost fontu nápovědy" #: editor/editor_settings.cpp msgid "Help Source Font Size" -msgstr "" +msgstr "Velikost fontu zdroje nápovědy" #: editor/editor_settings.cpp msgid "Help Title Font Size" -msgstr "" +msgstr "Velikost fontu titulku nápovědy" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" msgstr "Mřížková mapa" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Pick Distance" -msgstr "Vybrat vzdálenost:" +msgstr "Výběrová vzdálenost" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Preview Size" -msgstr "Náhled" +msgstr "Velikost náhledu" #: editor/editor_settings.cpp msgid "Primary Grid Color" -msgstr "" +msgstr "Primární barva mřížky" #: editor/editor_settings.cpp msgid "Secondary Grid Color" -msgstr "" +msgstr "Sekundární barva mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Selection Box Color" -msgstr "Pouze výběr" +msgstr "Barva výběrového pole" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "3D Gizmos" -msgstr "Gizma" +msgstr "3D Rukojeti" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Gizmo Colors" -msgstr "Emisní barvy" +msgstr "Barvy rukojetí" #: editor/editor_settings.cpp -#, fuzzy msgid "Instanced" -msgstr "Instance" +msgstr "Instancováno" #: editor/editor_settings.cpp modules/gltf/gltf_node.cpp #: scene/3d/physics_body.cpp -#, fuzzy msgid "Joint" msgstr "Bod" @@ -5897,12 +5877,11 @@ msgstr "Bod" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "Tvar" #: editor/editor_settings.cpp -#, fuzzy msgid "Primary Grid Steps" -msgstr "Krok mřížky:" +msgstr "Primární stupně mřížky" #: editor/editor_settings.cpp msgid "Grid Size" @@ -5910,35 +5889,31 @@ msgstr "Velikost mřížky" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "Maximální úroveň rozdělení mřížky" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "Minimální úroveň rozdělení mřížky" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "" +msgstr "Sklon úrovně rozdělení mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XZ Plane" -msgstr "Vykreslit GridMap" +msgstr "Rovina XZ mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XY Plane" -msgstr "Vykreslit GridMap" +msgstr "Rovina XY mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid YZ Plane" -msgstr "Vykreslit GridMap" +msgstr "Rovina YZ mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Default FOV" -msgstr "Výchozí" +msgstr "Výchozí FOV" #: editor/editor_settings.cpp #, fuzzy @@ -5946,222 +5921,194 @@ msgid "Default Z Near" msgstr "Výchozí motiv" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Z Far" -msgstr "Výchozí" +msgstr "Výchozí Z limit dálky" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "Počet CPU vláken při zapékání světelných map" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Scheme" -msgstr "Navigační režim" +msgstr "Schéma navigace" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert Y Axis" -msgstr "Editovat osu Y" +msgstr "Invertovat osu Y" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert X Axis" -msgstr "Editovat osu X" +msgstr "Invertovat osu X" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Style" -msgstr "Zmenšit" +msgstr "Styl přiblížení" #: editor/editor_settings.cpp msgid "Emulate Numpad" -msgstr "" +msgstr "Emulovat numerickou klávesnici" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "" +msgstr "Emulovat třítlačítkovou myš" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Modifier" -msgstr "Seřadit podle první změny" +msgstr "Modifikátor orbitu" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Modifier" -msgstr "Režim posouvání" +msgstr "Modifikátor posouvání" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Modifier" -msgstr "Úpravy" +msgstr "Modifikátor přiblížení" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "" +msgstr "Zkreslené posouvání myši" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Feel" -msgstr "Navigační režim" +msgstr "Pocit navigace" #: editor/editor_settings.cpp msgid "Orbit Sensitivity" -msgstr "" +msgstr "Citlivost orbitu" #: editor/editor_settings.cpp msgid "Orbit Inertia" -msgstr "" +msgstr "Setrvačnost orbitu" #: editor/editor_settings.cpp -#, fuzzy msgid "Translation Inertia" -msgstr "Překlady" +msgstr "Setrvačnost překladu" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Inertia" -msgstr "Zvětšit" +msgstr "Setrvačnost přiblížení" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook" -msgstr "Volný pohled nahoru" +msgstr "Volný pohled" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Navigation Scheme" -msgstr "Vytvořit Navigation Mesh" +msgstr "Navigační schéma volného pohledu" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Sensitivity" -msgstr "Volný pohled doleva" +msgstr "Senzitivita volného pohledu" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Inertia" -msgstr "Volný pohled doleva" +msgstr "Setrvačnost volného pohledu" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Base Speed" -msgstr "Rychlost volného pohledu" +msgstr "Základní rychlost volného pohledu" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Activation Modifier" -msgstr "Zpomalení volného pohledu" +msgstr "Modifikátor aktivace volného pohledu" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Speed Zoom Link" -msgstr "Rychlost volného pohledu" +msgstr "Link rychlo přiblížení volného pohledu" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Grid Color" -msgstr "Vyberte barvu" +msgstr "Barva mřížky" #: editor/editor_settings.cpp -#, fuzzy msgid "Guides Color" -msgstr "Vyberte barvu" +msgstr "Barva vodítek" #: editor/editor_settings.cpp -#, fuzzy msgid "Smart Snapping Line Color" -msgstr "Chytré přichcování" +msgstr "Barva linky chytrého přichycování" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "Šířka kosti" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 1" -msgstr "Odstranit položky třídy" +msgstr "Barva kosti 1" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 2" -msgstr "Odstranit položky třídy" +msgstr "Barva kosti 2" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Selected Color" -msgstr "Konfigurace vybraného profilu:" +msgstr "Barva vybrané kosti" #: editor/editor_settings.cpp msgid "Bone IK Color" -msgstr "" +msgstr "Barva IK kosti" #: editor/editor_settings.cpp msgid "Bone Outline Color" -msgstr "" +msgstr "Barva obrysu kosti" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Outline Size" -msgstr "Velikost obrysu:" +msgstr "Velikost obrysu kosti" #: editor/editor_settings.cpp +#, fuzzy msgid "Viewport Border Color" -msgstr "" +msgstr "Barva ohraničení výřezu" #: editor/editor_settings.cpp +#, fuzzy msgid "Constrain Editor View" -msgstr "" +msgstr "Omezit pohled editoru" #: editor/editor_settings.cpp msgid "Simple Panning" -msgstr "" +msgstr "Jednoduché posouvání" #: editor/editor_settings.cpp msgid "Scroll To Pan" -msgstr "" +msgstr "Skrollovat pro posun" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Speed" -msgstr "Rychlost:" +msgstr "Rychlost posunu" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Poly Editor" -msgstr "Polygon 2D UV Editor" +msgstr "Editor polygonů" #: editor/editor_settings.cpp msgid "Point Grab Radius" -msgstr "" +msgstr "Dosah pro uchopení bodu" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Show Previous Outline" -msgstr "Předchozí rovina" +msgstr "Zobrazit předchozí obrys" #: editor/editor_settings.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Autorename Animation Tracks" -msgstr "Přejmenovat animaci" +msgstr "Automaticky přejmenovat animační stopy" #: editor/editor_settings.cpp msgid "Default Create Bezier Tracks" -msgstr "" +msgstr "Výchozí vytváření beziérových stop" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Create Reset Tracks" -msgstr "Vytvořit RESET stopu/stopy" +msgstr "Výchozí vytváření resetovacích stop" #: editor/editor_settings.cpp msgid "Onion Layers Past Color" -msgstr "" +msgstr "Barva cibulových vrstev minulosti" #: editor/editor_settings.cpp msgid "Onion Layers Future Color" -msgstr "" +msgstr "Barva cibulových vrstev budoucnosti" #: editor/editor_settings.cpp msgid "Visual Editors" @@ -6169,11 +6116,11 @@ msgstr "Vizuální editory" #: editor/editor_settings.cpp msgid "Minimap Opacity" -msgstr "" +msgstr "Průhlednost minimapy" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "Umístění okna" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp @@ -6183,49 +6130,42 @@ msgid "Rect" msgstr "Celý obdélník" #: editor/editor_settings.cpp -#, fuzzy msgid "Rect Custom Position" -msgstr "Nastavit bod z křivky" +msgstr "Vlastní pozice okna" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" msgstr "" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Save" -msgstr "Automatický řez" +msgstr "Automatické ukládání" #: editor/editor_settings.cpp -#, fuzzy msgid "Save Before Running" -msgstr "Uložit scénu před spuštěním..." +msgstr "Uložit před spuštěním" #: editor/editor_settings.cpp -#, fuzzy msgid "Font Size" -msgstr "Pohled zepředu" +msgstr "Velikost fontu" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Host" -msgstr "Vzdálený " +msgstr "Vzdálený host" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Port" -msgstr "Odstranit bod" +msgstr "Vzdálený port" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor SSL Certificates" -msgstr "Nastavení editoru" +msgstr "SSL certifikáty editoru" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "HTTP Proxy" #: editor/editor_settings.cpp msgid "Host" @@ -6244,9 +6184,8 @@ msgstr "Správce projektů" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp -#, fuzzy msgid "Sorting Order" -msgstr "Přejmenování složky:" +msgstr "Seřadit podle" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" @@ -6322,11 +6261,11 @@ msgstr "Číslo řádku:" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "Barva vynechávky" +msgstr "Barva stříšky" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Background Color" -msgstr "Barva pozadí vynechávky" +msgstr "Barva pozadí stříšky" #: editor/editor_settings.cpp msgid "Text Selected Color" @@ -7309,9 +7248,8 @@ msgid "Use Named Skins" msgstr "Použít škálovací přichytávání" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "External Files" -msgstr "Otevřít soubor" +msgstr "Externí soubory" #: editor/import/resource_importer_scene.cpp msgid "Store In Subdir" @@ -8293,7 +8231,7 @@ msgstr "Vynutit bílou modulaci" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Include Gizmos (3D)" -msgstr "Zahrnout Gizmos (3D)" +msgstr "Zahrnout rukojeti (3D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pin AnimationPlayer" @@ -8681,9 +8619,8 @@ msgid "Download Error" msgstr "Chyba při stahování" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Available URLs" -msgstr "Dostupné profily:" +msgstr "Dostupné URL" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -8771,7 +8708,7 @@ msgstr "Kategorie:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Site:" -msgstr "Web:" +msgstr "Stránka:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Support" @@ -9346,7 +9283,7 @@ msgstr "Vytvořit kosti z uzlů" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Custom Bones" -msgstr "Vymazat kosti" +msgstr "Vymazat vlastní kosti" #. TRANSLATORS: Noun, name of the 2D/3D View menus. #: editor/plugins/canvas_item_editor_plugin.cpp @@ -9715,7 +9652,7 @@ msgstr "Pravý klik pro přidání bodu" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "Zapéct GI probe" +msgstr "Zapéct GI sondu" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" @@ -10338,7 +10275,7 @@ msgstr "Rozdělit segment (v křivce)" #: editor/plugins/physical_bone_plugin.cpp msgid "Move Joint" -msgstr "Přesunout kloub" +msgstr "Posunout bod" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -10885,14 +10822,12 @@ msgid "External" msgstr "Externí" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Use External Editor" -msgstr "Debugovat v externím editoru" +msgstr "Používat externí editor" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Exec Path" -msgstr "Exportovat cestu" +msgstr "Cesta k spuštění" #: editor/plugins/script_editor_plugin.cpp msgid "Script Temperature Enabled" @@ -10920,11 +10855,11 @@ msgstr "Seřadit skripty podle" #: editor/plugins/script_editor_plugin.cpp msgid "List Script Names As" -msgstr "Zobrazit názvy seznamu skriptů jako" +msgstr "Zobrazit seznam názvů skriptů jako" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" -msgstr "" +msgstr "Parametry spuštění" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -11254,7 +11189,7 @@ msgstr "Perspektivní" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [aktivní portály]" @@ -11462,35 +11397,35 @@ msgstr "Není k dispozici při použití vykreslovacího modulu GLES2." #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" -msgstr "Volný pohled doleva" +msgstr "Levý volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Right" -msgstr "Volný pohled doprava" +msgstr "Pravý volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Forward" -msgstr "Volný pohled vpřed" +msgstr "Přední volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Backwards" -msgstr "Volný pohled dozadu" +msgstr "Zadní volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Up" -msgstr "Volný pohled nahoru" +msgstr "Horní volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Down" -msgstr "Volný pohled dolů" +msgstr "Dolní volný pohled" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Speed Modifier" -msgstr "Rychlost volného pohledu" +msgstr "Modifikátor rychlosti volného pohybu" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Slow Modifier" -msgstr "Zpomalení volného pohledu" +msgstr "Modifikátor zpomalení volného pohybu" #: editor/plugins/spatial_editor_plugin.cpp msgid "Toggle Camera Preview" @@ -11756,16 +11691,15 @@ msgstr "Po" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Size" -msgstr "" +msgstr "Nastavení velikosti rukojeti" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Opacity" -msgstr "" +msgstr "Nastavení průhlednosti rukojeti" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Show Viewport Rotation Gizmo" -msgstr "Uzamknout rotaci pohledu" +msgstr "Zobrazit tlačítko rotace zobrazení" #: editor/plugins/spatial_editor_plugin.cpp msgid "Unnamed Gizmo" @@ -12748,55 +12682,46 @@ msgid "Clear Transform" msgstr "Promazat transformaci" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Tile Map" -msgstr "Nakreslit TileMap" +msgstr "Mapa dlaždic" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Palette Min Width" -msgstr "" +msgstr "Minimální šířka palety" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Palette Item H Separation" -msgstr "Nazvaný oddělovač" +msgstr "H oddělování paletových položek" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Show Tile Names" -msgstr "Zobrazit všechny jazyky" +msgstr "Zobrazit názvy dlaždic" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Show Tile Ids" -msgstr "Zobrazit pravítka" +msgstr "Zobrazit Id dlaždic" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Sort Tiles By Name" -msgstr "Seřadit soubory" +msgstr "Řadit dlaždice podle názvu" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Bucket Fill Preview" -msgstr "Vyplnit barvou" +msgstr "Náhled vyplnění kbelíkem" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Editor Side" -msgstr "Editor" +msgstr "Strana editoru" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Display Grid" -msgstr "Rentgen pohled" +msgstr "Zobrazit mřížku" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Axis Color" -msgstr "Vyberte barvu" +msgstr "Barva osy" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." @@ -13331,7 +13256,7 @@ msgstr "Resetovat" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "Verzování (VCS)" +msgstr "Systémy pro správu verzí" #: editor/plugins/version_control_editor_plugin.cpp msgid "Initialize" @@ -13344,11 +13269,11 @@ msgstr "Odstranit bod" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH public key path" -msgstr "" +msgstr "Vybrat cestu k veřejnému klíči SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH private key path" -msgstr "" +msgstr "Vybrat cestu k veřejnému klíči SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" @@ -16148,15 +16073,15 @@ msgstr "Filtrovat dlaždice" #: editor/script_editor_debugger.cpp msgid "Auto Switch To Remote Scene Tree" -msgstr "" +msgstr "Automaticky přepnout na vzdálený strom scén" #: editor/script_editor_debugger.cpp msgid "Remote Scene Tree Refresh Interval" -msgstr "" +msgstr "Interval obnovení vzdáleného stromu scén" #: editor/script_editor_debugger.cpp msgid "Remote Inspect Refresh Interval" -msgstr "" +msgstr "Interval obnovení vzdálené kontroly" #: editor/script_editor_debugger.cpp msgid "Network Profiler" @@ -16254,7 +16179,7 @@ msgstr "Změnit rádius světla" #: editor/spatial_editor_gizmos.cpp msgid "Stream Player 3D" -msgstr "" +msgstr "Stream Player 3D" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" @@ -16264,7 +16189,7 @@ msgstr "Změnit úhel vysílání uzlu AudioStreamPlayer3D" #: platform/osx/export/export.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Camera" -msgstr "" +msgstr "Kamera" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" @@ -16276,7 +16201,7 @@ msgstr "Změnit velikost kamery" #: editor/spatial_editor_gizmos.cpp msgid "Visibility Notifier" -msgstr "" +msgstr "Oznamovatel viditelnosti" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" @@ -16287,23 +16212,20 @@ msgid "Change Particles AABB" msgstr "Změnit částice AABB" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Reflection Probe" -msgstr "Vybrat vlastnost" +msgstr "Reflexní sonda" #: editor/spatial_editor_gizmos.cpp msgid "Change Probe Extents" msgstr "Změnit rozsahy Probe" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "GI Probe" -msgstr "Zapéct GI probe" +msgstr "GI Sonda" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Baked Indirect Light" -msgstr "Nepřímé osvětlení" +msgstr "Zapečené nepřímé osvětlení" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Sphere Shape Radius" @@ -16334,40 +16256,36 @@ msgid "Change Ray Shape Length" msgstr "Změnit délku Ray Shape" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge" -msgstr "Navigační režim" +msgstr "Hrana navigace" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge Disabled" -msgstr "Navigační režim" +msgstr "Hrana navigace vypnuta" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Solid" -msgstr "Navigační režim" +msgstr "Pevná navigace" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Solid Disabled" -msgstr "Navigační režim" +msgstr "Pevná navigace vypnuta" #: editor/spatial_editor_gizmos.cpp msgid "Joint Body A" -msgstr "" +msgstr "Kloubové tělo A" #: editor/spatial_editor_gizmos.cpp msgid "Joint Body B" -msgstr "" +msgstr "Kloubové tělo B" #: editor/spatial_editor_gizmos.cpp msgid "Room Edge" -msgstr "" +msgstr "Hrana místnosti" #: editor/spatial_editor_gizmos.cpp msgid "Room Overlap" -msgstr "" +msgstr "Překrytí místností" #: editor/spatial_editor_gizmos.cpp #, fuzzy @@ -16375,17 +16293,16 @@ msgid "Set Room Point Position" msgstr "Nastavit pozici bodu křivky" #: editor/spatial_editor_gizmos.cpp scene/3d/portal.cpp -#, fuzzy msgid "Portal Margin" -msgstr "Nastavit okraj" +msgstr "Okraj portálu" #: editor/spatial_editor_gizmos.cpp msgid "Portal Edge" -msgstr "" +msgstr "Hrana portálu" #: editor/spatial_editor_gizmos.cpp msgid "Portal Arrow" -msgstr "" +msgstr "Šipka portálu" #: editor/spatial_editor_gizmos.cpp #, fuzzy @@ -16403,9 +16320,8 @@ msgstr "Jít zpět" #: editor/spatial_editor_gizmos.cpp scene/2d/light_occluder_2d.cpp #: scene/2d/tile_map.cpp -#, fuzzy msgid "Occluder" -msgstr "Režim okluze" +msgstr "Okluzor" #: editor/spatial_editor_gizmos.cpp #, fuzzy @@ -16849,7 +16765,7 @@ msgstr "" #: modules/csg/csg_gizmos.cpp msgid "CSG" -msgstr "" +msgstr "CSG" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -17215,18 +17131,16 @@ msgid "Object can't provide a length." msgstr "Objekt nemůže poskytnout délku." #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Language Server" -msgstr "Jazyk:" +msgstr "Jazykový server" #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Enable Smart Resolve" -msgstr "Nelze vyřešit" +msgstr "Povolit funkci chytrého řešení" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Show Native Symbols In Editor" -msgstr "" +msgstr "Zobrazení nativních symbolů v editoru" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Use Thread" @@ -17398,9 +17312,8 @@ msgid "Children" msgstr "Upravitelní potomci" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_skin.cpp -#, fuzzy msgid "Joints" -msgstr "Bod" +msgstr "Body" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_skin.cpp msgid "Roots" @@ -17521,7 +17434,7 @@ msgstr "" #: modules/gltf/gltf_state.cpp msgid "Cameras" -msgstr "" +msgstr "Kamery" #: modules/gltf/gltf_state.cpp servers/visual_server.cpp #, fuzzy @@ -17729,7 +17642,7 @@ msgstr "Nastavení GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Pick Distance:" -msgstr "Vybrat vzdálenost:" +msgstr "Výběrová vzdálenost:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Filter meshes" @@ -18793,7 +18706,7 @@ msgstr "Prioritní mód" #: modules/webrtc/webrtc_data_channel.h msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: modules/webrtc/webrtc_data_channel.h msgid "Max Channel In Buffer (KB)" @@ -18801,11 +18714,11 @@ msgstr "" #: modules/websocket/websocket_client.cpp msgid "Verify SSL" -msgstr "" +msgstr "Ověřit SSL" #: modules/websocket/websocket_client.cpp msgid "Trusted SSL Certificate" -msgstr "" +msgstr "Důvěryhodný certifikát SSL" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18844,7 +18757,7 @@ msgstr "Fyzická Klávesa" #: modules/websocket/websocket_server.cpp platform/javascript/export/export.cpp msgid "SSL Certificate" -msgstr "" +msgstr "Certifikát SSL" #: modules/websocket/websocket_server.cpp #, fuzzy @@ -18896,28 +18809,27 @@ msgstr "Chytré přichcování" #: platform/android/export/export.cpp msgid "Android SDK Path" -msgstr "" +msgstr "Cesta k Android SDK" #: platform/android/export/export.cpp -#, fuzzy msgid "Debug Keystore" -msgstr "Ladicí program" +msgstr "Ladění Keystore" #: platform/android/export/export.cpp msgid "Debug Keystore User" -msgstr "" +msgstr "Uživatel ladění Keystore" #: platform/android/export/export.cpp msgid "Debug Keystore Pass" -msgstr "" +msgstr "Průchod ladění Keystore" #: platform/android/export/export.cpp msgid "Force System User" -msgstr "" +msgstr "Vynutit systémového uživatele" #: platform/android/export/export.cpp msgid "Shutdown ADB On Exit" -msgstr "" +msgstr "Vypnout ADB při ukončení" #: platform/android/export/export_plugin.cpp msgid "Launcher Icons" @@ -19000,7 +18912,7 @@ msgstr "Ladicí program" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Debug Password" -msgstr "" +msgstr "Heslo ladění" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19873,7 +19785,7 @@ msgstr "Chyba při spuštění serveru HTTP:" #: platform/javascript/export/export.cpp msgid "Web" -msgstr "" +msgstr "Web" #: platform/javascript/export/export.cpp msgid "HTTP Host" @@ -19884,13 +19796,12 @@ msgid "HTTP Port" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Use SSL" -msgstr "Použít přichycení" +msgstr "Použít SSL" #: platform/javascript/export/export.cpp msgid "SSL Key" -msgstr "" +msgstr "Klíč SSL" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." @@ -19952,9 +19863,8 @@ msgid "Invalid entitlements file." msgstr "Neplatná přípona." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Neplatná přípona." +msgstr "Neplatný spouštěcí soubor." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." @@ -20442,7 +20352,7 @@ msgstr "" #: platform/osx/export/export.cpp msgid "Force Builtin Codesign" -msgstr "" +msgstr "Vynutit vestavěný codesign" #: platform/uwp/export/export.cpp #, fuzzy @@ -20580,6 +20490,8 @@ msgid "" "Godot's Mono version does not support the UWP platform. Use the standard " "build (no C# support) if you wish to target UWP." msgstr "" +"Mono verze Godotu nepodporuje platformu UWP. Použijte standartní build (bez " +"podpory C#) pokud chcete použít platformu UWP." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -20635,7 +20547,7 @@ msgstr "Neplatné rozměry obrázku uvítací obrazovky (měly by být 620x300). #: platform/uwp/export/export.cpp msgid "UWP" -msgstr "" +msgstr "UWP" #: platform/uwp/export/export.cpp platform/windows/export/export.cpp #, fuzzy @@ -20644,12 +20556,11 @@ msgstr "Signál" #: platform/uwp/export/export.cpp msgid "Debug Certificate" -msgstr "" +msgstr "Certifikát ladění" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Debug Algorithm" -msgstr "Ladicí program" +msgstr "Algoritmus ladění" #: platform/windows/export/export.cpp #, fuzzy @@ -21715,9 +21626,8 @@ msgid "Capping" msgstr "" #: scene/2d/line_2d.cpp -#, fuzzy msgid "Joint Mode" -msgstr "Režim ikony" +msgstr "Mód bodu" #: scene/2d/line_2d.cpp #, fuzzy @@ -22659,9 +22569,8 @@ msgid "Light Data" msgstr "S daty" #: scene/3d/bone_attachment.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Bone Name" -msgstr "Název uzlu:" +msgstr "Název kosti" #: scene/3d/camera.cpp msgid "Keep Aspect" @@ -23827,18 +23736,16 @@ msgid "Overlap Warning Threshold" msgstr "" #: scene/3d/room_manager.cpp -#, fuzzy msgid "Preview Camera" -msgstr "Náhled" +msgstr "Náhled kamery" #: scene/3d/room_manager.cpp msgid "Portal Depth Limit" msgstr "" #: scene/3d/room_manager.cpp -#, fuzzy msgid "Default Portal Margin" -msgstr "Nastavit okraj" +msgstr "Výchozí okraj portálu" #: scene/3d/room_manager.cpp #, fuzzy @@ -23875,6 +23782,9 @@ msgid "" "Room overlap detected, cameras may work incorrectly in overlapping area.\n" "Check output log for details." msgstr "" +"Bylo detekováno překrytí místností, kamery nemusí fungovat správně v " +"překryvajících oblastech.\n" +"Podrobnosti najdete ve výstupním protokolu." #: scene/3d/room_manager.cpp msgid "" @@ -24370,14 +24280,12 @@ msgid "Zero Y" msgstr "Nula" #: scene/animation/skeleton_ik.cpp -#, fuzzy msgid "Root Bone" -msgstr "Název kořenového uzlu" +msgstr "Kořenová kost" #: scene/animation/skeleton_ik.cpp -#, fuzzy msgid "Tip Bone" -msgstr "Kosti" +msgstr "Špičková kost" #: scene/animation/skeleton_ik.cpp #, fuzzy @@ -24904,7 +24812,7 @@ msgstr "" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Caret" -msgstr "" +msgstr "Stříška" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Blink" @@ -25554,7 +25462,7 @@ msgstr "Vynásobit %s" #: scene/main/scene_tree.cpp scene/resources/mesh_library.cpp #: scene/resources/shape_2d.cpp msgid "Shapes" -msgstr "" +msgstr "Tvary" #: scene/main/scene_tree.cpp msgid "Shape Color" @@ -25721,7 +25629,7 @@ msgstr "Levé lineární" #: scene/main/viewport.cpp msgid "Render Direct To Screen" -msgstr "" +msgstr "Vykreslovat přímo na obrazovku" #: scene/main/viewport.cpp #, fuzzy @@ -26519,9 +26427,8 @@ msgid "Label Width" msgstr "Vlevo po celé výšce" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Screen Picker" -msgstr "Operátor screen." +msgstr "Výběr obrazovky" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -27600,9 +27507,8 @@ msgid "Bind" msgstr "Vazba" #: scene/resources/skin.cpp -#, fuzzy msgid "Bone" -msgstr "Kosti" +msgstr "Kost" #: scene/resources/sky.cpp #, fuzzy diff --git a/editor/translations/da.po b/editor/translations/da.po index bb158fcada..5a9e684e85 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -11471,7 +11471,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index 61a5a51b9c..6d1c27e5b2 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -23,7 +23,7 @@ # Peter Friedland <peter_friedland@gmx.de>, 2016. # No need for a name <endoplasmatik@gmx.net>, 2016. # Sönke <me@eknoes.de>, 2018. -# So Wieso <sowieso@dukun.de>, 2016-2018, 2019, 2020, 2021, 2022. +# So Wieso <sowieso@dukun.de>, 2016-2018, 2019, 2020, 2021, 2022, 2023. # Tim Schellenberg <smwleod@gmail.com>, 2017. # Timo Schwarzer <account@timoschwarzer.com>, 2016-2018. # viernullvier <hannes.breul+github@gmail.com>, 2016. @@ -87,13 +87,14 @@ # Anonynonymouse <tom.spaine60388@gmail.com>, 2022. # Felix Bitsch <felix.a.bitsch@gmail.com>, 2022. # miguel <miguel-gonzalez@gmx.de>, 2022. +# Least Significant Bite <leastsignificantbite@proton.me>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-13 13:21+0000\n" -"Last-Translator: <artism90@googlemail.com>\n" +"PO-Revision-Date: 2023-01-09 20:42+0000\n" +"Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -101,7 +102,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -482,7 +483,7 @@ msgstr "Gedrückt" #: core/os/input_event.cpp msgid "Scancode" -msgstr "Scancode" +msgstr "Tastencode" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -3751,7 +3752,7 @@ msgstr "Hoch" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: scene/main/node.cpp scene/resources/default_theme/default_theme.cpp msgid "Node" -msgstr "Knoten" +msgstr "das Node" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" @@ -11038,7 +11039,7 @@ msgstr "Hinten perspektivisch" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [Portale aktiv]" @@ -14308,17 +14309,15 @@ msgid "Invalid project path (changed anything?)." msgstr "Ungültiger Projektpfad (etwas geändert?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"Die Datei project.godot im Projektpfad konnte nicht geladen werden (Fehler " -"%d). Sie könnte fehlen oder beschädigt sein." +"Projekt in ‚%s‘ konnte nicht geladen werden (Fehler %d). Es ist " +"möglicherweise nicht vorhanden oder beschädigt." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "Projekt in ‚%s‘ kann nicht geöffnet werden." +msgstr "Projekt konnte nicht in ‚%s‘ gespeichert werden (Fehler %d)." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -23255,14 +23254,12 @@ msgid "AABB" msgstr "AABB" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Sorting" -msgstr "Sortiere" +msgstr "Sortierung" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Use AABB Center" -msgstr "Ambient verwenden" +msgstr "AABB-Mittelpunkt verwenden" #: scene/3d/visual_instance.cpp scene/resources/navigation_mesh.cpp msgid "Geometry" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 7b7bfd71cc..964eb46175 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -1,6 +1,6 @@ # LANGUAGE translation of the Godot Engine editor. -# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. -# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). +# Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). +# Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. # This file is distributed under the same license as the Godot source code. # # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. @@ -10564,7 +10564,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 98873c7d40..fe89b69334 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -18,13 +18,14 @@ # JessicaLukatz <jessicalukatz32038@gmail.com>, 2022. # Anthony V. <batmanplayer123@gmail.com>, 2022. # Anthony V. <anthonyv156@outlook.com>, 2022. +# Ilias Vasilakis <vaselas99@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-05-20 11:17+0000\n" -"Last-Translator: Anthony V. <anthonyv156@outlook.com>\n" +"PO-Revision-Date: 2023-01-15 13:34+0000\n" +"Last-Translator: Ilias Vasilakis <vaselas99@gmail.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -32,7 +33,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -622,7 +623,7 @@ msgstr "Εμφάνιση όλων" #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp #: scene/3d/label_3d.cpp scene/gui/text_edit.cpp scene/resources/texture.cpp msgid "Width" -msgstr "" +msgstr "Πλάτος" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/gltf/gltf_node.cpp modules/opensimplex/noise_texture.cpp @@ -636,7 +637,7 @@ msgstr "Φως" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "Πάντα στο επάνω μέρος" #: core/project_settings.cpp #, fuzzy @@ -804,7 +805,7 @@ msgstr "Απόδοση" #: scene/resources/multimesh.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Quality" -msgstr "" +msgstr "Ποιότητα" #: core/project_settings.cpp scene/gui/file_dialog.cpp #: scene/main/scene_tree.cpp scene/resources/navigation_mesh.cpp @@ -863,7 +864,7 @@ msgstr "" #: core/project_settings.cpp msgid "Compression Level" -msgstr "" +msgstr "Βαθμός Συμπίεσης" #: core/project_settings.cpp msgid "Window Log Size" @@ -1034,11 +1035,11 @@ msgstr "" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Μέγιστος αριθμός οπτικοποιήσημων στοιχείων" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "Μέγιστος αριθμός Οπτικοποιήσημων Φωτών" #: drivers/gles3/rasterizer_scene_gles3.cpp #, fuzzy @@ -1081,7 +1082,7 @@ msgstr "" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" -msgstr "" +msgstr "Υψηλή Ποιότητα" #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Blend Shape Max Buffer Size (KB)" @@ -1196,7 +1197,7 @@ msgstr "Ποσότητα:" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Ορίσματα" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -2474,7 +2475,7 @@ msgstr "" #: editor/editor_asset_installer.cpp msgid "Contents of asset \"%s\" - No files conflict with your project:" -msgstr "" +msgstr "Περιεχόμενα Πόρου \"%s\" - Καμία Σύγκρουση αρχείων στο Έργο σου:" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -2486,9 +2487,8 @@ msgid "The following files failed extraction from asset \"%s\":" msgstr "Η εξαγωγή των ακόλουθων αρχείων από το πακέτο απέτυχε:" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "(and %s more files)" -msgstr "Και %s αρχεία ακόμα." +msgstr "Και %s αρχεία ακόμα" #: editor/editor_asset_installer.cpp #, fuzzy @@ -2837,22 +2837,19 @@ msgstr "Επιλέξτε" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Εξαγωγή Έργου για πλατφόρμα:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with warnings." -msgstr "Αντιγραφή διαδρομής κόμβου" +msgstr "Ολοκληρώθηκε με Προειδοποιήσεις." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Το πακέτο εγκαταστάθηκε επιτυχώς!" +msgstr "Επιτυχής Ολοκλήρωση." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Απέτυχε:" +msgstr "Απέτυχε." #: editor/editor_export.cpp msgid "Storing File:" @@ -2877,14 +2874,12 @@ msgid "Cannot create file \"%s\"." msgstr "Αδύνατη η δημιουργία φακέλου." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Απέτυχε η εγγραφή σε αρχείο:" +msgstr "Απέτυχε η εξαγωγή αρχείων έργου." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Αδύνατο το άνοιγμα αρχείου για εγγραφή:" +msgstr "Αδύνατο το άνοιγμα αρχείου για ανάγνωση απο το μονοπάτι \"%s\"." #: editor/editor_export.cpp #, fuzzy @@ -2962,9 +2957,8 @@ msgid "Release" msgstr "Ελευθέρωση" #: editor/editor_export.cpp -#, fuzzy msgid "Binary Format" -msgstr "Τελεστής χρώματος." +msgstr "Δυαδική Μορφή" #: editor/editor_export.cpp msgid "64 Bits" @@ -3017,14 +3011,12 @@ msgid "Prepare Template" msgstr "Διαχείριση Προτύπων" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "Η δεδομένη διαδρομή εξαγωγής δεν υπάρχει:" +msgstr "Η δεδομένη διαδρομή εξαγωγής δεν υπάρχει." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Δεν βρέθηκε αρχείο προτύπου:" +msgstr "Δεν βρέθηκε το αρχείο προτύπου: \"%s\"." #: editor/editor_export.cpp #, fuzzy @@ -3077,7 +3069,7 @@ msgstr "Πλατφόρμα Εισαγωγής" #: editor/editor_feature_profile.cpp msgid "Allows to view and edit 3D scenes." -msgstr "" +msgstr "Επιτρέπει την προβολή και επεξεργασία τρισδιάστατων σκηνών." #: editor/editor_feature_profile.cpp msgid "Allows to edit scripts using the integrated script editor." @@ -6103,9 +6095,8 @@ msgid "Bone Outline Color" msgstr "" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Outline Size" -msgstr "Μέγεθος περιγράμματος:" +msgstr "Μέγεθος περιγράμματος Κοκάλου" #: editor/editor_settings.cpp msgid "Viewport Border Color" @@ -10857,7 +10848,7 @@ msgstr "Προηγούμενη Δέσμη Ενεργειών" #: editor/plugins/script_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp msgid "File" -msgstr "Αρχείο" +msgstr "Φάκελος" #: editor/plugins/script_editor_plugin.cpp msgid "Open..." @@ -11366,7 +11357,7 @@ msgstr "Προοπτική" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" @@ -16732,15 +16723,15 @@ msgstr "Χρήση κουμπώματος" #: main/main.cpp msgid "Per Pixel Transparency" -msgstr "" +msgstr "Διαφάνεια ανα Πίξελ" #: main/main.cpp msgid "Allowed" -msgstr "" +msgstr "Επιτρεπτό" #: main/main.cpp msgid "Intended Usage" -msgstr "" +msgstr "Προβλεπόμενη Χρήση" #: main/main.cpp #, fuzzy @@ -16754,7 +16745,7 @@ msgstr "Σφάλμα αποθήκευσης" #: main/main.cpp msgid "Threads" -msgstr "" +msgstr "Νήματα" #: main/main.cpp servers/physics_2d/physics_2d_server_wrap_mt.h #, fuzzy @@ -16767,7 +16758,7 @@ msgstr "" #: main/main.cpp msgid "Handheld" -msgstr "" +msgstr "Χειρός" #: main/main.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp @@ -16799,7 +16790,7 @@ msgstr "" #: scene/gui/scroll_container.cpp scene/gui/text_edit.cpp scene/gui/tree.cpp #: scene/main/viewport.cpp scene/register_scene_types.cpp msgid "GUI" -msgstr "" +msgstr "Γραφική Διεπαφή Χρήσης" #: main/main.cpp msgid "Drop Mouse On GUI Input Disabled" @@ -16811,7 +16802,7 @@ msgstr "" #: main/main.cpp msgid "Print FPS" -msgstr "" +msgstr "Δείξε Καρέ ανα Δευτερόλεπτο" #: main/main.cpp msgid "Verbose stdout" @@ -16834,7 +16825,7 @@ msgstr "Καρέ Επιλογής" #: main/main.cpp msgid "Low Processor Mode" -msgstr "" +msgstr "Λειτουργεία Χαμηλής Χρήσης Επεξεργαστή" #: main/main.cpp msgid "Delta Sync After Draw" @@ -16860,7 +16851,7 @@ msgstr "Σημείο" #: main/main.cpp msgid "Touch Delay" -msgstr "" +msgstr "Καθυστέρηση Επαφής" #: main/main.cpp servers/visual_server.cpp msgid "GLES3" @@ -16884,7 +16875,7 @@ msgstr "Εμφάνιση περιβάλλοντος" #: main/main.cpp msgid "Default Clear Color" -msgstr "" +msgstr "Προκαθορισμένο Χρώμα Καθαρίσματος" #: main/main.cpp msgid "Boot Splash" @@ -16897,11 +16888,11 @@ msgstr "Εμφάνιση Οστών" #: main/main.cpp msgid "Image" -msgstr "" +msgstr "Εικόνα" #: main/main.cpp msgid "Fullsize" -msgstr "" +msgstr "Πλήρης Μέγεθος" #: main/main.cpp scene/resources/dynamic_font.cpp #, fuzzy @@ -16932,11 +16923,11 @@ msgstr "" #: main/main.cpp msgid "Emulate Touch From Mouse" -msgstr "" +msgstr "Προσομοίωση Αφής απο το Ποντίκι" #: main/main.cpp msgid "Emulate Mouse From Touch" -msgstr "" +msgstr "Προσομοίωση Ποντικιού απο Αφή" #: main/main.cpp #, fuzzy @@ -16974,11 +16965,11 @@ msgstr "Λήξη χρονικού ορίου." #: main/main.cpp msgid "Runtime" -msgstr "" +msgstr "Χρόνος Εκτέλεσης" #: main/main.cpp msgid "Unhandled Exception Policy" -msgstr "" +msgstr "Πολιτική μη-χειριζόμενων Εξαίρεσεων" #: main/main.cpp #, fuzzy @@ -16988,7 +16979,7 @@ msgstr "Εύρεση είδους κόμβου" #: main/main.cpp scene/gui/texture_progress.cpp #: scene/gui/viewport_container.cpp msgid "Stretch" -msgstr "" +msgstr "Τέντωμα" #: main/main.cpp #, fuzzy @@ -16997,11 +16988,11 @@ msgstr "Επιθεωρητής" #: main/main.cpp msgid "Shrink" -msgstr "" +msgstr "Συστολή" #: main/main.cpp scene/main/scene_tree.cpp msgid "Auto Accept Quit" -msgstr "" +msgstr "Αυτόματη Αποδοχή Εξόδου" #: main/main.cpp scene/main/scene_tree.cpp #, fuzzy @@ -17015,11 +17006,11 @@ msgstr "Προσκόλληση σε Πλευρές Κόμβου" #: main/main.cpp msgid "Dynamic Fonts" -msgstr "" +msgstr "Δυναμικές Γραμματοσειρές" #: main/main.cpp msgid "Use Oversampling" -msgstr "" +msgstr "Χρήση Υπερδειγματοληψίας" #: modules/bullet/register_types.cpp modules/bullet/space_bullet.cpp msgid "Active Soft World" @@ -17052,7 +17043,7 @@ msgstr "Επιλογές" #: modules/csg/csg_shape.cpp msgid "Calculate Tangents" -msgstr "" +msgstr "Υπολογεισμός Καθέτων" #: modules/csg/csg_shape.cpp #, fuzzy @@ -17110,7 +17101,7 @@ msgstr "Εμφάνιση Οδηγιών" #: modules/csg/csg_shape.cpp msgid "Cone" -msgstr "" +msgstr "Κώνος" #: modules/csg/csg_shape.cpp #, fuzzy @@ -17135,11 +17126,11 @@ msgstr "Πολύγωνα" #: modules/csg/csg_shape.cpp msgid "Spin Degrees" -msgstr "" +msgstr "Βαθμοί Περιστοφικής Κίνησης" #: modules/csg/csg_shape.cpp msgid "Spin Sides" -msgstr "" +msgstr "Πλευρές Περιστροφικής Κίνησης" #: modules/csg/csg_shape.cpp #, fuzzy @@ -17337,7 +17328,7 @@ msgstr "Δέσμες Ενεργειών" #: modules/gdscript/editor/gdscript_highlighter.cpp msgid "Function Definition Color" -msgstr "" +msgstr "Χρώμα Δήλωσης Συνάρτησης" #: modules/gdscript/editor/gdscript_highlighter.cpp #, fuzzy @@ -17350,7 +17341,7 @@ msgstr "" #: modules/gdscript/gdscript.cpp msgid "Treat Warnings As Errors" -msgstr "" +msgstr "Συμπεριφορά σε προειδοποιήσεις ως σφάλματα" #: modules/gdscript/gdscript.cpp msgid "Exclude Addons" @@ -17414,7 +17405,7 @@ msgstr "" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Use Thread" -msgstr "" +msgstr "Χρήση Νήματος" #: modules/gltf/editor_scene_exporter_gltf_plugin.cpp #, fuzzy @@ -17639,11 +17630,11 @@ msgstr "" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Factor" -msgstr "" +msgstr "Βαθμός Διάχυσης" #: modules/gltf/gltf_spec_gloss.cpp msgid "Gloss Factor" -msgstr "" +msgstr "Βαθμός Γυαλάδας" #: modules/gltf/gltf_spec_gloss.cpp #, fuzzy @@ -17704,11 +17695,11 @@ msgstr "Δυνατότητες" #: modules/gltf/gltf_state.cpp platform/uwp/export/export.cpp msgid "Images" -msgstr "" +msgstr "Εικόνες" #: modules/gltf/gltf_state.cpp msgid "Cameras" -msgstr "" +msgstr "Κάμερες" #: modules/gltf/gltf_state.cpp servers/visual_server.cpp #, fuzzy @@ -17782,7 +17773,7 @@ msgstr "Κέντρο" #: scene/2d/tile_map.cpp scene/3d/collision_object.cpp scene/3d/soft_body.cpp #: scene/resources/material.cpp msgid "Mask" -msgstr "" +msgstr "Μάσκα" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp #, fuzzy @@ -17932,7 +17923,7 @@ msgstr "" #: modules/lightmapper_cpu/lightmapper_cpu.cpp msgid "Preparing data structures" -msgstr "" +msgstr "Προετοιμασία δομών δεδομένων" #: modules/lightmapper_cpu/lightmapper_cpu.cpp #, fuzzy @@ -17966,19 +17957,19 @@ msgstr "Προετοιμασία Lightmaps" #: modules/lightmapper_cpu/register_types.cpp msgid "Low Quality Ray Count" -msgstr "" +msgstr "Αριθμός Ακτινών Χαμηλής Ποιότητας" #: modules/lightmapper_cpu/register_types.cpp msgid "Medium Quality Ray Count" -msgstr "" +msgstr "Αριθμός Ακτινών Μέτριας Ποιότητας" #: modules/lightmapper_cpu/register_types.cpp msgid "High Quality Ray Count" -msgstr "" +msgstr "Αριθμός Ακτινών Υψηλής Ποιότητας" #: modules/lightmapper_cpu/register_types.cpp msgid "Ultra Quality Ray Count" -msgstr "" +msgstr "Αριθμός Ακτινών Ύψιστης Ποιότητας" #: modules/minimp3/audio_stream_mp3.cpp #: modules/minimp3/resource_importer_mp3.cpp @@ -17990,7 +17981,7 @@ msgstr "Μετατόπιση:" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Eye Height" -msgstr "" +msgstr "Ύψος Ματιών" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "IOD" @@ -18133,7 +18124,7 @@ msgstr "" #: modules/opensimplex/noise_texture.cpp msgid "Noise" -msgstr "" +msgstr "Θόρυβος" #: modules/opensimplex/noise_texture.cpp #, fuzzy @@ -18142,11 +18133,11 @@ msgstr "Μετατόπιση Πλέγματος:" #: modules/opensimplex/open_simplex_noise.cpp msgid "Octaves" -msgstr "" +msgstr "Οκτάβες" #: modules/opensimplex/open_simplex_noise.cpp msgid "Period" -msgstr "" +msgstr "Περίοδος" #: modules/opensimplex/open_simplex_noise.cpp #, fuzzy @@ -18155,7 +18146,7 @@ msgstr "Προοπτική" #: modules/opensimplex/open_simplex_noise.cpp msgid "Lacunarity" -msgstr "" +msgstr "Κενότητα" #: modules/regex/regex.cpp msgid "Subject" @@ -18177,7 +18168,7 @@ msgstr "" #: modules/upnp/upnp.cpp msgid "Discover Local Port" -msgstr "" +msgstr "Εύρεση Τοπικής Θύρας" #: modules/upnp/upnp.cpp msgid "Discover IPv6" @@ -18740,26 +18731,24 @@ msgid "Mod %s" msgstr "Πρόσθεσε %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "ShiftLeft %s" -msgstr "Θέσε %s" +msgstr "Αριστερή μετατόπιση %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftRight %s" -msgstr "" +msgstr "Δεξιά μετατόπιση %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "BitAnd %s" -msgstr "Πρόσθεσε %s" +msgstr "Λογικό Και %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitOr %s" -msgstr "" +msgstr "ΛογικόΗ %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitXor %s" -msgstr "" +msgstr "ΛογικόΞορ %s" #: modules/visual_script/visual_script_func_nodes.cpp #, fuzzy @@ -18895,9 +18884,8 @@ msgid "Get Self" msgstr "Εαυτός" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "CustomNode" -msgstr "Αποκοπή κόμβων" +msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -18955,7 +18943,7 @@ msgstr "εσοδεία" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "Περίμενε" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy @@ -19605,10 +19593,11 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "" +"Μή Έγκυρο όνομα αρχείου! Το Android APK δέχεται μόνο την .apk κατάληξη." #: platform/android/export/export_plugin.cpp msgid "Unsupported export format!" -msgstr "" +msgstr "Μη αποδεκτή μορφή εξαγωγής!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19661,7 +19650,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Moving output" -msgstr "" +msgstr "Μετακίνηση της εξόδου" #: platform/android/export/export_plugin.cpp msgid "" @@ -21362,7 +21351,7 @@ msgstr "Συμπλήρωση" #: scene/2d/canvas_item.cpp msgid "Show Behind Parent" -msgstr "" +msgstr "Δείξε πίσω απο τον Γωνέα" #: scene/2d/canvas_item.cpp #, fuzzy @@ -21377,7 +21366,7 @@ msgstr "Φως" #: scene/2d/canvas_item.cpp msgid "Use Parent Material" -msgstr "" +msgstr "Χρησιμποίησε το Υλικό του Γονέα" #: scene/2d/canvas_modulate.cpp msgid "" @@ -21422,6 +21411,8 @@ msgstr "Ένα άδειο ColisionPollygon2D δεν επηρεάζει τη σύ #: scene/2d/collision_polygon_2d.cpp msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." msgstr "" +"Μή έγκυρο πολύγωνο. Πρέπει να προσδιοριστούν τουλάχιστον τρία (3) σημεία για " +"τη δημιουργία στερεού αντικειμένου." #: scene/2d/collision_polygon_2d.cpp msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." @@ -21499,7 +21490,7 @@ msgstr "Ρυθμίσεις:" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp msgid "Lifetime" -msgstr "" +msgstr "Διάρκεια Ζωής" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp scene/main/timer.cpp @@ -21516,7 +21507,7 @@ msgstr "Μετεπεξεργασία" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp msgid "Explosiveness" -msgstr "" +msgstr "Εκρηκτικότητα" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp @@ -21527,7 +21518,7 @@ msgstr "Τυχαία επανεκκίνηση (δευτερόλεπτα):" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Lifetime Randomness" -msgstr "" +msgstr "Τυχαιότητα Διάρκειας Ζωής" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp @@ -21543,7 +21534,7 @@ msgstr "" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp msgid "Drawing" -msgstr "" +msgstr "Σχεδίαση" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp @@ -21554,7 +21545,7 @@ msgstr "Έργα" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp msgid "Draw Order" -msgstr "" +msgstr "Σειρά Σχεδίασης" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21594,7 +21585,7 @@ msgstr "Κατευθήνσεις" #: scene/resources/particles_material.cpp #: servers/audio/effects/audio_effect_reverb.cpp msgid "Spread" -msgstr "" +msgstr "Εύρος" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21612,7 +21603,7 @@ msgstr "Αρχικοποιήστε" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Angular Velocity" -msgstr "" +msgstr "Γωνιακή ταχύτητα" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21623,7 +21614,7 @@ msgstr "Αρχικοποιήστε" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Orbit Velocity" -msgstr "" +msgstr "Τροχιακή ταχύτητα" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21651,12 +21642,12 @@ msgstr "Διαίρεση Καμπύλης" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Radial Accel" -msgstr "" +msgstr "Τροχιακή επιτάχυνση" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Tangential Accel" -msgstr "" +msgstr "Γωνιακή επιτάχυνση" #: scene/2d/cpu_particles_2d.cpp scene/2d/joints_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/physics_body.cpp @@ -21664,12 +21655,12 @@ msgstr "" #: scene/resources/particles_material.cpp #: servers/audio/effects/audio_effect_reverb.cpp msgid "Damping" -msgstr "" +msgstr "Απόσβεση" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Damping Random" -msgstr "" +msgstr "Τυχαιότητα Απόσβεσης" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21680,12 +21671,12 @@ msgstr "Διαίρεση Καμπύλης" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp scene/3d/light.cpp #: scene/resources/particles_material.cpp msgid "Angle" -msgstr "" +msgstr "Γωνία" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp msgid "Angle Random" -msgstr "" +msgstr "Τυχαιότητα Γωνίας" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21700,7 +21691,7 @@ msgstr "Ποσότητα:" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp msgid "Scale Amount Random" -msgstr "" +msgstr "Τυχαιότητα Ποσoύ Κλιμάκωσης" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #, fuzzy @@ -21768,15 +21759,15 @@ msgstr "κλείσιμο καμπύλης" #: scene/2d/joints_2d.cpp msgid "Node A and Node B must be PhysicsBody2Ds" -msgstr "" +msgstr "Ο Κόμβος Α και ο Κόμβος Β πρέπει να είναι του τύπου PhysicsBody2Ds" #: scene/2d/joints_2d.cpp msgid "Node A must be a PhysicsBody2D" -msgstr "" +msgstr "Ο Κόμβος Α πρέπει να είναι του τύπου PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Node B must be a PhysicsBody2D" -msgstr "" +msgstr "Ο κόμβος Β πρέπει να είναι του τύπου PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Joint is not connected to two PhysicsBody2Ds" @@ -22206,7 +22197,7 @@ msgstr "Λειτουργία Προτεραιότητας" #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "Process Material" -msgstr "" +msgstr "Επεξεργασία Υλικού" #: scene/2d/path_2d.cpp scene/3d/path.cpp scene/resources/sky.cpp #: scene/resources/texture.cpp @@ -22269,7 +22260,7 @@ msgstr "" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Physics Material Override" -msgstr "" +msgstr "Παράκαμψη Υλικού Φυσικής" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: scene/resources/world.cpp scene/resources/world_2d.cpp @@ -22460,11 +22451,11 @@ msgstr "" #: scene/2d/ray_cast_2d.cpp scene/3d/camera.cpp scene/3d/ray_cast.cpp msgid "Areas" -msgstr "" +msgstr "Τοποθεσίες" #: scene/2d/ray_cast_2d.cpp scene/3d/camera.cpp scene/3d/ray_cast.cpp msgid "Bodies" -msgstr "" +msgstr "Σώματα" #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." @@ -22511,11 +22502,11 @@ msgstr "" #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp msgid "Hframes" -msgstr "" +msgstr "Οριζόντια Καρέ" #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp msgid "Vframes" -msgstr "" +msgstr "Κάθετα Καρέ" #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #, fuzzy @@ -22594,7 +22585,7 @@ msgstr "Λειτουργία Σύγκρουσης" #: scene/2d/tile_map.cpp msgid "Use Kinematic" -msgstr "" +msgstr "Χρήση Κινηματικού" #: scene/2d/touch_screen_button.cpp #, fuzzy @@ -22630,7 +22621,7 @@ msgstr "Επικόλληση κίνησης" #: scene/2d/visibility_notifier_2d.cpp scene/3d/visibility_notifier.cpp msgid "Freeze Bodies" -msgstr "" +msgstr "Πάγωμα Σωμάτων" #: scene/2d/visibility_notifier_2d.cpp #, fuzzy @@ -22666,11 +22657,11 @@ msgstr "Η ARVRCamera απαιτεί γονικό κόμβο ARVROrigin." #: scene/3d/arvr_nodes.cpp msgid "Controller ID" -msgstr "" +msgstr "Αναγνωρηστικό Χειριστηρίου" #: scene/3d/arvr_nodes.cpp servers/arvr/arvr_positional_tracker.cpp msgid "Rumble" -msgstr "" +msgstr "Δώνηση" #: scene/3d/arvr_nodes.cpp msgid "ARVRController must have an ARVROrigin node as its parent." @@ -22729,7 +22720,7 @@ msgstr "" #: scene/3d/audio_stream_player_3d.cpp msgid "Out Of Range Mode" -msgstr "" +msgstr "Απομακρισμένη Λειτουργεία" #: scene/3d/audio_stream_player_3d.cpp #, fuzzy @@ -22748,7 +22739,7 @@ msgstr "Κίνηση" #: scene/3d/audio_stream_player_3d.cpp msgid "Attenuation Filter" -msgstr "" +msgstr "Φίλτρο Απόσβεσης" #: scene/3d/audio_stream_player_3d.cpp #: servers/audio/effects/audio_effect_chorus.cpp @@ -22775,11 +22766,11 @@ msgstr "Πακετάρισμα" #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp #: scene/3d/reflection_probe.cpp msgid "Interior" -msgstr "" +msgstr "Εσωτερικό" #: scene/3d/baked_lightmap.cpp msgid "Finding meshes and lights" -msgstr "" +msgstr "Βρίσκοντας πλέγματα και φώτα" #: scene/3d/baked_lightmap.cpp msgid "Preparing geometry (%d/%d)" @@ -22813,11 +22804,11 @@ msgstr "Μαραφέτια" #: scene/3d/baked_lightmap.cpp msgid "Tweaks" -msgstr "" +msgstr "Μικροδιορθώσεις" #: scene/3d/baked_lightmap.cpp msgid "Bounces" -msgstr "" +msgstr "Πηδήματα" #: scene/3d/baked_lightmap.cpp msgid "Bounce Indirect Energy" @@ -22907,7 +22898,7 @@ msgstr "" #: scene/3d/camera.cpp scene/3d/light.cpp scene/3d/reflection_probe.cpp msgid "Cull Mask" -msgstr "" +msgstr "Μάσκα Αποκοπής" #: scene/3d/camera.cpp #, fuzzy @@ -22921,7 +22912,7 @@ msgstr "Έργο" #: scene/3d/camera.cpp msgid "FOV" -msgstr "" +msgstr "Οπτικό Πεδίο" #: scene/3d/camera.cpp #, fuzzy @@ -22935,7 +22926,7 @@ msgstr "Πλησιέστερη" #: scene/3d/camera.cpp msgid "Far" -msgstr "" +msgstr "Μακριά" #: scene/3d/camera.cpp scene/3d/collision_polygon.cpp scene/3d/spring_arm.cpp #: scene/gui/control.cpp scene/resources/default_theme/default_theme.cpp @@ -22952,7 +22943,7 @@ msgstr "Περικοπή πάνω" #: scene/3d/collision_object.cpp scene/3d/soft_body.cpp msgid "Ray Pickable" -msgstr "" +msgstr "Επιλέξημη Ακτίνα" #: scene/3d/collision_object.cpp #, fuzzy @@ -23068,7 +23059,7 @@ msgstr "Απενεργοποιημένο Στοιχείο" #: scene/3d/cpu_particles.cpp scene/resources/particles_material.cpp msgid "Flatness" -msgstr "" +msgstr "Ομαλότητα" #: scene/3d/cull_instance.cpp servers/visual_server.cpp #, fuzzy @@ -23086,7 +23077,7 @@ msgstr "" #: scene/3d/cull_instance.cpp msgid "Allow Merging" -msgstr "" +msgstr "Επίτρεψε Συγχώνευση" #: scene/3d/cull_instance.cpp #, fuzzy @@ -23118,7 +23109,7 @@ msgstr "" #: scene/3d/gi_probe.cpp msgid "Subdiv" -msgstr "" +msgstr "Υποδιαίρεση" #: scene/3d/gi_probe.cpp #, fuzzy @@ -23137,7 +23128,7 @@ msgstr "Κούμπωμα στα εικονοστοιχεία" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp msgid "Billboard" -msgstr "" +msgstr "Πινακίδα" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp #, fuzzy @@ -23146,11 +23137,11 @@ msgstr "Πρόγραμμα Σκίασης" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp msgid "Double Sided" -msgstr "" +msgstr "Δύο Όψεων" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp scene/resources/material.cpp msgid "No Depth Test" -msgstr "" +msgstr "Χωρίς Έλεγχο Βάθους" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp scene/resources/material.cpp #, fuzzy @@ -23289,7 +23280,7 @@ msgstr "" #: scene/3d/light.cpp msgid "Spot" -msgstr "" +msgstr "Προβολέας" #: scene/3d/light.cpp #, fuzzy @@ -23349,7 +23340,7 @@ msgstr "" #: scene/3d/occluder.cpp msgid "No shape is set." -msgstr "" +msgstr "Δεν έχει επιλεχθεί Σχήμα." #: scene/3d/occluder.cpp msgid "Only uniform scales are supported." @@ -23452,15 +23443,15 @@ msgstr "Γραμμική" #: scene/3d/physics_body.cpp msgid "Angular X" -msgstr "" +msgstr "Γωνιώδης Χ" #: scene/3d/physics_body.cpp msgid "Angular Y" -msgstr "" +msgstr "Γωνιώδης Υ" #: scene/3d/physics_body.cpp msgid "Angular Z" -msgstr "" +msgstr "Γωνιώδης Ζ" #: scene/3d/physics_body.cpp #, fuzzy @@ -23568,15 +23559,15 @@ msgstr "Κίνηση" #: scene/3d/physics_body.cpp msgid "X" -msgstr "" +msgstr "Χ" #: scene/3d/physics_body.cpp msgid "Y" -msgstr "" +msgstr "Υ" #: scene/3d/physics_body.cpp msgid "Z" -msgstr "" +msgstr "Ζ" #: scene/3d/physics_body.cpp #, fuzzy @@ -23685,7 +23676,7 @@ msgstr "Αλλαγη Παραμέτρου" #: scene/3d/physics_joint.cpp msgid "Angular Limit" -msgstr "" +msgstr "Γωνιώδης Ώριο" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23699,7 +23690,7 @@ msgstr "Πεζά" #: scene/3d/physics_joint.cpp msgid "Motor" -msgstr "" +msgstr "Μοτέρ" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23783,19 +23774,19 @@ msgstr "Γραμμική" #: scene/3d/physics_joint.cpp msgid "Equilibrium Point" -msgstr "" +msgstr "Μέρος Ισορροπείας" #: scene/3d/physics_joint.cpp msgid "Angular Limit X" -msgstr "" +msgstr "Γωνιώδης Ώριο Χ" #: scene/3d/physics_joint.cpp msgid "Angular Motor X" -msgstr "" +msgstr "Γωνιώδης Μοτέρ Χ" #: scene/3d/physics_joint.cpp msgid "Angular Spring X" -msgstr "" +msgstr "Γωνιώδης Ελατήριο Χ" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23814,15 +23805,15 @@ msgstr "Γραμμική" #: scene/3d/physics_joint.cpp msgid "Angular Limit Y" -msgstr "" +msgstr "Γωνιώδης Ώριο Υ" #: scene/3d/physics_joint.cpp msgid "Angular Motor Y" -msgstr "" +msgstr "Γωνιώδης Μοτέρ Υ" #: scene/3d/physics_joint.cpp msgid "Angular Spring Y" -msgstr "" +msgstr "Γωνιώδης Ελατήριο Υ" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23841,15 +23832,15 @@ msgstr "Γραμμική" #: scene/3d/physics_joint.cpp msgid "Angular Limit Z" -msgstr "" +msgstr "Γωνιώδης Ώριο Ζ" #: scene/3d/physics_joint.cpp msgid "Angular Motor Z" -msgstr "" +msgstr "Γωνιώδης Μοτέρ Ζ" #: scene/3d/physics_joint.cpp msgid "Angular Spring Z" -msgstr "" +msgstr "Γωνιώδης Ελατήριο Ζ" #: scene/3d/portal.cpp msgid "The RoomManager should not be a child or grandchild of a Portal." @@ -23870,7 +23861,7 @@ msgstr "Επιστροφή" #: scene/3d/portal.cpp scene/resources/occluder_shape_polygon.cpp msgid "Two Way" -msgstr "" +msgstr "Διπλής Κατεύθυνσης" #: scene/3d/portal.cpp #, fuzzy @@ -23903,7 +23894,7 @@ msgstr "Αποσφαλματωτής" #: scene/3d/ray_cast.cpp scene/resources/style_box.cpp msgid "Thickness" -msgstr "" +msgstr "Πάχος" #: scene/3d/reflection_probe.cpp scene/main/viewport.cpp #, fuzzy @@ -23950,7 +23941,7 @@ msgstr "" #: scene/3d/room.cpp msgid "A Room cannot have another Room as a child or grandchild." -msgstr "" +msgstr "Ενα δωμάτιο δεν μπορεί να έχει άλλο δωμάτιο ως παιδί ή εγγόνι." #: scene/3d/room.cpp msgid "The RoomManager should not be placed inside a Room." @@ -23976,7 +23967,7 @@ msgstr "" #: scene/3d/room.cpp msgid "Bound" -msgstr "" +msgstr "Όριο" #: scene/3d/room_group.cpp #, fuzzy @@ -24019,7 +24010,7 @@ msgstr "Ενέργεια" #: scene/3d/room_manager.cpp msgid "Roomlist" -msgstr "" +msgstr "Λίστα Δωματίων" #: scene/3d/room_manager.cpp servers/visual_server.cpp #, fuzzy @@ -24038,7 +24029,7 @@ msgstr "Αρχείο ZIP" #: scene/3d/room_manager.cpp servers/visual_server.cpp msgid "Gameplay" -msgstr "" +msgstr "Παιχνίδι" #: scene/3d/room_manager.cpp #, fuzzy @@ -25147,7 +25138,7 @@ msgstr "" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Caret" -msgstr "" +msgstr "Καρέ" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Blink" @@ -26123,7 +26114,7 @@ msgstr "" #: scene/resources/default_theme/default_theme.cpp msgid "Panel" -msgstr "" +msgstr "Πλαίσιο" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -26162,7 +26153,7 @@ msgstr "Επανάληψη κίνησης" #: scene/resources/default_theme/default_theme.cpp msgid "Arrow" -msgstr "" +msgstr "Βέλος" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -27148,7 +27139,7 @@ msgstr "Αποσφαλμάτωση Καναλιού UV" #: scene/resources/environment.cpp msgid "Blur" -msgstr "" +msgstr "Θόλωση" #: scene/resources/environment.cpp msgid "Edge Sharpness" @@ -27770,7 +27761,7 @@ msgstr "" #: scene/resources/physics_material.cpp msgid "Absorbent" -msgstr "" +msgstr "Απορροφητικός" #: scene/resources/plane_shape.cpp #, fuzzy @@ -27815,7 +27806,7 @@ msgstr "Πάνω Δεξιά" #: scene/resources/primitive_meshes.cpp msgid "Is Hemisphere" -msgstr "" +msgstr "Είναι Ημισφαίριο" #: scene/resources/primitive_meshes.cpp #, fuzzy @@ -27824,11 +27815,11 @@ msgstr "Διαίρεση Καμπύλης" #: scene/resources/ray_shape.cpp scene/resources/segment_shape_2d.cpp msgid "Slips On Slope" -msgstr "" +msgstr "Γλυστράει σε Κλίση" #: scene/resources/segment_shape_2d.cpp msgid "A" -msgstr "" +msgstr "Α" #: scene/resources/shape_2d.cpp msgid "Custom Solver Bias" @@ -27856,7 +27847,7 @@ msgstr "Μέγεθος περιγράμματος:" #: scene/resources/sky.cpp msgid "Panorama" -msgstr "" +msgstr "Πανόραμα" #: scene/resources/sky.cpp #, fuzzy @@ -27890,15 +27881,15 @@ msgstr "Αντικατάσταση" #: scene/resources/sky.cpp msgid "Longitude" -msgstr "" +msgstr "Γεωγραφικό Μήκος" #: scene/resources/sky.cpp msgid "Angle Min" -msgstr "" +msgstr "Ελάχιστη Γωνία" #: scene/resources/sky.cpp msgid "Angle Max" -msgstr "" +msgstr "Μέγιστη Γωνία" #: scene/resources/style_box.cpp #, fuzzy @@ -27912,7 +27903,7 @@ msgstr "Ανάπτυξη Όλων" #: scene/resources/style_box.cpp msgid "Skew" -msgstr "" +msgstr "Λοξότητα" #: scene/resources/style_box.cpp #, fuzzy @@ -27921,7 +27912,7 @@ msgstr "Αλλαγή Εσωτερική Ακτίνας Τόρου" #: scene/resources/style_box.cpp msgid "Corner Detail" -msgstr "" +msgstr "Λεπτομέρεια Γωνίας" #: scene/resources/style_box.cpp msgid "Anti Aliasing" @@ -28024,9 +28015,8 @@ msgid "Depth Draw" msgstr "Μέθοδος παρεμβολής" #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Cull" -msgstr "Λειτουργία Χάρακα" +msgstr "Αποκοπή" #: scene/resources/visual_shader.cpp #, fuzzy @@ -28260,11 +28250,11 @@ msgstr "" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 1" -msgstr "" +msgstr "Πάτησε 1" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 2" -msgstr "" +msgstr "Πάτησε 2" #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_phaser.cpp @@ -28326,7 +28316,7 @@ msgstr "" #: servers/audio/effects/audio_effect_pitch_shift.cpp msgid "Oversampling" -msgstr "" +msgstr "Υπερδειγματοληψία" #: servers/audio/effects/audio_effect_pitch_shift.cpp #: servers/audio/effects/audio_effect_spectrum_analyzer.cpp diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po index 60caed0d9d..16e474d82d 100644 --- a/editor/translations/en_Shaw.po +++ b/editor/translations/en_Shaw.po @@ -10615,7 +10615,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 04205e10d6..4ed8103686 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -11199,7 +11199,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index 5d683058c3..9e1868e4f9 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -14,7 +14,7 @@ # Diego López <diegodario21@gmail.com>, 2017. # eon-s <emanuel.segretin@gmail.com>, 2018, 2019, 2020. # Gustavo Leon <gleondiaz@gmail.com>, 2017-2018. -# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022. +# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023. # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. @@ -90,14 +90,15 @@ # M3CG <cgmario1999@gmail.com>, 2022. # Chalan <Valentin06ch@outlook.com>, 2022. # Luis Miguel Soto Sánchez <luismiguelsoto@jerez.es>, 2022. -# Victor Stancioiu <victorstancioiu@gmail.com>, 2022. +# Victor Stancioiu <victorstancioiu@gmail.com>, 2022, 2023. +# Daniel Miranda <danmiranda@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-16 22:47+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2023-01-20 10:19+0000\n" +"Last-Translator: Daniel Miranda <danmiranda@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -105,7 +106,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -11041,7 +11042,7 @@ msgstr "Perspectiva Trasera" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portales activos]" @@ -14308,17 +14309,15 @@ msgid "Invalid project path (changed anything?)." msgstr "La ruta del proyecto no es correcta (¿has cambiado algo?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"No se pudo cargar project.godot desde la ruta de proyecto (error %d). La " -"ruta no existe o está corrupta." +"No se pudo cargar el proyecto desde la ruta '%s' (error %d). La ruta no " +"existe o está corrupta." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "No se puede abrir el proyecto en '%s'." +msgstr "No se pudo guardar el proyecto en '%s' (error %d)." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -22304,7 +22303,7 @@ msgstr "" #: scene/3d/mesh_instance.cpp msgid "Transform Normals" -msgstr "Transformar Normales" +msgstr "Normales de Transformación" #: scene/3d/navigation.cpp msgid "" @@ -23243,14 +23242,12 @@ msgid "AABB" msgstr "AABB" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Sorting" msgstr "Ordenar" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Use AABB Center" -msgstr "Usar Ambiente" +msgstr "Usar Centro de AABB" #: scene/3d/visual_instance.cpp scene/resources/navigation_mesh.cpp msgid "Geometry" @@ -25064,7 +25061,7 @@ msgstr "Marcar" #: scene/resources/default_theme/default_theme.cpp msgid "Updown" -msgstr "" +msgstr "Reducción" #: scene/resources/default_theme/default_theme.cpp msgid "Scaleborder Size" @@ -25544,11 +25541,11 @@ msgstr "Grados de Rotación del Cielo" #: scene/resources/environment.cpp msgid "Canvas Max Layer" -msgstr "" +msgstr "Max de Capas del Lienzo" #: scene/resources/environment.cpp scene/resources/texture.cpp msgid "Camera Feed ID" -msgstr "" +msgstr "Feed ID de la Cámara" #: scene/resources/environment.cpp msgid "Ambient Light" @@ -25688,7 +25685,7 @@ msgstr "Nitidez de Borde" #: scene/resources/environment.cpp msgid "DOF Far Blur" -msgstr "" +msgstr "DOF Desenfoque Lejano" #: scene/resources/environment.cpp scene/resources/material.cpp msgid "Distance" @@ -25700,7 +25697,7 @@ msgstr "Transición" #: scene/resources/environment.cpp msgid "DOF Near Blur" -msgstr "" +msgstr "DOF Desenfoque Cercano" #: scene/resources/environment.cpp msgid "Glow" @@ -25760,7 +25757,7 @@ msgstr "Escala HDR" #: scene/resources/environment.cpp msgid "Bicubic Upscale" -msgstr "" +msgstr "Escala Bicúbica Superior" #: scene/resources/environment.cpp msgid "Adjustments" @@ -25816,7 +25813,7 @@ msgstr "Siguiente Paso" #: scene/resources/material.cpp msgid "Use Shadow To Opacity" -msgstr "" +msgstr "Usar Sombra para Opacidad" #: scene/resources/material.cpp msgid "Unshaded" @@ -26655,15 +26652,15 @@ msgstr "Mezcla" #: servers/audio/effects/audio_effect_compressor.cpp msgid "Sidechain" -msgstr "" +msgstr "Sidechain" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 1" -msgstr "Toque 1" +msgstr "Tap 1" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 2" -msgstr "Toque 2" +msgstr "Tap 2" #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_phaser.cpp @@ -26681,7 +26678,7 @@ msgstr "Pre-Ganancia" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Keep Hf Hz" -msgstr "Mantener Hz Altas" +msgstr "Mantener Hf Hz" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Drive" @@ -26697,19 +26694,19 @@ msgstr "Resonancia" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Ceiling dB" -msgstr "dB Tope" +msgstr "Límite de dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Threshold dB" -msgstr "Umbral dB" +msgstr "Umbral de dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Soft Clip dB" -msgstr "" +msgstr "Soft Clip dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Soft Clip Ratio" -msgstr "" +msgstr "Soft Clip Ratio" #: servers/audio/effects/audio_effect_phaser.cpp msgid "Range Min Hz" @@ -26721,7 +26718,7 @@ msgstr "Rango Hz Máximo" #: servers/audio/effects/audio_effect_pitch_shift.cpp msgid "Oversampling" -msgstr "Sobremuestreo" +msgstr "Oversampling" #: servers/audio/effects/audio_effect_pitch_shift.cpp #: servers/audio/effects/audio_effect_spectrum_analyzer.cpp @@ -26730,7 +26727,7 @@ msgstr "Tamaño de FFT" #: servers/audio/effects/audio_effect_reverb.cpp msgid "Predelay" -msgstr "" +msgstr "Retraso" #: servers/audio/effects/audio_effect_reverb.cpp msgid "Msec" @@ -27050,7 +27047,7 @@ msgstr "" #: servers/visual_server.cpp msgid "Disable For Vendors" -msgstr "" +msgstr "Deshabilitar para Proveedores" #: servers/visual_server.cpp msgid "Anisotropic Filter Level" @@ -27182,7 +27179,7 @@ msgstr "Usar PVS Simple" #: servers/visual_server.cpp msgid "PVS Logging" -msgstr "" +msgstr "Registro de PVS" #: servers/visual_server.cpp msgid "Use Signals" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index fdb6b4f00d..24d38e14a7 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -22,13 +22,14 @@ # emnrx <emanuelermancia@gmail.com>, 2022. # Mau_Restor <restor@gmail.com>, 2022. # Leonardo Martínez <leonardomartinez85@gmail.com>, 2022. +# LR <nancok@tuta.io>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-26 14:36+0000\n" -"Last-Translator: emnrx <emanuelermancia@gmail.com>\n" +"PO-Revision-Date: 2023-01-01 05:48+0000\n" +"Last-Translator: LR <nancok@tuta.io>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -36,7 +37,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -286,11 +287,11 @@ msgstr "" #: core/io/packet_peer.cpp msgid "Input Buffer Max Size" -msgstr "" +msgstr "Tamaño maximo del bufer de entrada" #: core/io/packet_peer.cpp msgid "Output Buffer Max Size" -msgstr "" +msgstr "Tamaño maximo del buffer de salida" #: core/io/packet_peer.cpp msgid "Stream Peer" @@ -505,8 +506,9 @@ msgid "Strength" msgstr "Fuerza" #: core/os/input_event.cpp +#, fuzzy msgid "Delta" -msgstr "" +msgstr "Delta" #: core/os/input_event.cpp msgid "Channel" @@ -721,7 +723,7 @@ msgstr "Superior Derecha" #: core/project_settings.cpp msgid "UI Up" -msgstr "" +msgstr "Interfaz Arriba" #: core/project_settings.cpp #, fuzzy @@ -735,7 +737,7 @@ msgstr "Página: " #: core/project_settings.cpp msgid "UI Page Down" -msgstr "" +msgstr "Interfaz Bajar Pagina" #: core/project_settings.cpp msgid "UI Home" @@ -1013,7 +1015,7 @@ msgstr "Usar Muestreo Bicúbico" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Cantidad Maxima de Elementos Renderizables" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" @@ -11251,7 +11253,7 @@ msgstr "Perspectiva Trasera" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portales activos]" diff --git a/editor/translations/et.po b/editor/translations/et.po index dc36ae0b94..c08335ed4f 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -8,19 +8,20 @@ # René <renepiik@gmail.com>, 2020. # Kritzmensch <streef.gtx@gmail.com>, 2021, 2022. # dogyx <aaronloit@zohomail.eu>, 2022. +# Oskar U <oskar.unn2003@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-09-16 07:12+0000\n" -"Last-Translator: dogyx <aaronloit@zohomail.eu>\n" +"PO-Revision-Date: 2023-01-08 09:47+0000\n" +"Last-Translator: Oskar U <oskar.unn2003@gmail.com>\n" "Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/" "godot/et/>\n" "Language: et\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -9377,18 +9378,18 @@ msgstr "Lülita jagamisrežiim sisse/välja" #: scene/gui/rich_text_label.cpp scene/gui/text_edit.cpp #: scene/resources/primitive_meshes.cpp msgid "Text" -msgstr "" +msgstr "Tekst" #: editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp main/main.cpp #: platform/osx/export/export.cpp platform/windows/export/export.cpp #: scene/gui/button.cpp scene/gui/item_list.cpp msgid "Icon" -msgstr "" +msgstr "Ikoon" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -10857,7 +10858,7 @@ msgstr "Perspektiiv" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 79da3d56fb..bfd4302fa8 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -10820,7 +10820,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index ad2a56e408..eb6c113057 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -28,7 +28,7 @@ # Aryan Azadeh <aryan@azadeh.email>, 2022. # Mitsuha Miamizu <mitsuha.miamizu4444@gmail.com>, 2022. # LordProfo <nimaentity30@gmail.com>, 2022. -# LordProfo (Nima) <nimaentity30@gmail.com>, 2022. +# LordProfo (Nima) <nimaentity30@gmail.com>, 2022, 2023. # John Smith <pkafsharix@gmail.com>, 2022. # Ali Jafari <ali.jafari.sn@gmail.com>, 2022. # Ali Almasi <A710almasi@gmail.com>, 2022. @@ -38,8 +38,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-16 22:47+0000\n" -"Last-Translator: 2g.2d.2t <2g.2d.2t@gmail.com>\n" +"PO-Revision-Date: 2023-01-01 05:48+0000\n" +"Last-Translator: LordProfo (Nima) <nimaentity30@gmail.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot/fa/>\n" "Language: fa\n" @@ -47,7 +47,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -2901,7 +2901,7 @@ msgstr "انتخاب حالت" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "بیپیتیسی (BPTC)" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" @@ -2909,11 +2909,11 @@ msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "ایتیسی" +msgstr "ئیتیسی (ETC)" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "ایتیسی۲" +msgstr "ئیتیسی۲ (ETC2)" #: editor/editor_export.cpp msgid "No BPTC Fallbacks" @@ -2964,7 +2964,7 @@ msgstr "تبدیل منابع متنی به دوتایی هنگام خروجی" #: editor/editor_feature_profile.cpp msgid "3D Editor" -msgstr "ویرایشگر 3بعدی" +msgstr "ویرایشگر ۳بعدی" #: editor/editor_feature_profile.cpp msgid "Script Editor" @@ -3801,13 +3801,15 @@ msgstr "ایجاد بند انگشتی" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." -msgstr "" +msgstr "این عمل را نمیتوان بدون tree root انجام داد." #: editor/editor_node.cpp msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"این صحنه را نمیتوان ذخیره کرد زیرا یک شامل نمونهسازی چرخهای وجود دارد.\n" +" لطفاً آن را حل کنید و سپس دوباره سعی کنید ذخیره کنید." #: editor/editor_node.cpp msgid "" @@ -3873,6 +3875,9 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"این منبع متعلق به صحنهای است که ایمپورت شده است، بنابراین قابل ویرایش نیست.\n" +" لطفاً اسناد مربوط به وارد کردن صحنهها را بخوانید تا این گردش کار را بهتر درک " +"کنید." #: editor/editor_node.cpp msgid "" @@ -6913,7 +6918,7 @@ msgstr "" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "کولادا" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" @@ -11203,7 +11208,7 @@ msgstr "" msgid " [auto]" msgstr " [خودکار]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" @@ -17129,9 +17134,8 @@ msgid "Add an architecture entry" msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "GDNativeLibrary" -msgstr "صادکردن فایل کتابخانه ای" +msgstr "کتابخانهٔ جیدینِیتیو" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Enabled GDNative Singleton" @@ -18580,25 +18584,24 @@ msgid "Mod %s" msgstr "" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "ShiftLeft %s" -msgstr "تنظیم %s" +msgstr "ShiftLeft %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftRight %s" -msgstr "" +msgstr "ShiftRight %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitAnd %s" -msgstr "" +msgstr "BitAnd %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitOr %s" -msgstr "" +msgstr "BitOr %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitXor %s" -msgstr "" +msgstr "BitXor %s" #: modules/visual_script/visual_script_func_nodes.cpp #, fuzzy @@ -18730,9 +18733,8 @@ msgid "Get Self" msgstr "" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "CustomNode" -msgstr "ساختن گره" +msgstr "نود سفارشی" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -18748,9 +18750,8 @@ msgstr "" "(error) باشد." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "SubCall" -msgstr "فراخوانی" +msgstr "سابکال" #: modules/visual_script/visual_script_nodes.cpp scene/gui/graph_node.cpp msgid "Title" @@ -18791,7 +18792,7 @@ msgstr "" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "صبرکردن" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy @@ -20516,7 +20517,7 @@ msgstr "انتقال را در انیمیشن تغییر بده" #: platform/uwp/export/export.cpp msgid "Landscape" -msgstr "" +msgstr "چشمانداز" #: platform/uwp/export/export.cpp msgid "Portrait" @@ -20826,7 +20827,7 @@ msgstr "" #: platform/windows/export/export.cpp msgid "Wine" -msgstr "" +msgstr "شراب" #: platform/x11/export/export.cpp msgid "32-bit executables cannot have embedded data >= 4 GiB." @@ -22586,7 +22587,7 @@ msgstr "" #: scene/3d/camera.cpp scene/3d/light.cpp scene/3d/reflection_probe.cpp msgid "Cull Mask" -msgstr "" +msgstr "Cull Mask" #: scene/3d/camera.cpp #, fuzzy @@ -26677,7 +26678,7 @@ msgstr "" #: scene/resources/environment.cpp msgid "Blur" -msgstr "" +msgstr "بلوری" #: scene/resources/environment.cpp msgid "Edge Sharpness" @@ -27530,9 +27531,8 @@ msgid "Depth Draw" msgstr "حالت درون یابی(درونیابی روشی است برای یافتن مقدار تابع درون یک بازه)" #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Cull" -msgstr "انتخاب حالت" +msgstr "Cull" #: scene/resources/visual_shader.cpp #, fuzzy @@ -27735,9 +27735,8 @@ msgstr "سطح دسیبل" #: servers/audio/effects/audio_effect_chorus.cpp #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_panner.cpp -#, fuzzy msgid "Pan" -msgstr "بسته بندی" +msgstr "Pan" #: servers/audio/effects/audio_effect_compressor.cpp #: servers/audio/effects/audio_effect_filter.cpp diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 8aeba71bff..96267c77e3 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -11269,7 +11269,7 @@ msgstr "Takaperspektiivi" msgid " [auto]" msgstr " [automaattinen]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portaalit aktiivisia]" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 71673d8255..2b6aa3a671 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -10674,7 +10674,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 17063caae8..f6b1b5d1c9 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -105,14 +105,17 @@ # SCHUTZ Lucas <lucas.schutz0954@gmail.com>, 2022. # EGuillemot <Elouen.Guillemot@gmail.com>, 2022. # Entiz <maxime.salido@gmail.com>, 2022. -# Callim Ethee <callimethee@gmail.com>, 2022. +# Callim Ethee <callimethee@gmail.com>, 2022, 2023. +# Hugo Berthet-Rambaud <hugoberthetrambaud@outlook.com>, 2023. +# Nathan Chambrette <n.chambrette@gmail.com>, 2023. +# slundi <slundi@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-10 18:06+0000\n" -"Last-Translator: Helix Sir <vincentbarkmann@gmail.com>\n" +"PO-Revision-Date: 2023-01-14 00:01+0000\n" +"Last-Translator: slundi <slundi@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -120,7 +123,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -325,7 +328,7 @@ msgstr "Pré-lecture de page" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" -msgstr "Mode De Blocage Activé" +msgstr "Mode de blocage activé" #: core/io/http_client.cpp msgid "Connection" @@ -333,11 +336,11 @@ msgstr "Connexion" #: core/io/http_client.cpp msgid "Read Chunk Size" -msgstr "Taile des tronçons de lecture" +msgstr "Lire la taille des fragment(s)" #: core/io/marshalls.cpp msgid "Object ID" -msgstr "ID de l'Objet" +msgstr "Identifiant de l'Objet" #: core/io/multiplayer_api.cpp core/io/packet_peer.cpp msgid "Allow Object Decoding" @@ -596,7 +599,7 @@ msgstr "Message" #: core/os/input_event.cpp msgid "Pitch" -msgstr "Pitch" +msgstr "Angle d'attaque" #: core/os/input_event.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/physics_body_2d.cpp scene/3d/cpu_particles.cpp @@ -606,7 +609,7 @@ msgstr "Vélocité" #: core/os/input_event.cpp msgid "Instrument" -msgstr "Instrument" +msgstr "Appareil" #: core/os/input_event.cpp msgid "Controller Number" @@ -5904,7 +5907,6 @@ msgid "Zoom Modifier" msgstr "Touche de combinaison : Zoom" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Warped Mouse Panning" msgstr "Panoramique déformé de la souris" @@ -8843,15 +8845,15 @@ msgstr "Centré à Gauche" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Top" -msgstr "Centrée en Haut" +msgstr "Centré en Haut" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Right" -msgstr "Centrée à droite" +msgstr "Centré à droite" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Bottom" -msgstr "Centrée en bas" +msgstr "Centré en bas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center" @@ -11083,7 +11085,7 @@ msgstr "Perspective arrière" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portails actifs]" @@ -16833,7 +16835,7 @@ msgstr "Ajouter une entrée architecture" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "GDNativeLibrary" -msgstr "GDNativeLibrary" +msgstr "Bibliothèque Native GD" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Enabled GDNative Singleton" @@ -17153,7 +17155,6 @@ msgid "Specular Factor" msgstr "Facteur Spéculaire" #: modules/gltf/gltf_spec_gloss.cpp -#, fuzzy msgid "Spec Gloss Img" msgstr "Img Spéculaire Brillante" @@ -18172,23 +18173,23 @@ msgstr "Module de %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftLeft %s" -msgstr "Décalage %s vers la gauche" +msgstr "Déplacer Vers la Gauche" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftRight %s" -msgstr "Décaler %s vers la droite" +msgstr "Déplacer vers la Droite" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitAnd %s" -msgstr "Et par bit %s" +msgstr "ET Binaire" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitOr %s" -msgstr "Ou par bit %s" +msgstr "OU Binaire" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitXor %s" -msgstr "Ou-exclusif par bit %s" +msgstr "OU Exclusif Binaire" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Set Mode" @@ -18303,7 +18304,7 @@ msgstr "Récupérer Self" #: modules/visual_script/visual_script_nodes.cpp msgid "CustomNode" -msgstr "Nœud Personnalisé" +msgstr "Noeud Personalisé" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -18357,7 +18358,7 @@ msgstr "Yield" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "Wait" +msgstr "Attente/Attendre" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Next Frame" @@ -19267,7 +19268,7 @@ msgstr "Projecteur 80 X 80" #: platform/iphone/export/export.cpp msgid "Storyboard" -msgstr "Storyboard" +msgstr "Story-board" #: platform/iphone/export/export.cpp msgid "Use Launch Screen Storyboard" @@ -20272,15 +20273,14 @@ msgid "Could not find wine executable at \"%s\"." msgstr "Impossible de trouver wine à l'emplacement \"%s\"." #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start rcedit executable. Configure rcedit path in the Editor " "Settings (Export > Windows > Rcedit), or disable \"Application > Modify " "Resources\" in the export preset." msgstr "" -"L'outil « rcedit » doit être configuré dans les préférences de l'éditeur " -"(Exporter > Windows > Rcedit) for modifier l'icône ou les informations de " -"l'application." +"Impossible de démarrer l'exécutable rcedit. Configurez le chemin vers rcedit " +"dans les réglages de l'éditeur (Exporter > Windows > Rcedit), ou désactivez " +"\"Application > Modifier les Ressources\" dans les préréglages de l'export." #: platform/windows/export/export.cpp msgid "rcedit failed to modify executable: %s." @@ -20303,15 +20303,14 @@ msgid "Invalid timestamp server." msgstr "Server d'horodatage invalide." #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start signtool executable. Configure signtool path in the Editor " "Settings (Export > Windows > Signtool), or disable \"Codesign\" in the " "export preset." msgstr "" -"L'outil « rcedit » doit être configuré dans les préférences de l'éditeur " -"(Exporter > Windows > Rcedit) for modifier l'icône ou les informations de " -"l'application." +"Impossible de démarrer l'exécutable signtool. Configurez le chemin vers " +"signtool dans les réglages de l'éditeur (Exporter > Windows > Signtool) ou " +"désactivez \"Codesign\" dans les préréglages de l'export." #: platform/windows/export/export.cpp msgid "Signtool failed to sign executable: %s." @@ -20567,14 +20566,12 @@ msgid "Draw Margin" msgstr "Afficher les marges" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin H Enabled" -msgstr "Définir la marge" +msgstr "Marge de tirage H activée" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin V Enabled" -msgstr "Définir la marge" +msgstr "Marge de tirage V activée" #: scene/2d/camera_2d.cpp msgid "Smoothing" @@ -20589,9 +20586,8 @@ msgid "V" msgstr "V" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin" -msgstr "Tirer la marge" +msgstr "Marge Tirage" #: scene/2d/camera_2d.cpp msgid "Draw Screen" @@ -20602,9 +20598,8 @@ msgid "Draw Limits" msgstr "Afficher les limites" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Drag Margin" -msgstr "Définir la marge" +msgstr "Dessiner la marge de tirage" #: scene/2d/canvas_item.cpp scene/resources/environment.cpp #: scene/resources/material.cpp @@ -21633,9 +21628,8 @@ msgid "Internal Vertex Count" msgstr "Nombre de Sommet Interne" #: scene/2d/position_2d.cpp -#, fuzzy msgid "Gizmo Extents" -msgstr "Gadgets" +msgstr "Etendues des Gadgets" #: scene/2d/ray_cast_2d.cpp scene/3d/ray_cast.cpp msgid "Exclude Parent" @@ -23258,9 +23252,8 @@ msgid "Gizmo" msgstr "Gizmo" #: scene/3d/spatial_velocity_tracker.cpp -#, fuzzy msgid "Track Physics Step" -msgstr "Image physique %" +msgstr "Suivre les Etapes Physiques" #: scene/3d/spring_arm.cpp msgid "Spring Length" @@ -23682,9 +23675,8 @@ msgid "Group" msgstr "Groupe" #: scene/gui/button.cpp scene/gui/label.cpp -#, fuzzy msgid "Clip Text" -msgstr "Copier le texte" +msgstr "Découper le texte" #: scene/gui/button.cpp scene/gui/label.cpp scene/gui/line_edit.cpp #: scene/gui/spin_box.cpp @@ -23696,9 +23688,8 @@ msgid "Icon Align" msgstr "Aligner l'icône" #: scene/gui/button.cpp -#, fuzzy msgid "Expand Icon" -msgstr "Développer tout" +msgstr "Développer l'icône" #: scene/gui/center_container.cpp msgid "Use Top Left" @@ -23795,9 +23786,8 @@ msgid "Pivot Offset" msgstr "Décalage du Pivot" #: scene/gui/control.cpp -#, fuzzy msgid "Clip Content" -msgstr "Constante de classe" +msgstr "Découper le contenu" #: scene/gui/control.cpp scene/resources/visual_shader_nodes.cpp msgid "Hint" @@ -23845,7 +23835,7 @@ msgstr "Forme de Curseur par Défaut" #: scene/gui/control.cpp msgid "Pass On Modal Close Click" -msgstr "" +msgstr "Transmettre Clic de Fermeture du Mode" #: scene/gui/control.cpp msgid "Size Flags" @@ -23856,9 +23846,8 @@ msgid "Stretch Ratio" msgstr "Ratio d’étirement" #: scene/gui/control.cpp -#, fuzzy msgid "Theme Type Variation" -msgstr "Propriétés du thème" +msgstr "Variation du Type du Thème" #: scene/gui/dialogs.cpp msgid "Window Title" @@ -23881,18 +23870,16 @@ msgid "Please Confirm..." msgstr "Veuillez confirmer…" #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Mode Overrides Title" -msgstr "Remplacer l'item" +msgstr "Le Mode remplace le Titre" #: scene/gui/file_dialog.cpp msgid "Must use a valid extension." msgstr "Utilisez une extension valide." #: scene/gui/graph_edit.cpp -#, fuzzy msgid "Right Disconnects" -msgstr "Déconnecter" +msgstr "La droite déconnecte" #: scene/gui/graph_edit.cpp msgid "Scroll Offset" @@ -23928,9 +23915,8 @@ msgid "Enable grid minimap." msgstr "Activer l'alignement." #: scene/gui/graph_node.cpp -#, fuzzy msgid "Show Close" -msgstr "Afficher les os" +msgstr "Afficher la Fermeture" #: scene/gui/graph_node.cpp scene/gui/option_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -23959,23 +23945,20 @@ msgid "Incremental Search Max Interval Msec" msgstr "Intervalle max de recherche incrémentale (ms)" #: scene/gui/item_list.cpp scene/gui/tree.cpp -#, fuzzy msgid "Allow Reselect" -msgstr "Appliquer la réinitialisation" +msgstr "Autoriser la Resélection" #: scene/gui/item_list.cpp scene/gui/tree.cpp -#, fuzzy msgid "Allow RMB Select" -msgstr "Remplir la sélection" +msgstr "Autoriser la sélection par click droit" #: scene/gui/item_list.cpp msgid "Max Text Lines" msgstr "Lignes de texte max" #: scene/gui/item_list.cpp -#, fuzzy msgid "Auto Height" -msgstr "En période de test" +msgstr "Hauteur Auto" #: scene/gui/item_list.cpp msgid "Max Columns" @@ -23994,23 +23977,20 @@ msgid "Icon Scale" msgstr "Échelle de l'Icône" #: scene/gui/item_list.cpp -#, fuzzy msgid "Fixed Icon Size" -msgstr "Vue de devant" +msgstr "Taille d'Icône Fixe" #: scene/gui/label.cpp -#, fuzzy msgid "V Align" -msgstr "Assigner" +msgstr "Alignement V" #: scene/gui/label.cpp scene/gui/rich_text_label.cpp msgid "Visible Characters" msgstr "Caractères visibles" #: scene/gui/label.cpp scene/gui/rich_text_label.cpp -#, fuzzy msgid "Percent Visible" -msgstr "Rendre visible" +msgstr "Pourcentage visible" #: scene/gui/label.cpp msgid "Lines Skipped" @@ -24037,34 +24017,28 @@ msgid "Expand To Text Length" msgstr "Etendre à la longueur du texte" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Context Menu Enabled" -msgstr "Aide contextuelle" +msgstr "Menu Contextuel Activé" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Virtual Keyboard Enabled" -msgstr "Filtrer les signaux" +msgstr "Clavier Virtuel Activé" #: scene/gui/line_edit.cpp -#, fuzzy msgid "Clear Button Enabled" -msgstr "Filtrer les signaux" +msgstr "Bouton de Nettoyage Activé" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Shortcut Keys Enabled" -msgstr "Raccourcis" +msgstr "Raccourcis activés" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Middle Mouse Paste Enabled" -msgstr "Filtrer les signaux" +msgstr "Collage avec le bouton central de la souris activé" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Selecting Enabled" -msgstr "Sélection uniquement" +msgstr "Sélection Activée" #: scene/gui/line_edit.cpp scene/gui/rich_text_label.cpp #: scene/gui/text_edit.cpp @@ -24072,14 +24046,12 @@ msgid "Deselect On Focus Loss Enabled" msgstr "Déselection à la perte de focus activée" #: scene/gui/line_edit.cpp -#, fuzzy msgid "Right Icon" -msgstr "Bouton droit" +msgstr "Icône droite" #: scene/gui/line_edit.cpp -#, fuzzy msgid "Placeholder" -msgstr "Charger en tant qu'instance temporaire" +msgstr "Substitut temporaire" #: scene/gui/line_edit.cpp msgid "Alpha" @@ -24102,24 +24074,20 @@ msgid "Underline" msgstr "Souligner" #: scene/gui/menu_button.cpp -#, fuzzy msgid "Switch On Hover" -msgstr "Switch" +msgstr "Chnager au Survol" #: scene/gui/nine_patch_rect.cpp scene/resources/style_box.cpp -#, fuzzy msgid "Draw Center" -msgstr "Centre" +msgstr "Dessiner le Centre" #: scene/gui/nine_patch_rect.cpp scene/resources/style_box.cpp -#, fuzzy msgid "Region Rect" -msgstr "Définir région rectangulaire" +msgstr "Zone Rectangulaire" #: scene/gui/nine_patch_rect.cpp -#, fuzzy msgid "Patch Margin" -msgstr "Définir la marge" +msgstr "Marge de patch" #: scene/gui/nine_patch_rect.cpp scene/resources/style_box.cpp msgid "Axis Stretch" @@ -24138,7 +24106,6 @@ msgstr "" "un étirement." #: scene/gui/popup.cpp -#, fuzzy msgid "Popup" msgstr "Fenêtre contextuelle" @@ -24170,9 +24137,8 @@ msgid "Hide On State Item Selection" msgstr "Cacher lors de la sélection de l'élément d'état" #: scene/gui/popup_menu.cpp -#, fuzzy msgid "Submenu Popup Delay" -msgstr "Délai du pop-up du sous-menu" +msgstr "Délai de pop-up du sous-menu" #: scene/gui/popup_menu.cpp msgid "Allow Search" @@ -24205,9 +24171,8 @@ msgid "Exp Edit" msgstr "Édition Exponentielle" #: scene/gui/range.cpp -#, fuzzy msgid "Rounded" -msgstr "Arrondir" +msgstr "Arrondi" #: scene/gui/range.cpp msgid "Allow Greater" @@ -24238,9 +24203,8 @@ msgid "Elapsed Time" msgstr "Temps Écoulé" #: scene/gui/rich_text_effect.cpp -#, fuzzy msgid "Env" -msgstr "Fin" +msgstr "Alentours" #: scene/gui/rich_text_effect.cpp msgid "Character" @@ -24298,18 +24262,16 @@ msgstr "" "définissez manuellement la taille minimale personnalisée." #: scene/gui/scroll_container.cpp -#, fuzzy msgid "Follow Focus" -msgstr "Remplir la surface" +msgstr "Suivre le focus" #: scene/gui/scroll_container.cpp msgid "Horizontal Enabled" msgstr "Horizontal Activé" #: scene/gui/scroll_container.cpp -#, fuzzy msgid "Vertical Enabled" -msgstr "Filtrer les signaux" +msgstr "Vertical Activé" #: scene/gui/scroll_container.cpp msgid "Default Scroll Deadzone" @@ -24320,9 +24282,8 @@ msgid "Scrollable" msgstr "Défilant" #: scene/gui/slider.cpp -#, fuzzy msgid "Tick Count" -msgstr "Prélever une couleur" +msgstr "Compte des Tics" #: scene/gui/slider.cpp msgid "Ticks On Borders" @@ -24341,14 +24302,12 @@ msgid "Split Offset" msgstr "Décalage des écarts" #: scene/gui/split_container.cpp scene/gui/tree.cpp -#, fuzzy msgid "Collapsed" -msgstr "Réduire tout" +msgstr "Réduit" #: scene/gui/split_container.cpp -#, fuzzy msgid "Dragger Visibility" -msgstr "Basculer la visibilité" +msgstr "Visibilité du Tireur" #: scene/gui/tab_container.cpp scene/gui/tabs.cpp msgid "Tab Align" @@ -24359,9 +24318,8 @@ msgid "Current Tab" msgstr "Onglet actuel" #: scene/gui/tab_container.cpp -#, fuzzy msgid "Tabs Visible" -msgstr "Rendre visible" +msgstr "Onglets Visibles" #: scene/gui/tab_container.cpp msgid "All Tabs In Front" @@ -24388,33 +24346,28 @@ msgid "Readonly" msgstr "Lecture Seule" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Bookmark Gutter" -msgstr "Signets" +msgstr "Bandeau à Marque-pages" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Breakpoint Gutter" -msgstr "Passer les points d'arrêt" +msgstr "Bandeau à points d'arrêt" #: scene/gui/text_edit.cpp msgid "Fold Gutter" msgstr "Replier le bandeau" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Drag And Drop Selection Enabled" -msgstr "Sélection uniquement" +msgstr "Sélection en Glisser-déposer Activée" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Hiding Enabled" -msgstr "Activer" +msgstr "Cacher Activé" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Wrap Enabled" -msgstr "Activer" +msgstr "Déformation Activée" #: scene/gui/text_edit.cpp msgid "Scroll Vertical" @@ -24429,9 +24382,8 @@ msgid "Draw" msgstr "Dessiner" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Block Mode" -msgstr "Déverrouiller le nœud" +msgstr "Mode Bloc" #: scene/gui/text_edit.cpp msgid "Moving By Right Click" @@ -24451,34 +24403,29 @@ msgid "Hover" msgstr "Survoler" #: scene/gui/texture_button.cpp -#, fuzzy msgid "Focused" -msgstr "Focaliser le chemin" +msgstr "Focalisé" #: scene/gui/texture_button.cpp -#, fuzzy msgid "Click Mask" -msgstr "Mode collision" +msgstr "Masque de Clic" #: scene/gui/texture_button.cpp scene/gui/texture_rect.cpp #: scene/gui/video_player.cpp -#, fuzzy msgid "Expand" -msgstr "Développer tout" +msgstr "Développer" #: scene/gui/texture_progress.cpp msgid "Under" msgstr "Sous" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Over" -msgstr "Écraser" +msgstr "Par-dessus" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Progress" -msgstr "Propriétés du thème" +msgstr "Progrès" #: scene/gui/texture_progress.cpp msgid "Progress Offset" @@ -24497,43 +24444,36 @@ msgid "Radial Fill" msgstr "Remplissage Radial" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Initial Angle" -msgstr "Initialiser" +msgstr "Angle Initial" #: scene/gui/texture_progress.cpp msgid "Fill Degrees" msgstr "Degrés remplis" #: scene/gui/texture_progress.cpp scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Center Offset" -msgstr "Centré à Gauche" +msgstr "Décalage du Centre" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Nine Patch Stretch" -msgstr "Mode d’interpolation" +msgstr "Etirement à Neuf Patchs" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Stretch Margin Left" -msgstr "Définir la marge" +msgstr "Etirer la marge à gauche" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Stretch Margin Top" -msgstr "Définir la marge" +msgstr "Etirer la marge en haut" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Stretch Margin Right" -msgstr "Définir la marge" +msgstr "Etirer la marge à droite" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Stretch Margin Bottom" -msgstr "Mode sélection" +msgstr "Etirer la marge en bas" #: scene/gui/tree.cpp msgid "Custom Minimum Height" @@ -24544,14 +24484,12 @@ msgid "(Other)" msgstr "(Autre)" #: scene/gui/tree.cpp -#, fuzzy msgid "Column Titles Visible" -msgstr "Rendre visible" +msgstr "Titres des colonnes visibles" #: scene/gui/tree.cpp -#, fuzzy msgid "Hide Folding" -msgstr "Bouton désactivé" +msgstr "Cacher les plis" #: scene/gui/tree.cpp msgid "Hide Root" @@ -24562,43 +24500,36 @@ msgid "Drop Mode Flags" msgstr "Options du Mode Abandon" #: scene/gui/video_player.cpp -#, fuzzy msgid "Audio Track" -msgstr "Ajouter une piste" +msgstr "Piste Audio" #: scene/gui/video_player.cpp scene/main/scene_tree.cpp scene/main/timer.cpp msgid "Paused" msgstr "En Pause" #: scene/gui/video_player.cpp -#, fuzzy msgid "Buffering Msec" -msgstr "Vue de derrière" +msgstr "Mise en mémoire tampon ms" #: scene/gui/video_player.cpp -#, fuzzy msgid "Stream Position" -msgstr "Définir position d'entrée de la courbe" +msgstr "Position Flux" #: scene/gui/viewport_container.cpp -#, fuzzy msgid "Stretch Shrink" -msgstr "Actualiser" +msgstr "Etirer-Réduire" #: scene/main/canvas_layer.cpp -#, fuzzy msgid "Follow Viewport" -msgstr "Afficher le Viewport" +msgstr "Suivre la fenêtre d'affichage" #: scene/main/http_request.cpp -#, fuzzy msgid "Download File" -msgstr "Télécharger" +msgstr "Télécharger le Fichier" #: scene/main/http_request.cpp -#, fuzzy msgid "Download Chunk Size" -msgstr "Téléchargement en cours" +msgstr "Taille des Blocs de Téléchargement" #: scene/main/http_request.cpp msgid "Body Size Limit" @@ -24621,80 +24552,68 @@ msgstr "" "'%s', car ce nom est déjà attribué à '%s'. Ce nœud n'est donc plus unique." #: scene/main/node.cpp -#, fuzzy msgid "Name Num Separator" -msgstr "Séparateur nommé" +msgstr "Nom des séparateurs numériques" #: scene/main/node.cpp msgid "Name Casing" msgstr "Convention de Nommage" #: scene/main/node.cpp -#, fuzzy msgid "Editor Description" -msgstr "Description" +msgstr "Description de l'Editeur" #: scene/main/node.cpp -#, fuzzy msgid "Pause Mode" -msgstr "Mode navigation" +msgstr "Mode Pause" #: scene/main/node.cpp -#, fuzzy msgid "Physics Interpolation Mode" -msgstr "Mode d’interpolation" +msgstr "Mode d’interpolation physique" #: scene/main/node.cpp -#, fuzzy msgid "Display Folded" -msgstr "Afficher sans ombrage" +msgstr "Afficher les repliés" #: scene/main/node.cpp -#, fuzzy msgid "Filename" -msgstr "Renommer" +msgstr "Nom de fichier" #: scene/main/node.cpp msgid "Owner" msgstr "Propriétaire" #: scene/main/node.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Multiplayer" -msgstr "Multiplier %s" +msgstr "Multijoueur" #: scene/main/node.cpp msgid "Custom Multiplayer" msgstr "Multijoueur Personnalisé" #: scene/main/node.cpp -#, fuzzy msgid "Process Priority" -msgstr "Activer la priorité" +msgstr "Priorité de processus" #: scene/main/scene_tree.cpp scene/main/timer.cpp -#, fuzzy msgid "Time Left" -msgstr "En haut à gauche" +msgstr "Temps restant" #: scene/main/scene_tree.cpp -#, fuzzy msgid "Debug Collisions Hint" -msgstr "Mode collision" +msgstr "Déboguer les indices de collision" #: scene/main/scene_tree.cpp -#, fuzzy msgid "Debug Navigation Hint" -msgstr "Mode Navigation" +msgstr "Déboguer les indices de navigation" #: scene/main/scene_tree.cpp msgid "Use Font Oversampling" msgstr "Utiliser le Suréchantillonnage de Police" #: scene/main/scene_tree.cpp -#, fuzzy msgid "Edited Scene Root" -msgstr "Nouvelle racine de scène" +msgstr "Racine de scène modifiée" #: scene/main/scene_tree.cpp msgid "Root" @@ -24778,9 +24697,8 @@ msgstr "" "Environnement -> Environnement par défaut) ne peut pas être chargé." #: scene/main/scene_tree.cpp -#, fuzzy msgid "Enable Object Picking" -msgstr "Activer l'effet « pelure d'oignon »" +msgstr "Activer la sélection d'objet" #: scene/main/timer.cpp msgid "" @@ -24829,14 +24747,12 @@ msgid "ARVR" msgstr "ARVR" #: scene/main/viewport.cpp -#, fuzzy msgid "Size Override Stretch" -msgstr "Remplacer l'item" +msgstr "La taille passe outre l'étirement" #: scene/main/viewport.cpp -#, fuzzy msgid "Own World" -msgstr "Propre Monde" +msgstr "Monde Propre" #: scene/main/viewport.cpp scene/resources/world_2d.cpp msgid "World" @@ -24859,9 +24775,8 @@ msgid "FXAA" msgstr "FXAA" #: scene/main/viewport.cpp -#, fuzzy msgid "Debanding" -msgstr "Liaison" +msgstr "Dé-banding" #: scene/main/viewport.cpp msgid "Disable 3D" @@ -24888,9 +24803,8 @@ msgid "V Flip" msgstr "Miroir V" #: scene/main/viewport.cpp -#, fuzzy msgid "Clear Mode" -msgstr "Mode Règle" +msgstr "Mode Nettoyage" #: scene/main/viewport.cpp msgid "Enable 2D" @@ -24901,18 +24815,16 @@ msgid "Enable 3D" msgstr "Activer 3D" #: scene/main/viewport.cpp -#, fuzzy msgid "Object Picking" -msgstr "Activer l'effet « pelure d'oignon »" +msgstr "Sélection d'objet" #: scene/main/viewport.cpp msgid "Disable Input" msgstr "Désactiver entrées" #: scene/main/viewport.cpp servers/visual_server.cpp -#, fuzzy msgid "Shadow Atlas" -msgstr "Nouvel Atlas" +msgstr "Atlas d'ombres" #: scene/main/viewport.cpp msgid "Quad 0" @@ -25000,9 +24912,8 @@ msgid "Segments" msgstr "Segments" #: scene/resources/curve.cpp -#, fuzzy msgid "Bake Resolution" -msgstr "Demi résolution" +msgstr "Précalculer la résolution" #: scene/resources/curve.cpp msgid "Bake Interval" @@ -25133,19 +25044,16 @@ msgid "Cursor Color" msgstr "Couleur du curseur" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Clear Button Color" -msgstr "Filtrer les signaux" +msgstr "Couleur du bouton de nettoyage" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Clear Button Color Pressed" -msgstr "Filtrer les signaux" +msgstr "Couleur du bouton de nettoyage appuyé" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Minimum Spaces" -msgstr "Scène principale" +msgstr "Espacement Minimum" #: scene/resources/default_theme/default_theme.cpp msgid "BG" @@ -25251,12 +25159,11 @@ msgstr "Signet" #: scene/resources/default_theme/default_theme.cpp msgid "Updown" -msgstr "" +msgstr "Haut/Bas" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Scaleborder Size" -msgstr "Pixels de bordure" +msgstr "Taille de la bordure du cadre" #: scene/resources/default_theme/default_theme.cpp msgid "Title Font" @@ -25307,9 +25214,8 @@ msgid "Font Separator" msgstr "Séparateur de police" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Font Color Accel" -msgstr "Renommer l'item de couleur" +msgstr "Accélération de la couleur de police" #: scene/resources/default_theme/default_theme.cpp msgid "Font Color Separator" @@ -25328,14 +25234,12 @@ msgid "Default Frame" msgstr "Trame par défaut" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Default Focus" -msgstr "Défaut" +msgstr "Focalisation par défaut" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Comment Focus" -msgstr "Enregistrer" +msgstr "Focalisation des commentaires" #: scene/resources/default_theme/default_theme.cpp msgid "Breakpoint" @@ -25366,14 +25270,12 @@ msgid "Port Offset" msgstr "Décalage du port" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "BG Focus" -msgstr "Focaliser le chemin" +msgstr "Focalisation de l'arrière-plan" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Selected Focus" -msgstr "Sélectionner" +msgstr "Focalisation de la sélection" #: scene/resources/default_theme/default_theme.cpp msgid "Cursor Unfocused" @@ -25384,19 +25286,16 @@ msgid "Button Pressed" msgstr "Bouton quand pressé" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Title Button Normal" -msgstr "Bouton à bascule (toggle)" +msgstr "Bouton de titre normal" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Title Button Pressed" -msgstr "Bouton à bascule (toggle)" +msgstr "Bouton de titre appuyé" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Title Button Hover" -msgstr "Bouton à bascule (toggle)" +msgstr "Bouton de titre survolé" #: scene/resources/default_theme/default_theme.cpp msgid "Custom Button" @@ -25411,33 +25310,28 @@ msgid "Custom Button Hover" msgstr "Bouton personnalisé au survol" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Select Arrow" -msgstr "Tout sélectionner" +msgstr "Flèche de sélection" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Arrow Collapsed" -msgstr "Réduire tout" +msgstr "Flèche réduite" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Title Button Font" -msgstr "Bouton à bascule (toggle)" +msgstr "Police du bouton de titre" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Title Button Color" -msgstr "Couleur de la Sélection" +msgstr "Couleur du bouton de titre" #: scene/resources/default_theme/default_theme.cpp msgid "Guide Color" msgstr "Couleur des guides" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Drop Position Color" -msgstr "Position du dock" +msgstr "Couleur de position du dépôt" #: scene/resources/default_theme/default_theme.cpp msgid "Relationship Line Color" @@ -25500,14 +25394,12 @@ msgid "Menu Highlight" msgstr "Menu au survol" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Font Color FG" -msgstr "Renommer l'item de couleur" +msgstr "Couleur de police premier plan" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Font Color BG" -msgstr "Renommer l'item de couleur" +msgstr "Couleur de police arrière-plan" #: scene/resources/default_theme/default_theme.cpp msgid "Side Margin" @@ -25519,11 +25411,11 @@ msgstr "Marge en haut" #: scene/resources/default_theme/default_theme.cpp msgid "Label V Align FG" -msgstr "" +msgstr "Alignement Vertical du Label Premier Plan" #: scene/resources/default_theme/default_theme.cpp msgid "Label V Align BG" -msgstr "" +msgstr "Alignement Vertical du Label Arrière-plan" #: scene/resources/default_theme/default_theme.cpp msgid "Large" @@ -25546,19 +25438,16 @@ msgid "Files Disabled" msgstr "Fichiers désactivés" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "SV Width" -msgstr "Étendu à Gauche" +msgstr "Largeur SV" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "SV Height" -msgstr "Lumière" +msgstr "Hauteur SV" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "H Width" -msgstr "Étendu à Gauche" +msgstr "Largeur H" #: scene/resources/default_theme/default_theme.cpp msgid "Label Width" @@ -25673,9 +25562,8 @@ msgid "Activity" msgstr "Activité" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Bezier Len Pos" -msgstr "Déplacer des points de Bézier" +msgstr "Position de longueur de Bézier" #: scene/resources/default_theme/default_theme.cpp msgid "Bezier Len Neg" @@ -25842,9 +25730,8 @@ msgid "Max Luma" msgstr "Lumen maximum" #: scene/resources/environment.cpp -#, fuzzy msgid "SS Reflections" -msgstr "Mettre à l'échelle la sélection" +msgstr "Reflets SS" #: scene/resources/environment.cpp msgid "Max Steps" @@ -25879,14 +25766,12 @@ msgid "Intensity 2" msgstr "Intensité 2" #: scene/resources/environment.cpp scene/resources/material.cpp -#, fuzzy msgid "Light Affect" -msgstr "Étendu à Droite" +msgstr "Influence de la lumière" #: scene/resources/environment.cpp -#, fuzzy msgid "AO Channel Affect" -msgstr "Débogage du canal UV" +msgstr "Influence du canal AO" #: scene/resources/environment.cpp msgid "Blur" @@ -26158,12 +26043,11 @@ msgstr "NormalMap" #: scene/resources/material.cpp msgid "Rim" -msgstr "Bord" +msgstr "Bordure" #: scene/resources/material.cpp -#, fuzzy msgid "Clearcoat" -msgstr "Effacer" +msgstr "Coucheclaire" #: scene/resources/material.cpp msgid "Gloss" @@ -26175,7 +26059,7 @@ msgstr "Anisotropie" #: scene/resources/material.cpp msgid "Flowmap" -msgstr "" +msgstr "Organigramme" #: scene/resources/material.cpp msgid "Ambient Occlusion" @@ -26186,23 +26070,20 @@ msgid "Deep Parallax" msgstr "Parallaxe Profonde" #: scene/resources/material.cpp -#, fuzzy msgid "Min Layers" -msgstr "Calque" +msgstr "Calques min" #: scene/resources/material.cpp -#, fuzzy msgid "Max Layers" -msgstr "Calque" +msgstr "Calques max" #: scene/resources/material.cpp msgid "Flip Tangent" msgstr "Inverser la Tangente" #: scene/resources/material.cpp -#, fuzzy msgid "Flip Binormal" -msgstr "Retourner le Portal" +msgstr "Inversion Bi-normale" #: scene/resources/material.cpp msgid "Subsurf Scatter" @@ -26241,9 +26122,8 @@ msgid "UV2" msgstr "UV2" #: scene/resources/material.cpp -#, fuzzy msgid "Proximity Fade" -msgstr "Mode prioritaire" +msgstr "Fondu de proximité" #: scene/resources/material.cpp msgid "Distance Fade" @@ -26254,9 +26134,8 @@ msgid "Async Mode" msgstr "Mode asynchrone" #: scene/resources/mesh.cpp -#, fuzzy msgid "Lightmap Size Hint" -msgstr "LightMap Bake" +msgstr "Indice de taille de la texture de lumière" #: scene/resources/mesh.cpp scene/resources/primitive_meshes.cpp msgid "Custom AABB" @@ -26307,9 +26186,8 @@ msgid "Source Geometry Mode" msgstr "Mode Géométrie Source" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Source Group Name" -msgstr "Source" +msgstr "Nom du groupe source" #: scene/resources/navigation_mesh.cpp msgid "Cells" @@ -26332,18 +26210,16 @@ msgid "Regions" msgstr "Régions" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Merge Size" -msgstr "Fusionner depuis la scène" +msgstr "Taille de la fusion" #: scene/resources/navigation_mesh.cpp msgid "Edges" msgstr "Arêtes" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Max Error" -msgstr "Erreur" +msgstr "Erreur max" #: scene/resources/navigation_mesh.cpp msgid "Verts Per Poly" @@ -26358,9 +26234,8 @@ msgid "Sample Distance" msgstr "Échantillonner la distance" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Sample Max Error" -msgstr "Échantillonneur" +msgstr "Échantillon erreur max" #: scene/resources/navigation_mesh.cpp msgid "Low Hanging Obstacles" @@ -26375,14 +26250,12 @@ msgid "Walkable Low Height Spans" msgstr "Etendues de faible hauteur praticables" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB" -msgstr "Générer AABB" +msgstr "Précalcul AABB" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB Offset" -msgstr "Décalage :" +msgstr "Décalage du Précalcul AABB" #: scene/resources/occluder_shape.cpp msgid "Spheres" @@ -26413,14 +26286,12 @@ msgid "Divisor" msgstr "Diviseur" #: scene/resources/particles_material.cpp -#, fuzzy msgid "Size Modifier" -msgstr "Modificateur de vitesse de la vue libre" +msgstr "Modificateur de taille" #: scene/resources/particles_material.cpp -#, fuzzy msgid "Color Modifier" -msgstr "Ralentissement de la vue libre" +msgstr "Modificateur de couleur" #: scene/resources/particles_material.cpp msgid "Point Texture" @@ -26431,9 +26302,8 @@ msgid "Normal Texture" msgstr "Texture Normale" #: scene/resources/particles_material.cpp -#, fuzzy msgid "Color Texture" -msgstr "Thème de l'éditeur" +msgstr "Texture de couleur" #: scene/resources/particles_material.cpp msgid "Point Count" @@ -26444,9 +26314,8 @@ msgid "Scale Random" msgstr "Échelle Aléatoire" #: scene/resources/particles_material.cpp -#, fuzzy msgid "Scale Curve" -msgstr "Fermer la courbe" +msgstr "Courbe d'échelle" #: scene/resources/physics_material.cpp msgid "Rough" @@ -26485,9 +26354,8 @@ msgid "Top Radius" msgstr "Rayon Supérieur" #: scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Bottom Radius" -msgstr "En bas à droite" +msgstr "Rayon bas" #: scene/resources/primitive_meshes.cpp msgid "Left To Right" @@ -26574,18 +26442,16 @@ msgid "Content Margin" msgstr "Marge de contenu" #: scene/resources/style_box.cpp -#, fuzzy msgid "Expand Margin" -msgstr "Développer tout" +msgstr "Développer la marge" #: scene/resources/style_box.cpp msgid "Skew" msgstr "Biseau" #: scene/resources/style_box.cpp -#, fuzzy msgid "Corner Radius" -msgstr "Changer le rayon intérieur de la tour" +msgstr "Rayon de coin" #: scene/resources/style_box.cpp msgid "Corner Detail" @@ -26604,9 +26470,8 @@ msgid "Grow End" msgstr "Fin d'Expansion" #: scene/resources/texture.cpp -#, fuzzy msgid "Load Path" -msgstr "Charger un préréglage" +msgstr "Charger chemin" #: scene/resources/texture.cpp msgid "Base Texture" @@ -26673,14 +26538,12 @@ msgid "Output Port For Preview" msgstr "Port de sortie de l'aperçu" #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Depth Draw" -msgstr "Mode d’interpolation" +msgstr "Dessin en profondeur" #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Cull" -msgstr "Mode Règle" +msgstr "élaguer/élagage" #: scene/resources/visual_shader.cpp msgid "Diffuse" @@ -26727,9 +26590,8 @@ msgid "Cube Map" msgstr "Textures en cube" #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Default Value Enabled" -msgstr "Profil des fonctionnalités de Godot" +msgstr "Valeur par défaut activée" #: scene/resources/visual_shader_nodes.cpp msgid "Default Value" @@ -26757,25 +26619,23 @@ msgstr "Carte de navigation" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Direct Space State" -msgstr "" +msgstr "Etat de l'espace direct" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Default Gravity Vector" msgstr "Vecteur de gravité par défaut" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Linear Damp" -msgstr "Linéaire gauche" +msgstr "Amorti linéaire par défaut" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Default Angular Damp" -msgstr "" +msgstr "Amorti Angulaire par Défaut" #: scene/resources/world.cpp -#, fuzzy msgid "Default Map Up" -msgstr "Défaut" +msgstr "Haut de carte par défaut" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Default Cell Size" @@ -26807,7 +26667,7 @@ msgstr "AR" #: servers/arvr/arvr_interface.cpp msgid "Is Anchor Detection Enabled" -msgstr "" +msgstr "La détection d'ancre est-elle activée" #: servers/arvr_server.cpp msgid "Primary Interface" @@ -26869,7 +26729,7 @@ msgstr "Niveau (dB)" #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_panner.cpp msgid "Pan" -msgstr "Pan" +msgstr "Panoramique/faire un panoramique" #: servers/audio/effects/audio_effect_compressor.cpp #: servers/audio/effects/audio_effect_filter.cpp @@ -26890,15 +26750,15 @@ msgstr "Mixer" #: servers/audio/effects/audio_effect_compressor.cpp msgid "Sidechain" -msgstr "" +msgstr "Sidechain" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 1" -msgstr "" +msgstr "Tap 1" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 2" -msgstr "" +msgstr "Tap 2" #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_phaser.cpp @@ -26920,7 +26780,7 @@ msgstr "Garder haute fréquences (Hz)" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Drive" -msgstr "" +msgstr "Elan" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Post Gain" @@ -26940,11 +26800,11 @@ msgstr "Seuil de dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Soft Clip dB" -msgstr "" +msgstr "dB de Coupure Douce" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Soft Clip Ratio" -msgstr "" +msgstr "Ratio de Coupure Douce" #: servers/audio/effects/audio_effect_phaser.cpp msgid "Range Min Hz" @@ -26956,7 +26816,7 @@ msgstr "Borne supérieure de la plage (Hz)" #: servers/audio/effects/audio_effect_pitch_shift.cpp msgid "Oversampling" -msgstr "Suréchantillonnage" +msgstr "Sur-échantillonnage" #: servers/audio/effects/audio_effect_pitch_shift.cpp #: servers/audio/effects/audio_effect_spectrum_analyzer.cpp @@ -26981,11 +26841,11 @@ msgstr "Passe-haut" #: servers/audio/effects/audio_effect_spectrum_analyzer.cpp msgid "Tap Back Pos" -msgstr "" +msgstr "Tap Position Arrière" #: servers/audio/effects/audio_effect_stereo_enhance.cpp msgid "Pan Pullout" -msgstr "" +msgstr "Retrait du Panoramique" #: servers/audio/effects/audio_effect_stereo_enhance.cpp msgid "Time Pullout (ms)" @@ -27008,9 +26868,8 @@ msgid "Channel Disable Threshold dB" msgstr "Désactiver le seuil de dB du canal" #: servers/audio_server.cpp -#, fuzzy msgid "Channel Disable Time" -msgstr "Changer le temps de mélange" +msgstr "Temps de désactivation de canal" #: servers/audio_server.cpp msgid "Video Delay Compensation (ms)" @@ -27054,7 +26913,7 @@ msgstr "Taille de la Table de Hachage BP" #: servers/physics_2d/physics_2d_server_sw.cpp msgid "Large Object Surface Threshold In Cells" -msgstr "" +msgstr "Seuil de Surface des Grands Objets dans les Cellules" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Inverse Mass" @@ -27113,14 +26972,12 @@ msgid "Collision Depth" msgstr "Profondeur de collision" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Safe Fraction" -msgstr "Mode collision" +msgstr "Fraction anti-collisions" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Unsafe Fraction" -msgstr "Mode collision" +msgstr "Fraction avec collisions potentielles" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Physics Engine" @@ -27139,22 +26996,20 @@ msgid "Varying may not be assigned in the '%s' function." msgstr "Varying ne peut pas être assigné dans la fonction '%s'." #: servers/visual/shader_language.cpp -#, fuzzy msgid "" "Varyings which were assigned in 'vertex' function may not be reassigned in " "'fragment' or 'light'." msgstr "" -"Les Varyings assignées dans la fonction \"vertex\" ne peuvent pas être " -"réassignées dans 'fragment' ou 'light'." +"Les variations assignées dans la fonction \"sommet/vertex\" ne peuvent pas " +"être réassignées dans \"fragment\" ou \"lumière/light\"." #: servers/visual/shader_language.cpp -#, fuzzy msgid "" "Varyings which were assigned in 'fragment' function may not be reassigned in " "'vertex' or 'light'." msgstr "" -"Les Varyings attribuées dans la fonction 'fragment' ne peuvent pas être " -"réattribuées dans 'vertex' ou 'light'." +"Les variations attribuées dans la fonction \"fragment\" ne peuvent pas être " +"réattribuées dans \"sommet/vertex\" ou \"lumière/light\"." #: servers/visual/shader_language.cpp msgid "Assignment to function." @@ -27173,9 +27028,8 @@ msgid "Spatial Partitioning" msgstr "Partitionnement Spatial" #: servers/visual_server.cpp -#, fuzzy msgid "Render Loop Enabled" -msgstr "Filtrer les signaux" +msgstr "Boucle de rendu activée" #: servers/visual_server.cpp msgid "VRAM Compression" @@ -27215,28 +27069,27 @@ msgstr "Niveau de compression WebP" #: servers/visual_server.cpp msgid "Time Rollover Secs" -msgstr "" +msgstr "Temps de Roulement en Secondes" #: servers/visual_server.cpp -#, fuzzy msgid "Cubemap Size" -msgstr "Changer la taille d'une caméra" +msgstr "Taille de la Cubemap" #: servers/visual_server.cpp msgid "Quadrant 0 Subdiv" -msgstr "" +msgstr "Subdivisions Quadrant 0" #: servers/visual_server.cpp msgid "Quadrant 1 Subdiv" -msgstr "" +msgstr "Subdivision Quadrant 1" #: servers/visual_server.cpp msgid "Quadrant 2 Subdiv" -msgstr "" +msgstr "Subdivision Quadrant 2" #: servers/visual_server.cpp msgid "Quadrant 3 Subdiv" -msgstr "" +msgstr "Subdivision Quadrant 3" #: servers/visual_server.cpp msgid "Shadows" @@ -27247,9 +27100,8 @@ msgid "Filter Mode" msgstr "Mode de filtrage" #: servers/visual_server.cpp -#, fuzzy msgid "Texture Array Reflections" -msgstr "Centrer sur la sélection" +msgstr "Refléxions de la liste de textures" #: servers/visual_server.cpp msgid "High Quality GGX" @@ -27257,7 +27109,7 @@ msgstr "GGX haute qualité" #: servers/visual_server.cpp msgid "Irradiance Max Size" -msgstr "" +msgstr "Taille Max Irradiance" #: servers/visual_server.cpp msgid "Shading" @@ -27265,7 +27117,7 @@ msgstr "Ombrage" #: servers/visual_server.cpp msgid "Force Vertex Shading" -msgstr "" +msgstr "Forcer l'Ombrage des Sommets" #: servers/visual_server.cpp msgid "Force Lambert Over Burley" @@ -27277,24 +27129,23 @@ msgstr "Forcer Blinn au lieu de GGX" #: servers/visual_server.cpp msgid "Mesh Storage" -msgstr "" +msgstr "Stockage de Maillage" #: servers/visual_server.cpp -#, fuzzy msgid "Split Stream" -msgstr "Scinder la courbe" +msgstr "Séparer flux" #: servers/visual_server.cpp msgid "Use Physical Light Attenuation" -msgstr "" +msgstr "Utiliser l'Atténuation Lumineuse Physique" #: servers/visual_server.cpp msgid "Depth Prepass" -msgstr "" +msgstr "Pré-passe de Profondeur" #: servers/visual_server.cpp msgid "Disable For Vendors" -msgstr "" +msgstr "Désactiver pour les Vendeurs" #: servers/visual_server.cpp msgid "Anisotropic Filter Level" @@ -27310,15 +27161,15 @@ msgstr "Enveloppement" #: servers/visual_server.cpp msgid "Software Skinning Fallback" -msgstr "" +msgstr "Dépouillement Logiciel de Repli" #: servers/visual_server.cpp msgid "Force Software Skinning" -msgstr "" +msgstr "Forcer le Dépouillement Logiciel" #: servers/visual_server.cpp msgid "Use Software Skinning" -msgstr "" +msgstr "Utiliser Dépouillement Logiciel" #: servers/visual_server.cpp msgid "Ninepatch Mode" @@ -27330,7 +27181,7 @@ msgstr "OpenGL" #: servers/visual_server.cpp msgid "Batching Send Null" -msgstr "" +msgstr "Traitement en Lot - Envoyer Null" #: servers/visual_server.cpp msgid "Batching Stream" @@ -27338,11 +27189,11 @@ msgstr "Flux de traitement en lot" #: servers/visual_server.cpp msgid "Legacy Orphan Buffers" -msgstr "" +msgstr "Anciens Tampons Orphelins" #: servers/visual_server.cpp msgid "Legacy Stream" -msgstr "" +msgstr "Ancien Flux" #: servers/visual_server.cpp msgid "Batching" @@ -27358,19 +27209,19 @@ msgstr "Utiliser le traitement en lot dans l'éditeur" #: servers/visual_server.cpp msgid "Single Rect Fallback" -msgstr "" +msgstr "Rectangle Unique de Repli" #: servers/visual_server.cpp msgid "Max Join Item Commands" -msgstr "" +msgstr "Commandes Max de Jointure d'Elements" #: servers/visual_server.cpp msgid "Colored Vertex Format Threshold" -msgstr "" +msgstr "Seuil de Format des Sommets Colorés" #: servers/visual_server.cpp msgid "Scissor Area Threshold" -msgstr "" +msgstr "Seuil d'Aire de Cisaillement" #: servers/visual_server.cpp msgid "Max Join Items" @@ -27386,7 +27237,7 @@ msgstr "Anticipation de réorganisation d’éléments" #: servers/visual_server.cpp msgid "Flash Batching" -msgstr "" +msgstr "Traitement en Lot Flash" #: servers/visual_server.cpp msgid "Diagnose Frame" @@ -27405,9 +27256,8 @@ msgid "Disable Half Float" msgstr "Désactiver les demi Float" #: servers/visual_server.cpp -#, fuzzy msgid "Enable High Float" -msgstr "Activer la priorité" +msgstr "Activer les grands flottants" #: servers/visual_server.cpp msgid "Precision" @@ -27434,19 +27284,16 @@ msgid "Use Signals" msgstr "Utiliser les signaux" #: servers/visual_server.cpp -#, fuzzy msgid "Remove Danglers" -msgstr "Supprimer la tuile" +msgstr "Supprimer les pendouillants" #: servers/visual_server.cpp -#, fuzzy msgid "Flip Imported Portals" -msgstr "Retourner les Portals" +msgstr "Retourner les portails importés" #: servers/visual_server.cpp -#, fuzzy msgid "Occlusion Culling" -msgstr "Voir la suppression de l'occlusion" +msgstr "Elagage de l'occlusion" #: servers/visual_server.cpp msgid "Max Active Spheres" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 01810bb059..eea95f8656 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -10649,7 +10649,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index 1d2fbb333a..9bfb2b9309 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -11231,7 +11231,7 @@ msgstr "Perspetiva" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index 57b2386570..7458eedd15 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -26,13 +26,14 @@ # Tomer Ben Rachel <tomerpacific@gmail.com>, 2022. # moshe mil <milgmoshe@gmail.com>, 2022. # Blawnode <blawnode@gmail.com>, 2022. +# Yoni m <yoni.meirov08@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-23 20:47+0000\n" -"Last-Translator: Blawnode <blawnode@gmail.com>\n" +"PO-Revision-Date: 2023-01-01 05:48+0000\n" +"Last-Translator: Yoni m <yoni.meirov08@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/" "godot/he/>\n" "Language: he\n" @@ -41,7 +42,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -274,9 +275,8 @@ msgid "Network Peer" msgstr "מאפיין\\עמית רשת" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp -#, fuzzy msgid "Root Node" -msgstr "שינוי שם מפרק השורש" +msgstr "מפרק השורש" #: core/io/networked_multiplayer_peer.cpp msgid "Refuse New Connections" @@ -300,11 +300,11 @@ msgstr "פלוט גודל מירבי של החוצץ" #: core/io/packet_peer.cpp msgid "Stream Peer" -msgstr "" +msgstr "זרם עמיתים" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "אנדיאן גדול" #: core/io/stream_peer.cpp #, fuzzy @@ -395,18 +395,16 @@ msgid "Device" msgstr "מכשיר" #: core/os/input_event.cpp -#, fuzzy msgid "Alt" -msgstr "הכל" +msgstr "אלט" #: core/os/input_event.cpp msgid "Shift" msgstr "הסט" #: core/os/input_event.cpp -#, fuzzy msgid "Control" -msgstr "בקרת גירסאות" +msgstr "לשלוט" #: core/os/input_event.cpp msgid "Meta" @@ -417,9 +415,8 @@ msgid "Command" msgstr "פקודה" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr "פיזיקה" +msgstr "פיזי" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -428,9 +425,8 @@ msgid "Pressed" msgstr "לחוץ" #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" -msgstr "סריקת מקורות" +msgstr "קוד סריקה" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -442,26 +438,23 @@ msgstr "יוניקוד" #: core/os/input_event.cpp msgid "Echo" -msgstr "" +msgstr "הד" #: core/os/input_event.cpp scene/gui/base_button.cpp -#, fuzzy msgid "Button Mask" -msgstr "כפתור" +msgstr "מסכת כפתור" #: core/os/input_event.cpp scene/2d/node_2d.cpp scene/gui/control.cpp -#, fuzzy msgid "Global Position" -msgstr "קבוע" +msgstr "מיקום גלובלי" #: core/os/input_event.cpp msgid "Factor" msgstr "פקטור" #: core/os/input_event.cpp -#, fuzzy msgid "Button Index" -msgstr "מפתח כפתורי עכבר:" +msgstr "אינדקס הכפתורים" #: core/os/input_event.cpp msgid "Doubleclick" @@ -477,12 +470,11 @@ msgstr "לחץ" #: core/os/input_event.cpp msgid "Pen Inverted" -msgstr "" +msgstr "עט הפוך" #: core/os/input_event.cpp -#, fuzzy msgid "Relative" -msgstr "GDNative" +msgstr "קרוב משפחה" #: core/os/input_event.cpp scene/2d/camera_2d.cpp scene/2d/cpu_particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/interpolated_camera.cpp @@ -497,9 +489,8 @@ msgid "Axis" msgstr "ציר" #: core/os/input_event.cpp -#, fuzzy msgid "Axis Value" -msgstr "(ערך)" +msgstr "ערך ציר" #: core/os/input_event.cpp modules/visual_script/visual_script_func_nodes.cpp msgid "Index" @@ -529,16 +520,14 @@ msgid "Message" msgstr "מסר" #: core/os/input_event.cpp -#, fuzzy msgid "Pitch" -msgstr "גובה צליל" +msgstr "גובה הצליל" #: core/os/input_event.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/physics_body_2d.cpp scene/3d/cpu_particles.cpp #: scene/3d/physics_body.cpp scene/resources/particles_material.cpp -#, fuzzy msgid "Velocity" -msgstr "הגדלת אות ראשונה" +msgstr "מְהִירוּת" #: core/os/input_event.cpp msgid "Instrument" @@ -559,14 +548,12 @@ msgid "Application" msgstr "אפליקציה" #: core/project_settings.cpp main/main.cpp -#, fuzzy msgid "Config" -msgstr "הגדרת הצמדה" +msgstr "הקונפדרציה" #: core/project_settings.cpp -#, fuzzy msgid "Project Settings Override" -msgstr "הגדרות מיזם..." +msgstr "עקיפת הגדרות פרוייקט" #: core/project_settings.cpp core/resource.cpp #: editor/animation_track_editor.cpp editor/editor_autoload_settings.cpp @@ -597,7 +584,7 @@ msgstr "הרצה" #: core/project_settings.cpp editor/editor_node.cpp #: editor/run_settings_dialog.cpp main/main.cpp msgid "Main Scene" -msgstr "" +msgstr "סצנה ראשית" #: core/project_settings.cpp msgid "Disable stdout" @@ -609,22 +596,21 @@ msgstr "השבת stderr" #: core/project_settings.cpp msgid "Use Hidden Project Data Directory" -msgstr "" +msgstr "שימוש בספריית נתוני פרוייקט מוסתרים" #: core/project_settings.cpp msgid "Use Custom User Dir" -msgstr "" +msgstr "השתמש ב- Dir משתמש מותאם אישית" #: core/project_settings.cpp msgid "Custom User Dir Name" -msgstr "" +msgstr "שם תיקיית משתמש מותאם אישית" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Display" -msgstr "הצג הכל" +msgstr "הצג" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp @@ -643,7 +629,7 @@ msgstr "גבה" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "תמיד עליון" #: core/project_settings.cpp msgid "Test Width" @@ -672,30 +658,27 @@ msgstr "עורך" #: core/project_settings.cpp msgid "Main Run Args" -msgstr "" +msgstr "פרמטרים ראשיים לריצה" #: core/project_settings.cpp -#, fuzzy msgid "Scene Naming" -msgstr "נתיב סצנות:" +msgstr "מתן שמות לסצינה" #: core/project_settings.cpp msgid "Search In File Extensions" -msgstr "" +msgstr "חיפוש בסיומות קבצים" #: core/project_settings.cpp msgid "Script Templates Search Path" -msgstr "" +msgstr "נתיב חיפוש של תבניות סקריפט" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "בקרת גירסאות" +msgstr "טעינה אוטומטית של בקרת גירסאות בעת האתחול" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "בקרת גירסאות" +msgstr "שם תוסף בקרת גרסאות" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -704,62 +687,55 @@ msgstr "קלט" #: core/project_settings.cpp msgid "UI Accept" -msgstr "" +msgstr "ממשק משתמש - אישור" #: core/project_settings.cpp -#, fuzzy msgid "UI Select" -msgstr "בחירה" +msgstr "בחירת ממשק משתמש" #: core/project_settings.cpp msgid "UI Cancel" -msgstr "" +msgstr "ביטול ממשק משתמש" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Next" -msgstr "מיקוד נתיב" +msgstr "מיקוד ממשק המשתמש הבא" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Prev" -msgstr "מיקוד נתיב" +msgstr "מיקוד ממשק משתמש קודם" #: core/project_settings.cpp -#, fuzzy msgid "UI Left" -msgstr "שמאל" +msgstr "ממשק משתמש שמאל" #: core/project_settings.cpp -#, fuzzy msgid "UI Right" -msgstr "ימין" +msgstr "ממשק משתמש ימין" #: core/project_settings.cpp msgid "UI Up" -msgstr "" +msgstr "ממשק משתמש למעלה" #: core/project_settings.cpp -#, fuzzy msgid "UI Down" -msgstr "הורדה" +msgstr "ממשק משתמש למטה" #: core/project_settings.cpp msgid "UI Page Up" -msgstr "" +msgstr "עמוד למעלה ממשק המשתמש" #: core/project_settings.cpp msgid "UI Page Down" -msgstr "" +msgstr "עמוד למטה ממשק משתמש" #: core/project_settings.cpp msgid "UI Home" -msgstr "" +msgstr "ממשק משתמש בית" #: core/project_settings.cpp -#, fuzzy msgid "UI End" -msgstr "בסוף" +msgstr "ממשק משתמש סוף" #: core/project_settings.cpp main/main.cpp modules/bullet/register_types.cpp #: modules/bullet/space_bullet.cpp scene/2d/physics_body_2d.cpp @@ -796,7 +772,7 @@ msgstr "" #: scene/main/viewport.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Rendering" -msgstr "" +msgstr "רינדור" #: core/project_settings.cpp drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp @@ -816,7 +792,7 @@ msgstr "מסננים" #: core/project_settings.cpp scene/main/viewport.cpp msgid "Sharpen Intensity" -msgstr "" +msgstr "עוצמת חידוד" #: core/project_settings.cpp editor/editor_export.cpp editor/editor_node.cpp #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp @@ -842,42 +818,40 @@ msgid "Profiler" msgstr "מאפיין" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "יצירת פונקציה" +msgstr "פונקציות מקסימום" #: core/project_settings.cpp scene/3d/vehicle_body.cpp msgid "Compression" msgstr "כיווץ" #: core/project_settings.cpp -#, fuzzy msgid "Formats" -msgstr "תבנית" +msgstr "פורמטים" #: core/project_settings.cpp msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" -msgstr "" +msgstr "התאמה למרחקים ארוכים" #: core/project_settings.cpp msgid "Compression Level" -msgstr "" +msgstr "רמת דחיסה" #: core/project_settings.cpp msgid "Window Log Size" -msgstr "" +msgstr "גודל חלון יומן" #: core/project_settings.cpp msgid "Zlib" -msgstr "" +msgstr "ZLIB" #: core/project_settings.cpp msgid "Gzip" -msgstr "" +msgstr "Gzip" #: core/project_settings.cpp platform/android/export/export.cpp msgid "Android" @@ -885,24 +859,23 @@ msgstr "Android" #: core/project_settings.cpp msgid "Modules" -msgstr "" +msgstr "מודולים" #: core/register_core_types.cpp msgid "TCP" msgstr "TCP" #: core/register_core_types.cpp -#, fuzzy msgid "Connect Timeout Seconds" -msgstr "שניות קצובות להתחברות" +msgstr "זמן קצוב לחיבור בשניות" #: core/register_core_types.cpp msgid "Packet Peer Stream" -msgstr "" +msgstr "זרם עמית מנות" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "גודל מחסנית מקסימלי (בחזקה)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" @@ -943,7 +916,7 @@ msgstr "בדיקה" #: core/translation.cpp scene/resources/font.cpp msgid "Fallback" -msgstr "" +msgstr "חזרה" #: core/ustring.cpp scene/resources/segment_shape_2d.cpp msgid "B" @@ -979,7 +952,7 @@ msgstr "EiB" #: drivers/gles3/rasterizer_scene_gles3.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp modules/gltf/gltf_state.cpp msgid "Buffers" -msgstr "" +msgstr "מחסניות" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp @@ -1005,39 +978,36 @@ msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Snapping" -msgstr "הגדרות הצמדה" +msgstr "הצמדה" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Use GPU Pixel Snap" -msgstr "מצב מרחב מקומי (%s)" +msgstr "שימוש בהצמדת פיקסלים של GPU" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Immediate Buffer Size (KB)" -msgstr "" +msgstr "גודל מחסנית מיידי (KB)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp -#, fuzzy msgid "Lightmapping" -msgstr "אפיית Lightmaps" +msgstr "מיפוי אורות" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Use Bicubic Sampling" -msgstr "" +msgstr "השתמש בדגימה דו-כיוונית" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "מקסימום רכיבים הניתנים לרינדור" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "מקסימום אורות ניתנים לרינדור" #: drivers/gles3/rasterizer_scene_gles3.cpp #, fuzzy @@ -1046,11 +1016,11 @@ msgstr "GridMap מחיקת הבחירה" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "מקסימום אורות לכל אובייקט" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" -msgstr "" +msgstr "פיזור תת-שטח" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1067,15 +1037,15 @@ msgstr "קנה מידה" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Follow Surface" -msgstr "" +msgstr "עקוב אחר פני השטח" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" -msgstr "" +msgstr "דוגמאות משקל" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "" +msgstr "מעקב חרוט ווקסל" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" @@ -1192,7 +1162,7 @@ msgstr "כמות:" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "ארגומנטים" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1214,7 +1184,7 @@ msgstr "" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "זרם" #: editor/animation_track_editor.cpp #, fuzzy @@ -1238,7 +1208,7 @@ msgstr "הנפשה" #: editor/animation_track_editor.cpp msgid "Easing" -msgstr "" +msgstr "הקלה (אנימציה)" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" @@ -1373,7 +1343,7 @@ msgstr "קנה מידה:" #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Type:" -msgstr "" +msgstr "סוג:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1466,7 +1436,7 @@ msgstr "שכפול מפתח(ות)" #: editor/animation_track_editor.cpp msgid "Add RESET Value(s)" -msgstr "" +msgstr "הוסף ערכי איפוס" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" @@ -2232,7 +2202,7 @@ msgstr "פתיחה" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "בעלים של: %s (סה\"כ: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2645,7 +2615,7 @@ msgstr "שם שגוי." #: editor/editor_autoload_settings.cpp msgid "Cannot begin with a digit." -msgstr "" +msgstr "לא ניתן להתחיל עם סיפרה." #: editor/editor_autoload_settings.cpp msgid "Valid characters:" @@ -2790,7 +2760,7 @@ msgstr "בחירה" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "ייצוא פרויקט לפלטפורמה:" #: editor/editor_export.cpp #, fuzzy @@ -2908,7 +2878,7 @@ msgstr "חברים" #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/export/export.cpp msgid "Release" -msgstr "" +msgstr "שחרר" #: editor/editor_export.cpp #, fuzzy @@ -2917,7 +2887,7 @@ msgstr "התמרה" #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 ביטים" #: editor/editor_export.cpp msgid "Embed PCK" @@ -2930,23 +2900,23 @@ msgstr "מצב שינוי קנה מידה (R)" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "BPTC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" -msgstr "" +msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "" +msgstr "ETC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "" +msgstr "ETC2" #: editor/editor_export.cpp msgid "No BPTC Fallbacks" -msgstr "" +msgstr "אין חזרות BPTC" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -2991,7 +2961,7 @@ msgstr "בייצוא ארכיטקטורת 32 ביט, ה PCK המובנה לא י #: editor/editor_export.cpp msgid "Convert Text Resources To Binary On Export" -msgstr "" +msgstr "המרת משאבי טקסט לבינאריים בייצוא" #: editor/editor_feature_profile.cpp msgid "3D Editor" @@ -3315,7 +3285,7 @@ msgstr "הצג/הסתר קבצים מוסתרים" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" -msgstr "" +msgstr "השבת את אזהרת החלפה" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3471,16 +3441,16 @@ msgstr "קבועים" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Fonts" -msgstr "" +msgstr "גופנים" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp #: platform/iphone/export/export.cpp msgid "Icons" -msgstr "" +msgstr "סמלים" #: editor/editor_help.cpp msgid "Styles" -msgstr "" +msgstr "סגנונות" #: editor/editor_help.cpp msgid "Enumerations" @@ -3530,7 +3500,7 @@ msgstr "עזרה" #: editor/editor_help.cpp msgid "Sort Functions Alphabetically" -msgstr "" +msgstr "מיון פונקציות בסדר אלפביתי" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3622,7 +3592,7 @@ msgstr "מתודות בלבד" #: editor/editor_inspector.cpp editor/plugins/item_list_editor_plugin.cpp msgid "Checkable" -msgstr "" +msgstr "ניתן לבדיקה" #: editor/editor_inspector.cpp editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -3648,11 +3618,11 @@ msgstr "(ערך)" #: editor/editor_inspector.cpp msgid "" "Pinning a value forces it to be saved even if it's equal to the default." -msgstr "" +msgstr "הצמדת ערך מאלצת אותו להישמר גם אם הוא שווה לברירת המחדל." #: editor/editor_inspector.cpp msgid "Pin value [Disabled because '%s' is editor-only]" -msgstr "" +msgstr "הצמדת ערך [מושבת מכיוון ש- '%s' הוא ל-עורך בלבד]" #: editor/editor_inspector.cpp #: editor/plugins/gradient_texture_2d_editor_plugin.cpp @@ -3669,11 +3639,11 @@ msgstr "קביעה מרובה:" #: editor/editor_inspector.cpp msgid "Pinned %s" -msgstr "" +msgstr "הוצמד %s" #: editor/editor_inspector.cpp msgid "Unpinned %s" -msgstr "" +msgstr "בוטלה ההצמדה של %s" #: editor/editor_inspector.cpp #, fuzzy @@ -3761,7 +3731,7 @@ msgstr "חלון חדש" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Unnamed Project" -msgstr "" +msgstr "פרויקט ללא שם" #: editor/editor_node.cpp msgid "" @@ -3769,6 +3739,9 @@ msgid "" "Update Continuously is enabled, which can increase power usage. Click to " "disable it." msgstr "" +"מסתובב כאשר חלון העורך מצייר מחדש.\n" +"האפשרות 'עדכן רציף' מופעלת, מה שעלול להגביר את צריכת החשמל. לחץ כדי להשבית " +"אותו." #: editor/editor_node.cpp msgid "Spins when the editor window redraws." @@ -3895,6 +3868,8 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" +"אירעה שגיאה בעת ניסיון לשמור את פריסת העורך.\n" +"ודא שנתיב נתוני המשתמש של העורך ניתן לכתיבה." #: editor/editor_node.cpp msgid "" @@ -3902,6 +3877,9 @@ msgid "" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" +"פריסת עורך ברירת המחדל נדרסת.\n" +"כדי לשחזר את פריסת ברירת המחדל להגדרות הבסיס שלה, השתמש באפשרות מחק פריסה " +"ומחק את פריסת ברירת המחדל." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -3963,7 +3941,7 @@ msgstr "אין סצנה מוגדרת להרצה." #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "שמור סצנה לפני ריצה..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -4009,13 +3987,14 @@ msgstr "לשמור את השינויים ל־'%s' לפני הסגירה?" #: editor/editor_node.cpp msgid "%s no longer exists! Please specify a new save location." -msgstr "" +msgstr "%s כבר לא קיים! נא לציין מיקום שמירה חדש." #: editor/editor_node.cpp msgid "" "The current scene has no root node, but %d modified external resource(s) " "were saved anyway." msgstr "" +"לסצנה הנוכחית אין צומת שורש, אך %d משאבים חיצוניים ששונו נשמרו בכל מקרה." #: editor/editor_node.cpp #, fuzzy @@ -11258,7 +11237,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 657ee0ff41..229a1e6ee7 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -11065,7 +11065,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 85fcb184f3..d3ea72cf63 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -8,12 +8,13 @@ # LeoClose <leoclose575@gmail.com>, 2020, 2021, 2022. # Filip <fhomolka@protonmail.com>, 2022. # Milo Ivir <mail@milotype.de>, 2022. +# peter277 <ps2718@hotmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-09-27 21:37+0000\n" -"Last-Translator: Milo Ivir <mail@milotype.de>\n" +"PO-Revision-Date: 2022-12-21 07:02+0000\n" +"Last-Translator: peter277 <ps2718@hotmail.com>\n" "Language-Team: Croatian <https://hosted.weblate.org/projects/godot-engine/" "godot/hr/>\n" "Language: hr\n" @@ -21,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -3432,7 +3433,7 @@ msgstr "" #: editor/editor_help.cpp msgid "Enumerations" -msgstr "" +msgstr "Nabrajanja" #: editor/editor_help.cpp msgid "Property Descriptions" @@ -10824,7 +10825,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index b8bab10568..ad7ba523e3 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -11273,7 +11273,7 @@ msgstr "Perspektíva" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/id.po b/editor/translations/id.po index 89153d88d3..47b026986a 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -41,13 +41,14 @@ # Primananda Kurnia <primakurnia71@gmail.com>, 2022. # FellowMustard <rachmawanng33@gmail.com>, 2022. # Muhammad Zainal Abidin <eviepk12@gmail.com>, 2022. +# adfriz <aditiyaafrizal2@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-09-27 21:37+0000\n" -"Last-Translator: Muhammad Zainal Abidin <eviepk12@gmail.com>\n" +"PO-Revision-Date: 2023-01-04 10:47+0000\n" +"Last-Translator: adfriz <aditiyaafrizal2@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -55,7 +56,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -11181,7 +11182,7 @@ msgstr "Perspektif Belakang" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portal aktif]" @@ -20765,9 +20766,8 @@ msgid "Executable \"pck\" section not found." msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Windows" -msgstr "Jendela Baru" +msgstr "Windows" #: platform/windows/export/export.cpp msgid "Rcedit" diff --git a/editor/translations/ig.po b/editor/translations/ig.po index e0c1a85c99..9acd1e98b7 100644 --- a/editor/translations/ig.po +++ b/editor/translations/ig.po @@ -10569,7 +10569,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/is.po b/editor/translations/is.po index 7551598f22..fda8086f4b 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -10792,7 +10792,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index f1ff871a69..6010f082aa 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -73,7 +73,7 @@ # ale piccia <picciatialessio2@gmail.com>, 2022. # Simone Starace <simone.starace93@gmail.com>, 2022. # Daniele Giunta <danielegiunta2007@gmail.com>, 2022. -# Damiano Guida <damiano.guida22@gmail.com>, 2022. +# Damiano Guida <damiano.guida22@gmail.com>, 2022, 2023. # Silvia Scaglione <sissisoad@gmail.com>, 2022. # Cosimo Davide Viggiano <cosimod089@gmail.com>, 2022. # Francesco Cammarata <francescocammarata.fr@gmail.com>, 2022. @@ -82,8 +82,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-22 20:37+0000\n" -"Last-Translator: Francesco Cammarata <francescocammarata.fr@gmail.com>\n" +"PO-Revision-Date: 2023-01-15 13:34+0000\n" +"Last-Translator: Damiano Guida <damiano.guida22@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -91,7 +91,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -11031,7 +11031,7 @@ msgstr "Prospettica da dietro" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portali attivi]" @@ -26477,7 +26477,7 @@ msgstr "Debug del Canale UV" #: scene/resources/environment.cpp msgid "Blur" -msgstr "" +msgstr "Sfocatura" #: scene/resources/environment.cpp msgid "Edge Sharpness" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index dc17329ba7..e7016610d7 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -46,13 +46,13 @@ # Fire Dingo <snowsable113@icloud.com>, 2022. # Narazaki Shuji <shujinarazaki@protonmail.com>, 2022. # ta ko <neji.cion@gmail.com>, 2022. -# T K <kidaaam@gmail.com>, 2022. +# T K <kidaaam@gmail.com>, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-13 13:21+0000\n" +"PO-Revision-Date: 2023-01-20 10:19+0000\n" "Last-Translator: T K <kidaaam@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -61,7 +61,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -886,7 +886,6 @@ msgid "Connect Timeout Seconds" msgstr "接続タイムアウトの秒数" #: core/register_core_types.cpp -#, fuzzy msgid "Packet Peer Stream" msgstr "パケットピアストリーム" @@ -5288,12 +5287,11 @@ msgstr "ダイアログのポップアップ時にエディターを薄暗くす #: editor/editor_settings.cpp main/main.cpp msgid "Low Processor Mode Sleep (µsec)" -msgstr "低プロセッサ モード スリープ (マイクロ秒)" +msgstr "省エネモードスリープ時間 (マイクロ秒)" #: editor/editor_settings.cpp -#, fuzzy msgid "Unfocused Low Processor Mode Sleep (µsec)" -msgstr "フォーカスされていない低プロセッサ モード スリープ (マイクロ秒)" +msgstr "非フォーカス時の省エネモードスリープ時間 (マイクロ秒)" #: editor/editor_settings.cpp msgid "Separate Distraction Mode" @@ -5346,9 +5344,8 @@ msgid "Border Size" msgstr "ボーダーサイズ" #: editor/editor_settings.cpp -#, fuzzy msgid "Use Graph Node Headers" -msgstr "グラフ ノード ヘッダーを使用する" +msgstr "グラフノードヘッダーを使用する" #: editor/editor_settings.cpp msgid "Additional Spacing" @@ -5690,9 +5687,8 @@ msgid "Secondary Grid Color" msgstr "グリッドのセカンダリの色" #: editor/editor_settings.cpp -#, fuzzy msgid "Selection Box Color" -msgstr "選択範囲のみ" +msgstr "選択ボックスの色" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp @@ -5795,19 +5791,16 @@ msgid "Emulate 3 Button Mouse" msgstr "3ボタンマウスをエミュレート" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Modifier" -msgstr "更新日時が古い順で並び替え" +msgstr "オービット操作の修飾キー" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Modifier" -msgstr "パンモード" +msgstr "パン操作の修飾キー" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Modifier" -msgstr "変更済み" +msgstr "ズーム操作の修飾キー" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -5815,38 +5808,32 @@ msgid "Warped Mouse Panning" msgstr "ワープマウスパンニング" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Feel" -msgstr "ナビゲーションモード" +msgstr "ナビゲーション感度" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Sensitivity" -msgstr "軌道感度" +msgstr "オービット感度" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Inertia" -msgstr "軌道慣性" +msgstr "オービット慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Translation Inertia" -msgstr "翻訳" +msgstr "移動の慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Inertia" -msgstr "ズームイン" +msgstr "ズームの慣性" #: editor/editor_settings.cpp msgid "Freelook" msgstr "フリールック" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Navigation Scheme" -msgstr "ナビゲーションメッシュを生成" +msgstr "フリールックナビゲーション方式" #: editor/editor_settings.cpp msgid "Freelook Sensitivity" @@ -5861,14 +5848,12 @@ msgid "Freelook Base Speed" msgstr "フリールックの基本速度" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Activation Modifier" -msgstr "フリールックの減速調整" +msgstr "フリールック有効化の修飾キー" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Speed Zoom Link" -msgstr "フリールックの速度調整" +msgstr "フリールックの速度をズーム値にリンク" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Grid Color" @@ -5915,14 +5900,12 @@ msgid "Viewport Border Color" msgstr "ビューポートのボーダーの色" #: editor/editor_settings.cpp -#, fuzzy msgid "Constrain Editor View" -msgstr "エディター ビューを制限" +msgstr "エディタビューを束縛する" #: editor/editor_settings.cpp -#, fuzzy msgid "Simple Panning" -msgstr "簡易パンニング" +msgstr "簡易パンニング操作" #: editor/editor_settings.cpp #, fuzzy @@ -5930,23 +5913,20 @@ msgid "Scroll To Pan" msgstr "スクロールしてパンニング" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Speed" -msgstr "速度:" +msgstr "パン速度" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp msgid "Poly Editor" msgstr "ポリゴンエディター" #: editor/editor_settings.cpp -#, fuzzy msgid "Point Grab Radius" -msgstr "ポイントグラブ半径" +msgstr "ポイントの選択半径" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Show Previous Outline" -msgstr "前の平面" +msgstr "前のアウトラインを表示する" #: editor/editor_settings.cpp editor/scene_tree_dock.cpp msgid "Autorename Animation Tracks" @@ -5961,19 +5941,16 @@ msgid "Default Create Reset Tracks" msgstr "デフォルトでRESETトラックを作成" #: editor/editor_settings.cpp -#, fuzzy msgid "Onion Layers Past Color" msgstr "オニオンレイヤー過去の色" #: editor/editor_settings.cpp -#, fuzzy msgid "Onion Layers Future Color" msgstr "オニオンレイヤー将来の色" #: editor/editor_settings.cpp -#, fuzzy msgid "Visual Editors" -msgstr "グループエディター" +msgstr "ビジュアルエディター" #: editor/editor_settings.cpp msgid "Minimap Opacity" @@ -6086,29 +6063,24 @@ msgid "Background Color" msgstr "背景色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Background Color" -msgstr "無効な背景色です。" +msgstr "補完の背景色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Selected Color" -msgstr "選択されたものをインポート" +msgstr "補完の選択中の色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Existing Color" -msgstr "既存の色の補完" +msgstr "既に補完されている箇所の色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Scroll Color" -msgstr "スクロール色の補完" +msgstr "補完ウインドウのスクロール色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Font Color" -msgstr "フォント色の補完" +msgstr "補完のフォント色" #: editor/editor_settings.cpp msgid "Text Color" @@ -6135,9 +6107,8 @@ msgid "Text Selected Color" msgstr "選択されたテキストの色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Selection Color" -msgstr "選択範囲のみ" +msgstr "選択色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Brace Mismatch Color" @@ -7235,14 +7206,12 @@ msgid "Fix Alpha Border" msgstr "アルファボーダーを修正" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Premult Alpha" -msgstr "ポリゴンを編集" +msgstr "乗算済みアルファ" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Hdr As Srgb" -msgstr "SrgbとしてHdr" +msgstr "HDRをsRGBとして表示" #: editor/import/resource_importer_texture.cpp msgid "Invert Color" @@ -10980,7 +10949,7 @@ msgstr "後面 透視投影" msgid " [auto]" msgstr " [自動]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [ポータル有効]" @@ -14136,6 +14105,8 @@ msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." msgstr "" +"注:暗号化キーはバイナリに格納する必要があります。\n" +"ソースからエクスポートテンプレートをビルドする必要があります。" #: editor/project_export.cpp msgid "More Info..." @@ -14242,17 +14213,15 @@ msgid "Invalid project path (changed anything?)." msgstr "無効なプロジェクトパスです (なにか変更がありましたか?)。" #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"プロジェクトパスの project.godot を読み込めませんでした。 (エラー %d)。見つか" -"らないか破損している可能性があります。" +"%s のプロジェクトを読み込めませんでした。 (エラー %d)。見つからないか破損して" +"いる可能性があります。" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "次の場所のプロジェクトを開けません '%s'。" +msgstr "プロジェクトを '%s' に保存できませんでした (エラー %d)。" #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -15510,6 +15479,9 @@ msgid "" "with the '%s' prefix in a node path.\n" "Click to disable this." msgstr "" +"このノードには、ノード パスの先頭に '%s' プレフィックスを付けることで、シーン" +"内のどこからでもアクセスできます。\n" +"クリックすると無効になります。" #: editor/scene_tree_editor.cpp msgid "" @@ -15911,7 +15883,7 @@ msgstr "光源の半径を変更" #: editor/spatial_editor_gizmos.cpp msgid "Stream Player 3D" -msgstr "" +msgstr "ストリームプレイヤー3D" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" @@ -15933,7 +15905,7 @@ msgstr "カメラサイズを変更" #: editor/spatial_editor_gizmos.cpp msgid "Visibility Notifier" -msgstr "" +msgstr "可視性通知" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" @@ -15941,7 +15913,7 @@ msgstr "NotifierのAABBを変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Particles AABB" -msgstr "パーティクルの軸平行境界ボックスを変更" +msgstr "パーティクルのAABBを変更" #: editor/spatial_editor_gizmos.cpp msgid "Reflection Probe" @@ -16113,9 +16085,8 @@ msgid "RID Pool Prealloc" msgstr "RIDプールの事前割り当て" #: main/main.cpp -#, fuzzy msgid "Debugger stdout" -msgstr "デバッガー" +msgstr "デバッガーの標準出力" #: main/main.cpp msgid "Max Chars Per Second" @@ -16155,7 +16126,7 @@ msgstr "ログのパス" #: main/main.cpp msgid "Max Log Files" -msgstr "" +msgstr "最大ログファイル数" #: main/main.cpp msgid "Driver" @@ -16195,7 +16166,7 @@ msgstr "ピクセル単位の透明度" #: main/main.cpp msgid "Allowed" -msgstr "" +msgstr "許可" #: main/main.cpp msgid "Intended Usage" @@ -16206,9 +16177,8 @@ msgid "Framebuffer Allocation" msgstr "フレームバッファの割り当て" #: main/main.cpp platform/uwp/os_uwp.cpp -#, fuzzy msgid "Energy Saving" -msgstr "保存中にエラーが発生しました" +msgstr "省エネルギー" #: main/main.cpp msgid "Threads" @@ -16224,32 +16194,29 @@ msgstr "スレッドセーフなBVH" #: main/main.cpp msgid "Handheld" -msgstr "" +msgstr "ポータブル" #: main/main.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp -#, fuzzy msgid "Orientation" -msgstr "オンラインドキュメント" +msgstr "方向" #: main/main.cpp scene/gui/scroll_container.cpp scene/gui/text_edit.cpp #: scene/main/scene_tree.cpp scene/register_scene_types.cpp -#, fuzzy msgid "Common" -msgstr "コミュニティ" +msgstr "一般" #: main/main.cpp msgid "Physics FPS" msgstr "物理FPS" #: main/main.cpp -#, fuzzy msgid "Force FPS" -msgstr "強制プッシュ" +msgstr "強制FPS" #: main/main.cpp msgid "Enable Pause Aware Picking" -msgstr "" +msgstr "一時停止中の選択認識の有効化" #: main/main.cpp scene/gui/item_list.cpp scene/gui/popup_menu.cpp #: scene/gui/scroll_container.cpp scene/gui/text_edit.cpp scene/gui/tree.cpp @@ -16287,11 +16254,11 @@ msgstr "フレーム遅延 (ミリ秒)" #: main/main.cpp msgid "Low Processor Mode" -msgstr "" +msgstr "低プロセッサモード" #: main/main.cpp msgid "Delta Sync After Draw" -msgstr "" +msgstr "描画後のデルタ同期" #: main/main.cpp msgid "iOS" @@ -16299,7 +16266,7 @@ msgstr "iOS" #: main/main.cpp msgid "Hide Home Indicator" -msgstr "" +msgstr "ホームインジケーターを隠す" #: main/main.cpp msgid "Input Devices" @@ -16322,9 +16289,8 @@ msgid "Shaders" msgstr "シェーダー" #: main/main.cpp -#, fuzzy msgid "Debug Shader Fallbacks" -msgstr "シェーダーフォールバックを強制" +msgstr "シェーダーフォールバックのデバッグ" #: main/main.cpp scene/3d/baked_lightmap.cpp scene/3d/camera.cpp #: scene/3d/world_environment.cpp scene/main/scene_tree.cpp @@ -16334,16 +16300,15 @@ msgstr "環境" #: main/main.cpp msgid "Default Clear Color" -msgstr "" +msgstr "デフォルトのクリアー色" #: main/main.cpp msgid "Boot Splash" msgstr "ブートスプラッシュ" #: main/main.cpp -#, fuzzy msgid "Show Image" -msgstr "ボーンを表示する" +msgstr "画像を表示" #: main/main.cpp msgid "Image" @@ -16375,7 +16340,7 @@ msgstr "バッファリング" #: main/main.cpp msgid "Agile Event Flushing" -msgstr "" +msgstr "即座にイベントフラッシュ" #: main/main.cpp msgid "Emulate Touch From Mouse" @@ -16390,13 +16355,12 @@ msgid "Mouse Cursor" msgstr "マウスカーソル" #: main/main.cpp -#, fuzzy msgid "Custom Image" -msgstr "ノードを切り取る" +msgstr "カスタムイメージ" #: main/main.cpp msgid "Custom Image Hotspot" -msgstr "" +msgstr "カスタムイメージホットスポット" #: main/main.cpp msgid "Tooltip Position Offset" @@ -16441,12 +16405,11 @@ msgstr "縮小" #: main/main.cpp scene/main/scene_tree.cpp msgid "Auto Accept Quit" -msgstr "" +msgstr "プログラム終了を自動的に受け入れる" #: main/main.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Quit On Go Back" -msgstr "戻る" +msgstr "「戻る」時にプログラム終了する" #: main/main.cpp scene/main/viewport.cpp msgid "Snap Controls To Pixels" @@ -16462,7 +16425,7 @@ msgstr "オーバーサンプリングを使用" #: modules/bullet/register_types.cpp modules/bullet/space_bullet.cpp msgid "Active Soft World" -msgstr "" +msgstr "SoftBodyを有効にする" #: modules/csg/csg_gizmos.cpp msgid "CSG" @@ -16478,11 +16441,11 @@ msgstr "円柱の高さを変更" #: modules/csg/csg_gizmos.cpp msgid "Change Torus Inner Radius" -msgstr "トーラスの内径を変更" +msgstr "トーラスの内半径を変更" #: modules/csg/csg_gizmos.cpp msgid "Change Torus Outer Radius" -msgstr "トーラスの外径を変更" +msgstr "トーラスの外半径を変更" #: modules/csg/csg_shape.cpp msgid "Operation" @@ -16546,14 +16509,12 @@ msgid "Cone" msgstr "円錐" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Inner Radius" -msgstr "トーラスの内径を変更" +msgstr "内半径" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Outer Radius" -msgstr "トーラスの外径を変更" +msgstr "外半径" #: modules/csg/csg_shape.cpp msgid "Ring Sides" @@ -16629,17 +16590,16 @@ msgid "Channel Count" msgstr "チャンネルの数" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Always Ordered" -msgstr "常にグリッドを表示" +msgstr "常に順序付けをする" #: modules/enet/networked_multiplayer_enet.cpp msgid "Server Relay" -msgstr "" +msgstr "サーバーリレー" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Verify" -msgstr "" +msgstr "DTLS 検証" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Hostname" @@ -18014,17 +17974,16 @@ msgid "in order:" msgstr "" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Steps" msgstr "ステップ" #: modules/visual_script/visual_script_flow_control.cpp msgid "Switch" -msgstr "" +msgstr "スイッチ" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" -msgstr "" +msgstr "入力は:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Type Cast" @@ -18273,14 +18232,12 @@ msgid "Construct %s" msgstr "定数" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Local Var" -msgstr "ローカル空間を使用" +msgstr "ローカル変数を使用" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Local Var" -msgstr "ローカル空間を使用" +msgstr "ローカル変数をセット" #: modules/visual_script/visual_script_nodes.cpp msgid "Action %s" @@ -19552,9 +19509,8 @@ msgstr "コード署名" #: platform/osx/export/export.cpp platform/uwp/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Identity" -msgstr "インデント" +msgstr "識別子" #: platform/osx/export/export.cpp platform/windows/export/export.cpp #, fuzzy @@ -19752,9 +19708,8 @@ msgid "" msgstr "" #: platform/osx/export/export.cpp platform/windows/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "アイコンが見つかりませんでした。" +msgstr "識別子が見つかりませんでした。" #: platform/osx/export/export.cpp #, fuzzy @@ -19818,6 +19773,8 @@ msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"アドホック署名付きアプリケーションでは、動的ライブラリを読み込むために「ライ" +"ブラリ検証を無効にする」の権限が必要です。" #: platform/osx/export/export.cpp msgid "Code signing bundle" @@ -19848,15 +19805,12 @@ msgid "Sending archive for notarization" msgstr "公証をするためにアーカイブを送信中" #: platform/osx/export/export.cpp -#, fuzzy msgid "ZIP Creation" -msgstr "プロジェクト" +msgstr "ZIP作成" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "" -"プロジェクトファイルをgladleプロジェクトにエクスポートできませんでした\n" +msgstr "パス \"%s\" からファイルを開けませんでした。" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -19867,12 +19821,17 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"警告: ビルトインの「コード署名」がエディター設定で選択されています。コード署" +"名はアドホック署名のみに制限されています。" #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"警告: Xcodeのコマンドラインツールがインストールされていないため、ビルトインの" +"「コード署名」が使用されます。コード署名はアドホック署名のみに制限されていま" +"す。" #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." @@ -19911,17 +19870,19 @@ msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"コード署名が無効になっています。エクスポートされたプロジェクトは、Gatekeeper " +"が有効になっている Mac および Apple Silicon 搭載の Mac では動作しません。" #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" -msgstr "" +msgstr "Hardened Runtime はアドホック署名と互換性がないため、無効になります!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" -msgstr "" +msgstr "タイムスタンプはアドホック署名と互換性がないため、無効になります!" #: platform/osx/export/export.cpp msgid "" @@ -19937,34 +19898,46 @@ msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"プライバシー: マイクへのアクセスが有効になっていますが、使用方法の説明があり" +"ません。" #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"プライバシー: カメラへのアクセスが有効になっていますが、使用方法の説明があり" +"ません。" #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"プライバシー: 位置情報へのアクセスが有効になっていますが、使用方法の説明があ" +"りません。" #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"プライバシー: アドレス帳へのアクセスが有効になっていますが、使用方法の説明が" +"ありません。" #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"プライバシー: カレンダーへのアクセスが有効になっていますが、使用方法の説明が" +"ありません。" #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"プライバシー:フォトライブラリへのアクセスが有効になっていますが、使用方法の説" +"明がありません。" #: platform/osx/export/export.cpp msgid "macOS" @@ -19972,40 +19945,35 @@ msgstr "macOS" #: platform/osx/export/export.cpp msgid "Force Builtin Codesign" -msgstr "" +msgstr "ビルドインコード署名を強制" #: platform/uwp/export/export.cpp msgid "Architecture" msgstr "アーキテクチャ" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Display Name" -msgstr "表示スケール" +msgstr "表示名" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Short Name" -msgstr "スクリプト名:" +msgstr "略称" #: platform/uwp/export/export.cpp msgid "Publisher" -msgstr "" +msgstr "パブリッシャー" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Publisher Display Name" -msgstr "パッケージ発行者の表示名が無効です。" +msgstr "パブリッシャー表示名" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Product GUID" -msgstr "無効なプロダクト GUIDです。" +msgstr "プロダクト GUID" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Publisher GUID" -msgstr "ガイドをクリアする" +msgstr "パブリッシャー GUID" #: platform/uwp/export/export.cpp msgid "Signing" @@ -20037,73 +20005,71 @@ msgstr "リビジョン" #: platform/uwp/export/export.cpp msgid "Landscape" -msgstr "" +msgstr "ランドスケープ" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Portrait" -msgstr "ポート" +msgstr "ポートレート" #: platform/uwp/export/export.cpp msgid "Landscape Flipped" -msgstr "" +msgstr "ランドスケープ反転" #: platform/uwp/export/export.cpp msgid "Portrait Flipped" -msgstr "" +msgstr "ポートレート反転" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Store Logo" -msgstr "スケールモード" +msgstr "ストアロゴ" #: platform/uwp/export/export.cpp msgid "Square 44 X 44 Logo" -msgstr "" +msgstr "正方形 44 x 44 ロゴ" #: platform/uwp/export/export.cpp msgid "Square 71 X 71 Logo" -msgstr "" +msgstr "正方形 71 x 71 ロゴ" #: platform/uwp/export/export.cpp msgid "Square 150 X 150 Logo" -msgstr "" +msgstr "正方形 150 x 150 ロゴ" #: platform/uwp/export/export.cpp msgid "Square 310 X 310 Logo" -msgstr "" +msgstr "正方形 310 x 310 ロゴ" #: platform/uwp/export/export.cpp msgid "Wide 310 X 150 Logo" -msgstr "" +msgstr "ワイド 310 x 150 ロゴ" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Splash Screen" -msgstr "ドローコール:" +msgstr "スプラッシュ・スクリーン" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Tiles" -msgstr "ファイル" +msgstr "タイル" #: platform/uwp/export/export.cpp msgid "Show Name On Square 150 X 150" -msgstr "" +msgstr "正方形 150×150 表示名" #: platform/uwp/export/export.cpp msgid "Show Name On Wide 310 X 150" -msgstr "" +msgstr "ワイド 310x150 表示名" #: platform/uwp/export/export.cpp msgid "Show Name On Square 310 X 310" -msgstr "" +msgstr "正方形 310×310 表示名" #: platform/uwp/export/export.cpp msgid "" "Godot's Mono version does not support the UWP platform. Use the standard " "build (no C# support) if you wish to target UWP." msgstr "" +"Godot の Mono バージョンは UWP プラットフォームをサポートしていません。UWP を" +"対象としたい場合は、標準ビルド(C# 非サポート)を使用して下さい。" #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -20169,41 +20135,36 @@ msgid "UWP" msgstr "UWP" #: platform/uwp/export/export.cpp platform/windows/export/export.cpp -#, fuzzy msgid "Signtool" -msgstr "シグナル" +msgstr "サインツール" #: platform/uwp/export/export.cpp msgid "Debug Certificate" -msgstr "" +msgstr "デバッグ証明書" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Debug Algorithm" -msgstr "デバッガー" +msgstr "デバッグアルゴリズム" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to rename temporary file \"%s\"." -msgstr "一時ファイルを削除できません:" +msgstr "一時ファイル \"%s\" の名前の変更に失敗しました。" #: platform/windows/export/export.cpp msgid "Identity Type" -msgstr "" +msgstr "識別子タイプ" #: platform/windows/export/export.cpp msgid "Timestamp Server URL" -msgstr "" +msgstr "タイムスタンプサーバーURL" #: platform/windows/export/export.cpp -#, fuzzy msgid "Digest Algorithm" -msgstr "デバッガー" +msgstr "ダイジェストアルゴリズム" #: platform/windows/export/export.cpp -#, fuzzy msgid "Modify Resources" -msgstr "リソースをコピー" +msgstr "リソースの変更" #: platform/windows/export/export.cpp msgid "File Version" @@ -20227,22 +20188,19 @@ msgstr "ファイルの説明" #: platform/windows/export/export.cpp msgid "Trademarks" -msgstr "" +msgstr "商標" #: platform/windows/export/export.cpp -#, fuzzy msgid "Resources Modification" -msgstr "ランダムな回転:" +msgstr "リソースの変更" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find rcedit executable at \"%s\"." -msgstr "キーストアが見つからないため、エクスポートできません。" +msgstr "\"%s\" に rcedit 実行ファイルが見つかりませんでした。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find wine executable at \"%s\"." -msgstr "キーストアが見つからないため、エクスポートできません。" +msgstr "\"%s\" に wine 実行ファイルが見つかりませんでした。" #: platform/windows/export/export.cpp msgid "" @@ -20250,31 +20208,29 @@ msgid "" "Settings (Export > Windows > Rcedit), or disable \"Application > Modify " "Resources\" in the export preset." msgstr "" +"rcedit 実行ファイルを開始できませんでした。エディター設定 (Export > Windows " +"> Rcedit)から rcedit のパスを設定するか、エクスポートプリセットで \"アプリ" +"ケーション > リソースの変更\"を無効にして下さい。" #: platform/windows/export/export.cpp -#, fuzzy msgid "rcedit failed to modify executable: %s." -msgstr "無効な実行可能ファイルです。" +msgstr "rcedit は実行可能ファイルの変更に失敗しました: %s。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find signtool executable at \"%s\"." -msgstr "キーストアが見つからないため、エクスポートできません。" +msgstr "\"%s\" に サインツール実行ファイルが見つかりませんでした。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find osslsigncode executable at \"%s\"." -msgstr "キーストアが見つからないため、エクスポートできません。" +msgstr "\"%s\" に osslsigncode 実行ファイルが見つかりませんでした。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "無効な識別子:" +msgstr "無効な識別子タイプ。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid timestamp server." -msgstr "無効な名前です。" +msgstr "タイムスタンプサーバーが無効です。" #: platform/windows/export/export.cpp msgid "" @@ -20282,22 +20238,25 @@ msgid "" "Settings (Export > Windows > Signtool), or disable \"Codesign\" in the " "export preset." msgstr "" +"サインツール実行ファイルを開始できませんでした。エディター設定 (Export > " +"Windows > サインツール)からサインツールのパスを設定するか、エクスポートプリ" +"セットで \"コード署名\"を無効にして下さい。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Signtool failed to sign executable: %s." -msgstr "無効な実行可能ファイルです。" +msgstr "サインツールは実行可能ファイルの署名に失敗しました: %s。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "一時ファイルを削除できません:" +msgstr "一時ファイル \"%s\" の削除に失敗しました。" #: platform/windows/export/export.cpp msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"アイコンやアプリ情報データを変更するには、エディター設定 (Export > Windows > " +"Rcedit) で rcedit の設定を行う必要があります。" #: platform/windows/export/export.cpp msgid "Invalid icon path:" @@ -20313,20 +20272,19 @@ msgstr "無効な製品バージョン:" #: platform/windows/export/export.cpp msgid "Windows executables cannot be >= 4 GiB." -msgstr "" +msgstr "Windows の実行ファイルは、4GiBを超えることはできません。" #: platform/windows/export/export.cpp platform/x11/export/export.cpp -#, fuzzy msgid "Failed to open executable file \"%s\"." -msgstr "無効な実行可能ファイルです。" +msgstr "実行ファイル \"%s\" を開くのに失敗しました。" #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable file header corrupted." -msgstr "" +msgstr "実行ファイルのヘッダーが破損しています。" #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable \"pck\" section not found." -msgstr "" +msgstr "実行可能な \"pck \"セクションが見つかりません。" #: platform/windows/export/export.cpp msgid "Windows" @@ -20334,7 +20292,7 @@ msgstr "Windows" #: platform/windows/export/export.cpp msgid "Rcedit" -msgstr "" +msgstr "Rcedit" #: platform/windows/export/export.cpp msgid "Osslsigncode" @@ -20363,21 +20321,18 @@ msgstr "" #: scene/2d/animated_sprite.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/particles_2d.cpp scene/3d/cpu_particles.cpp scene/3d/particles.cpp -#, fuzzy msgid "Speed Scale" -msgstr "スケール" +msgstr "スピードスケール" #: scene/2d/animated_sprite.cpp scene/2d/audio_stream_player_2d.cpp #: scene/3d/audio_stream_player_3d.cpp scene/3d/sprite_3d.cpp #: scene/audio/audio_stream_player.cpp -#, fuzzy msgid "Playing" -msgstr "実行" +msgstr "実行中" #: scene/2d/animated_sprite.cpp scene/2d/sprite.cpp scene/3d/sprite_3d.cpp -#, fuzzy msgid "Centered" -msgstr "中央" +msgstr "中央揃え" #: scene/2d/animated_sprite.cpp scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/gui/texture_button.cpp scene/gui/texture_rect.cpp @@ -20390,52 +20345,45 @@ msgid "Flip V" msgstr "垂直反転" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Monitoring" -msgstr "モニター" +msgstr "モニタリング" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Monitorable" -msgstr "モニター" +msgstr "モニター可能" #: scene/2d/area_2d.cpp scene/3d/area.cpp msgid "Physics Overrides" msgstr "物理のオーバーライド" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Space Override" -msgstr "上書き" +msgstr "領域のオーバーライド" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Gravity Point" -msgstr "ポイントを生成" +msgstr "重力点" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Gravity Distance Scale" -msgstr "インスタンス" +msgstr "重力距離スケール" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Gravity Vec" -msgstr "デフォルトのプレビュー" +msgstr "重力ベクトル" #: scene/2d/area_2d.cpp scene/2d/cpu_particles_2d.cpp scene/3d/area.cpp #: scene/3d/cpu_particles.cpp scene/resources/particles_material.cpp msgid "Gravity" -msgstr "" +msgstr "重力" #: scene/2d/area_2d.cpp scene/3d/area.cpp -#, fuzzy msgid "Linear Damp" -msgstr "リニア" +msgstr "線形減衰" #: scene/2d/area_2d.cpp scene/3d/area.cpp msgid "Angular Damp" -msgstr "" +msgstr "角度減衰" #: scene/2d/area_2d.cpp scene/3d/area.cpp msgid "Audio Bus" @@ -20453,9 +20401,8 @@ msgstr "ボリューム dB" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp #: servers/audio/effects/audio_effect_pitch_shift.cpp -#, fuzzy msgid "Pitch Scale" -msgstr "スケール" +msgstr "ピッチスケール" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp @@ -20465,7 +20412,7 @@ msgstr "自動再生" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp msgid "Stream Paused" -msgstr "" +msgstr "ストリームの一時停止" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/3d/light.cpp scene/3d/reflection_probe.cpp @@ -20475,9 +20422,8 @@ msgid "Max Distance" msgstr "最大距離" #: scene/2d/audio_stream_player_2d.cpp scene/3d/light.cpp -#, fuzzy msgid "Attenuation" -msgstr "アニメーション" +msgstr "減衰量" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp @@ -20486,22 +20432,19 @@ msgstr "バス" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp msgid "Area Mask" -msgstr "" +msgstr "エリアマスク" #: scene/2d/back_buffer_copy.cpp -#, fuzzy msgid "Copy Mode" -msgstr "ノードをコピー" +msgstr "コピーモード" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Anchor Mode" -msgstr "アイコンモード" +msgstr "アンカーモード" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Rotating" -msgstr "回転のステップ:" +msgstr "回転" #: scene/2d/camera_2d.cpp scene/2d/listener_2d.cpp scene/3d/camera.cpp #: scene/3d/listener.cpp scene/animation/animation_blend_tree.cpp @@ -20513,9 +20456,8 @@ msgid "Zoom" msgstr "ズーム" #: scene/2d/camera_2d.cpp scene/main/canvas_layer.cpp -#, fuzzy msgid "Custom Viewport" -msgstr "1 ビューポート" +msgstr "カスタムビューポート" #: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp @@ -20544,29 +20486,24 @@ msgid "Bottom" msgstr "下" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Smoothed" -msgstr "スムーズステップ" +msgstr "スムージング" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Margin" -msgstr "マージンを設定する" +msgstr "マージンを描画する" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin H Enabled" -msgstr "マージンを設定する" +msgstr "水平方向のドラッグマージンにのみ有効" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin V Enabled" -msgstr "マージンを設定する" +msgstr "垂直方向のドラッグマージンにのみ有効" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Smoothing" -msgstr "スムーズステップ" +msgstr "スムージング" #: scene/2d/camera_2d.cpp msgid "H" @@ -20577,35 +20514,29 @@ msgid "V" msgstr "垂直" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Drag Margin" -msgstr "マージンを設定する" +msgstr "ドラッグマージン" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Screen" -msgstr "ドローコール:" +msgstr "スクリーンを描画する" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Limits" -msgstr "ドローコール:" +msgstr "限界を描画する" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Drag Margin" -msgstr "マージンを設定する" +msgstr "ドラッグマージンを描画する" #: scene/2d/canvas_item.cpp scene/resources/environment.cpp #: scene/resources/material.cpp -#, fuzzy msgid "Blend Mode" -msgstr "ブレンド2 ノード" +msgstr "ブレンドモード" #: scene/2d/canvas_item.cpp -#, fuzzy msgid "Light Mode" -msgstr "右伸長" +msgstr "ライトモード" #: scene/2d/canvas_item.cpp #, fuzzy @@ -23582,14 +23513,12 @@ msgid "AABB" msgstr "" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Sorting" msgstr "ソート" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Use AABB Center" -msgstr "アンビエントを使用" +msgstr "AABBセンターを使用" #: scene/3d/visual_instance.cpp scene/resources/navigation_mesh.cpp #, fuzzy diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 629afaa429..ce7502e5ac 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -11066,7 +11066,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/km.po b/editor/translations/km.po index ade147ec7e..85f5081b6f 100644 --- a/editor/translations/km.po +++ b/editor/translations/km.po @@ -10598,7 +10598,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index f43830b1e9..9563bc6244 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -29,7 +29,7 @@ # 신동규 <rlsl0422@gmail.com>, 2021. # Kiroo <elusive1102@naver.com>, 2021. # JumpJetAvocado <dwkng@jbnu.ac.kr>, 2021. -# Lee Minhak <minarihak@gmail.com>, 2022. +# Lee Minhak <minarihak@gmail.com>, 2022, 2023. # 한수현 <shh1473@ajou.ac.kr>, 2022. # Taehun Yun <yooontehoon@naver.com>, 2022. # vrSono <global.sonogong@gmail.com>, 2022. @@ -41,13 +41,14 @@ # nulltable <un5450@naver.com>, 2022. # Godoto <aicompose@gmail.com>, 2022. # gaenyang <gaenyang@outlook.com>, 2022. +# 오지훈 <jule1130@naver.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-24 12:41+0000\n" -"Last-Translator: Godoto <aicompose@gmail.com>\n" +"PO-Revision-Date: 2023-01-20 10:19+0000\n" +"Last-Translator: 오지훈 <jule1130@naver.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -55,7 +56,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.2-dev\n" +"X-Generator: Weblate 4.15.1\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -582,7 +583,7 @@ msgstr "이름" #: modules/visual_script/visual_script_nodes.cpp platform/uwp/export/export.cpp #: platform/windows/export/export.cpp msgid "Description" -msgstr "서술" +msgstr "설명" #: core/project_settings.cpp editor/editor_node.cpp editor/editor_settings.cpp #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp @@ -10886,7 +10887,7 @@ msgstr "후면 원근" msgid " [auto]" msgstr " [자동]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [포털 활성]" @@ -17852,9 +17853,8 @@ msgid "Use Default Args" msgstr "디폴트로 재설정" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Validate" -msgstr "올바른 문자:" +msgstr "올바른 문자" #: modules/visual_script/visual_script_func_nodes.cpp #, fuzzy @@ -17984,24 +17984,20 @@ msgid "Preload" msgstr "새로고침" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Index" -msgstr "Z 인덱스" +msgstr "인덱스 가져오기" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Index" -msgstr "Z 인덱스" +msgstr "인덱스 설정" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Global Constant" -msgstr "상수" +msgstr "전역 상수" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Class Constant" -msgstr "상수" +msgstr "클래스 상수" #: modules/visual_script/visual_script_nodes.cpp #, fuzzy @@ -18009,24 +18005,21 @@ msgid "Basic Constant" msgstr "상수" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Math Constant" -msgstr "상수" +msgstr "수학 상수" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Engine Singleton" -msgstr "활성화된 GDNative 싱글톤" +msgstr "엔진 싱글톤 가져오기" #: modules/visual_script/visual_script_nodes.cpp #, fuzzy msgid "Get Scene Node" -msgstr "시간 탐색 노드" +msgstr "씬 Node 가져오기" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Scene Tree" -msgstr "씬 트리 편집" +msgstr "씬 트리 가져오기" #: modules/visual_script/visual_script_nodes.cpp #, fuzzy @@ -18034,9 +18027,8 @@ msgid "Get Self" msgstr "자체" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "CustomNode" -msgstr "노드 잘라내기" +msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -18096,18 +18088,16 @@ msgid "Wait" msgstr "대기" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Frame" -msgstr "프레임 이동" +msgstr "다음 프레임" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Physics Frame" -msgstr "물리 프레임 %" +msgstr "다음 물리 프레임" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "%s sec(s)" -msgstr "" +msgstr "%s초" #: modules/visual_script/visual_script_yield_nodes.cpp scene/main/timer.cpp #, fuzzy @@ -18136,7 +18126,7 @@ msgstr "우선 순위 모드" #: modules/webrtc/webrtc_data_channel.h msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: modules/webrtc/webrtc_data_channel.h msgid "Max Channel In Buffer (KB)" @@ -18148,12 +18138,12 @@ msgstr "" #: modules/websocket/websocket_client.cpp msgid "Trusted SSL Certificate" -msgstr "" +msgstr "신뢰할 수 있는 SSL 인증서" #: modules/websocket/websocket_macros.h #, fuzzy msgid "WebSocket Client" -msgstr "네트워크 프로파일러" +msgstr "WebSocket 클라이언트" #: modules/websocket/websocket_macros.h msgid "Max In Buffer (KB)" @@ -18181,13 +18171,12 @@ msgid "Bind IP" msgstr "" #: modules/websocket/websocket_server.cpp -#, fuzzy msgid "Private Key" -msgstr "물리 키" +msgstr "개인 키" #: modules/websocket/websocket_server.cpp platform/javascript/export/export.cpp msgid "SSL Certificate" -msgstr "" +msgstr "SSL 인증서" #: modules/websocket/websocket_server.cpp #, fuzzy @@ -18212,8 +18201,9 @@ msgid "Optional Features" msgstr "선택적 기능" #: modules/webxr/webxr_interface.cpp +#, fuzzy msgid "Requested Reference Space Types" -msgstr "" +msgstr "요청된 참조 공간 유형" #: modules/webxr/webxr_interface.cpp msgid "Reference Space Type" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 5f0c068dbb..33cc2f8ae9 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -11054,7 +11054,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 51836c627b..18c5c4242e 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -10997,7 +10997,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 6d725ac82b..9f06f03d81 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -10624,7 +10624,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 171cc17fdb..8a66f8b8b4 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -10647,7 +10647,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index 24300da41a..ac50228677 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -10634,7 +10634,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 3b34efe6f2..7c87a4709d 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -11073,7 +11073,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 9d831aee5d..f7aac38f70 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -4,7 +4,7 @@ # This file is distributed under the same license as the Godot source code. # Allan Nordhøy <epost@anotheragency.no>, 2017-2018, 2019, 2020, 2021. # Anonymous <GentleSaucepan@protonmail.com>, 2017, 2021. -# Elias <eliasnykrem@gmail.com>, 2018. +# Elias <eliasnykrem@gmail.com>, 2018, 2023. # flesk <eivindkn@gmail.com>, 2017, 2019. # Frank T. Rambol <frank@d-fect.com>, 2018, 2021. # Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016, 2019. @@ -28,8 +28,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-08 10:28+0000\n" -"Last-Translator: slasken06 <ask.skivdal@gmail.com>\n" +"PO-Revision-Date: 2023-01-17 13:54+0000\n" +"Last-Translator: Elias <eliasnykrem@gmail.com>\n" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-" "engine/godot/nb_NO/>\n" "Language: nb\n" @@ -37,7 +37,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -2281,7 +2281,7 @@ msgstr "Åpne" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Eiere av: %s (Totalt: %d)" #: editor/dependency_editor.cpp #, fuzzy @@ -2868,22 +2868,19 @@ msgstr "Velg" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Prosjekteksport til platform:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with warnings." -msgstr "Kopier Node-bane" +msgstr "Fullført med varsler." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Vellykket Installering av Pakke!" +msgstr "Fullført vellykket." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Feilet:" +msgstr "Feilet." #: editor/editor_export.cpp msgid "Storing File:" @@ -2898,29 +2895,24 @@ msgid "Packing" msgstr "Pakking" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Lagre som" +msgstr "Lagre PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "Kunne ikke opprette mappe." +msgstr "Kunne ikke opprette filen \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Kunne ikke opprette mappe." +msgstr "Kunne ikke eksportere prosjektfiler." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Kan ikke åpne fil for skriving:" +msgstr "Kan ikke åpne filen for å lese fra banen \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Lagre som" +msgstr "Lagre ZIP" #: editor/editor_export.cpp msgid "" @@ -2984,9 +2976,8 @@ msgstr "" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom Template" -msgstr "Medlemmer" +msgstr "Egendefinert mal" #: editor/editor_export.cpp editor/project_export.cpp #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp @@ -2996,22 +2987,20 @@ msgid "Release" msgstr "Slipp" #: editor/editor_export.cpp -#, fuzzy msgid "Binary Format" -msgstr "Anim Forandre Omforming" +msgstr "Binærformat" #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 Bits" #: editor/editor_export.cpp msgid "Embed PCK" -msgstr "" +msgstr "Innebygd PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Texture Format" -msgstr "Linjal Modus" +msgstr "Teksturformat" #: editor/editor_export.cpp msgid "BPTC" @@ -3031,9 +3020,8 @@ msgid "ETC2" msgstr "" #: editor/editor_export.cpp -#, fuzzy msgid "No BPTC Fallbacks" -msgstr "Tilbakefall" +msgstr "Ingen BPTC tilbakefall" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -3048,24 +3036,20 @@ msgid "Custom release template not found." msgstr "Fant ikke tilpasset utgivelsesmal." #: editor/editor_export.cpp -#, fuzzy msgid "Prepare Template" -msgstr "Håndter Eksportmaler" +msgstr "Forbered mal" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "Fil eksisterer ikke." +msgstr "Den angitte eksportbanen eksisterer ikke." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Malfil ble ikke funnet:" +msgstr "Malfil ble ikke funnet \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Håndter Eksportmaler" +msgstr "Kunne ikke kopiere eksportmalen." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp @@ -3082,9 +3066,8 @@ msgid "Convert Text Resources To Binary On Export" msgstr "" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "3D Editor" -msgstr "Redigeringsverktøy" +msgstr "3D Redigeringsverktøy" #: editor/editor_feature_profile.cpp msgid "Script Editor" @@ -3097,7 +3080,7 @@ msgstr "Ressursbibliotek" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" -msgstr "" +msgstr "Scenetre redigering" #: editor/editor_feature_profile.cpp #, fuzzy @@ -3115,7 +3098,7 @@ msgstr "Importer" #: editor/editor_feature_profile.cpp msgid "Allows to view and edit 3D scenes." -msgstr "" +msgstr "Lar deg se og redigere 3D scener." #: editor/editor_feature_profile.cpp msgid "Allows to edit scripts using the integrated script editor." @@ -11529,7 +11512,7 @@ msgstr "Perspektiv" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" @@ -14991,9 +14974,8 @@ msgid "Project Path:" msgstr "Prosjektsti:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Installation Path:" -msgstr "Prosjektsti:" +msgstr "Prosjekt installasjonsti:" #: editor/project_manager.cpp msgid "Renderer:" @@ -15005,7 +14987,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Not supported by your GPU drivers." -msgstr "" +msgstr "Støttes ikke av dine GPU-drivere." #: editor/project_manager.cpp msgid "" @@ -15040,9 +15022,8 @@ msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "Rendrer kan endres senere, men scener må kanskje justeres." #: editor/project_manager.cpp -#, fuzzy msgid "Missing Project" -msgstr "Importer Eksisterende Prosjekt" +msgstr "Manglede Prosjekt" #: editor/project_manager.cpp msgid "Error: Project is missing on the filesystem." @@ -15053,9 +15034,8 @@ msgid "Local" msgstr "Lokal" #: editor/project_manager.cpp -#, fuzzy msgid "Local Projects" -msgstr "Prosjekter" +msgstr "Lokale prosjekter" #: editor/project_manager.cpp #, fuzzy @@ -15063,9 +15043,8 @@ msgid "Asset Library Projects" msgstr "Ressursbibliotek" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project at '%s'." -msgstr "Kan ikke åpne prosjekt" +msgstr "Kan ikke åpne prosjektet i '%s'." #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -15172,23 +15151,20 @@ msgid "Loading, please wait..." msgstr "Henter fillager, vennligst vent..." #: editor/project_manager.cpp -#, fuzzy msgid "Edit Project" -msgstr "Eksporter Prosjekt" +msgstr "Rediger Prosjekt" #: editor/project_manager.cpp -#, fuzzy msgid "Run Project" -msgstr "Endre Navn på Prosjekt" +msgstr "Kjør prosjektet" #: editor/project_manager.cpp msgid "Scan" -msgstr "Skann" +msgstr "Søk" #: editor/project_manager.cpp -#, fuzzy msgid "Scan Projects" -msgstr "Prosjekter" +msgstr "Søk etter prosjekter" #: editor/project_manager.cpp msgid "Select a Folder to Scan" @@ -15199,19 +15175,16 @@ msgid "New Project" msgstr "Nytt prosjekt" #: editor/project_manager.cpp -#, fuzzy msgid "Import Project" -msgstr "Eksporter Prosjekt" +msgstr "Importert prosjekt" #: editor/project_manager.cpp -#, fuzzy msgid "Remove Project" -msgstr "Endre Navn på Prosjekt" +msgstr "Fjern prosjekt" #: editor/project_manager.cpp -#, fuzzy msgid "Remove Missing" -msgstr "Fjern punkt" +msgstr "Fjern manglende" #: editor/project_manager.cpp msgid "About" @@ -15227,7 +15200,7 @@ msgstr "Fjern alle" #: editor/project_manager.cpp msgid "Also delete project contents (no undo!)" -msgstr "" +msgstr "Slett også prosjektets innhold (kan ikke reverseres!)" #: editor/project_manager.cpp msgid "Can't run project" @@ -15240,9 +15213,8 @@ msgid "" msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "Filter projects" -msgstr "Lim inn Noder" +msgstr "Filtre prosjekter" #: editor/project_manager.cpp msgid "" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 5e80c53732..0e47306f0d 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -11327,7 +11327,7 @@ msgstr "Perspectief" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 47b7bfe98a..31048d3390 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -2,7 +2,7 @@ # Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. -# 8-bit Pixel <dawdejw@gmail.com>, 2016. +# 8-bit Pixel <dawdejw@gmail.com>, 2016, 2023. # Adam Wolanski <adam.wolanski94@gmail.com>, 2017. # Adrian Węcławski <weclawskiadrian@gmail.com>, 2016. # aelspire <aelspire@gmail.com>, 2017, 2019, 2020, 2021. @@ -17,14 +17,14 @@ # Maksymilian Świąć <maksymilian.swiac@gmail.com>, 2017-2018. # Mietek Szcześniak <ravaging@go2.pl>, 2016. # NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020, 2021, 2022. -# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019, 2020, 2021. +# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019, 2020, 2021, 2023. # Rafał Ziemniak <synaptykq@gmail.com>, 2017. -# RM <synaptykq@gmail.com>, 2018, 2020, 2022. +# RM <synaptykq@gmail.com>, 2018, 2020, 2022, 2023. # Sebastian Krzyszkowiak <dos@dosowisko.net>, 2017. -# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020, 2022. +# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020, 2022, 2023. # siatek papieros <sbigneu@gmail.com>, 2016. # Zatherz <zatherz@linux.pl>, 2017, 2020, 2021. -# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022. +# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023. # Wojcieh Er Zet <wojcieh.rzepecki@gmail.com>, 2018. # Dariusz Siek <dariuszynski@gmail.com>, 2018, 2019, 2020, 2021. # Szymon Nowakowski <smnbdg13@gmail.com>, 2019. @@ -45,7 +45,7 @@ # Piotr Grodzki <ziemniakglados@gmail.com>, 2020. # Dzejkop <jakubtrad@gmail.com>, 2020, 2021. # Mateusz Grzonka <alpinus4@gmail.com>, 2020. -# gnu-ewm <gnu.ewm@protonmail.com>, 2021. +# gnu-ewm <gnu.ewm@protonmail.com>, 2021, 2023. # vrid <patryksoon@live.com>, 2021. # Suchy Talerz <kacperkubis06@gmail.com>, 2021. # Bartosz Stasiak <bs97086@amu.edu.pl>, 2021. @@ -60,22 +60,23 @@ # Mateusz Zdrzałek <matjozohd@gmail.com>, 2022. # Konrad <kobe-interactive@protonmail.com>, 2022. # Pixel Zone - Godot Engine Tutorials <karoltomaszewskimusic@gmail.com>, 2022. -# DK0492 <doriankaczmarek28@gmail.com>, 2022. +# DK0492 <doriankaczmarek28@gmail.com>, 2022, 2023. # Dawid Skubij <davidsd@tlen.pl>, 2022. -# kingofsponges <q.patex.q@gmail.com>, 2022. +# kingofsponges <q.patex.q@gmail.com>, 2022, 2023. # Patryk Morawski <gormit7@gmail.com>, 2022. # Adrians <adrianspl@o2.pl>, 2022. # Wodorek <Krol.w94@gmail.com>, 2022. # Filip Gliszczyński <filipgliszczynski@gmail.com>, 2022. # Piotr Ślusarz <piotrekslusarz@outlook.com>, 2022. # Jan Kurzak <Iqaz0oki@outlook.com>, 2022. +# Wojciech Pluta <wojciech.pluta@oracle.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-12 09:46+0000\n" -"Last-Translator: Tomek <kobewi4e@gmail.com>\n" +"PO-Revision-Date: 2023-01-20 10:19+0000\n" +"Last-Translator: RM <synaptykq@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -84,7 +85,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -104,7 +105,7 @@ msgstr "Kod zakończenia" #: core/bind/core_bind.cpp msgid "V-Sync Enabled" -msgstr "V-Sync Włączone" +msgstr "V-Sync włączone" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" @@ -112,7 +113,7 @@ msgstr "V-Sync przez kompozytor" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" -msgstr "Wygładzanie Delta" +msgstr "Wygładzanie delta" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode" @@ -5523,18 +5524,16 @@ msgid "Show Line Numbers" msgstr "Pokaż numery linii" #: editor/editor_settings.cpp -#, fuzzy msgid "Line Numbers Zero Padded" -msgstr "Numer linii:" +msgstr "Numery linii wyrównane zerami" #: editor/editor_settings.cpp msgid "Show Bookmark Gutter" msgstr "Pokaż ciek zakładek" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Breakpoint Gutter" -msgstr "Pomiń punkty wstrzymania" +msgstr "Pokaż rynnę punktów wstrzymania" #: editor/editor_settings.cpp msgid "Show Info Gutter" @@ -5561,9 +5560,8 @@ msgid "Line Length Guideline Hard Column" msgstr "Wytyczne dotyczące długości linii twardej kolumny" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Script List" -msgstr "Edytor skryptów" +msgstr "Lista skryptów" #: editor/editor_settings.cpp msgid "Show Members Overview" @@ -5594,9 +5592,8 @@ msgid "Auto Reload Scripts On External Change" msgstr "Automatycznie przeładuj skrypty przy zmianie zewnętrznej" #: editor/editor_settings.cpp -#, fuzzy msgid "Create Signal Callbacks" -msgstr "Opóźnienia wymuszania shaderów" +msgstr "Twórz wywołania zwrotne sygnałów" #: editor/editor_settings.cpp msgid "Sort Members Outline Alphabetically" @@ -5623,9 +5620,8 @@ msgid "Caret Blink Speed" msgstr "Prędkość migania karety" #: editor/editor_settings.cpp -#, fuzzy msgid "Right Click Moves Caret" -msgstr "Prawy klik, aby dodać punkt" +msgstr "Prawy klik przesuwa kursor" #: editor/editor_settings.cpp modules/gdscript/gdscript.cpp #: modules/gdscript/gdscript_editor.cpp @@ -5647,56 +5643,51 @@ msgstr "Opóźnienie zakończenia kodu" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" -msgstr "" +msgstr "Ustaw dymek podpowiedzi pod aktualnym wierszem" #: editor/editor_settings.cpp msgid "Callhint Tooltip Offset" -msgstr "" +msgstr "Przesunięcie dymka podpowiedzi" #: editor/editor_settings.cpp -#, fuzzy msgid "Complete File Paths" -msgstr "Skopiuj ścieżkę węzła" +msgstr "Uzupełniaj ścieżki plików" #: editor/editor_settings.cpp modules/gdscript/gdscript_editor.cpp -#, fuzzy msgid "Add Type Hints" -msgstr "Dodaj typ" +msgstr "Dodaj wskazówki typów" #: editor/editor_settings.cpp msgid "Use Single Quotes" msgstr "Użyj pojedynczych cudzysłowów" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Help Index" -msgstr "Pokaż linie pomocnicze" +msgstr "Pokaż indeks pomocy" #: editor/editor_settings.cpp msgid "Help Font Size" -msgstr "" +msgstr "Rozmiar czcionki pomocy" #: editor/editor_settings.cpp msgid "Help Source Font Size" -msgstr "" +msgstr "Rozmiar czcionki kodu w pomocy" #: editor/editor_settings.cpp msgid "Help Title Font Size" -msgstr "" +msgstr "Rozmiar czcionki tytułu w pomocy" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" msgstr "Siatka" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Pick Distance" -msgstr "Wybierz odległość:" +msgstr "Dystans łapania" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Preview Size" -msgstr "Podgląd" +msgstr "Rozmiar podglądu" #: editor/editor_settings.cpp msgid "Primary Grid Color" @@ -5707,32 +5698,27 @@ msgid "Secondary Grid Color" msgstr "Pomocniczy kolor siatki" #: editor/editor_settings.cpp -#, fuzzy msgid "Selection Box Color" -msgstr "Tylko zaznaczenie" +msgstr "Kolor prostopadłościanu zaznaczenia" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "3D Gizmos" -msgstr "Uchwyty" +msgstr "Uchwyty 3D" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Gizmo Colors" -msgstr "Kolory emisji" +msgstr "Kolory uchwytów" #: editor/editor_settings.cpp -#, fuzzy msgid "Instanced" -msgstr "Instancja" +msgstr "Instancjonowany" #: editor/editor_settings.cpp modules/gltf/gltf_node.cpp #: scene/3d/physics_body.cpp -#, fuzzy msgid "Joint" -msgstr "Punkt" +msgstr "Złącze" #: editor/editor_settings.cpp scene/2d/collision_shape_2d.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/touch_screen_button.cpp @@ -5744,276 +5730,236 @@ msgid "Shape" msgstr "Kształt" #: editor/editor_settings.cpp -#, fuzzy msgid "Primary Grid Steps" -msgstr "Krok siatki:" +msgstr "Główne kroki siatki" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid Size" -msgstr "Krok siatki:" +msgstr "Rozmiar siatki" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "Maksymalny poziom podziału siatki" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "Minimalny poziom podziału siatki" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "" +msgstr "Tendencja poziomu podziału siatki" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XZ Plane" -msgstr "Malowanie GridMap" +msgstr "Płaszczyzna siatki XZ" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XY Plane" -msgstr "Malowanie GridMap" +msgstr "Płaszczyzna siatki XY" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid YZ Plane" -msgstr "Malowanie GridMap" +msgstr "Płaszczyzna siatki YZ" #: editor/editor_settings.cpp -#, fuzzy msgid "Default FOV" -msgstr "Domyślny" +msgstr "Domyślne pole widzenia (FOV)" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Z Near" -msgstr "Domyślny motyw" +msgstr "Domyślne bliskie Z" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Z Far" -msgstr "Domyślny" +msgstr "Domyślne dalekie Z" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "Liczba wątków CPU dla wypalania map światła" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Scheme" -msgstr "Tryb nawigacji" +msgstr "Schemat nawigacji" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert Y Axis" -msgstr "Edytuj oś Y" +msgstr "Odwróć oś Y" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert X Axis" -msgstr "Edytuj oś X" +msgstr "Odwróć oś X" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Style" -msgstr "Oddal" +msgstr "Styl przybliżenia" #: editor/editor_settings.cpp -#, fuzzy msgid "Emulate Numpad" -msgstr "Włącz emulację klawiatury numerycznej" +msgstr "Emuluj klawiaturę numeryczną" #: editor/editor_settings.cpp -#, fuzzy msgid "Emulate 3 Button Mouse" -msgstr "Włącz emulację środkowego przycisku myszy" +msgstr "Emuluj trzyprzyciskową mysz" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Modifier" -msgstr "Pierwsze zmodyfikowane" +msgstr "Modyfikator orbity" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Modifier" -msgstr "Tryb przesuwania" +msgstr "Modyfikator przesuwania" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Modifier" -msgstr "Zmodyfikowany" +msgstr "Modyfikator przybliżenia" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "" +msgstr "Zawinięte przesuwanie myszą" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Feel" -msgstr "Tryb nawigacji" +msgstr "Preferencje nawigacji" #: editor/editor_settings.cpp msgid "Orbit Sensitivity" -msgstr "" +msgstr "Czułość orbity" #: editor/editor_settings.cpp msgid "Orbit Inertia" -msgstr "" +msgstr "Bezwładność orbity" #: editor/editor_settings.cpp -#, fuzzy msgid "Translation Inertia" -msgstr "Tłumaczenia" +msgstr "Bezwładność przesunięcia" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Inertia" -msgstr "Przybliż" +msgstr "Bezwładność przybliżenia" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook" -msgstr "\"Wolny widok\" w górę" +msgstr "Wolny widok" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Navigation Scheme" -msgstr "Utwórz siatkę nawigacyjną (Navigation Mesh)" +msgstr "Schemat nawigacji wolnego widoku" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Sensitivity" -msgstr "\"Wolny widok\" w lewo" +msgstr "Czułość wolnego widoku" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Inertia" -msgstr "\"Wolny widok\" w lewo" +msgstr "Bezwładność wolnego widoku" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Base Speed" -msgstr "Modyfikator prędkości swobodnego widoku" +msgstr "Bazowa prędkość wolnego widoku" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Activation Modifier" -msgstr "Wolny modyfikator swobodnego widoku" +msgstr "Modyfikator aktywacji wolnego widoku" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Speed Zoom Link" -msgstr "Modyfikator prędkości swobodnego widoku" +msgstr "Szybkość swobodnego widoku zależna od przybliżenia" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Grid Color" -msgstr "Wybierz Kolor" +msgstr "Kolor siatki" #: editor/editor_settings.cpp -#, fuzzy msgid "Guides Color" -msgstr "Wybierz Kolor" +msgstr "Kolor prowadnic" #: editor/editor_settings.cpp -#, fuzzy msgid "Smart Snapping Line Color" -msgstr "Inteligentne przyciąganie" +msgstr "Kolor linii inteligentnego przyciągania" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "Szerokość kości" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 1" -msgstr "Zmień nazwę elementu koloru" +msgstr "Kolor kości 1" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 2" -msgstr "Zmień nazwę elementu koloru" +msgstr "Kolor kości 2" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Selected Color" -msgstr "Konfiguruj wybrany profil:" +msgstr "Kolor zaznaczenia kości" #: editor/editor_settings.cpp msgid "Bone IK Color" -msgstr "" +msgstr "Kolor kości IK" #: editor/editor_settings.cpp msgid "Bone Outline Color" -msgstr "" +msgstr "Kolor obrysu kości" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Outline Size" -msgstr "Rozmiar zarysu:" +msgstr "Rozmiar obrysu kości" #: editor/editor_settings.cpp msgid "Viewport Border Color" -msgstr "" +msgstr "Kolor obwódki viewportu" #: editor/editor_settings.cpp msgid "Constrain Editor View" -msgstr "" +msgstr "Ogranicz widok edytora" #: editor/editor_settings.cpp msgid "Simple Panning" -msgstr "" +msgstr "Proste przesuwanie" #: editor/editor_settings.cpp msgid "Scroll To Pan" -msgstr "" +msgstr "Przewijanie przesuwa" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Speed" -msgstr "Szybkość:" +msgstr "Szybkość przesuwania" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Poly Editor" -msgstr "Wielokąt 2D UV Edytor" +msgstr "Edytor wielokątów" #: editor/editor_settings.cpp msgid "Point Grab Radius" -msgstr "" +msgstr "Promień chwytania punktów" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Show Previous Outline" -msgstr "Poprzednia płaszczyzna" +msgstr "Pokaż poprzedni obrys" #: editor/editor_settings.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Autorename Animation Tracks" -msgstr "Zmień nazwę animacji" +msgstr "Automatycznie przemianuj ścieżki animacji" #: editor/editor_settings.cpp msgid "Default Create Bezier Tracks" -msgstr "" +msgstr "Twórz domyślnie ścieżki Beziera" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Create Reset Tracks" -msgstr "Utwórz ścieżki RESET" +msgstr "Domyślnie twórz ścieżki resetu" #: editor/editor_settings.cpp msgid "Onion Layers Past Color" -msgstr "" +msgstr "Przeszły kolor warstw cebuli" #: editor/editor_settings.cpp msgid "Onion Layers Future Color" -msgstr "" +msgstr "Przyszły kolor warstw cebuli" #: editor/editor_settings.cpp -#, fuzzy msgid "Visual Editors" -msgstr "Edytor grup" +msgstr "Edytory wizualne" #: editor/editor_settings.cpp msgid "Minimap Opacity" @@ -6021,69 +5967,61 @@ msgstr "Przezroczystość minimapy" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "Ustawienie okna" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Rect" -msgstr "Cały obszar" +msgstr "Prostokąt" #: editor/editor_settings.cpp -#, fuzzy msgid "Rect Custom Position" -msgstr "Ustaw punkt kontrolny wychodzący z krzywej" +msgstr "Własna pozycja prostokąta" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" -msgstr "" +msgstr "Ekran" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Save" -msgstr "Tnij automatycznie" +msgstr "Autozapis" #: editor/editor_settings.cpp -#, fuzzy msgid "Save Before Running" -msgstr "Zapisz scenę przed uruchomieniem..." +msgstr "Zapisz przed uruchomieniem" #: editor/editor_settings.cpp -#, fuzzy msgid "Font Size" -msgstr "Widok z przodu" +msgstr "Rozmiar czcionki" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Host" -msgstr "Zdalny " +msgstr "Zdalny host" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Port" -msgstr "Usuń punkt" +msgstr "Zdalny port" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor SSL Certificates" -msgstr "Ustawienia edytora" +msgstr "Certyfikaty SSL edytora" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "Proxy HTTP" #: editor/editor_settings.cpp msgid "Host" -msgstr "" +msgstr "Host" #: editor/editor_settings.cpp editor/fileserver/editor_file_server.cpp #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Port" -msgstr "" +msgstr "Port" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp @@ -6092,171 +6030,150 @@ msgstr "Menedżer projektów" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp -#, fuzzy msgid "Sorting Order" -msgstr "w kolejności:" +msgstr "Kolejność sortowania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" -msgstr "" +msgstr "Kolor symbolu" #: editor/editor_settings.cpp msgid "Keyword Color" -msgstr "" +msgstr "Kolor słowa kluczowego" #: editor/editor_settings.cpp msgid "Control Flow Keyword Color" -msgstr "" +msgstr "Kolor słowa kluczowego kontroli przepływu" #: editor/editor_settings.cpp -#, fuzzy msgid "Base Type Color" -msgstr "Zmień typ podstawowy" +msgstr "Kolor typu bazowego" #: editor/editor_settings.cpp msgid "Engine Type Color" -msgstr "" +msgstr "Kolor typu silnika" #: editor/editor_settings.cpp msgid "User Type Color" -msgstr "" +msgstr "Kolor typu użytkownika" #: editor/editor_settings.cpp msgid "Comment Color" -msgstr "" +msgstr "Kolor komentarza" #: editor/editor_settings.cpp -#, fuzzy msgid "String Color" -msgstr "Zapisywanie pliku:" +msgstr "Kolor ciągu znaków" #: editor/editor_settings.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Background Color" -msgstr "Kolor tła nieprawidłowy." +msgstr "Kolor tła" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Background Color" -msgstr "Kolor tła nieprawidłowy." +msgstr "Kolor tła uzupełniania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Selected Color" -msgstr "Importuj zaznaczone" +msgstr "Kolor zaznaczenia uzupełniania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Existing Color" -msgstr "" +msgstr "Kolor istniejącego uzupełniania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Scroll Color" -msgstr "" +msgstr "Kolor przewijania uzupełniania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Font Color" -msgstr "" +msgstr "Kolor czcionki uzupełniania" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Color" -msgstr "Następny poziom" +msgstr "Kolor tekstu" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Line Number Color" -msgstr "Numer linii:" +msgstr "Kolor numerów linii" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Safe Line Number Color" -msgstr "Numer linii:" +msgstr "Kolor numerów bezpiecznych linii" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "" +msgstr "Kolor kursora" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Caret Background Color" -msgstr "Kolor tła nieprawidłowy." +msgstr "Kolor tła kursora" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Selected Color" -msgstr "Usuń zaznaczone" +msgstr "Kolor zaznaczonego tekstu" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Selection Color" -msgstr "Tylko zaznaczenie" +msgstr "Kolor zaznaczenia" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Brace Mismatch Color" -msgstr "" +msgstr "Kolor niedopasowanych nawiasów" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Current Line Color" -msgstr "Aktualna scena" +msgstr "Kolor aktualnej linii" #: editor/editor_settings.cpp msgid "Line Length Guideline Color" -msgstr "" +msgstr "Kolor prowadnicy długości linii" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Word Highlighted Color" -msgstr "Podświetlacz składni" +msgstr "Kolor podświetlonego słowa" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Number Color" -msgstr "" +msgstr "Kolor numeru" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Function Color" -msgstr "Funkcja" +msgstr "Kolor funkcji" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Member Variable Color" -msgstr "Zmień nawę zmiennej" +msgstr "Kolor zmiennej członkowskiej" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Mark Color" -msgstr "Wybierz Kolor" +msgstr "Kolor oznaczenia" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Bookmark Color" -msgstr "Zakładki" +msgstr "Kolor zakładki" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Breakpoint Color" -msgstr "Punkty wstrzymania" +msgstr "Kolor punktu wstrzymania" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Executing Line Color" -msgstr "" +msgstr "Kolor wywoływanej linii" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Code Folding Color" -msgstr "" +msgstr "Kolor zawinięcia kodu" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Color" -msgstr "Wyniki wyszukiwania" +msgstr "Kolor wyniku wyszukiwania" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Border Color" -msgstr "Wyniki wyszukiwania" +msgstr "Kolor obramowania wyniku wyszukiwania" #: editor/editor_spin_slider.cpp msgid "Hold %s to round to integers. Hold Shift for more precise changes." @@ -6265,14 +6182,12 @@ msgstr "" "bardziej precyzyjnych zmian." #: editor/editor_spin_slider.cpp scene/gui/button.cpp -#, fuzzy msgid "Flat" -msgstr "Płaskie 0" +msgstr "Płaski" #: editor/editor_spin_slider.cpp -#, fuzzy msgid "Hide Slider" -msgstr "Tryb kolizji" +msgstr "Ukryj suwak" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -6563,7 +6478,7 @@ msgstr "" #: editor/fileserver/editor_file_server.cpp msgid "File Server" -msgstr "" +msgstr "Serwer plików" #: editor/fileserver/editor_file_server.cpp #: editor/plugins/version_control_editor_plugin.cpp @@ -6936,43 +6851,40 @@ msgstr "Zarządzaj grupami" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "Collada" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" -msgstr "" +msgstr "Użyj otoczenia" #: editor/import/resource_importer_bitmask.cpp -#, fuzzy msgid "Create From" -msgstr "Utwórz katalog" +msgstr "Utwórz z" #: editor/import/resource_importer_bitmask.cpp #: servers/audio/effects/audio_effect_compressor.cpp msgid "Threshold" -msgstr "" +msgstr "Próg" #: editor/import/resource_importer_csv_translation.cpp #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_scene.cpp #: editor/import/resource_importer_texture.cpp #: editor/import/resource_importer_wav.cpp scene/3d/gi_probe.cpp -#, fuzzy msgid "Compress" -msgstr "Komponenty" +msgstr "Skompresuj" #: editor/import/resource_importer_csv_translation.cpp msgid "Delimiter" -msgstr "" +msgstr "Separator" #: editor/import/resource_importer_layered_texture.cpp -#, fuzzy msgid "ColorCorrect" -msgstr "Funkcja koloru." +msgstr "ColorCorrect" #: editor/import/resource_importer_layered_texture.cpp msgid "No BPTC If RGB" -msgstr "" +msgstr "Bez BPTC jeśli RGB" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/cpu_particles_2d.cpp @@ -6980,31 +6892,29 @@ msgstr "" #: scene/resources/material.cpp scene/resources/particles_material.cpp #: scene/resources/texture.cpp scene/resources/visual_shader.cpp msgid "Flags" -msgstr "" +msgstr "Flagi" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/animation/tween.cpp #: scene/resources/texture.cpp msgid "Repeat" -msgstr "" +msgstr "Powtórz" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Filter" -msgstr "Filtry:" +msgstr "Filtr" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Mipmaps" -msgstr "Sygnały" +msgstr "Mipmapy" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "Anisotropic" -msgstr "" +msgstr "Anizotropowe" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp @@ -7012,51 +6922,43 @@ msgid "sRGB" msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp -#, fuzzy msgid "Slices" -msgstr "Tnij automatycznie" +msgstr "Kawałki" #: editor/import/resource_importer_layered_texture.cpp #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Horizontal" -msgstr "Poziomo:" +msgstr "Poziomo" #: editor/import/resource_importer_layered_texture.cpp #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Vertical" -msgstr "Pionowo:" +msgstr "Pionowo" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Generate Tangents" -msgstr "Wygeneruj punkty" +msgstr "Wygeneruj styczne" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Scale Mesh" -msgstr "Tryb skalowania" +msgstr "Skaluj siatkę" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Offset Mesh" -msgstr "Przesunięcie:" +msgstr "Przesuń siatkę" #: editor/import/resource_importer_obj.cpp #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Octahedral Compression" -msgstr "Kompresja" +msgstr "Kompresja ośmiościenna" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Optimize Mesh Flags" -msgstr "Rozmiar: " +msgstr "Optymalizuj flagi siatki" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -7100,101 +7002,84 @@ msgstr "Importuj jako wiele scen + materiały" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Nodes" -msgstr "Węzeł" +msgstr "Węzły" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Type" -msgstr "Wróć" +msgstr "Typ korzenia" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Name" -msgstr "Nazwa zdalnego repozytorium" +msgstr "Nazwa korzenia" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Scale" -msgstr "Skaluj" +msgstr "Skala korzenia" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Custom Script" -msgstr "NiestandardowyWęzeł" +msgstr "Własny skrypt" #: editor/import/resource_importer_scene.cpp scene/resources/texture.cpp -#, fuzzy msgid "Storage" -msgstr "Zapisywanie pliku:" +msgstr "Przechowywanie" #: editor/import/resource_importer_scene.cpp msgid "Use Legacy Names" -msgstr "" +msgstr "Użyj starszych nazw" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Materials" -msgstr "Zmiany materiału:" +msgstr "Materiały" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep On Reimport" -msgstr "Importuj ponownie" +msgstr "Zachowaj po reimporcie" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Meshes" -msgstr "Siatka" +msgstr "Siatki" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Ensure Tangents" -msgstr "Modyfikuj styczną krzywej" +msgstr "Zapewnij styczne" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Light Baking" -msgstr "Lightmapping" +msgstr "Wypalanie światła" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Lightmap Texel Size" -msgstr "Stwórz Lightmaps" +msgstr "Rozmiar teksela mapy światła" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Skins" -msgstr "" +msgstr "Skórki" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Use Named Skins" -msgstr "Użyj przyciągania skali" +msgstr "Używaj nazwanych skórek" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "External Files" -msgstr "Otwórz plik" +msgstr "Pliki zewnętrzne" #: editor/import/resource_importer_scene.cpp msgid "Store In Subdir" -msgstr "" +msgstr "Przechowaj w podfolderze" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Filter Script" -msgstr "Filtruj skrypty" +msgstr "Skrypt filtra" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep Custom Tracks" -msgstr "Przekształcanie" +msgstr "Zachowaj własne ścieżki" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Optimizer" -msgstr "Zoptymalizuj" +msgstr "Optymalizator" #: editor/import/resource_importer_scene.cpp #: editor/plugins/item_list_editor_plugin.cpp main/main.cpp @@ -7208,41 +7093,34 @@ msgstr "Zoptymalizuj" #: scene/3d/sprite_3d.cpp scene/gui/graph_edit.cpp #: scene/gui/rich_text_label.cpp scene/resources/curve.cpp #: scene/resources/environment.cpp scene/resources/material.cpp -#, fuzzy msgid "Enabled" -msgstr "Włącz" +msgstr "Włączony" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Linear Error" -msgstr "Maks. błąd liniowy:" +msgstr "Maks. błąd liniowy" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Angular Error" -msgstr "Maks. błąd kątowy:" +msgstr "Maks. błąd kątowy" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Angle" -msgstr "Wartość" +msgstr "Maksymalny kąt" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Remove Unused Tracks" -msgstr "Usuń ścieżkę animacji" +msgstr "Usuń nieużywane ścieżki" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Clips" -msgstr "Klipy animacji" +msgstr "Klipy" #: editor/import/resource_importer_scene.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/particles_2d.cpp scene/3d/area.cpp scene/3d/cpu_particles.cpp #: scene/3d/particles.cpp scene/resources/environment.cpp -#, fuzzy msgid "Amount" -msgstr "Ilośc:" +msgstr "Ilość" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp @@ -7258,9 +7136,8 @@ msgid "Generating Lightmaps" msgstr "Generowanie Lightmapy" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "Generowanie dla siatki: " +msgstr "Generowanie dla siatki:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -7293,34 +7170,37 @@ msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" +"%s: Tekstura wykryta jako mapa normalnych w 3D. Włączam czerwono-zieloną " +"kompresję tekstury, by zmniejszyć zużycie pamięci (niebieski kanał jest " +"odrzucony)." #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s: Tekstura wykryta jako używana w 3D. Włączam filtrowanie, powtarzanie, " +"generację mipmap i kompresję tekstur VRAM." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" -msgstr "" +msgstr "2D, wykryj 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "2D Pixel" -msgstr "Widoczne piksele" +msgstr "2D piksel" #: editor/import/resource_importer_texture.cpp scene/resources/texture.cpp msgid "Lossy Quality" -msgstr "" +msgstr "Stratna jakość" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "HDR Mode" -msgstr "Tryb zaznaczenia" +msgstr "Tryb HDR" #: editor/import/resource_importer_texture.cpp msgid "BPTC LDR" -msgstr "" +msgstr "LDR BPTC" #: editor/import/resource_importer_texture.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/cpu_particles_2d.cpp @@ -7330,105 +7210,94 @@ msgid "Normal Map" msgstr "Mapa normalnych" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Process" -msgstr "Przetwarzanie końcowe" +msgstr "Przetwarzanie" #: editor/import/resource_importer_texture.cpp msgid "Fix Alpha Border" -msgstr "" +msgstr "Popraw obramowanie alfa" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Premult Alpha" -msgstr "Edytuj wielokąt" +msgstr "Wstępnie przemnóż alfę" #: editor/import/resource_importer_texture.cpp msgid "Hdr As Srgb" -msgstr "" +msgstr "HDR jako sRGB" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Invert Color" -msgstr "Wierzchołki" +msgstr "Odwróć kolor" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Normal Map Invert Y" -msgstr "Losowa skala:" +msgstr "Odwróć Y mapy normalnych" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Size Limit" -msgstr "Limity" +msgstr "Limit rozmiaru" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" -msgstr "" +msgstr "Wykryj 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "SVG" -msgstr "HSV" +msgstr "SVG" #: editor/import/resource_importer_texture.cpp msgid "" "Warning, no suitable PC VRAM compression enabled in Project Settings. This " "texture will not display correctly on PC." msgstr "" +"Ostrzeżenie, brak ustawionej w ustawieniach projektu odpowiedniej kompresji " +"PC VRAM. Ta tekstura nie będzie się poprawnie wyświetlać na PC." #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Atlas File" -msgstr "Rozmiar zarysu:" +msgstr "Plik atlasu" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Import Mode" -msgstr "Tryb eksportu:" +msgstr "Tryb importu" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Crop To Region" -msgstr "Ustaw obszar Kafelka" +msgstr "Przytnij do regionu" #: editor/import/resource_importer_texture_atlas.cpp msgid "Trim Alpha Border From Region" -msgstr "" +msgstr "Przytnij obramowanie alfy z regionu" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Force" -msgstr "Wrzuć na siłę" +msgstr "Siła" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" -msgstr "" +msgstr "8 bitów" #: editor/import/resource_importer_wav.cpp main/main.cpp #: modules/mono/editor/csharp_project.cpp modules/mono/godotsharp_dirs.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Mono" -msgstr "" +msgstr "Mono" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate" -msgstr "Węzeł Mieszania" +msgstr "Maksymalne tempo" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate Hz" -msgstr "Węzeł Mieszania" +msgstr "Maksymalne tempo Hz" #: editor/import/resource_importer_wav.cpp msgid "Trim" -msgstr "" +msgstr "Przytnij" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Normalize" -msgstr "Format" +msgstr "Normalizuj" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp @@ -7437,15 +7306,13 @@ msgstr "Tryb zapętlenia" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Begin" -msgstr "Tryb przesuwania" +msgstr "Początek pętli" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop End" -msgstr "Tryb przesuwania" +msgstr "Koniec pętli" #: editor/import_defaults_editor.cpp msgid "Select Importer" @@ -7523,27 +7390,24 @@ msgid "Failed to load resource." msgstr "Nie udało się wczytać zasobu." #: editor/inspector_dock.cpp -#, fuzzy msgid "Property Name Style" -msgstr "Nazwa projektu:" +msgstr "Styl nazw właściwości" #: editor/inspector_dock.cpp scene/gui/color_picker.cpp msgid "Raw" msgstr "Raw" #: editor/inspector_dock.cpp -#, fuzzy msgid "Capitalized" -msgstr "Wielkie litery na początku słów" +msgstr "Z wielkiej litery" #: editor/inspector_dock.cpp -#, fuzzy msgid "Localized" -msgstr "Ustawienia regionalne" +msgstr "Tłumaczone" #: editor/inspector_dock.cpp msgid "Localization not available for current language." -msgstr "" +msgstr "Tłumaczenie niedostępne dla aktualnego języka." #: editor/inspector_dock.cpp msgid "Copy Properties" @@ -8088,9 +7952,8 @@ msgid "New" msgstr "Nowy" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Paste As Reference" -msgstr "Referencja klasy %s" +msgstr "Wklej jako referencję" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -8281,9 +8144,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "Ustaw koniec animacji. To jest przydatne dla podprzejść." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition:" -msgstr "Przejście: " +msgstr "Przejście:" #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -8420,7 +8282,7 @@ msgstr "Filtry..." #: editor/plugins/asset_library_editor_plugin.cpp scene/main/http_request.cpp msgid "Use Threads" -msgstr "" +msgstr "Używaj wątków" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" @@ -8548,9 +8410,8 @@ msgid "Download Error" msgstr "Błąd pobierania" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Available URLs" -msgstr "Dostępne profile:" +msgstr "Dostępne URL" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -8585,25 +8446,21 @@ msgid "Loading..." msgstr "Wczytywanie..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "First" msgstr "Początek" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Previous" msgstr "Wstecz" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Next" msgstr "Dalej" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Last" msgstr "Koniec" @@ -8654,7 +8511,7 @@ msgstr "Testowanie" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed to get repository configuration." -msgstr "" +msgstr "Nie udało się uzyskać konfiguracji repozytorium." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -8713,7 +8570,7 @@ msgstr "Stwórz Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "LightMap Bake" -msgstr "" +msgstr "Wypal mapę światła" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" @@ -9220,23 +9077,20 @@ msgid "View" msgstr "Widok" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show" -msgstr "Pokaż siatkę" +msgstr "Pokaż" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show When Snapping" -msgstr "Inteligentne przyciąganie" +msgstr "Pokaż podczas przyciągania" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "Ukryj" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid" -msgstr "Przełącz tryb" +msgstr "Przełącz siatkę" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -9588,16 +9442,15 @@ msgstr "Gradient edytowany" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap GradientTexture2D Fill Points" -msgstr "" +msgstr "Zamień punkty wypełnienia GradientTexture2D" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap Gradient Fill Points" -msgstr "" +msgstr "Zamień punkty wypełnienia gradientu" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid Snap" -msgstr "Przełącz tryb" +msgstr "Przełącz przyciąganie do siatki" #: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp #: scene/3d/label_3d.cpp scene/gui/button.cpp scene/gui/dialogs.cpp @@ -9616,13 +9469,12 @@ msgstr "Ikona" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separator" -msgstr "Separacja:" +msgstr "Separator" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -9859,9 +9711,8 @@ msgstr "" "%s" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "MeshLibrary" -msgstr "Biblioteka meshów" +msgstr "Biblioteka siatek" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Add Item" @@ -9884,14 +9735,12 @@ msgid "Update from Scene" msgstr "Aktualizuj ze sceny" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Apply without Transforms" -msgstr "Zastosuj transformacje MeshInstance" +msgstr "Zastosuj bez transformacji" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Apply with Transforms" -msgstr "Zastosuj transformacje MeshInstance" +msgstr "Zastosuj z transformacjami" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." @@ -10059,9 +9908,8 @@ msgid "Volume" msgstr "Głośność" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source:" -msgstr "Źródła emisji: " +msgstr "Źródło emisji:" #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -10417,7 +10265,7 @@ msgstr "Synchronizuj kości z wielokątem" #: editor/plugins/ray_cast_2d_editor_plugin.cpp msgid "Set cast_to" -msgstr "" +msgstr "Ustaw cast_to" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" @@ -10748,58 +10596,51 @@ msgstr "Wyniki wyszukiwania" #: editor/plugins/script_editor_plugin.cpp msgid "Open Dominant Script On Scene Change" -msgstr "" +msgstr "Otwórz dominujący skrypt przy zmianie sceny" #: editor/plugins/script_editor_plugin.cpp msgid "External" -msgstr "" +msgstr "Zewnętrzne" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Use External Editor" -msgstr "Debugowanie z zewnętrznym edytorem" +msgstr "Użyj zewnętrznego edytora" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Exec Path" -msgstr "Ścieżka eksportu" +msgstr "Ścieżka uruchomienia" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Script Temperature Enabled" -msgstr "Wybierz plik szablonu" +msgstr "Włącz temperaturę skryptów" #: editor/plugins/script_editor_plugin.cpp msgid "Highlight Current Script" -msgstr "" +msgstr "Podświetl aktualny skrypt" #: editor/plugins/script_editor_plugin.cpp msgid "Script Temperature History Size" -msgstr "" +msgstr "Rozmiar historii temperatury skryptów" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Current Script Background Color" -msgstr "Kolor tła nieprawidłowy." +msgstr "Kolor tła aktualnego skryptu" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Group Help Pages" -msgstr "Grupuj wybrane" +msgstr "Grupuj strony pomocy" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Sort Scripts By" -msgstr "Utwórz Skrypt" +msgstr "Sortuj skrypty po" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "List Script Names As" -msgstr "Nazwa skryptu:" +msgstr "Listuj nazwy skryptów jako" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" -msgstr "" +msgstr "Parametry uruchomienia" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -11118,7 +10959,7 @@ msgstr "Tył perspektywicznie" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portale aktywne]" @@ -11160,15 +11001,13 @@ msgstr "Przesuń" #. TRANSLATORS: Refers to changing the scale of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling:" -msgstr "Skalowanie: " +msgstr "Skalowanie:" #. TRANSLATORS: Refers to changing the position of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating:" -msgstr "Przesuwanie: " +msgstr "Przesuwanie:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -11316,13 +11155,14 @@ msgstr "Podgląd kinowy" #: editor/plugins/spatial_editor_plugin.cpp msgid "(Not in GLES2)" -msgstr "" +msgstr "(Nie w GLES2)" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Debug draw modes are only available when using the GLES3 renderer, not GLES2." -msgstr "Niedostępne dla renderera GLES2." +msgstr "" +"Tryby rysowania debugowego są dostępne tylko w przypadku korzystania z " +"renderera GLES3, a nie GLES2." #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -11617,16 +11457,15 @@ msgstr "Po" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Size" -msgstr "" +msgstr "Regulacja wielkości uchwytu" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Opacity" -msgstr "" +msgstr "Regulacja przezroczystości uchwytu" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Show Viewport Rotation Gizmo" -msgstr "Zablokuj obrót widoku" +msgstr "Pokaż obrót widoku uchwytu" #: editor/plugins/spatial_editor_plugin.cpp msgid "Unnamed Gizmo" @@ -11678,9 +11517,8 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Nieprawidłowa geometria, nie można zastąpić przez siatkę." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to MeshInstance2D" -msgstr "Zamień na Mesh2D" +msgstr "Konwertuj do MeshInstance2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." @@ -11711,19 +11549,16 @@ msgid "Sprite" msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Simplification:" -msgstr "Uproszczenie: " +msgstr "Uproszczenie:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Shrink (Pixels):" -msgstr "Zmniejsz (piksele): " +msgstr "Zmniejsz (piksele):" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels):" -msgstr "Zwiększ (piksele): " +msgstr "Zwiększ (piksele):" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -11786,9 +11621,8 @@ msgid "New Animation" msgstr "Nowa animacja" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Filter animations" -msgstr "Filtruj metody" +msgstr "Filtruj animacje" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed:" @@ -12088,9 +11922,8 @@ msgstr "" "Zamknąć tak czy inaczej?" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove Type" -msgstr "Usuń Kafelek" +msgstr "Usuń typ" #: editor/plugins/theme_editor_plugin.cpp msgid "" @@ -16481,7 +16314,7 @@ msgstr "" #: main/main.cpp msgid "Verbose stdout" -msgstr "" +msgstr "Werbalne stdout" #: main/main.cpp scene/main/scene_tree.cpp scene/resources/multimesh.cpp #, fuzzy @@ -16500,11 +16333,11 @@ msgstr "Powiększ do zaznaczenia" #: main/main.cpp msgid "Low Processor Mode" -msgstr "" +msgstr "Tryb niskiego wykorzystania procesora" #: main/main.cpp msgid "Delta Sync After Draw" -msgstr "" +msgstr "Synchronizacja delta po wyświetlaniu" #: main/main.cpp msgid "iOS" @@ -16512,7 +16345,7 @@ msgstr "iOS" #: main/main.cpp msgid "Hide Home Indicator" -msgstr "" +msgstr "Ukryj wskaźnik powitalny" #: main/main.cpp #, fuzzy @@ -16526,11 +16359,11 @@ msgstr "Punkt" #: main/main.cpp msgid "Touch Delay" -msgstr "" +msgstr "Opóźnienie dotyku" #: main/main.cpp servers/visual_server.cpp msgid "GLES3" -msgstr "" +msgstr "GLES3" #: main/main.cpp servers/visual_server.cpp #, fuzzy @@ -16555,43 +16388,39 @@ msgstr "" #: main/main.cpp msgid "Boot Splash" -msgstr "" +msgstr "Ekran uruchamiania" #: main/main.cpp -#, fuzzy msgid "Show Image" -msgstr "Pokaż kości" +msgstr "Pokaż obraz" #: main/main.cpp msgid "Image" -msgstr "" +msgstr "Obraz" #: main/main.cpp msgid "Fullsize" -msgstr "" +msgstr "Pełny rozmiar" #: main/main.cpp scene/resources/dynamic_font.cpp -#, fuzzy msgid "Use Filter" -msgstr "Filtr:" +msgstr "Użyj filtra" #: main/main.cpp scene/resources/style_box.cpp -#, fuzzy msgid "BG Color" -msgstr "Kolory" +msgstr "Kolor tła" #: main/main.cpp -#, fuzzy msgid "macOS Native Icon" -msgstr "Ustaw ikonę Kafelka" +msgstr "Ikona natywna macOS" #: main/main.cpp msgid "Windows Native Icon" -msgstr "" +msgstr "Ikona natywna Windows" #: main/main.cpp msgid "Buffering" -msgstr "" +msgstr "Buforowanie" #: main/main.cpp msgid "Agile Event Flushing" @@ -16599,30 +16428,27 @@ msgstr "" #: main/main.cpp msgid "Emulate Touch From Mouse" -msgstr "" +msgstr "Emulacja dotyku za pomocą myszy" #: main/main.cpp msgid "Emulate Mouse From Touch" -msgstr "" +msgstr "Emulacja myszy za pomocą dotyku" #: main/main.cpp -#, fuzzy msgid "Mouse Cursor" -msgstr "Przycisk myszy" +msgstr "Kursor myszy" #: main/main.cpp -#, fuzzy msgid "Custom Image" -msgstr "NiestandardowyWęzeł" +msgstr "Niestandardowy obraz" #: main/main.cpp msgid "Custom Image Hotspot" -msgstr "" +msgstr "Własny punkt dostępu do obrazów" #: main/main.cpp -#, fuzzy msgid "Tooltip Position Offset" -msgstr "Offset obrotu:" +msgstr "Przesunięcie pozycji podpowiedzi" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #, fuzzy @@ -16630,22 +16456,20 @@ msgid "Debugger Agent" msgstr "Debugger" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Wait For Debugger" -msgstr "Debugger" +msgstr "Czekanie na Debuggera" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Wait Timeout" -msgstr "Przekroczenie czasu." +msgstr "Limit czasu oczekiwania" #: main/main.cpp msgid "Runtime" -msgstr "" +msgstr "Środowisko pracy" #: main/main.cpp msgid "Unhandled Exception Policy" -msgstr "" +msgstr "Polityka dotycząca wyjątków nieobsługiwanych" #: main/main.cpp #, fuzzy @@ -16654,22 +16478,20 @@ msgstr "Znajdź typ węzła" #: main/main.cpp scene/gui/texture_progress.cpp #: scene/gui/viewport_container.cpp -#, fuzzy msgid "Stretch" -msgstr "Załaduj" +msgstr "Rozciągnij" #: main/main.cpp -#, fuzzy msgid "Aspect" -msgstr "Inspektor" +msgstr "Aspekt" #: main/main.cpp msgid "Shrink" -msgstr "" +msgstr "Zmniejsz" #: main/main.cpp scene/main/scene_tree.cpp msgid "Auto Accept Quit" -msgstr "" +msgstr "Automatyczne akceptowanie zamknięcia" #: main/main.cpp scene/main/scene_tree.cpp #, fuzzy @@ -16677,25 +16499,24 @@ msgid "Quit On Go Back" msgstr "Wróć" #: main/main.cpp scene/main/viewport.cpp -#, fuzzy msgid "Snap Controls To Pixels" -msgstr "Przyciągaj do boków węzła" +msgstr "Przymocuj elementy sterujące do pikseli" #: main/main.cpp msgid "Dynamic Fonts" -msgstr "" +msgstr "Czcionki dynamiczne" #: main/main.cpp msgid "Use Oversampling" -msgstr "" +msgstr "Zastosuj nadpróbkowanie" #: modules/bullet/register_types.cpp modules/bullet/space_bullet.cpp msgid "Active Soft World" -msgstr "" +msgstr "Aktywuj wsparcie SoftBody World" #: modules/csg/csg_gizmos.cpp msgid "CSG" -msgstr "" +msgstr "CSG" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -16714,30 +16535,26 @@ msgid "Change Torus Outer Radius" msgstr "Zmień zewnętrzny promień torusa" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Operation" -msgstr "Opcje" +msgstr "Operacja" #: modules/csg/csg_shape.cpp msgid "Calculate Tangents" -msgstr "" +msgstr "Oblicz styczne" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Use Collision" -msgstr "Kolizja" +msgstr "Użyj kolizji" #: modules/csg/csg_shape.cpp servers/physics_2d_server.cpp -#, fuzzy msgid "Collision Layer" -msgstr "Tryb kolizji" +msgstr "Warstwa kolizji" #: modules/csg/csg_shape.cpp scene/2d/ray_cast_2d.cpp scene/3d/camera.cpp #: scene/3d/ray_cast.cpp scene/3d/spring_arm.cpp #: scene/resources/navigation_mesh.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Mask" -msgstr "Tryb kolizji" +msgstr "Maska kolizji" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16752,9 +16569,8 @@ msgstr "Zmień wielkość liter" #: scene/resources/cylinder_shape.cpp scene/resources/environment.cpp #: scene/resources/navigation_mesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/sphere_shape.cpp -#, fuzzy msgid "Radius" -msgstr "Promień:" +msgstr "Promień" #: modules/csg/csg_shape.cpp scene/resources/primitive_meshes.cpp #, fuzzy @@ -16762,33 +16578,28 @@ msgid "Radial Segments" msgstr "Argumenty głównej sceny:" #: modules/csg/csg_shape.cpp scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Rings" -msgstr "Ostrzeżenia" +msgstr "Pierścienie" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Smooth Faces" -msgstr "Płynny Krok" +msgstr "Gładkie twarze" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Sides" -msgstr "Pokaż prowadnice" +msgstr "Boki" #: modules/csg/csg_shape.cpp msgid "Cone" -msgstr "" +msgstr "Stożek" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Inner Radius" -msgstr "Zmień wewnętrzny promień torusa" +msgstr "Promień wewnętrzny" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Outer Radius" -msgstr "Zmień zewnętrzny promień torusa" +msgstr "promień zewnętrzny" #: modules/csg/csg_shape.cpp msgid "Ring Sides" @@ -16797,7 +16608,6 @@ msgstr "" #: modules/csg/csg_shape.cpp scene/2d/collision_polygon_2d.cpp #: scene/2d/light_occluder_2d.cpp scene/2d/polygon_2d.cpp #: scene/3d/collision_polygon.cpp -#, fuzzy msgid "Polygon" msgstr "Wielokąt" @@ -16810,9 +16620,8 @@ msgid "Spin Sides" msgstr "" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Node" -msgstr "Wklej węzły" +msgstr "Ścieżka węzła" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16821,21 +16630,19 @@ msgstr "Utwórz wewnętrzny wierzchołek" #: modules/csg/csg_shape.cpp msgid "Path Interval" -msgstr "" +msgstr "Odstęp między ścieżkami" #: modules/csg/csg_shape.cpp msgid "Path Simplify Angle" msgstr "" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Rotation" -msgstr "Obrót losowy:" +msgstr "Obrót ścieżki" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Local" -msgstr "Uczyń lokalnym" +msgstr "Ścieżka lokalna" #: modules/csg/csg_shape.cpp #, fuzzy @@ -17046,7 +16853,7 @@ msgstr "Nie bazuje na pliku zasobów" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" -msgstr "Niepoprawna instancja formatu słownika (brakujący @path)" +msgstr "Niepoprawna instancja formatu słownika (brakuje @path)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" @@ -17059,7 +16866,7 @@ msgstr "Niepoprawna instancja formatu słownika (niepoprawny skrypt w @path)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" -msgstr "Niepoprawna instancja słownika (niepoprawne podklasy)" +msgstr "Niepoprawny słownik instancji (niepoprawne podklasy)" #: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." @@ -17288,27 +17095,27 @@ msgstr "Przesuń złącze" #: modules/gltf/gltf_skin.cpp msgid "Joint I To Bone I" -msgstr "" +msgstr "Staw I do kości I" #: modules/gltf/gltf_skin.cpp msgid "Joint I To Name" -msgstr "" +msgstr "Staw I do nazwy" #: modules/gltf/gltf_skin.cpp msgid "Godot Skin" -msgstr "" +msgstr "Skórka Godot" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Img" -msgstr "" +msgstr "Rozmycie obrazu" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Factor" -msgstr "" +msgstr "Współczynnik rozmycia" #: modules/gltf/gltf_spec_gloss.cpp msgid "Gloss Factor" -msgstr "" +msgstr "Współczynnik połysku" #: modules/gltf/gltf_spec_gloss.cpp #, fuzzy @@ -17391,19 +17198,16 @@ msgid "Skeletons" msgstr "Szkielet" #: modules/gltf/gltf_state.cpp -#, fuzzy msgid "Skeleton To Node" -msgstr "Wybierz węzeł" +msgstr "Szkielet do węzła" #: modules/gltf/gltf_state.cpp -#, fuzzy msgid "Animations" -msgstr "Animacje:" +msgstr "Animacje" #: modules/gltf/gltf_texture.cpp -#, fuzzy msgid "Src Image" -msgstr "Pokaż kości" +msgstr "Obraz źródłowy" #: modules/gridmap/grid_map.cpp msgid "Mesh Library" @@ -17421,33 +17225,29 @@ msgstr "Stwórz Lightmaps" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp msgid "Cell" -msgstr "" +msgstr "Komórka" #: modules/gridmap/grid_map.cpp -#, fuzzy msgid "Octant Size" -msgstr "Widok z przodu" +msgstr "Wielkość oktantu" #: modules/gridmap/grid_map.cpp -#, fuzzy msgid "Center X" -msgstr "Wyśrodkowane" +msgstr "Wyśrodkowanie X" #: modules/gridmap/grid_map.cpp -#, fuzzy msgid "Center Y" -msgstr "Wyśrodkowane" +msgstr "Wyśrodkowanie Y" #: modules/gridmap/grid_map.cpp -#, fuzzy msgid "Center Z" -msgstr "Wyśrodkowane" +msgstr "Wyśrodkowanie Z" #: modules/gridmap/grid_map.cpp scene/2d/collision_object_2d.cpp #: scene/2d/tile_map.cpp scene/3d/collision_object.cpp scene/3d/soft_body.cpp #: scene/resources/material.cpp msgid "Mask" -msgstr "" +msgstr "Maska" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp #, fuzzy @@ -17458,9 +17258,8 @@ msgstr "Nawigacja" #: scene/2d/navigation_agent_2d.cpp scene/2d/navigation_polygon.cpp #: scene/2d/tile_map.cpp scene/3d/navigation.cpp scene/3d/navigation_agent.cpp #: scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Navigation Layers" -msgstr "Tryb nawigacji" +msgstr "Warstwy nawigacji" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Plane" @@ -17620,9 +17419,8 @@ msgid "Plotting lightmaps" msgstr "Kreślenie map światła" #: modules/lightmapper_cpu/register_types.cpp -#, fuzzy msgid "CPU Lightmapper" -msgstr "Stwórz Lightmaps" +msgstr "Mapper światła CPU" #: modules/lightmapper_cpu/register_types.cpp msgid "Low Quality Ray Count" @@ -17644,22 +17442,20 @@ msgstr "" #: modules/minimp3/resource_importer_mp3.cpp #: modules/stb_vorbis/audio_stream_ogg_vorbis.cpp #: modules/stb_vorbis/resource_importer_ogg_vorbis.cpp -#, fuzzy msgid "Loop Offset" -msgstr "Przesunięcie:" +msgstr "Przesunięcie pętli" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Eye Height" -msgstr "" +msgstr "Wysokość oczu" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "IOD" -msgstr "" +msgstr "IOD" #: modules/mobile_vr/mobile_vr_interface.cpp -#, fuzzy msgid "Display Width" -msgstr "Widok siatki" +msgstr "Szerokość wyświetlacza" #: modules/mobile_vr/mobile_vr_interface.cpp #, fuzzy @@ -17668,15 +17464,15 @@ msgstr "Widok bezcieniowy" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Oversample" -msgstr "" +msgstr "Nadpróbkowanie" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K1" -msgstr "" +msgstr "K1" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K2" -msgstr "" +msgstr "K2" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -17687,14 +17483,12 @@ msgid "Build Solution" msgstr "Zbuduj rozwiązanie" #: modules/mono/editor/csharp_project.cpp -#, fuzzy msgid "Auto Update Project" -msgstr "Projekt bez nazwy" +msgstr "Automatyczna aktualizacja projektu" #: modules/mono/godotsharp_dirs.cpp -#, fuzzy msgid "Assembly Name" -msgstr "Pokaż wszystko" +msgstr "Nazwa zespołu" #: modules/mono/godotsharp_dirs.cpp #, fuzzy @@ -17702,9 +17496,8 @@ msgid "Solution Directory" msgstr "Wybierz katalog" #: modules/mono/godotsharp_dirs.cpp -#, fuzzy msgid "C# Project Directory" -msgstr "Wybierz katalog" +msgstr "Katalog projektów C#" #: modules/mono/mono_gd/gd_mono_utils.cpp msgid "End of inner exception stack trace" @@ -17775,42 +17568,39 @@ msgstr "Parsowanie Geometrii..." #: modules/navigation/navigation_mesh_generator.cpp msgid "Done!" -msgstr "Skończone!" +msgstr "Gotowe!" #: modules/opensimplex/noise_texture.cpp msgid "Seamless" msgstr "" #: modules/opensimplex/noise_texture.cpp -#, fuzzy msgid "As Normal Map" -msgstr "Losowa skala:" +msgstr "Jako normalna mapa" #: modules/opensimplex/noise_texture.cpp msgid "Bump Strength" -msgstr "" +msgstr "Siła uderzenia" #: modules/opensimplex/noise_texture.cpp msgid "Noise" -msgstr "" +msgstr "Szum" #: modules/opensimplex/noise_texture.cpp -#, fuzzy msgid "Noise Offset" -msgstr "Offset siatki:" +msgstr "Redukcja szumów" #: modules/opensimplex/open_simplex_noise.cpp msgid "Octaves" -msgstr "" +msgstr "Oktawy" #: modules/opensimplex/open_simplex_noise.cpp msgid "Period" -msgstr "" +msgstr "Okres" #: modules/opensimplex/open_simplex_noise.cpp -#, fuzzy msgid "Persistence" -msgstr "Perspektywa" +msgstr "Trwałość" #: modules/opensimplex/open_simplex_noise.cpp msgid "Lacunarity" @@ -17821,14 +17611,12 @@ msgid "Subject" msgstr "" #: modules/regex/regex.cpp -#, fuzzy msgid "Names" -msgstr "Nazwa" +msgstr "Nazwy" #: modules/regex/regex.cpp -#, fuzzy msgid "Strings" -msgstr "Ustawienia:" +msgstr "Ciągi tekstowe" #: modules/upnp/upnp.cpp msgid "Discover Multicast If" @@ -17901,7 +17689,9 @@ msgstr "Węzeł zwrócił niewłaściwą sekwencję wyjściową: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" -msgstr "Znaleziono bit sekwencji, ale nie węzeł na stosie, zgłoś błąd!" +msgstr "" +"Nie znaleziono węzła w stosie, choć znaleziono ciąg bitów. Powiadom o " +"błędzie!" #: modules/visual_script/visual_script.cpp #, fuzzy @@ -18031,7 +17821,7 @@ msgstr "Wklej węzeł VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Nodes" -msgstr "Usuwanie węzłów VisualScript" +msgstr "Usuń węzły VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Duplicate VisualScript Nodes" @@ -18088,7 +17878,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "Dodaj właściwość Gettera" +msgstr "Dodaj właściwość Getter" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" @@ -19165,14 +18955,12 @@ msgid "Code Signing" msgstr "DMG podpisywania kodu" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"\"apksigner\" nie został znaleziony.\n" -"Sprawdź, czy komenda jest dostępna w folderze narzędzi SDK Androida.\n" -"Wynikowy %s jest niepodpisany." +"\"apksigner\" nie został znaleziony. Sprawdź, czy komenda jest dostępna w " +"folderze narzędzi SDK Androida. Wynikowy %s jest niepodpisany." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19233,15 +19021,12 @@ msgstr "" "informacja o wersji. Zainstaluj ponownie z menu \"Projekt\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Niezgodna wersja buildu Androida:\n" -" Zainstalowany szablon: %s\n" -" Wersja Godota: %s\n" -"Zainstaluj ponownie szablon z menu \"Projekt\"." +"Niezgodna wersja buildu Androida: Zainstalowany szablon: %s Wersja Godota: " +"%s. Zainstaluj ponownie szablon z menu \"Projekt\"." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19264,13 +19049,12 @@ msgid "Building Android Project (gradle)" msgstr "Budowanie projektu Androida (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"Budowanie projektu Androida się nie powiodło, sprawdź wyjście błędu.\n" -"Alternatywnie, odwiedź docs.godotengine.org po dokumentację budowania dla " +"Budowanie projektu Androida się nie powiodło, sprawdź dane wyjściowe błędu. " +"Ewentualnie, odwiedź docs.godotengine.org po dokumentację budowania dla " "Androida." #: platform/android/export/export_plugin.cpp @@ -19295,20 +19079,16 @@ msgid "Creating APK..." msgstr "Tworzenie APK..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"Nie udało się znaleźć szablonu APK do eksportu:\n" -"%s" +msgstr "Nie udało się znaleźć szablonu APK do eksportu: \"%s\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Missing libraries in the export template for the selected architectures: %s. " "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"Brakujące biblioteki w szablonie eksportu dla wybranej architektury: %s.\n" +"Brakujące biblioteki w szablonie eksportu dla wybranej architektury: %s. " "Zbuduj szablon ze wszystkimi wymaganymi bibliotekami lub odznacz brakujące " "architektury w profilu eksportu." @@ -21873,8 +21653,8 @@ msgid "" "A material to process the particles is not assigned, so no behavior is " "imprinted." msgstr "" -"Nie przypisano materiału do przetwarzania cząsteczek, więc zmiany nie będą " -"widoczne." +"Materiał nie jest przypisany do cząsteczek, więc ich zachowanie będzie " +"niewidoczne." #: scene/2d/particles_2d.cpp msgid "" @@ -22041,9 +21821,8 @@ msgid "Safe Margin" msgstr "Ustaw margines" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Sync To Physics" -msgstr " (fizyczny)" +msgstr "Synchronizuj z fizyką" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -23067,7 +22846,8 @@ msgstr "" msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" -"Nic nie jest widoczne, bo siatki nie zostały przypisane do kolejki rysowania." +"Nic nie jest widoczne ponieważ siatki nie zostały przydzielone do przebiegów " +"wyświetlających." #: scene/3d/particles.cpp msgid "" @@ -26857,7 +26637,7 @@ msgstr "Debug kanału UV" #: scene/resources/environment.cpp msgid "Blur" -msgstr "" +msgstr "Rozmazanie" #: scene/resources/environment.cpp msgid "Edge Sharpness" @@ -27983,9 +27763,8 @@ msgstr "" #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_phaser.cpp #: servers/audio/effects/audio_effect_reverb.cpp -#, fuzzy msgid "Feedback" -msgstr "Oceń dokumentację" +msgstr "Informacja zwrotna" #: servers/audio/effects/audio_effect_delay.cpp #, fuzzy @@ -27994,7 +27773,7 @@ msgstr "Omiń" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Pre Gain" -msgstr "" +msgstr "Wstępne wzmocnienie" #: servers/audio/effects/audio_effect_distortion.cpp msgid "Keep Hf Hz" @@ -28010,17 +27789,16 @@ msgid "Post Gain" msgstr "Po" #: servers/audio/effects/audio_effect_filter.cpp -#, fuzzy msgid "Resonance" -msgstr "Zasoby" +msgstr "Rezonans" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Ceiling dB" -msgstr "" +msgstr "Sufit dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Threshold dB" -msgstr "" +msgstr "Wartość progowa dB" #: servers/audio/effects/audio_effect_limiter.cpp msgid "Soft Clip dB" @@ -28462,13 +28240,12 @@ msgid "Legacy Stream" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Batching" -msgstr "Wyszukiwanie..." +msgstr "Tworzenie pakietów wsadowych" #: servers/visual_server.cpp msgid "Use Batching" -msgstr "" +msgstr "Użyj przetwarzania wsadowego" #: servers/visual_server.cpp #, fuzzy @@ -28581,9 +28358,8 @@ msgid "Max Active Polygons" msgstr "Przesuń Wielokąt" #: servers/visual_server.cpp -#, fuzzy msgid "Shader Compilation Mode" -msgstr "Sposób interpolacji" +msgstr "Sposób kompilacji shader'ów" #: servers/visual_server.cpp msgid "Max Simultaneous Compiles" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 45bbc8daf0..9b150194df 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -11039,7 +11039,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 85814ded34..0fcc083b42 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -13,7 +13,7 @@ # Rueben Stevens <supercell03@gmail.com>, 2017. # SARDON <fabio3_Santos@hotmail.com>, 2017. # Vinicius Gonçalves <viniciusgoncalves21@gmail.com>, 2017. -# ssantos <ssantos@web.de>, 2018, 2019, 2020, 2021, 2022. +# ssantos <ssantos@web.de>, 2018, 2019, 2020, 2021, 2022, 2023. # Gonçalo Dinis Guerreiro João <goncalojoao205@gmail.com>, 2019. # Manuela Silva <mmsrs@sky.com>, 2020. # Murilo Gama <murilovsky2030@gmail.com>, 2020, 2022. @@ -31,12 +31,13 @@ # Tuily <brizolla.tuily@gmail.com>, 2022. # Thuany <thutymsoares@gmail.com>, 2022. # Isaque Mendes <isaquemendes405@gmail.com>, 2022. +# Alex Bruno Boiniak <aboiniak@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-19 08:35+0000\n" +"PO-Revision-Date: 2023-01-11 19:51+0000\n" "Last-Translator: ssantos <ssantos@web.de>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/" "godot/pt/>\n" @@ -45,7 +46,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -183,7 +184,7 @@ msgstr "Erro" #: core/bind/core_bind.cpp msgid "Error String" -msgstr "Erro String" +msgstr "Cadeia de caracteres de erro" #: core/bind/core_bind.cpp msgid "Error Line" @@ -383,7 +384,7 @@ msgstr "Tamanho Máximo (KB)" #: core/os/input.cpp msgid "Mouse Mode" -msgstr "Modo Mouse" +msgstr "Modo do Rato" #: core/os/input.cpp msgid "Use Accumulated Input" @@ -4332,7 +4333,7 @@ msgstr "Restaurar Cenas quando carregar" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" -msgstr "Mostrar Miniatura ao Passar o Mouse Por Cima" +msgstr "Mostrar Miniatura ao Passar o Rato Por Cima" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Inspector" @@ -5479,7 +5480,7 @@ msgstr "Largura do Minimapa" #: editor/editor_settings.cpp msgid "Mouse Extra Buttons Navigate History" -msgstr "Botões extra do Mouse para Navegar no Histórico" +msgstr "Botões extra do Rato para Navegar no Histórico" #: editor/editor_settings.cpp msgid "Drag And Drop Selection" @@ -5773,7 +5774,7 @@ msgstr "Emular Teclado Numérico" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "Emular Mouse de 3 Botões" +msgstr "Emular Rato de 3 Botões" #: editor/editor_settings.cpp msgid "Orbit Modifier" @@ -5789,7 +5790,7 @@ msgstr "Modificador de Zoom" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "Panorama do Mouse Distorcido" +msgstr "Panorama do Rato Distorcido" #: editor/editor_settings.cpp msgid "Navigation Feel" @@ -6037,7 +6038,7 @@ msgstr "Cor do Comentário" #: editor/editor_settings.cpp msgid "String Color" -msgstr "Cor da String" +msgstr "Cor da cadeia de caracteres" #: editor/editor_settings.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp @@ -6887,9 +6888,8 @@ msgstr "Filtro" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Mipmaps" -msgstr "Sinais" +msgstr "Mipmaps" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp @@ -10925,7 +10925,7 @@ msgstr "Perspetiva Traseira" msgid " [auto]" msgstr " [auto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portais ativos]" @@ -14176,17 +14176,15 @@ msgid "Invalid project path (changed anything?)." msgstr "Caminho de projeto inválido (alguma alteração?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"Não consegui carregar o project.godot no caminho do projeto (erro %d). " -"Poderá estar em falta ou corrompido." +"Não pode carregar o projeto em '%s' (error %d). Pode estar sumido ou " +"corrompido." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "Incapaz de abrir projeto em '%s'." +msgstr "Incapaz de salvar projeto em '%s' (error %d)." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -16187,7 +16185,7 @@ msgstr "Interface Gráfica" #: main/main.cpp msgid "Drop Mouse On GUI Input Disabled" -msgstr "Desabilitar Soltar o Mouse na Entrada da Interface Gráfica" +msgstr "Desabilitar Soltar o Rato na Entrada da Interface Gráfica" #: main/main.cpp msgid "stdout" @@ -16305,15 +16303,15 @@ msgstr "Liberação Ágil de Eventos" #: main/main.cpp msgid "Emulate Touch From Mouse" -msgstr "Emular Toque do Mouse" +msgstr "Emular Toque do Rato" #: main/main.cpp msgid "Emulate Mouse From Touch" -msgstr "Emular o Mouse do Toque" +msgstr "Emular o Rato do Toque" #: main/main.cpp msgid "Mouse Cursor" -msgstr "Cursor do Mouse" +msgstr "Cursor do Rato" #: main/main.cpp msgid "Custom Image" @@ -16516,9 +16514,8 @@ msgid "Path Local" msgstr "Caminho Local" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Continuous U" -msgstr "Contínuo" +msgstr "Caminho Contínuo U" #: modules/csg/csg_shape.cpp msgid "Path U Distance" @@ -16578,9 +16575,8 @@ msgstr "Carregar Apenas uma Vez" #: modules/gdnative/gdnative.cpp #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Singleton" -msgstr "Esqueleto" +msgstr "Singleton" #: modules/gdnative/gdnative.cpp msgid "Symbol Prefix" @@ -17426,7 +17422,7 @@ msgstr "Nomes" #: modules/regex/regex.cpp msgid "Strings" -msgstr "Strings" +msgstr "Cadeias" #: modules/upnp/upnp.cpp msgid "Discover Multicast If" @@ -18436,9 +18432,8 @@ msgid "XR Mode" msgstr "Modo XR" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Hand Tracking" -msgstr "Empacotamento" +msgstr "Rastreamento das Mãos" #: platform/android/export/export_plugin.cpp msgid "Hand Tracking Frequency" @@ -18923,9 +18918,8 @@ msgid "Code Sign Identity Debug" msgstr "Depuração de Identidade de Sinal de Código" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Export Method Debug" -msgstr "Exportar com Depuração" +msgstr "Exportar Método Depuração" #: platform/iphone/export/export.cpp msgid "Provisioning Profile UUID Release" @@ -19001,9 +18995,8 @@ msgid "Microphone Usage Description" msgstr "Descrição do Uso do Microfone" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Photolibrary Usage Description" -msgstr "Descrições da Propriedade" +msgstr "Descrição de Uso da Fotobiblioteca" #: platform/iphone/export/export.cpp msgid "iPhone 120 X 120" @@ -19050,14 +19043,12 @@ msgid "Image Scale Mode" msgstr "Modo de Escalonamento de Imagem" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Custom Image @2x" -msgstr "CustomNode" +msgstr "Personalizar Imagem @2x" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Custom Image @3x" -msgstr "CustomNode" +msgstr "Personalizar Imagem @3x" #: platform/iphone/export/export.cpp msgid "Use Custom BG Color" @@ -19154,9 +19145,8 @@ msgid "Export Icon" msgstr "Exportar Ícone" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Custom HTML Shell" -msgstr "CustomNode" +msgstr "HTML Shell Personalizado" #: platform/javascript/export/export.cpp msgid "Head Include" @@ -23759,7 +23749,7 @@ msgstr "Anterior" #: scene/gui/control.cpp msgid "Mouse" -msgstr "Mouse" +msgstr "Rato" #: scene/gui/control.cpp msgid "Default Cursor Shape" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 8e574f992d..eb7b2ffde0 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -20,7 +20,7 @@ # MalcomRF <malcomkbk@gmail.com>, 2017. # Marcus Correia <marknokalt@live.com>, 2017-2018. # Michael Alexsander Silva Dias <michaelalexsander@protonmail.com>, 2017-2018. -# Renato Rotenberg <renato.rotenberg@gmail.com>, 2017, 2019, 2021. +# Renato Rotenberg <renato.rotenberg@gmail.com>, 2017, 2019, 2021, 2023. # Rodolfo R Gomes <rodolforg@gmail.com>, 2017-2018, 2019. # Tiago Almeida <thyagoeap@gmail.com>, 2017. # Mauricio Luan Carneiro deSouza <newmailmlcs@gmail.com>, 2018. @@ -156,13 +156,14 @@ # Murilo Gama <murilovsky2030@gmail.com>, 2022. # Kauã Azevedo <Kazevic@pm.me>, 2022. # Zer0-Zer0 <dankmemerson@tutanota.com>, 2022. +# Levi Ferreira <leviferreiramorais@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2022-12-10 02:13+0000\n" -"Last-Translator: Julio Yagami <juliohenrique31501234@hotmail.com>\n" +"PO-Revision-Date: 2023-01-14 00:01+0000\n" +"Last-Translator: Levi Ferreira <leviferreiramorais@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -170,7 +171,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -11075,7 +11076,7 @@ msgstr "Perspectiva Traseira" msgid " [auto]" msgstr " [automático]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portais ativados]" @@ -14331,17 +14332,15 @@ msgid "Invalid project path (changed anything?)." msgstr "Caminho de projeto inválido (mudou alguma coisa?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"Não foi possível carregar project.godot no caminho do projeto (erro %d). Ele " -"pode estar ausente ou corrompido." +"Não foi possível carregar project.godot em '%s' (erro %d). Ele pode estar " +"ausente ou corrompido." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "Não é possível abrir o projeto em '%s'." +msgstr "Não foi possível salvar o projeto em '%s' (erro %d)." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -16200,9 +16199,8 @@ msgid "Multithreaded Server" msgstr "Servidor com Multi-Thread" #: main/main.cpp -#, fuzzy msgid "RID Pool Prealloc" -msgstr "Pre-alocação de Pool RID" +msgstr "Pool de Prealocação de RID" #: main/main.cpp msgid "Debugger stdout" @@ -16310,7 +16308,7 @@ msgstr "Modelo de Thread" #: main/main.cpp msgid "Thread Safe BVH" -msgstr "" +msgstr "Thread Segura de BVH" #: main/main.cpp msgid "Handheld" @@ -16675,9 +16673,8 @@ msgid "Path Local" msgstr "Caminho Local" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Continuous U" -msgstr "Caminho Contínuo" +msgstr "Caminho Continuo U" #: modules/csg/csg_shape.cpp msgid "Path U Distance" @@ -16943,11 +16940,11 @@ msgstr "Contagem Escassa" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Buffer View" -msgstr "" +msgstr "Visualização de Buffer dos Indices Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Byte Offset" -msgstr "" +msgstr "Deslocação de Byte dos Índices Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Component Type" @@ -16955,11 +16952,11 @@ msgstr "Tipo de Componente de Índices Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Values Buffer View" -msgstr "" +msgstr "Visualização de Buffer dos Valores Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Values Byte Offset" -msgstr "" +msgstr "Deslocação de Byte dos Valores Esparsos" #: modules/gltf/gltf_buffer_view.cpp msgid "Buffer" @@ -16971,7 +16968,7 @@ msgstr "Largura do byte" #: modules/gltf/gltf_buffer_view.cpp msgid "Byte Stride" -msgstr "" +msgstr "Separação dos Bytes" #: modules/gltf/gltf_buffer_view.cpp msgid "Indices" @@ -17031,11 +17028,11 @@ msgstr "Pai" #: modules/gltf/gltf_node.cpp msgid "Xform" -msgstr "" +msgstr "Xform" #: modules/gltf/gltf_node.cpp scene/3d/mesh_instance.cpp msgid "Skin" -msgstr "" +msgstr "Pele" #: modules/gltf/gltf_node.cpp scene/3d/spatial.cpp msgid "Translation" @@ -17107,11 +17104,11 @@ msgstr "Fator Especular" #: modules/gltf/gltf_spec_gloss.cpp msgid "Spec Gloss Img" -msgstr "" +msgstr "Imagem Especular Lustrosa" #: modules/gltf/gltf_state.cpp msgid "Json" -msgstr "" +msgstr "Json" #: modules/gltf/gltf_state.cpp msgid "Major Version" @@ -17127,7 +17124,7 @@ msgstr "Dados do GLB" #: modules/gltf/gltf_state.cpp msgid "Use Named Skin Binds" -msgstr "" +msgstr "Usar Associações de Pele com nome" #: modules/gltf/gltf_state.cpp msgid "Buffer Views" @@ -17432,15 +17429,15 @@ msgstr "Exibir para as Lentes" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Oversample" -msgstr "" +msgstr "Amostragem em excesso" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K1" -msgstr "" +msgstr "K1" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K2" -msgstr "" +msgstr "K2" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -18019,7 +18016,7 @@ msgstr "Iterador" #: modules/visual_script/visual_script_flow_control.cpp msgid "for (elem) in (input):" -msgstr "" +msgstr "for (elem) in (input):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable:" @@ -18191,7 +18188,7 @@ msgstr "Argumentos inválidos:" #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" -msgstr "" +msgstr "a se cond, se não b" #: modules/visual_script/visual_script_nodes.cpp msgid "Var Name" @@ -18247,11 +18244,11 @@ msgstr "Obter Árvore de Cenas" #: modules/visual_script/visual_script_nodes.cpp msgid "Get Self" -msgstr "Obter Sí Mesmo" +msgstr "Obter Si Mesmo" #: modules/visual_script/visual_script_nodes.cpp msgid "CustomNode" -msgstr "" +msgstr "Nó Personalizado" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -18269,7 +18266,7 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "SubCall" -msgstr "" +msgstr "Sub-Chamada" #: modules/visual_script/visual_script_nodes.cpp scene/gui/graph_node.cpp msgid "Title" @@ -18301,11 +18298,11 @@ msgstr "Buscar VisualScript" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Yield" -msgstr "" +msgstr "Aguardar Retorno" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "Esperar" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Next Frame" @@ -18325,7 +18322,7 @@ msgstr "Tempo de Espera" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "WaitSignal" -msgstr "" +msgstr "EsperarSinal" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "WaitNodeSignal" @@ -18341,7 +18338,7 @@ msgstr "Modo de Escrita" #: modules/webrtc/webrtc_data_channel.h msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: modules/webrtc/webrtc_data_channel.h msgid "Max Channel In Buffer (KB)" @@ -18381,7 +18378,7 @@ msgstr "Servidor WebSocket" #: modules/websocket/websocket_server.cpp msgid "Bind IP" -msgstr "" +msgstr "Atrelar IP" #: modules/websocket/websocket_server.cpp msgid "Private Key" @@ -18441,11 +18438,11 @@ msgstr "Depurar Keystore" #: platform/android/export/export.cpp msgid "Debug Keystore User" -msgstr "" +msgstr "Usuário da Keystore de Depuração" #: platform/android/export/export.cpp msgid "Debug Keystore Pass" -msgstr "" +msgstr "Senha da Keystore de Depuração" #: platform/android/export/export.cpp msgid "Force System User" @@ -19033,43 +19030,43 @@ msgstr "Telas de Inicialização de Paisagem" #: platform/iphone/export/export.cpp msgid "iPhone 2436 X 1125" -msgstr "IPhone 2436 X 1125" +msgstr "iPhone 2436 X 1125" #: platform/iphone/export/export.cpp msgid "iPhone 2208 X 1242" -msgstr "" +msgstr "iPhone 2208 X 1242" #: platform/iphone/export/export.cpp msgid "iPad 1024 X 768" -msgstr "" +msgstr "iPad 1024 X 768" #: platform/iphone/export/export.cpp msgid "iPad 2048 X 1536" -msgstr "" +msgstr "iPad 2048 X 1536" #: platform/iphone/export/export.cpp msgid "Portrait Launch Screens" -msgstr "" +msgstr "Tela de Apresentação em Retrato" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 960" -msgstr "" +msgstr "iPhone 640 X 960" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 1136" -msgstr "" +msgstr "iPhone 640 X 1136" #: platform/iphone/export/export.cpp msgid "iPhone 750 X 1334" -msgstr "" +msgstr "iPhone 750 X 1334" #: platform/iphone/export/export.cpp msgid "iPhone 1125 X 2436" -msgstr "" +msgstr "iPhone 1125 X 2436" #: platform/iphone/export/export.cpp msgid "iPad 768 X 1024" -msgstr "" +msgstr "iPad 768 X 1024" #: platform/iphone/export/export.cpp msgid "iPad 1536 X 2048" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 906d6aee71..9e2d8b5c96 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -20,13 +20,15 @@ # Psynt <nichita@cadvegra.com>, 2022. # Ilie Adrian Avramescu <himark1977@protonmail.com>, 2022. # Andres Ene <grassiscomplex420@gmail.com>, 2022. +# Claudiu Ceia <claudiu.ceia@gmail.com>, 2022. +# Random Videos <istudordanadenis@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-22 20:37+0000\n" -"Last-Translator: Andres Ene <grassiscomplex420@gmail.com>\n" +"PO-Revision-Date: 2023-01-13 03:04+0000\n" +"Last-Translator: Random Videos <istudordanadenis@gmail.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/" "godot/ro/>\n" "Language: ro\n" @@ -35,7 +37,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -66,9 +68,8 @@ msgid "Delta Smoothing" msgstr "Netezirea Delta" #: core/bind/core_bind.cpp -#, fuzzy msgid "Low Processor Usage Mode" -msgstr "Mod Mutare" +msgstr "Mod utilizare redusă a procesorului" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode Sleep (µsec)" @@ -225,18 +226,16 @@ msgstr "Date" #: modules/gdscript/language_server/gdscript_language_server.cpp #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Network" -msgstr "Analizator Network" +msgstr "Rețea" #: core/io/file_access_network.cpp -#, fuzzy msgid "Remote FS" -msgstr "Ștergeți" +msgstr "Sistem de fișiere (FS) la distanță" #: core/io/file_access_network.cpp msgid "Page Size" -msgstr "Marime Pagina" +msgstr "Mărime Pagina" #: core/io/file_access_network.cpp msgid "Page Read Ahead" @@ -248,29 +247,27 @@ msgstr "Mod de blocare Activat" #: core/io/http_client.cpp msgid "Connection" -msgstr "Conexie" +msgstr "Conexiune" #: core/io/http_client.cpp msgid "Read Chunk Size" -msgstr "" +msgstr "Dimensiunea fragmentului de citire" #: core/io/marshalls.cpp msgid "Object ID" msgstr "ID Obiect" #: core/io/multiplayer_api.cpp core/io/packet_peer.cpp -#, fuzzy msgid "Allow Object Decoding" -msgstr "Activează Onion Skinning" +msgstr "Permite Decodarea Obiectelor" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp msgid "Refuse New Network Connections" msgstr "Refuza Conexiuni noi pe retea" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Network Peer" -msgstr "Analizator Network" +msgstr "Peer de Rețea" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp msgid "Root Node" @@ -286,15 +283,15 @@ msgstr "Mod Transfer" #: core/io/packet_peer.cpp msgid "Encode Buffer Max Size" -msgstr "" +msgstr "Dimensiunea Maximă a Bufferului de Encodare" #: core/io/packet_peer.cpp msgid "Input Buffer Max Size" -msgstr "" +msgstr "Dimensiunea Maximă a Bufferului de Intrare" #: core/io/packet_peer.cpp msgid "Output Buffer Max Size" -msgstr "" +msgstr "Dimensiunea Maximă a Bufferului de Ieșire" #: core/io/packet_peer.cpp msgid "Stream Peer" @@ -302,11 +299,11 @@ msgstr "Fluxul Peer" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "Big Endian" #: core/io/stream_peer.cpp msgid "Data Array" -msgstr "" +msgstr "Matrice Date" #: core/io/stream_peer_ssl.cpp msgid "Blocking Handshake" @@ -367,9 +364,8 @@ msgid "Seed" msgstr "Semințe" #: core/math/random_number_generator.cpp -#, fuzzy msgid "State" -msgstr "Mod Rotație" +msgstr "State" #: core/message_queue.cpp msgid "Message Queue" @@ -377,17 +373,15 @@ msgstr "Coada de mesaje" #: core/message_queue.cpp msgid "Max Size (KB)" -msgstr "" +msgstr "Dimensiune maximă (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Mod Mutare" +msgstr "Mod Maus" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Șterge Intrare(Input)" +msgstr "Utilizează Intrarea (Input) Acumulată" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -411,9 +405,8 @@ msgid "Meta" msgstr "Meta" #: core/os/input_event.cpp -#, fuzzy msgid "Command" -msgstr "Comunitate" +msgstr "Comandă" #: core/os/input_event.cpp #, fuzzy @@ -444,9 +437,8 @@ msgid "Echo" msgstr "Ecou" #: core/os/input_event.cpp scene/gui/base_button.cpp -#, fuzzy msgid "Button Mask" -msgstr "Adaugă în Grup" +msgstr "Mască Buton" #: core/os/input_event.cpp scene/2d/node_2d.cpp scene/gui/control.cpp msgid "Global Position" @@ -457,9 +449,8 @@ msgid "Factor" msgstr "Factor" #: core/os/input_event.cpp -#, fuzzy msgid "Button Index" -msgstr "Mod În Jur" +msgstr "Indice Buton" #: core/os/input_event.cpp msgid "Doubleclick" @@ -498,9 +489,8 @@ msgid "Axis Value" msgstr "Valoarea Axei" #: core/os/input_event.cpp modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Index" -msgstr "Mod În Jur" +msgstr "Indice" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: modules/visual_script/visual_script_nodes.cpp @@ -518,29 +508,26 @@ msgid "Delta" msgstr "Delta" #: core/os/input_event.cpp -#, fuzzy msgid "Channel" -msgstr "Schimbați" +msgstr "Canal" #: core/os/input_event.cpp main/main.cpp -#, fuzzy msgid "Message" -msgstr "Sincronizează Modificările Scriptului" +msgstr "Mesaj" #: core/os/input_event.cpp -#, fuzzy msgid "Pitch" -msgstr "Dimensiune:" +msgstr "Înclinație" #: core/os/input_event.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/physics_body_2d.cpp scene/3d/cpu_particles.cpp #: scene/3d/physics_body.cpp scene/resources/particles_material.cpp msgid "Velocity" -msgstr "" +msgstr "Viteză (velocity)" #: core/os/input_event.cpp msgid "Instrument" -msgstr "" +msgstr "Instrument" #: core/os/input_event.cpp msgid "Controller Number" @@ -553,19 +540,16 @@ msgstr "Valoarea controlerului" #: core/project_settings.cpp editor/editor_node.cpp main/main.cpp #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Application" -msgstr "Acțiune" +msgstr "Aplicație" #: core/project_settings.cpp main/main.cpp -#, fuzzy msgid "Config" -msgstr "Configurare Snap" +msgstr "Configurare" #: core/project_settings.cpp -#, fuzzy msgid "Project Settings Override" -msgstr "Setări proiect..." +msgstr "Suprascriere setări proiect" #: core/project_settings.cpp core/resource.cpp #: editor/animation_track_editor.cpp editor/editor_autoload_settings.cpp @@ -596,29 +580,27 @@ msgstr "Execută" #: core/project_settings.cpp editor/editor_node.cpp #: editor/run_settings_dialog.cpp main/main.cpp msgid "Main Scene" -msgstr "" +msgstr "Scena Principală" #: core/project_settings.cpp -#, fuzzy msgid "Disable stdout" -msgstr "Dezactivat" +msgstr "Dezactivează stdout" #: core/project_settings.cpp -#, fuzzy msgid "Disable stderr" -msgstr "Dezactivat" +msgstr "Dezactivează stderr" #: core/project_settings.cpp msgid "Use Hidden Project Data Directory" -msgstr "" +msgstr "Utilizează directorul de date de proiect ascuns" #: core/project_settings.cpp msgid "Use Custom User Dir" -msgstr "" +msgstr "Utilizează Director de Utilizator Personalizat" #: core/project_settings.cpp msgid "Custom User Dir Name" -msgstr "" +msgstr "Nume de Director de Utilizator Personalizat" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp @@ -631,7 +613,7 @@ msgstr "Afișează Tot" #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp #: scene/3d/label_3d.cpp scene/gui/text_edit.cpp scene/resources/texture.cpp msgid "Width" -msgstr "" +msgstr "Lățime" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/gltf/gltf_node.cpp modules/opensimplex/noise_texture.cpp @@ -640,21 +622,19 @@ msgstr "" #: scene/resources/font.cpp scene/resources/navigation_mesh.cpp #: scene/resources/primitive_meshes.cpp scene/resources/texture.cpp msgid "Height" -msgstr "" +msgstr "Înălțime" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "Mereu Deasupra" #: core/project_settings.cpp -#, fuzzy msgid "Test Width" -msgstr "Stânga liniară" +msgstr "Lățime de Test" #: core/project_settings.cpp -#, fuzzy msgid "Test Height" -msgstr "Se Testează" +msgstr "Înălțime de Test" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -662,9 +642,8 @@ msgid "Audio" msgstr "Sunet" #: core/project_settings.cpp -#, fuzzy msgid "Default Bus Layout" -msgstr "Încarcă Schema de Pistă Audio implicită." +msgstr "Schema de Pistă Audio Implicită" #: core/project_settings.cpp editor/editor_export.cpp #: editor/editor_file_system.cpp editor/editor_node.cpp @@ -687,73 +666,64 @@ msgstr "Căutare în extensii de fișiere" #: core/project_settings.cpp msgid "Script Templates Search Path" -msgstr "" +msgstr "Cale de Căutare pentru Șabloane de Scripturi" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Control versiune" +msgstr "Încărcare Automată de Control al Versiunii la Pornire" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Control versiune" +msgstr "Numele Pluginului de Control al Versiunii" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp -#, fuzzy msgid "Input" -msgstr "Adaugă Intrare(Input)" +msgstr "Intrare (Input)" #: core/project_settings.cpp msgid "UI Accept" -msgstr "" +msgstr "Acceptare (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Select" -msgstr "Selectează" +msgstr "Selectează (UI)" #: core/project_settings.cpp msgid "UI Cancel" -msgstr "Anulare interfață utilizator" +msgstr "Anulare (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Next" -msgstr "Cale focalizare" +msgstr "Focalizează Urmatorul (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Prev" -msgstr "Cale focalizare" +msgstr "Focalizează Anteriorul (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Left" -msgstr "Mod Rotație" +msgstr "Stânga (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Right" -msgstr "Rotație poligon" +msgstr "Dreapta (UI)" #: core/project_settings.cpp msgid "UI Up" -msgstr "" +msgstr "Sus (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Down" -msgstr "Descarcă" +msgstr "JUos (UI)" #: core/project_settings.cpp msgid "UI Page Up" -msgstr "Pagina UI în sus" +msgstr "Pagina Ssus (UI)" #: core/project_settings.cpp msgid "UI Page Down" -msgstr "" +msgstr "Pagină Jos (UI)" #: core/project_settings.cpp msgid "UI Home" @@ -783,7 +753,7 @@ msgstr "Cadru Fizic %" #: scene/3d/physics_body.cpp scene/resources/world.cpp #: servers/physics/space_sw.cpp servers/physics_server.cpp msgid "3D" -msgstr "" +msgstr "3D" #: core/project_settings.cpp #, fuzzy @@ -800,7 +770,7 @@ msgstr "Creează un Frate de Coliziune Trimesh" #: scene/main/viewport.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Rendering" -msgstr "" +msgstr "Randare" #: core/project_settings.cpp drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp @@ -850,17 +820,16 @@ msgid "Max Functions" msgstr "Faceți Funcția" #: core/project_settings.cpp scene/3d/vehicle_body.cpp -#, fuzzy msgid "Compression" -msgstr "Setare expresie" +msgstr "Compresie" #: core/project_settings.cpp msgid "Formats" -msgstr "" +msgstr "Formate" #: core/project_settings.cpp msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" @@ -905,11 +874,11 @@ msgstr "Pachet Peer Stream" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "Buffer Maxim (Putere de-a lui 2)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" -msgstr "" +msgstr "SSL" #: core/register_core_types.cpp main/main.cpp #, fuzzy @@ -941,7 +910,7 @@ msgstr "Resursă" #: core/translation.cpp editor/project_settings_editor.cpp msgid "Locale" -msgstr "" +msgstr "Local" #: core/translation.cpp #, fuzzy @@ -986,17 +955,17 @@ msgstr "EiB" #: drivers/gles3/rasterizer_scene_gles3.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp modules/gltf/gltf_state.cpp msgid "Buffers" -msgstr "" +msgstr "Buffere" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Buffer Size (KB)" -msgstr "" +msgstr "Dimensiune Buffer Poligon de Canvas (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Index Buffer Size (KB)" -msgstr "" +msgstr "Dimensiune Indice Buffer Poligon de Canvas (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp editor/editor_settings.cpp @@ -1040,11 +1009,11 @@ msgstr "Utilizarea eșantionării bicubice" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Numărul Maxim de Elemente Care se Pot Randa" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "Numărul Maxim de Lumini Care se Pot Randa" #: drivers/gles3/rasterizer_scene_gles3.cpp #, fuzzy @@ -1053,7 +1022,7 @@ msgstr "Centrează Selecția" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "Numărul Maxim de Lumini per Obiect" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" @@ -1087,7 +1056,7 @@ msgstr "" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" -msgstr "" +msgstr "Calitate Înaltă" #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Blend Shape Max Buffer Size (KB)" @@ -1190,7 +1159,7 @@ msgstr "Rotație" #: editor/animation_track_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_nodes.cpp scene/gui/range.cpp msgid "Value" -msgstr "" +msgstr "Valoare" #: editor/animation_track_editor.cpp #, fuzzy @@ -1200,14 +1169,14 @@ msgstr "Cantitate:" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Argumente" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp #: modules/gltf/gltf_light.cpp modules/visual_script/visual_script_nodes.cpp #: scene/3d/physics_body.cpp scene/resources/visual_shader_nodes.cpp msgid "Type" -msgstr "" +msgstr "Tip" #: editor/animation_track_editor.cpp #, fuzzy @@ -1380,7 +1349,7 @@ msgstr "Dimensiune:" #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Type:" -msgstr "" +msgstr "Tip:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1646,7 +1615,7 @@ msgstr "Anim Mutați Cheie" #: servers/camera/camera_feed.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Transform" -msgstr "" +msgstr "Transformă" #: editor/animation_track_editor.cpp editor/editor_help.cpp msgid "Methods" @@ -2667,7 +2636,7 @@ msgstr "Nume nevalid." #: editor/editor_autoload_settings.cpp msgid "Cannot begin with a digit." -msgstr "" +msgstr "Nu poate începe cu o cifră" #: editor/editor_autoload_settings.cpp msgid "Valid characters:" @@ -2949,7 +2918,7 @@ msgstr "Culoare uniformă." #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 de biți" #: editor/editor_export.cpp msgid "Embed PCK" @@ -3207,6 +3176,8 @@ msgstr "Opțiunii Extra:" #: editor/editor_feature_profile.cpp msgid "Create or import a profile to edit available classes and properties." msgstr "" +"Creează sau importă un profil pentru a edita clasele si proprietățile " +"disponibile" #: editor/editor_feature_profile.cpp msgid "New profile name:" @@ -3347,7 +3318,7 @@ msgstr "Comutați Fișiere Ascunse" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" -msgstr "" +msgstr "Opreste suprascrierea avertizărilor" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3496,7 +3467,7 @@ msgstr "Proprietățile Temei" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/gradient.cpp msgid "Colors" -msgstr "" +msgstr "Culori" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constants" @@ -3504,16 +3475,16 @@ msgstr "Constante" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Fonts" -msgstr "" +msgstr "Fonturi" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp #: platform/iphone/export/export.cpp msgid "Icons" -msgstr "" +msgstr "Icoană" #: editor/editor_help.cpp msgid "Styles" -msgstr "" +msgstr "Stiluri" #: editor/editor_help.cpp msgid "Enumerations" @@ -3645,7 +3616,7 @@ msgstr "Proprietate:" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp msgid "Label" -msgstr "" +msgstr "Etichetă" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp #: scene/resources/default_theme/default_theme.cpp @@ -4213,14 +4184,14 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Nu a putut fi încărcat scriptul add-on din calea: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s'. This might be due to a code " "error in that script.\n" "Disabling the addon at '%s' to prevent further errors." msgstr "" "Imposibil de încărcat scriptul addon din cale: '%s' Se pare că există o " -"eroare în cod, verificați sintaxa." +"eroare în cod, verificați sintaxa.\n" +"Dezactivez addon-ul de la '%s' pentru a preveni erori ulterioare." #: editor/editor_node.cpp msgid "" @@ -7317,9 +7288,8 @@ msgid "Generating Lightmaps" msgstr "Se Genereaza Lightmaps" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "Se Generează pentru Mesh: " +msgstr "Se Generează pentru Mesh:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -8967,36 +8937,32 @@ msgid "Center Top" msgstr "Centrează Selecția" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Center Right" -msgstr "Rotație poligon" +msgstr "Centrează Dreapta" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Center Bottom" -msgstr "Centrează Selecția" +msgstr "Centrează Jos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center" -msgstr "" +msgstr "Centrează" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Left Wide" -msgstr "Stânga liniară" +msgstr "Stânga Lat" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Wide" -msgstr "" +msgstr "Sus Lat" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Right Wide" -msgstr "Dreapta liniară" +msgstr "Dreapta Lat" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Wide" -msgstr "" +msgstr "Jos Lat" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "VCenter Wide" @@ -9032,6 +8998,9 @@ msgid "" "Project Camera Override\n" "Overrides the running project's camera with the editor viewport camera." msgstr "" +"Suprascrierea Camerei de Proiect\n" +"Suprascrie camera proiectului care rulează cu camera de vizualizare a " +"editorului." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9040,48 +9009,45 @@ msgid "" "No project instance running. Run the project from the editor to use this " "feature." msgstr "" +"Suprascrierea Camerei de Proiect\n" +"Nicio instanță de proiect nu rulează. Rulați proiectul din editor pentru a " +"utiliza această caracteristică." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected" -msgstr "Selectează" +msgstr "Blochează Selecția" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock Selected" -msgstr "" +msgstr "Deblochează Selecția" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected" -msgstr "Elminați Selecția" +msgstr "Grupează Selecția" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected" -msgstr "Elminați Selecția" +msgstr "Degrupați selecția" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Lipește Postura" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Guides" -msgstr "Curăță Postura" +msgstr "Elimină Ghidurile" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Create Custom Bone(s) from Node(s)" -msgstr "Creează Puncte de Emisie Din Mesh" +msgstr "Crează Oase personalizate din Noduri" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Bones" -msgstr "Curăță Postura" +msgstr "Elimină Oase" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -9112,36 +9078,31 @@ msgstr "Selectare mod" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Drag: Rotate selected node around pivot." -msgstr "Ștergeți pista selectată." +msgstr "Trage: Rotește nodul selectat în jurul pivotului." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Move selected node." -msgstr "Alt+Trage: Mutare" +msgstr "Alt+Trage: Mută nodul selectat." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Scale selected node." -msgstr "Alt+Trage: Mutare" +msgstr "Alt+Trage: Scalează nodul selectat." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "V: Set selected node's pivot position." -msgstr "Ștergeți pista selectată." +msgstr "V: Setează poziția pivotului nodului selectat." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "" -"Arată o listă a tuturor obiectelor la poziția clickului\n" -"(similar cu Alt+RMB în modul selectare)." +"Alt+RMB: Arată o listă a tuturor nodurilor la poziția clickului, inclusiv " +"cele blocate." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "RMB: Add node at position clicked." -msgstr "" +msgstr "RMB: Adaugă nod la poziția clickului." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9155,13 +9116,12 @@ msgstr "Mod Rotație" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Mod Redimensionare (R)" +msgstr "Mod Redimensionare" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Shift: Scale proportionally." -msgstr "" +msgstr "Shift: Redimensionare proporțională." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9189,21 +9149,18 @@ msgid "Toggle smart snapping." msgstr "Comutați fixarea inteligentă." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Use Smart Snap" -msgstr "Utilizează Snap" +msgstr "Utilizează Snap Inteligent" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle grid snapping." msgstr "Comutare grilă fixare." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Use Grid Snap" -msgstr "Snap Grilă" +msgstr "Utilizează Snap Grilă" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping Options" msgstr "Opțiuni Snapping" @@ -9212,9 +9169,8 @@ msgid "Use Rotation Snap" msgstr "Folosește Rotația Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Use Scale Snap" -msgstr "Utilizează Snap" +msgstr "Utilizează Snap Redimensionare" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" @@ -9225,9 +9181,8 @@ msgid "Use Pixel Snap" msgstr "Utilizează Pixel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Smart Snapping" -msgstr "Snapping inteligent" +msgstr "Snapping Inteligent" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9235,34 +9190,28 @@ msgid "Configure Snap..." msgstr "Configurare Snap..." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Parent" -msgstr "Snap către părinte" +msgstr "Snap către Părinte" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Node Anchor" -msgstr "Snap către ancora nodului" +msgstr "Snap către Ancora Nodului" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Node Sides" -msgstr "Snap pe fețele nodului" +msgstr "Snap pe Fețele Nodului" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Node Center" -msgstr "Snap către ancora nodului" +msgstr "Snap către Centrul Nodului" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Other Nodes" -msgstr "Snap către alte noduri" +msgstr "Snap către Alte Noduri" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Guides" -msgstr "Snap pe ghizi" +msgstr "Snap pe Ghiduri" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9271,9 +9220,8 @@ msgstr "Imobilizează obiectul selectat (nu poate fi mișcat)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected Node(s)" -msgstr "Selectează" +msgstr "Blochează Nodurile Selectate" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9282,9 +9230,8 @@ msgstr "Remobilizează obiectul selectat (poate fi mișcat)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Unlock Selected Node(s)" -msgstr "Selectează" +msgstr "Deblochează Nodurile Selectate" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9293,9 +9240,8 @@ msgstr "Asigură-te că nu pot fi selectați copiii obiectului." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected Node(s)" -msgstr "Elminați Selecția" +msgstr "Grupează Nodurile Selectate" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9304,14 +9250,12 @@ msgstr "Restaurează abilitatea copiilor obiectului de a fi selectați." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "Elminați Selecția" +msgstr "Degrupează Nodurile Selectate" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Singleton (Unicat)" +msgstr "Opțiuni Schelet" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -9322,9 +9266,8 @@ msgid "Make Custom Bone(s) from Node(s)" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Custom Bones" -msgstr "Curăță Oasele" +msgstr "Curăță Oasele Personalizate" #. TRANSLATORS: Noun, name of the 2D/3D View menus. #: editor/plugins/canvas_item_editor_plugin.cpp @@ -9333,23 +9276,20 @@ msgid "View" msgstr "Perspectivă" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show" -msgstr "Arată Grila" +msgstr "Arată" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show When Snapping" -msgstr "Snapping inteligent" +msgstr "Arată Când Faci Snap" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "Ascunde" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid" -msgstr "Comutare mod" +msgstr "Comutare Grilă" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -9378,7 +9318,7 @@ msgstr "Arată Fereastra de Lucru" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Arată Pictogramele de Grupare și Blocare" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -9390,7 +9330,7 @@ msgstr "Încadrează în Ecran Selecția" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" -msgstr "" +msgstr "Previzualizare Scară Canvas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Layout" @@ -9421,14 +9361,12 @@ msgid "" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Anim Inserați Cheie" +msgstr "Inserare Automată a Cheii" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Animation Key and Pose Options" -msgstr "Lungime Animație (în secunde)" +msgstr "Optiuni pentru Chei Animație și Postură" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -9443,9 +9381,8 @@ msgid "Clear Pose" msgstr "Curăță Postura" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Add Node Here" -msgstr "Adaugă punct" +msgstr "Adaugă Nod Aici" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -9467,49 +9404,43 @@ msgstr "Perspectivă Snap" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 3.125%" -msgstr "" +msgstr "Magnificare la 3.125%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 6.25%" -msgstr "" +msgstr "Magnificare la 6.25%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 12.5%" -msgstr "" +msgstr "Magnificare la 12.5%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 25%" -msgstr "Departare" +msgstr "Magnificare la 25%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 50%" -msgstr "Departare" +msgstr "Magnificare la 50%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 100%" -msgstr "Departare" +msgstr "Magnificare la 100%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 200%" -msgstr "Departare" +msgstr "Magnificare la 200%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 400%" -msgstr "Departare" +msgstr "Magnificare la 400%" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Zoom to 800%" -msgstr "Departare" +msgstr "Magnificare la 800%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 1600%" -msgstr "" +msgstr "Magnificare la 1600%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Adding %s..." @@ -9530,9 +9461,8 @@ msgid "Error instancing scene from %s" msgstr "Eroare la instanțierea scenei din %s" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change Default Type" -msgstr "Schimbă tipul implicit" +msgstr "Schimbă Tipul Implicit" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -9543,9 +9473,8 @@ msgstr "" "Trage & lasă + Shift: Schimbă tipul nodului" #: editor/plugins/collision_polygon_editor_plugin.cpp -#, fuzzy msgid "Create Polygon3D" -msgstr "Crează Poligon" +msgstr "Crează Poligon3D" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly" @@ -9595,7 +9524,7 @@ msgstr "Mască de Emisie" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Solid Pixels" -msgstr "" +msgstr "Pixeli Solizi" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp @@ -9618,9 +9547,8 @@ msgid "Emission Colors" msgstr "Culori de Emisie" #: editor/plugins/cpu_particles_editor_plugin.cpp -#, fuzzy msgid "CPUParticles" -msgstr "Particule" +msgstr "ParticuleCPU" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -9667,29 +9595,24 @@ msgid "Load Curve Preset" msgstr "Încarcă Presetare a Curbei" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Add Point" -msgstr "Adaugă punct" +msgstr "Adaugă Punct" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Remove Point" -msgstr "Elimină punct" +msgstr "Elimină Punct" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Left Linear" -msgstr "Stânga liniară" +msgstr "Stânga Liniară" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Right Linear" -msgstr "Dreapta liniară" +msgstr "Dreapta Liniară" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Load Preset" -msgstr "Încarcă presetare" +msgstr "Încarcă Presetare" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -9704,9 +9627,8 @@ msgid "Hold Shift to edit tangents individually" msgstr "Ține apăsat Shift pentru a edita individual tangentele" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Right click to add point" -msgstr "Click Drept: Ștergere punct" +msgstr "Click dreapta pentru adăugare punct" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" @@ -9714,7 +9636,7 @@ msgstr "Procesează Sonda GI" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" -msgstr "" +msgstr "Gradient Dditat" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap GradientTexture2D Fill Points" @@ -9735,18 +9657,18 @@ msgstr "Comutare mod" #: scene/gui/rich_text_label.cpp scene/gui/text_edit.cpp #: scene/resources/primitive_meshes.cpp msgid "Text" -msgstr "" +msgstr "Text" #: editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp main/main.cpp #: platform/osx/export/export.cpp platform/windows/export/export.cpp #: scene/gui/button.cpp scene/gui/item_list.cpp msgid "Icon" -msgstr "" +msgstr "Pictogramă" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -11288,7 +11210,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" @@ -18656,14 +18578,12 @@ msgid "Var Name" msgstr "Nume" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableGet not found in script:" -msgstr "Metoda nu a fost găsită în obiect: " +msgstr "VariableGet nu a fost găsită în obiect:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableSet not found in script:" -msgstr "Metoda nu a fost găsită în obiect: " +msgstr "Metoda VariableSet nu a fost găsită în obiect:" #: modules/visual_script/visual_script_nodes.cpp msgid "Preload" @@ -19354,11 +19274,8 @@ msgid "Signing debug %s..." msgstr "" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Signing release %s..." -msgstr "" -"Se Scanează Fișierele,\n" -"Te Rog Așteaptă..." +msgstr "Se semnează release-ul %s..." #: platform/android/export/export_plugin.cpp msgid "Could not find keystore, unable to export." diff --git a/editor/translations/ru.po b/editor/translations/ru.po index d746bb61ad..97e9723383 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -11029,7 +11029,7 @@ msgstr "Задний перспективный" msgid " [auto]" msgstr " [авто]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [порталы активны]" diff --git a/editor/translations/si.po b/editor/translations/si.po index d0fcba8cfd..af22d7b2d2 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -10744,7 +10744,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 43c2fa6b5b..4f4e1107f3 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -12,13 +12,14 @@ # Anonymous <noreply@weblate.org>, 2020. # Mario-projects-dev <m.vitek.mv@gmail.com>, 2021. # Eliška Fichnová <eliska@fichna.sk>, 2021. +# Adam Švidroň <adsvidro@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-07-07 15:34+0000\n" -"Last-Translator: Eliška Fichnová <eliska@fichna.sk>\n" +"PO-Revision-Date: 2022-12-21 07:01+0000\n" +"Last-Translator: Adam Švidroň <adsvidro@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" "Language: sk\n" @@ -26,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.8-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -34,7 +35,7 @@ msgstr "" #: core/bind/core_bind.cpp msgid "Clipboard" -msgstr "" +msgstr "Schránka" #: core/bind/core_bind.cpp #, fuzzy @@ -11289,7 +11290,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 864dac1b8d..3605bbeaf5 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -11456,7 +11456,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 1215b7dbcb..e4d3ef6732 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -11222,7 +11222,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 419e33c494..c2d0ffe462 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -12040,7 +12040,7 @@ msgstr "Перспективна пројекција" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 7973756c7e..5693d06931 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -10752,7 +10752,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 04965e6c69..dff36498be 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -25,15 +25,16 @@ # Leon <joel.lundborg@gmail.com>, 2021, 2022. # Kent Jofur <kent.jofur@gmail.com>, 2021. # Alex25820 <alexs25820@gmail.com>, 2021. -# Björn Åkesson <bjorn.akesson@gmail.com>, 2022. +# Björn Åkesson <bjorn.akesson@gmail.com>, 2022, 2023. # Kenny Andersson <kenny@ordinary.se>, 2022. +# Ludvig Svenonius <ludvig.svenonius@protonmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-09-29 19:16+0000\n" -"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n" +"PO-Revision-Date: 2023-01-20 11:20+0000\n" +"Last-Translator: Ludvig Svenonius <ludvig.svenonius@protonmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/" "godot/sv/>\n" "Language: sv\n" @@ -41,7 +42,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.15.1\n" #: core/bind/core_bind.cpp main/main.cpp #, fuzzy @@ -704,9 +705,8 @@ msgid "Script Templates Search Path" msgstr "Sökväg för skriptmallar" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Versionshantering" +msgstr "Automatisk Inläsning av Versionskontroll vid Start" #: core/project_settings.cpp #, fuzzy @@ -8287,7 +8287,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Autoplay on Load" -msgstr "" +msgstr "Spela upp automatiskt efter inladdning" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" @@ -11363,7 +11363,7 @@ msgstr "Perspektiv" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" @@ -15031,19 +15031,19 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Physical Key" -msgstr "" +msgstr "Fysisk tangent" #: editor/project_settings_editor.cpp msgid "Key " -msgstr "Nyckel " +msgstr "Tangent " #: editor/project_settings_editor.cpp msgid "Joy Button" -msgstr "" +msgstr "Styrspaksknapp" #: editor/project_settings_editor.cpp msgid "Joy Axis" -msgstr "" +msgstr "Styrspaksaxel" #: editor/project_settings_editor.cpp msgid "Mouse Button" @@ -15072,9 +15072,8 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "All Devices" -msgstr "Enhet" +msgstr "Alla Enheter" #: editor/project_settings_editor.cpp msgid " (Physical)" @@ -20908,11 +20907,11 @@ msgstr "" #: scene/2d/area_2d.cpp scene/3d/area.cpp msgid "Monitoring" -msgstr "" +msgstr "Övervakning" #: scene/2d/area_2d.cpp scene/3d/area.cpp msgid "Monitorable" -msgstr "" +msgstr "Övervakningsbar" #: scene/2d/area_2d.cpp scene/3d/area.cpp #, fuzzy @@ -20985,7 +20984,7 @@ msgstr "Slå på/av Autoplay" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp msgid "Stream Paused" -msgstr "" +msgstr "Pausad" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/3d/light.cpp scene/3d/reflection_probe.cpp @@ -25655,39 +25654,32 @@ msgid "Swap OK Cancel" msgstr "Avbryt" #: scene/register_scene_types.cpp -#, fuzzy msgid "Layer Names" -msgstr "Namn" +msgstr "Skiktnamn" #: scene/register_scene_types.cpp -#, fuzzy msgid "2D Render" -msgstr "Renderare:" +msgstr "2D-Rendering" #: scene/register_scene_types.cpp -#, fuzzy msgid "3D Render" -msgstr "Renderare:" +msgstr "3D-Rendering" #: scene/register_scene_types.cpp -#, fuzzy msgid "2D Physics" -msgstr "Fysik Bildruta %" +msgstr "2D-Fysik" #: scene/register_scene_types.cpp -#, fuzzy msgid "3D Physics" -msgstr "Fysik Bildruta %" +msgstr "3D-Fysik" #: scene/register_scene_types.cpp -#, fuzzy msgid "2D Navigation" -msgstr "Animations-Node" +msgstr "2D-Navigation" #: scene/register_scene_types.cpp -#, fuzzy msgid "3D Navigation" -msgstr "Animations-Node" +msgstr "3D-Navigation" #: scene/register_scene_types.cpp msgid "Use hiDPI" diff --git a/editor/translations/te.po b/editor/translations/te.po index 22474ca4ba..f8a1f82710 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -10590,7 +10590,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 5f4ee76a4d..c41428e6d1 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -11270,7 +11270,7 @@ msgstr "เพอร์สเปกทีฟ" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/tl.po b/editor/translations/tl.po index 670e52056d..fa5f9a9aea 100644 --- a/editor/translations/tl.po +++ b/editor/translations/tl.po @@ -10910,7 +10910,7 @@ msgstr "" msgid " [auto]" msgstr " [kusa]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [mga aktibong portal]" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index ac4b509150..73fbaec2cb 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -11032,7 +11032,7 @@ msgstr "Arka Perspektif" msgid " [auto]" msgstr " [Oto]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [portallar aktif]" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index f9a6c787a5..a8d989d5ee 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -17,21 +17,23 @@ # Микола Тимошенко <9081@ukr.net>, 2020. # Miroslav <zinmirx@gmail.com>, 2020. # IllusiveMan196 <hamsterrv@gmail.com>, 2021, 2022. -# KazanskiyMaks <kazanskiy.maks@gmail.com>, 2022. +# KazanskiyMaks <kazanskiy.maks@gmail.com>, 2022, 2023. # Мирослав <hlopukmyroslav@gmail.com>, 2022. # Ostap <ostapbataj79@gmail.com>, 2022. # Wald Sin <naaveranos@gmail.com>, 2022. # Гліб Соколов <ramithes@i.ua>, 2022. # Max Donchenko <maxx.donchenko@gmail.com>, 2022. # Artem <artem@molotov.work>, 2022. -# Teashrock <kajitsu22@gmail.com>, 2022. +# Teashrock <kajitsu22@gmail.com>, 2022, 2023. +# kirill7606 <k7606irill@gmail.com>, 2022. +# Alex <anna.loban@yahoo.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-03 12:44+0000\n" -"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" +"PO-Revision-Date: 2023-01-08 09:47+0000\n" +"Last-Translator: KazanskiyMaks <kazanskiy.maks@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" "Language: uk\n" @@ -40,7 +42,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -60,27 +62,27 @@ msgstr "Код виходу" #: core/bind/core_bind.cpp msgid "V-Sync Enabled" -msgstr "Увімкнено верт. синхронізацію" +msgstr "Увімкнено вертикальну синхронізацію" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" -msgstr "Верт. синхр. через засіб композиції" +msgstr "Вертикальна синхронізація через засіб композиції" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" -msgstr "Згладжування різниці" +msgstr "Дельта-згладжування" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode" -msgstr "Режим низького споживання процесора" +msgstr "Режим низького використання процесора" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode Sleep (µsec)" -msgstr "Присипляння у режимі низького споживання процесора (мкс)" +msgstr "Час сну в режимі низького використання процесора (мкс)" #: core/bind/core_bind.cpp main/main.cpp platform/uwp/os_uwp.cpp msgid "Keep Screen On" -msgstr "Залишити зневаджувач відкритим" +msgstr "Не вимикати екран" #: core/bind/core_bind.cpp msgid "Min Window Size" @@ -4533,7 +4535,7 @@ msgstr "Перезавантажити поточний проєкт" #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "Вийти в список проєктів" +msgstr "Вийти до списку проєктів" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" @@ -5496,9 +5498,8 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Додаткові кнопки миші для навігації журналом" #: editor/editor_settings.cpp -#, fuzzy msgid "Drag And Drop Selection" -msgstr "Перетягніть виділене" +msgstr "Виділення Drag And Drop" #: editor/editor_settings.cpp msgid "Stay In Script Editor On Node Selected" @@ -10955,7 +10956,7 @@ msgstr "Задній перспективний" msgid " [auto]" msgstr " [авто]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [портали активні]" @@ -14219,17 +14220,15 @@ msgid "Invalid project path (changed anything?)." msgstr "Некоректний шлях до проєкту (щось змінилося?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." msgstr "" -"Не вдалося завантажити project.godot у каталозі проєкту (помилка %d). " -"Можливо, файл вилучено або пошкоджено." +"Не вдалося завантажити проєкт у '%s' (помилка %d). Можливо, файл вилучено " +"або пошкоджено." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "Не вдалося відкрити проєкт у «%s»." +msgstr "Не вдалося зберегти проєкт у '%s' (помилка %d)." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -15272,18 +15271,16 @@ msgid "Make Local" msgstr "Зробити локальним" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Enable Scene Unique Name(s)" -msgstr "Увімкнути унікальну назву сцени" +msgstr "Увімкнути Унікальні Назви Сцен(и)" #: editor/scene_tree_dock.cpp msgid "Unique names already used by another node in the scene:" msgstr "Цю унікальну назву у сцені вже використано іншим вузлом:" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Disable Scene Unique Name(s)" -msgstr "Вимкнути унікальна назва сцени" +msgstr "Вимкнути Унікальні Назви Сцен(и)" #: editor/scene_tree_dock.cpp msgid "New Scene Root" @@ -16315,7 +16312,7 @@ msgstr "Середовище" #: main/main.cpp msgid "Default Clear Color" -msgstr "Типовий колір очищення" +msgstr "Типовий чистий колір" #: main/main.cpp msgid "Boot Splash" @@ -16848,12 +16845,10 @@ msgid "Sparse Indices Component Type" msgstr "Тип компонентів індексів розсіювання" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Sparse Values Buffer View" -msgstr "Буферне подання розріджених значень" +msgstr "Перегляд буфера розріджених значень" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Sparse Values Byte Offset" msgstr "Зміщення байтів розріджених значень" @@ -16879,7 +16874,7 @@ msgstr "Розмір поля зору" #: modules/gltf/gltf_camera.cpp msgid "Zfar" -msgstr "" +msgstr "Віддалення по Z" #: modules/gltf/gltf_camera.cpp msgid "Znear" @@ -16982,20 +16977,22 @@ msgid "Joint I To Name" msgstr "З'єднання I З Іменем" #: modules/gltf/gltf_skin.cpp +#, fuzzy msgid "Godot Skin" -msgstr "" +msgstr "Godot текстура" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Img" -msgstr "" +msgstr "Розсіяне зображення" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Factor" -msgstr "" +msgstr "Фактор розсіювання" #: modules/gltf/gltf_spec_gloss.cpp +#, fuzzy msgid "Gloss Factor" -msgstr "" +msgstr "Фактор блиску" #: modules/gltf/gltf_spec_gloss.cpp msgid "Specular Factor" @@ -17003,7 +17000,7 @@ msgstr "Коефіцієнт дзеркальності" #: modules/gltf/gltf_spec_gloss.cpp msgid "Spec Gloss Img" -msgstr "" +msgstr "Дзеркальне глянцеве зображення" #: modules/gltf/gltf_state.cpp msgid "Json" @@ -17022,8 +17019,9 @@ msgid "GLB Data" msgstr "Дані GLB" #: modules/gltf/gltf_state.cpp +#, fuzzy msgid "Use Named Skin Binds" -msgstr "" +msgstr "Використовуйте іменовані обшивки" #: modules/gltf/gltf_state.cpp msgid "Buffer Views" @@ -17127,7 +17125,7 @@ msgstr "Навігація" #: scene/3d/navigation_mesh_instance.cpp #, fuzzy msgid "Navigation Layers" -msgstr "Поведінка навігації" +msgstr "Навігаційні шари" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Plane" @@ -17292,19 +17290,19 @@ msgstr "Запікати карти освітлення" #: modules/lightmapper_cpu/register_types.cpp msgid "Low Quality Ray Count" -msgstr "" +msgstr "Кількість променів низької якості" #: modules/lightmapper_cpu/register_types.cpp msgid "Medium Quality Ray Count" -msgstr "" +msgstr "Середня якість підрахунку променів" #: modules/lightmapper_cpu/register_types.cpp msgid "High Quality Ray Count" -msgstr "" +msgstr "Висока якість підрахунку променів" #: modules/lightmapper_cpu/register_types.cpp msgid "Ultra Quality Ray Count" -msgstr "" +msgstr "Кількість променів високої якості" #: modules/minimp3/audio_stream_mp3.cpp #: modules/minimp3/resource_importer_mp3.cpp @@ -17315,7 +17313,7 @@ msgstr "Зміщення циклу" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Eye Height" -msgstr "" +msgstr "Висота очей" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "IOD" @@ -17331,7 +17329,7 @@ msgstr "Перегляд без тіней" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Oversample" -msgstr "" +msgstr "Надвибірка" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K1" @@ -17354,19 +17352,16 @@ msgid "Auto Update Project" msgstr "Проєкт без назви" #: modules/mono/godotsharp_dirs.cpp -#, fuzzy msgid "Assembly Name" -msgstr "Показана назва" +msgstr "Назва збірки" #: modules/mono/godotsharp_dirs.cpp -#, fuzzy msgid "Solution Directory" -msgstr "Виберіть каталог" +msgstr "Каталог проєкту" #: modules/mono/godotsharp_dirs.cpp -#, fuzzy msgid "C# Project Directory" -msgstr "Виберіть каталог" +msgstr "Каталог проєкту C#" #: modules/mono/mono_gd/gd_mono_utils.cpp msgid "End of inner exception stack trace" @@ -17516,8 +17511,9 @@ msgid "IGD Service Type" msgstr "Тип служби IGD" #: modules/upnp/upnp_device.cpp +#, fuzzy msgid "IGD Our Addr" -msgstr "" +msgstr "IGD це Наша адреса" #: modules/upnp/upnp_device.cpp msgid "IGD Status" @@ -18314,12 +18310,14 @@ msgid "Optional Features" msgstr "Необов'язкові можливості" #: modules/webxr/webxr_interface.cpp +#, fuzzy msgid "Requested Reference Space Types" -msgstr "" +msgstr "Запитані типи довідкового простору" #: modules/webxr/webxr_interface.cpp +#, fuzzy msgid "Reference Space Type" -msgstr "" +msgstr "Довідка типу простору" #: modules/webxr/webxr_interface.cpp msgid "Visibility State" @@ -18335,7 +18333,7 @@ msgstr "Стандартна прив'язка XR" #: platform/android/export/export.cpp msgid "Android SDK Path" -msgstr "" +msgstr "Шлях Android SDK" #: platform/android/export/export.cpp msgid "Debug Keystore" @@ -18358,8 +18356,9 @@ msgid "Shutdown ADB On Exit" msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Launcher Icons" -msgstr "" +msgstr "Значки панелі запуску" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18367,12 +18366,14 @@ msgid "Main 192 X 192" msgstr "iPhone 120 X 120" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Adaptive Foreground 432 X 432" -msgstr "" +msgstr "адаптивний передній план 432 x 432" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Adaptive Background 432 X 432" -msgstr "" +msgstr "адаптивний задній план(фон) 432 x 432" #: platform/android/export/export_plugin.cpp msgid "Package name is missing." @@ -18447,8 +18448,9 @@ msgid "Release Password" msgstr "Пароль випуску" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "One Click Deploy" -msgstr "" +msgstr "Розгортання в один клік" #: platform/android/export/export_plugin.cpp msgid "Clear Previous Install" @@ -18729,10 +18731,13 @@ msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" "\"Min SDK\" cannot be lower than %d, which is the version needed by the " "Godot library." msgstr "" +"\"Min SDK\" не може бути нижчим за %d, що є версією, необхідною для " +"бібліотеки Godot." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18743,15 +18748,20 @@ msgstr "" "збирання»." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" +"\"Target SDK\" має бути дійсним цілим числом, але отримано \"%s\", яке не є " +"дійсним." #: platform/android/export/export_plugin.cpp msgid "" "\"Target SDK\" %d is higher than the default version %d. This may work, but " "wasn't tested and may be unstable." msgstr "" +"\"Target SDK\" %d вищий за стандартну версію %d. Це може працювати, але це " +"не було перевірено та може бути нестабільним." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18930,8 +18940,9 @@ msgid "The character '%s' is not allowed in Identifier." msgstr "У назві ідентифікатора не можна використовувати символи «%s»." #: platform/iphone/export/export.cpp +#, fuzzy msgid "Landscape Launch Screens" -msgstr "" +msgstr "Альбомні екрани запуску" #: platform/iphone/export/export.cpp #, fuzzy @@ -18954,8 +18965,9 @@ msgid "iPad 2048 X 1536" msgstr "iPad 152 X 152" #: platform/iphone/export/export.cpp +#, fuzzy msgid "Portrait Launch Screens" -msgstr "" +msgstr "Портретні початкові екрани" #: platform/iphone/export/export.cpp #, fuzzy @@ -18994,15 +19006,16 @@ msgstr "iPhone 120 X 120" #: platform/iphone/export/export.cpp msgid "App Store Team ID" -msgstr "" +msgstr "Ідентифікатор команди App Store" #: platform/iphone/export/export.cpp +#, fuzzy msgid "Provisioning Profile UUID Debug" -msgstr "" +msgstr "Налагодження профілю UUID" #: platform/iphone/export/export.cpp msgid "Code Sign Identity Debug" -msgstr "" +msgstr "Налагодження ідентифікації коду" #: platform/iphone/export/export.cpp msgid "Export Method Debug" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 1046f11996..bc15a001c9 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -10936,7 +10936,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index b4a5f4494b..0ff37e659e 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -11119,7 +11119,7 @@ msgstr "Phối cảnh" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 52f072e946..5b58752f63 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -92,7 +92,7 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-12-05 08:51+0000\n" +"PO-Revision-Date: 2022-12-28 00:54+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -101,7 +101,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -145,15 +145,15 @@ msgstr "屏幕常亮" #: core/bind/core_bind.cpp msgid "Min Window Size" -msgstr "最小窗口大小" +msgstr "最小窗口尺寸" #: core/bind/core_bind.cpp msgid "Max Window Size" -msgstr "最大窗口大小" +msgstr "最大窗口尺寸" #: core/bind/core_bind.cpp msgid "Screen Orientation" -msgstr "窗口朝向" +msgstr "屏幕朝向" #: core/bind/core_bind.cpp core/project_settings.cpp main/main.cpp #: platform/uwp/os_uwp.cpp @@ -1097,7 +1097,7 @@ msgstr "权重采样" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "体素椎追踪" +msgstr "体素锥追踪" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" @@ -5843,7 +5843,7 @@ msgstr "骨骼轮廓颜色" #: editor/editor_settings.cpp msgid "Viewport Border Color" -msgstr "视区边框颜色" +msgstr "视口边框颜色" #: editor/editor_settings.cpp msgid "Constrain Editor View" @@ -8685,7 +8685,7 @@ msgid "" "Overrides the running project's camera with the editor viewport camera." msgstr "" "项目相机覆盖\n" -"使用编辑器视图相机覆盖正在运行的项目中的相机。" +"使用编辑器视口相机覆盖正在运行的项目中的相机。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -10819,7 +10819,7 @@ msgstr "透视后视图" msgid " [auto]" msgstr " [自动]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [入口生效]" @@ -11203,27 +11203,27 @@ msgstr "变换对话框..." #: editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "1 个视窗" +msgstr "1 个视口" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "2 个视窗" +msgstr "2 个视口" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "2 个视窗(备选)" +msgstr "2 个视口(备选)" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "3 个视窗" +msgstr "3 个视口" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "3 个视窗(备选)" +msgstr "3 个视口(备选)" #: editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "4 个视窗" +msgstr "4 个视口" #: editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" @@ -11320,7 +11320,7 @@ msgstr "操作小工具不透明度" #: editor/plugins/spatial_editor_plugin.cpp msgid "Show Viewport Rotation Gizmo" -msgstr "显示视区旋转小工具" +msgstr "显示视口旋转小工具" #: editor/plugins/spatial_editor_plugin.cpp msgid "Unnamed Gizmo" @@ -14010,16 +14010,13 @@ msgid "Invalid project path (changed anything?)." msgstr "项目路径无效(被外部修改?)。" #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." -msgstr "" -"无法在项目路径中加载 project.godot 文件(错误 %d)。该文件可能缺失或已损坏。" +msgstr "无法加载位于“%s”的项目(错误 %d)。项目可能缺失或已损坏。" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't save project at '%s' (error %d)." -msgstr "无法打开位于“%s”的项目。" +msgstr "无法保存位于“%s”的项目(错误 %d)。" #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -14934,7 +14931,7 @@ msgstr "将节点设置为根节点" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes and any children?" -msgstr "是否删除节点 “%s” 及其子节点?" +msgstr "是否删除 %d 个节点及其子节点?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -19971,7 +19968,7 @@ msgstr "缩放" #: scene/2d/camera_2d.cpp scene/main/canvas_layer.cpp msgid "Custom Viewport" -msgstr "自定义视区" +msgstr "自定义视口" #: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp @@ -22699,14 +22696,12 @@ msgid "AABB" msgstr "AABB" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Sorting" msgstr "排序" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Use AABB Center" -msgstr "使用环境光" +msgstr "使用 AABB 中心" #: scene/3d/visual_instance.cpp scene/resources/navigation_mesh.cpp msgid "Geometry" @@ -23869,7 +23864,7 @@ msgstr "拉伸收缩" #: scene/main/canvas_layer.cpp msgid "Follow Viewport" -msgstr "跟随视区" +msgstr "跟随视口" #: scene/main/http_request.cpp msgid "Download File" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 8af64cfc4e..80c7658ff9 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -11433,7 +11433,7 @@ msgstr "" msgid " [auto]" msgstr "" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index dd54885310..4d04c45976 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -38,13 +38,14 @@ # Shi-Xun Hong <jimmy3421@gmail.com>, 2022. # Hugel <qihu@nfschina.com>, 2022. # nitenook <admin@alterbaum.net>, 2022. +# Edison Lee <edisonlee@edisonlee55.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-16 07:25+0000\n" -"Last-Translator: BinotaLIU <me@binota.org>\n" +"PO-Revision-Date: 2023-01-14 10:06+0000\n" +"Last-Translator: Edison Lee <edisonlee@edisonlee55.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -52,7 +53,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 4.15.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -1154,7 +1155,7 @@ msgstr "旋轉" #: editor/animation_track_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_nodes.cpp scene/gui/range.cpp msgid "Value" -msgstr "數值" +msgstr "值" #: editor/animation_track_editor.cpp msgid "Arg Count" @@ -10771,7 +10772,7 @@ msgstr "透視後視圖" msgid " [auto]" msgstr " [自動]" -#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#. TRANSLATORS: This will be appended to the view name when Portal Occlusion is enabled. #: editor/plugins/spatial_editor_plugin.cpp msgid " [portals active]" msgstr " [入口生效]" @@ -17787,9 +17788,8 @@ msgid "ShiftRight %s" msgstr "將 %s 向右移動" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "BitAnd %s" -msgstr "新增 %" +msgstr "" #: modules/visual_script/visual_script_func_nodes.cpp #, fuzzy @@ -18557,9 +18557,8 @@ msgstr "「Target Sdk」版本必須高於或于「Min Sdk」版本一致。" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Code Signing" -msgstr "訊號" +msgstr "程式碼簽章" #: platform/android/export/export_plugin.cpp msgid "" @@ -18766,11 +18765,11 @@ msgstr "" #: platform/iphone/export/export.cpp msgid "App Store Team ID" -msgstr "" +msgstr "App Store 團隊 ID" #: platform/iphone/export/export.cpp msgid "Provisioning Profile UUID Debug" -msgstr "" +msgstr "部署描述檔 UUID 偵錯" #: platform/iphone/export/export.cpp msgid "Code Sign Identity Debug" @@ -18848,19 +18847,16 @@ msgid "Accessible From iTunes Sharing" msgstr "" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Privacy" -msgstr "實體按鍵" +msgstr "隱私" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Camera Usage Description" -msgstr "說明" +msgstr "相機使用描述" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Microphone Usage Description" -msgstr "屬性說明" +msgstr "麥克風使用描述" #: platform/iphone/export/export.cpp #, fuzzy @@ -18933,9 +18929,8 @@ msgid "Custom BG Color" msgstr "剪下節點" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Export Icons" -msgstr "展開全部" +msgstr "匯出圖示" #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp @@ -19017,7 +19012,7 @@ msgstr "" #: platform/javascript/export/export.cpp msgid "HTML" -msgstr "" +msgstr "HTML" #: platform/javascript/export/export.cpp #, fuzzy @@ -19052,7 +19047,7 @@ msgstr "" #: platform/javascript/export/export.cpp msgid "Offline Page" -msgstr "" +msgstr "離線頁面" #: platform/javascript/export/export.cpp msgid "Icon 144 X 144" @@ -19084,16 +19079,15 @@ msgstr "" #: platform/javascript/export/export.cpp msgid "HTTP Host" -msgstr "" +msgstr "HTTP 主機" #: platform/javascript/export/export.cpp msgid "HTTP Port" -msgstr "" +msgstr "HTTP 連接埠" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Use SSL" -msgstr "使用吸附" +msgstr "使用 SSL" #: platform/javascript/export/export.cpp msgid "SSL Key" @@ -19159,9 +19153,8 @@ msgid "Invalid entitlements file." msgstr "無效的副檔名。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "無效的副檔名。" +msgstr "無效的執行檔。" #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." @@ -19229,24 +19222,21 @@ msgid "Removable Volumes Usage Description" msgstr "" #: platform/osx/export/export.cpp platform/windows/export/export.cpp -#, fuzzy msgid "Codesign" -msgstr "節點" +msgstr "程式碼簽章" #: platform/osx/export/export.cpp platform/uwp/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Identity" -msgstr "向左縮排" +msgstr "身分" #: platform/osx/export/export.cpp platform/windows/export/export.cpp -#, fuzzy msgid "Timestamp" -msgstr "時間" +msgstr "時間戳" #: platform/osx/export/export.cpp msgid "Hardened Runtime" -msgstr "" +msgstr "Hardened Runtime" #: platform/osx/export/export.cpp #, fuzzy @@ -19259,9 +19249,8 @@ msgid "Entitlements" msgstr "Gizmo" #: platform/osx/export/export.cpp -#, fuzzy msgid "Custom File" -msgstr "剪下節點" +msgstr "自訂檔案" #: platform/osx/export/export.cpp msgid "Allow JIT Code Execution" @@ -19281,75 +19270,64 @@ msgid "Disable Library Validation" msgstr "已停用的按鈕" #: platform/osx/export/export.cpp -#, fuzzy msgid "Audio Input" -msgstr "新增輸入" +msgstr "音源輸入" #: platform/osx/export/export.cpp msgid "Address Book" -msgstr "" +msgstr "地址簿" #: platform/osx/export/export.cpp msgid "Calendars" -msgstr "" +msgstr "日曆" #: platform/osx/export/export.cpp -#, fuzzy msgid "Photos Library" -msgstr "匯出函式庫" +msgstr "照片圖庫" #: platform/osx/export/export.cpp -#, fuzzy msgid "Apple Events" -msgstr "新增事件" +msgstr "Apple 活動" #: platform/osx/export/export.cpp -#, fuzzy msgid "Debugging" msgstr "偵錯" #: platform/osx/export/export.cpp msgid "App Sandbox" -msgstr "" +msgstr "應用程式沙盒" #: platform/osx/export/export.cpp -#, fuzzy msgid "Network Server" -msgstr "網路分析工具" +msgstr "網路伺服器" #: platform/osx/export/export.cpp -#, fuzzy msgid "Network Client" -msgstr "網路分析工具" +msgstr "網路客戶端" #: platform/osx/export/export.cpp -#, fuzzy msgid "Device USB" -msgstr "裝置" +msgstr "裝置 USB" #: platform/osx/export/export.cpp msgid "Device Bluetooth" -msgstr "" +msgstr "裝置藍芽" #: platform/osx/export/export.cpp -#, fuzzy msgid "Files Downloads" -msgstr "下載" +msgstr "檔案下載" #: platform/osx/export/export.cpp -#, fuzzy msgid "Files Pictures" -msgstr "功能" +msgstr "檔案圖片" #: platform/osx/export/export.cpp -#, fuzzy msgid "Files Music" -msgstr "檔案" +msgstr "檔案音樂" #: platform/osx/export/export.cpp -#, fuzzy msgid "Files Movies" -msgstr "篩選圖塊" +msgstr "檔案影片" #: platform/osx/export/export.cpp platform/windows/export/export.cpp #, fuzzy @@ -19362,15 +19340,15 @@ msgstr "公證" #: platform/osx/export/export.cpp msgid "Apple ID Name" -msgstr "" +msgstr "Apple ID 名稱" #: platform/osx/export/export.cpp msgid "Apple ID Password" -msgstr "" +msgstr "Apple ID 密碼" #: platform/osx/export/export.cpp msgid "Apple Team ID" -msgstr "" +msgstr "Apple 團隊 ID" #: platform/osx/export/export.cpp msgid "Could not open icon file \"%s\"." @@ -20004,7 +19982,7 @@ msgstr "" #: platform/windows/export/export.cpp msgid "Wine" -msgstr "" +msgstr "Wine" #: platform/x11/export/export.cpp msgid "32-bit executables cannot have embedded data >= 4 GiB." @@ -27006,7 +26984,7 @@ msgstr "混合 (Mix)" #: servers/audio/effects/audio_effect_compressor.cpp msgid "Sidechain" -msgstr "" +msgstr "側鏈" #: servers/audio/effects/audio_effect_delay.cpp msgid "Tap 1" |