codename-routes/godot/world/StateApi.gd

38 lines
957 B
GDScript
Raw Normal View History

2022-05-01 20:23:01 +00:00
extends Node
2022-05-04 14:46:58 +00:00
2022-05-04 12:10:28 +00:00
onready var server = $StateServer
2022-05-01 22:20:37 +00:00
export var xsize = 16
export var ysize = 16
export var zsize = 16
2022-05-04 14:46:58 +00:00
var Tilemap = preload("res://world/Tilemap.tscn")
var tilemaps = []
2022-05-01 20:23:01 +00:00
func _ready():
2022-05-04 14:46:58 +00:00
server.generate_world(xsize, ysize, zsize)
print(server.get_tile_at(0,0,0))
2022-05-04 14:46:58 +00:00
func respawn_tilemaps(amount: int):
2022-05-04 14:46:58 +00:00
tilemaps = []
for i in range(0, amount + 1):
var map = Tilemap.instance()
map.position.y -= i * map.cell_size.y
map.z_index = i
add_child(map)
tilemaps.push_back(map)
2022-05-05 09:13:29 +00:00
func get_tile_at(pos: Vector3) -> String:
return server.get_tile_at(int(pos.x), int(pos.y), int(pos.z))
func update_tiles(tile_positions: PoolVector3Array):
for tile in tile_positions:
tilemaps[tile.z].set_tile_graphics(Vector2(tile.x, tile.y),
get_tile_at(tile))
2022-05-05 09:13:29 +00:00
func _on_StateServer_request_init():
respawn_tilemaps(zsize - 1)
func _on_StateServer_changed_tiletypes(tile_positions: PoolVector3Array):
call_deferred("update_tiles", tile_positions)