Godot Version
4.3
Question
So, essentially I am trying to update this dictionary every time I press mouse click. Currently I have this dictionary in my script:
var move = {
1:{
"Vector": Vector2(TilePosition)
},
2:{
"Vector": Vector2((TilePosition.x + 1), TilePosition.y)
},
3:{
"Vector": Vector2((TilePosition.x + 2), TilePosition.y)
},
4:{
"Vector": Vector2((TilePosition.x + 3), TilePosition.y)
},
5:{
"Vector": Vector2((TilePosition.x + 1), (TilePosition.y + 1))
},
6:{
"Vector": Vector2((TilePosition.x + 1), (TilePosition.y + 2))
},
7:{
"Vector": Vector2((TilePosition.x + 2), (TilePosition.y + 1))
},
8:{
"Vector": Vector2((TilePosition.x + 2), (TilePosition.y + 2))
},
9:{
"Vector": Vector2((TilePosition.x - 1), (TilePosition.y))
},
10:{
"Vector": Vector2((TilePosition.x - 2), (TilePosition.y))
},
11:{
"Vector": Vector2((TilePosition.x - 3), (TilePosition.y))
},
12:{
"Vector": Vector2((TilePosition.x - 1), (TilePosition.y - 1))
},
13:{
"Vector": Vector2((TilePosition.x - 1), (TilePosition.y - 2))
},
14:{
"Vector": Vector2((TilePosition.x - 2), (TilePosition.y - 1))
},
15:{
"Vector": Vector2((TilePosition.x - 2), (TilePosition.y - 2))
},
16:{
"Vector": Vector2((TilePosition.x - 2), (TilePosition.y + 1))
},
17:{
"Vector": Vector2((TilePosition.x - 2), (TilePosition.y + 2))
},
18:{
"Vector": Vector2((TilePosition.x - 1), (TilePosition.y + 1))
},
19:{
"Vector": Vector2((TilePosition.x + 1), (TilePosition.y - 1))
},
20:{
"Vector": Vector2((TilePosition.x - 1), (TilePosition.y + 2))
},
21:{
"Vector": Vector2((TilePosition.x), (TilePosition.y - 1))
},
22:{
"Vector": Vector2((TilePosition.x), (TilePosition.y - 2))
},
23:{
"Vector": Vector2((TilePosition.x), (TilePosition.y - 3))
},
24:{
"Vector": Vector2((TilePosition.x), (TilePosition.y + 1))
},
25:{
"Vector": Vector2((TilePosition.x), (TilePosition.y + 2))
},
26:{
"Vector": Vector2((TilePosition.x), ((TilePosition).y + 3))
}
}
(I am sure there are wayyyy better ways of doing this, but I couldnāt think of anyā¦ I am quite new to godot)
then I have a code that uses this dictionary:
func _input(event):
if event.is_action_pressed("Move") == false:
return
if tile_map_layer.local_to_map(get_global_mouse_position()) == tile_map_layer.local_to_map(global_position):
TilePosition = tile_map_layer.local_to_map(global_position)
print(TilePosition)
for i in move:
print(move[i]["Vector"])
tile_map_layer.set_cell((move[i]["Vector"]), 1, Yellowtile)
Iāve tried adding āmove.update()ā or similar, but I get errors. Iāve printed the outputs, and print(TilePosition) gives f.ex (4, 13), while print(move[i][āVectorā]) gives f.ex (3,0) - (-3, 0) and same with yā¦ so the default values Iāve put without TilePositionā¦ So yes, It would be great if there was some way to update the dictionary every time I mouseclick or something