diff --git a/godot/native/libroutes_native.so b/godot/native/libroutes_native.so index 0d04cc2..caedfd5 100755 Binary files a/godot/native/libroutes_native.so and b/godot/native/libroutes_native.so differ diff --git a/godot/world/StateApi.gd b/godot/world/StateApi.gd index f7a232d..4b016c2 100644 --- a/godot/world/StateApi.gd +++ b/godot/world/StateApi.gd @@ -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) diff --git a/godot/world/World.tscn b/godot/world/World.tscn index 2dc61a6..b58654f 100644 --- a/godot/world/World.tscn +++ b/godot/world/World.tscn @@ -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"] diff --git a/routes-native/src/stateserver.rs b/routes-native/src/stateserver.rs index 8089a10..0ea9b60 100644 --- a/routes-native/src/stateserver.rs +++ b/routes-native/src/stateserver.rs @@ -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]