1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-28 16:07:14 +00:00

TileMap mouse right can delete autotile

This commit is contained in:
Magian
2022-09-30 21:14:30 +08:00
parent f8745f2f71
commit 7e30343a5c

View File

@@ -2428,20 +2428,16 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_line(Vector2i
return HashMap<Vector2i, TileMapCell>(); return HashMap<Vector2i, TileMapCell>();
} }
if (selected_type == SELECTED_TYPE_CONNECT) { if (p_erase) {
return _draw_terrain_path_or_connect(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, selected_terrain, true); return _draw_terrain_pattern(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, TileSet::TerrainsPattern(*tile_set, selected_terrain_set));
} else if (selected_type == SELECTED_TYPE_PATH) { } else {
return _draw_terrain_path_or_connect(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, selected_terrain, false); if (selected_type == SELECTED_TYPE_CONNECT) {
} else { // SELECTED_TYPE_PATTERN return _draw_terrain_path_or_connect(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, selected_terrain, true);
TileSet::TerrainsPattern terrains_pattern; } else if (selected_type == SELECTED_TYPE_PATH) {
if (p_erase) { return _draw_terrain_path_or_connect(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, selected_terrain, false);
terrains_pattern = TileSet::TerrainsPattern(*tile_set, selected_terrain_set); } else { // SELECTED_TYPE_PATTERN
} else { return _draw_terrain_pattern(TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell), selected_terrain_set, selected_terrains_pattern);
terrains_pattern = selected_terrains_pattern;
} }
Vector<Vector2i> line = TileMapEditor::get_line(tile_map, p_start_cell, p_end_cell);
return _draw_terrain_pattern(line, selected_terrain_set, terrains_pattern);
} }
} }
@@ -2468,16 +2464,14 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_rect(Vector2i
} }
} }
if (selected_type == SELECTED_TYPE_CONNECT || selected_type == SELECTED_TYPE_PATH) { if (p_erase) {
return _draw_terrain_path_or_connect(to_draw, selected_terrain_set, selected_terrain, true); return _draw_terrain_pattern(to_draw, selected_terrain_set, TileSet::TerrainsPattern(*tile_set, selected_terrain_set));
} else { // SELECTED_TYPE_PATTERN } else {
TileSet::TerrainsPattern terrains_pattern; if (selected_type == SELECTED_TYPE_CONNECT || selected_type == SELECTED_TYPE_PATH) {
if (p_erase) { return _draw_terrain_path_or_connect(to_draw, selected_terrain_set, selected_terrain, true);
terrains_pattern = TileSet::TerrainsPattern(*tile_set, selected_terrain_set); } else { // SELECTED_TYPE_PATTERN
} else { return _draw_terrain_pattern(to_draw, selected_terrain_set, selected_terrains_pattern);
terrains_pattern = selected_terrains_pattern;
} }
return _draw_terrain_pattern(to_draw, selected_terrain_set, terrains_pattern);
} }
} }
@@ -2609,16 +2603,14 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_bucket_fill(Ve
cells_to_draw_as_vector.append(cell); cells_to_draw_as_vector.append(cell);
} }
if (selected_type == SELECTED_TYPE_CONNECT || selected_type == SELECTED_TYPE_PATH) { if (p_erase) {
return _draw_terrain_path_or_connect(cells_to_draw_as_vector, selected_terrain_set, selected_terrain, true); return _draw_terrain_pattern(cells_to_draw_as_vector, selected_terrain_set, TileSet::TerrainsPattern(*tile_set, selected_terrain_set));
} else { // SELECTED_TYPE_PATTERN } else {
TileSet::TerrainsPattern terrains_pattern; if (selected_type == SELECTED_TYPE_CONNECT || selected_type == SELECTED_TYPE_PATH) {
if (p_erase) { return _draw_terrain_path_or_connect(cells_to_draw_as_vector, selected_terrain_set, selected_terrain, true);
terrains_pattern = TileSet::TerrainsPattern(*tile_set, selected_terrain_set); } else { // SELECTED_TYPE_PATTERN
} else { return _draw_terrain_pattern(cells_to_draw_as_vector, selected_terrain_set, selected_terrains_pattern);
terrains_pattern = selected_terrains_pattern;
} }
return _draw_terrain_pattern(cells_to_draw_as_vector, selected_terrain_set, terrains_pattern);
} }
} }