summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Skrynnyk <andy@manaon.com>2016-07-05 11:40:22 -0700
committerAndrii Skrynnyk <andy@manaon.com>2016-07-05 11:40:22 -0700
commit0a8d6de0c336dfc2029da276c80371d3bf4c9792 (patch)
treec9a4e674242e7ff41c9f9c91c0325ac9fe3d6377
parent628b0a9375814bc811820f073df5f102bdb049fc (diff)
Respect frame property when converting to TileSet.
-rw-r--r--tools/editor/plugins/tile_set_editor_plugin.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/tools/editor/plugins/tile_set_editor_plugin.cpp b/tools/editor/plugins/tile_set_editor_plugin.cpp
index a2c7147bf3..39a15189e7 100644
--- a/tools/editor/plugins/tile_set_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_set_editor_plugin.cpp
@@ -73,24 +73,24 @@ void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_me
p_library->tile_set_name(id,mi->get_name());
}
-
-
p_library->tile_set_texture(id,texture);
p_library->tile_set_material(id,material);
Vector2 phys_offset;
+ Size2 s;
- if (mi->is_centered()) {
- Size2 s;
- if (mi->is_region()) {
- s=mi->get_region_rect().size;
- } else {
- s=texture->get_size();
- }
- phys_offset+=-s/2;
- }
if (mi->is_region()) {
+ s=mi->get_region_rect().size;
p_library->tile_set_region(id,mi->get_region_rect());
+ } else {
+ const int frame = mi->get_frame();
+ const int hframes = mi->get_hframes();
+ s=texture->get_size()/Size2(hframes,mi->get_vframes());
+ p_library->tile_set_region(id,Rect2(Vector2(frame%hframes,frame/hframes)*s,s));
+ }
+
+ if (mi->is_centered()) {
+ phys_offset+=-s/2;
}
Vector<Ref<Shape2D> >collisions;