diff options
Diffstat (limited to 'editor/plugins/tiles/tile_set_atlas_source_editor.cpp')
-rw-r--r-- | editor/plugins/tiles/tile_set_atlas_source_editor.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index cc9ba25f46..d8ca9de361 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -246,6 +246,12 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na } emit_signal(SNAME("changed"), "animation_speed"); return true; + } else if (p_name == "animation_mode") { + for (TileSelection tile : tiles) { + tile_set_atlas_source->set_tile_animation_mode(tile.tile, VariantCaster<TileSetAtlasSource::TileAnimationMode>::cast(p_value)); + } + emit_signal(SNAME("changed"), "animation_mode"); + return true; } else if (p_name == "animation_frames_count") { for (TileSelection tile : tiles) { int frame_count = p_value; @@ -349,6 +355,9 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_get(const StringName &p_na } else if (p_name == "animation_speed") { r_ret = tile_set_atlas_source->get_tile_animation_speed(coords); return true; + } else if (p_name == "animation_mode") { + r_ret = tile_set_atlas_source->get_tile_animation_mode(coords); + return true; } else if (p_name == "animation_frames_count") { r_ret = tile_set_atlas_source->get_tile_animation_frames_count(coords); return true; @@ -417,6 +426,7 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro p_list->push_back(PropertyInfo(Variant::INT, PNAME("animation_columns"))); p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("animation_separation"))); p_list->push_back(PropertyInfo(Variant::FLOAT, PNAME("animation_speed"))); + p_list->push_back(PropertyInfo(Variant::INT, PNAME("animation_mode"), PROPERTY_HINT_ENUM, "Default,Random Start Times")); p_list->push_back(PropertyInfo(Variant::INT, PNAME("animation_frames_count"), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_ARRAY, "Frames,animation_frame_")); // Not optimal, but returns value for the first tile. This is similar to what MultiNodeEdit does. if (tile_set_atlas_source->get_tile_animation_frames_count(tiles.front()->get().tile) == 1) { |