1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-07 12:30:27 +00:00

Merge pull request #9370 from bojidar-bg/c-9318-oneway-tilemaps

Add one-way collisions and individual shape offsets for tilesets
This commit is contained in:
Rémi Verschelde
2017-06-26 22:47:26 +02:00
committed by GitHub
4 changed files with 181 additions and 76 deletions

View File

@@ -113,22 +113,17 @@ void TileSetEditor::_import_node(Node *p_node, Ref<TileSet> p_library) {
for (List<uint32_t>::Element *E = shapes.front(); E; E = E->next()) {
Vector2 shape_offset = sb->shape_owner_get_transform(E->get()).get_origin();
bool one_way = sb->is_shape_owner_one_way_collision_enabled(E->get());
for (int k = 0; k < sb->shape_owner_get_shape_count(E->get()); k++) {
Ref<Shape> shape = sb->shape_owner_get_shape(E->get(), k);
collisions.push_back(shape); //uh what about transform?
p_library->tile_add_shape(id, shape, shape_offset, one_way);
}
}
}
if (collisions.size()) {
p_library->tile_set_shapes(id, collisions);
p_library->tile_set_shape_offset(id, -phys_offset);
} else {
p_library->tile_set_shape_offset(id, Vector2());
}
p_library->tile_set_texture_offset(id, mi->get_offset());
p_library->tile_set_navigation_polygon(id, nav_poly);
p_library->tile_set_light_occluder(id, occluder);