Add inspector plugin for key time edit & Change find key argument
This commit is contained in:
@@ -87,13 +87,13 @@ void AnimationPlayerEditor::_notification(int p_what) {
|
||||
}
|
||||
frame->set_value(player->get_current_animation_position());
|
||||
track_editor->set_anim_pos(player->get_current_animation_position());
|
||||
|
||||
} else if (!player->is_valid()) {
|
||||
// Reset timeline when the player has been stopped externally
|
||||
frame->set_value(0);
|
||||
} else if (last_active) {
|
||||
// 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());
|
||||
}
|
||||
|
||||
last_active = player->is_playing();
|
||||
@@ -423,7 +423,7 @@ void AnimationPlayerEditor::_select_anim_by_name(const String &p_anim) {
|
||||
_animation_selected(idx);
|
||||
}
|
||||
|
||||
double AnimationPlayerEditor::_get_editor_step() const {
|
||||
float AnimationPlayerEditor::_get_editor_step() const {
|
||||
// Returns the effective snapping value depending on snapping modifiers, or 0 if snapping is disabled.
|
||||
if (track_editor->is_snap_enabled()) {
|
||||
const String current = player->get_assigned_animation();
|
||||
@@ -434,7 +434,7 @@ double AnimationPlayerEditor::_get_editor_step() const {
|
||||
return Input::get_singleton()->is_key_pressed(Key::SHIFT) ? anim->get_step() * 0.25 : anim->get_step();
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
void AnimationPlayerEditor::_animation_name_edited() {
|
||||
@@ -1973,3 +1973,26 @@ AnimationPlayerEditorPlugin::AnimationPlayerEditorPlugin() {
|
||||
|
||||
AnimationPlayerEditorPlugin::~AnimationPlayerEditorPlugin() {
|
||||
}
|
||||
|
||||
// AnimationTrackKeyEditEditorPlugin
|
||||
|
||||
bool EditorInspectorPluginAnimationTrackKeyEdit::can_handle(Object *p_object) {
|
||||
return Object::cast_to<AnimationTrackKeyEdit>(p_object) != nullptr;
|
||||
}
|
||||
|
||||
void EditorInspectorPluginAnimationTrackKeyEdit::parse_begin(Object *p_object) {
|
||||
AnimationTrackKeyEdit *atk = Object::cast_to<AnimationTrackKeyEdit>(p_object);
|
||||
ERR_FAIL_COND(!atk);
|
||||
|
||||
atk_editor = memnew(AnimationTrackKeyEditEditor(atk->animation, atk->track, atk->key_ofs, atk->use_fps));
|
||||
add_custom_control(atk_editor);
|
||||
}
|
||||
|
||||
AnimationTrackKeyEditEditorPlugin::AnimationTrackKeyEditEditorPlugin() {
|
||||
atk_plugin = memnew(EditorInspectorPluginAnimationTrackKeyEdit);
|
||||
EditorInspector::add_inspector_plugin(atk_plugin);
|
||||
}
|
||||
|
||||
bool AnimationTrackKeyEditEditorPlugin::handles(Object *p_object) const {
|
||||
return p_object->is_class("AnimationTrackKeyEdit");
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ class AnimationPlayerEditor : public VBoxContainer {
|
||||
} onion;
|
||||
|
||||
void _select_anim_by_name(const String &p_anim);
|
||||
double _get_editor_step() const;
|
||||
float _get_editor_step() const;
|
||||
void _play_pressed();
|
||||
void _play_from_pressed();
|
||||
void _play_bw_pressed();
|
||||
@@ -272,4 +272,30 @@ public:
|
||||
~AnimationPlayerEditorPlugin();
|
||||
};
|
||||
|
||||
// AnimationTrackKeyEditEditorPlugin
|
||||
|
||||
class EditorInspectorPluginAnimationTrackKeyEdit : public EditorInspectorPlugin {
|
||||
GDCLASS(EditorInspectorPluginAnimationTrackKeyEdit, EditorInspectorPlugin);
|
||||
|
||||
AnimationTrackKeyEditEditor *atk_editor = nullptr;
|
||||
|
||||
public:
|
||||
virtual bool can_handle(Object *p_object) override;
|
||||
virtual void parse_begin(Object *p_object) override;
|
||||
};
|
||||
|
||||
class AnimationTrackKeyEditEditorPlugin : public EditorPlugin {
|
||||
GDCLASS(AnimationTrackKeyEditEditorPlugin, EditorPlugin);
|
||||
|
||||
EditorInspectorPluginAnimationTrackKeyEdit *atk_plugin = nullptr;
|
||||
|
||||
public:
|
||||
bool has_main_screen() const override { return false; }
|
||||
virtual bool handles(Object *p_object) const override;
|
||||
|
||||
virtual String get_name() const override { return "AnimationTrackKeyEdit"; }
|
||||
|
||||
AnimationTrackKeyEditEditorPlugin();
|
||||
};
|
||||
|
||||
#endif // ANIMATION_PLAYER_EDITOR_PLUGIN_H
|
||||
|
||||
@@ -483,7 +483,7 @@ void EditorPropertyOTVariation::update_property() {
|
||||
Vector3i range = supported.get_value_at_index(i);
|
||||
|
||||
EditorPropertyInteger *prop = memnew(EditorPropertyInteger);
|
||||
prop->setup(range.x, range.y, 1, false, false);
|
||||
prop->setup(range.x, range.y, false, 1, false, false);
|
||||
prop->set_object_and_property(object.ptr(), "keys/" + itos(name_tag));
|
||||
|
||||
String name = TS->tag_to_name(name_tag);
|
||||
@@ -762,7 +762,7 @@ void EditorPropertyOTFeatures::update_property() {
|
||||
} break;
|
||||
case Variant::INT: {
|
||||
EditorPropertyInteger *editor = memnew(EditorPropertyInteger);
|
||||
editor->setup(0, 255, 1, false, false);
|
||||
editor->setup(0, 255, 1, false, false, false);
|
||||
prop = editor;
|
||||
} break;
|
||||
default: {
|
||||
|
||||
@@ -398,7 +398,7 @@ TileProxiesManagerDialog::TileProxiesManagerDialog() {
|
||||
source_from_property_editor->connect("property_changed", callable_mp(this, &TileProxiesManagerDialog::_property_changed));
|
||||
source_from_property_editor->set_selectable(false);
|
||||
source_from_property_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
source_from_property_editor->setup(-1, 99999, 1, true, false);
|
||||
source_from_property_editor->setup(-1, 99999, 1, false, true, false);
|
||||
vboxcontainer_from->add_child(source_from_property_editor);
|
||||
|
||||
coords_from_property_editor = memnew(EditorPropertyVector2i);
|
||||
@@ -417,7 +417,7 @@ TileProxiesManagerDialog::TileProxiesManagerDialog() {
|
||||
alternative_from_property_editor->connect("property_changed", callable_mp(this, &TileProxiesManagerDialog::_property_changed));
|
||||
alternative_from_property_editor->set_selectable(false);
|
||||
alternative_from_property_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
alternative_from_property_editor->setup(-1, 99999, 1, true, false);
|
||||
alternative_from_property_editor->setup(-1, 99999, 1, false, true, false);
|
||||
alternative_from_property_editor->hide();
|
||||
vboxcontainer_from->add_child(alternative_from_property_editor);
|
||||
|
||||
@@ -432,7 +432,7 @@ TileProxiesManagerDialog::TileProxiesManagerDialog() {
|
||||
source_to_property_editor->connect("property_changed", callable_mp(this, &TileProxiesManagerDialog::_property_changed));
|
||||
source_to_property_editor->set_selectable(false);
|
||||
source_to_property_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
source_to_property_editor->setup(-1, 99999, 1, true, false);
|
||||
source_to_property_editor->setup(-1, 99999, 1, false, true, false);
|
||||
vboxcontainer_to->add_child(source_to_property_editor);
|
||||
|
||||
coords_to_property_editor = memnew(EditorPropertyVector2i);
|
||||
@@ -451,7 +451,7 @@ TileProxiesManagerDialog::TileProxiesManagerDialog() {
|
||||
alternative_to_property_editor->connect("property_changed", callable_mp(this, &TileProxiesManagerDialog::_property_changed));
|
||||
alternative_to_property_editor->set_selectable(false);
|
||||
alternative_to_property_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
alternative_to_property_editor->setup(-1, 99999, 1, true, false);
|
||||
alternative_to_property_editor->setup(-1, 99999, 1, false, true, false);
|
||||
alternative_to_property_editor->hide();
|
||||
vboxcontainer_to->add_child(alternative_to_property_editor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user