2024-12-06 02:50:32 +04:00
|
|
|
extends Node2D
|
|
|
|
|
|
|
|
# Переменная для хранения ссылки на TileMap
|
2024-12-07 05:37:56 +04:00
|
|
|
@onready var buildings: TileMapLayer = $TileMap/buildings/buildings0
|
2024-12-06 21:03:26 +04:00
|
|
|
@onready var roads: TileMapLayer = $TileMap/roads
|
|
|
|
@onready var ground: TileMapLayer = $TileMap/ground
|
|
|
|
|
|
|
|
var is_drawing_road: bool = false # Флаг для отслеживания зажатия кнопки мыши
|
|
|
|
var is_drawing_mountian: bool = false # Флаг для отслеживания зажатия кнопки мыши
|
2024-12-06 02:50:32 +04:00
|
|
|
|
|
|
|
func _ready():
|
|
|
|
pass
|
|
|
|
|
|
|
|
func _input(event):
|
|
|
|
if event is InputEventMouseButton:
|
|
|
|
# Проверяем нажатие или отпускание левой кнопки мыши
|
|
|
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
2024-12-06 21:03:26 +04:00
|
|
|
is_drawing_road = event.pressed # Устанавливаем флаг, если кнопка нажата
|
|
|
|
elif event.button_index == MOUSE_BUTTON_RIGHT:
|
2024-12-07 05:37:56 +04:00
|
|
|
$TileMap.place_struct(ground.local_to_map(get_global_mouse_position()-$TileMap.global_position), $TileMap.StructType.EMPTY_ROOM)
|
2024-12-06 02:50:32 +04:00
|
|
|
|
2024-12-06 21:03:26 +04:00
|
|
|
if event is InputEventMouseMotion and is_drawing_road:
|
|
|
|
# Получаем позицию мыши в мировых координатах
|
|
|
|
var current_tile:Vector2 = ground.local_to_map(get_global_mouse_position()-$TileMap.global_position)
|
|
|
|
if buildings.get_cell_source_id(current_tile) == -1:
|
|
|
|
roads.set_cells_terrain_connect([current_tile], 0, 2, true)
|