diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/client/game.gd b/client/game.gd index b36b40a0..756ff978 100644 --- a/client/game.gd +++ b/client/game.gd @@ -21,22 +21,20 @@ extends Node3D @onready var mp: Multiplayer = $Multiplayer @onready var map: Map = $Map @onready var marker: Marker = $Marker - -var marker_target = Vector3(0,0,0) +@onready var environment = $WorldEnvironment +@onready var transition: SceneTransition = $SceneTransition var player_id: int = -1 var item_names: Array = [] +var item_index_by_name: Dictionary = {} var tile_names: Array = [] -var tile_id_by_name: Dictionary = {} +var tile_index_by_name: Dictionary = {} var tile_collide: Array = [] var tile_interact: Array = [] -var item_idx_from_name: Dictionary = {} - +var marker_target = Vector3(0,0,0) var players := {} -@onready var environment = $WorldEnvironment - func _ready(): if !Global.on_vulkan(): environment.environment.tonemap_exposure = 0.5 @@ -58,13 +56,13 @@ func _ready(): tile_names = tile_names_ tile_collide = tile_collide_ tile_interact = tile_interact_ - tile_id_by_name = {} + tile_index_by_name = {} for id in tile_names.size(): - tile_id_by_name[tile_names[id]] = id + tile_index_by_name[tile_names[id]] = id - item_idx_from_name.clear() + item_index_by_name.clear() for i in range(item_names.size()): - item_idx_from_name[item_names[i]] = i + item_index_by_name[item_names[i]] = i ) await mp.init @@ -83,7 +81,7 @@ func _ready(): ) mp.set_tile.connect(set_tile) - mp.remove_tile.connect(set_tile) + mp.remove_tile.connect(func (pos): map.clear_tile(pos)) mp.position.connect(func(player: int, pos: Vector2, rot: float): var player_instance: Player = players[player] @@ -166,18 +164,29 @@ func _ready(): mp.send_join(Global.profile["username"], Global.profile["character"]) + mp.set_ingame.connect(func (state): + if state: + await transition.fade_out() + map.gi_bake() + await transition.fade_in() + map.autobake = true + else: + map.autobake = false + await transition.fade_out() + ) + func _process(delta): marker.position = lerp(marker.position, marker_target, delta * 40.0) func get_tile_collision(pos: Vector2i) -> bool: var t = map.get_tile_name(pos) if t == null: return true - else: return tile_collide[tile_id_by_name[t]] + else: return tile_collide[tile_index_by_name[t]] func get_tile_interactive(pos: Vector2i) -> bool: var t = map.get_tile_name(pos) if t == null: return false - else: return tile_interact[tile_id_by_name[t]] + else: return tile_interact[tile_index_by_name[t]] func set_tile(tile: Vector2i, kind = null, neighbors = null): if neighbors != null: neighbors = neighbors.map(func (x): return tile_names[x] if x != null else null) |