2024-07-07 13:39:03 +10:00
|
|
|
# mapped to iso_tileset.png
|
|
|
|
|
2024-07-07 12:33:46 +10:00
|
|
|
# https://youtu.be/dclc8w6JW7Y?si=QSu2dwSILyatO_oa
|
|
|
|
|
|
|
|
extends TileMap
|
|
|
|
|
|
|
|
const source_atlas_blue_pos = Vector2i(0, 0)
|
|
|
|
const source_atlas_red_pos = Vector2i(1, 0)
|
|
|
|
const source_atlas_green_pos = Vector2i(2, 0)
|
|
|
|
const source_atlas_orange_pos = Vector2i(6, 0)
|
|
|
|
|
|
|
|
const source_atlas = 0
|
|
|
|
|
|
|
|
#used by the "procgen"
|
|
|
|
const source_atlas_array = [
|
|
|
|
source_atlas_blue_pos,
|
|
|
|
source_atlas_green_pos,
|
|
|
|
source_atlas_green_pos, # duplicate entry to tweak the generator
|
|
|
|
]
|
|
|
|
|
|
|
|
enum Layers {
|
|
|
|
layer0 = 0,
|
|
|
|
layer1 = 1,
|
|
|
|
layer2 = 2,
|
|
|
|
}
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
#for "procgen"
|
|
|
|
var rng: RandomNumberGenerator = RandomNumberGenerator.new()
|
|
|
|
rng.randomize()
|
|
|
|
|
|
|
|
for i in range(10):
|
|
|
|
for j in range(10):
|
|
|
|
var rand_tile = rng.randf_range(0, source_atlas_array.size())
|
|
|
|
set_cell(Layers.layer0, Vector2i(i + 30, j + 0), source_atlas, source_atlas_array[rand_tile], 0)
|
|
|
|
|
|
|
|
func _input(event) -> void:
|
|
|
|
if event is InputEventMouseButton:
|
|
|
|
if event.button_index == MOUSE_BUTTON_LEFT && event.is_pressed():
|
|
|
|
var clicked_pos = local_to_map(to_local(event.position))
|
|
|
|
|
|
|
|
#place a "house" prefab
|
|
|
|
set_cell(Layers.layer1, Vector2i(clicked_pos.x - 1, clicked_pos.y - 1), source_atlas, source_atlas_red_pos, 0)
|
|
|
|
set_cell(Layers.layer2, Vector2i(clicked_pos.x - 2, clicked_pos.y - 2), source_atlas, source_atlas_orange_pos, 0)
|