call deferred to prevent reentry into atmosphere

This commit is contained in:
Zoe 2022-05-05 16:59:11 +02:00
parent 8de6d3bdb9
commit aa07bdd798
4 changed files with 12 additions and 9 deletions

Binary file not shown.

View File

@ -18,9 +18,15 @@ func respawn_tilemaps(amount):
add_child(Tilemap.instance())
tilemaps.push_back(tile)
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: Array):
print(tile_positions[1])
print(get_tile_at(Vector3(0,0,0)))
func _on_StateServer_request_init():
respawn_tilemaps(zsize - 1)
func _on_StateServer_changed_tiletypes(tile_positions: Array):
print(tile_positions[2])
print(server.get_tile_at(0,0,0))
call_deferred("update_tiles", tile_positions)

View File

@ -1,14 +1,12 @@
[gd_scene load_steps=4 format=2]
[gd_scene load_steps=3 format=2]
[ext_resource path="res://world/StateApi.gd" type="Script" id=1]
[ext_resource path="res://native/StateServer.gdns" type="Script" id=2]
[ext_resource path="res://native/StateServer.tscn" type="PackedScene" id=3]
[node name="World" type="Node"]
script = ExtResource( 1 )
[node name="StateServer" type="Node" parent="." instance=ExtResource( 3 )]
script = ExtResource( 2 )
[node name="StateServer" parent="." instance=ExtResource( 3 )]
[connection signal="changed_tiletypes" from="StateServer" to="." method="_on_StateServer_changed_tiletypes"]
[connection signal="request_init" from="StateServer" to="." method="_on_StateServer_request_init"]

View File

@ -34,10 +34,9 @@ impl StateServer {
#[export]
fn generate_world(&mut self, _owner: &Node, xsize: usize, ysize: usize, zsize: usize) {
self.world = world::World::new(xsize, ysize, zsize);
let w = self.world.generate();
_owner.emit_signal("request_init", &[]);
_owner.emit_signal("changed_tiletypes", &[Variant::new(
// changes what the world looks like! by generating a new one!
self.world.generate())]);
_owner.emit_signal("changed_tiletypes", &[Variant::new(&w)]);
}
#[export]