feat(world-map): ✨ Introduce fog rendering logic with density and color controls for the world map scene
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
d38738cbc2
commit
45137691bc
1 changed files with 13 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ const CityRendererScript: GDScript = preload("res://engine/src/rendering/city_re
|
|||
const LairOverlayRendererScript: GDScript = preload(
|
||||
"res://engine/src/rendering/lair_overlay_renderer.gd"
|
||||
)
|
||||
const FogRendererScript: GDScript = preload("res://engine/src/rendering/fog_renderer.gd")
|
||||
const CityScreenScene: PackedScene = preload("res://engine/scenes/city/city_screen.tscn")
|
||||
const ChroniclePanelScene: PackedScene = preload("res://engine/scenes/hud/chronicle_panel.tscn")
|
||||
const WorldMapCombatScript: GDScript = preload("res://engine/scenes/world_map/world_map_combat.gd")
|
||||
|
|
@ -29,6 +30,7 @@ var _hex_renderer: Node2D = null
|
|||
var _unit_renderer: Node2D = null
|
||||
var _city_renderer: Node2D = null
|
||||
var _lair_overlay: Node2D = null
|
||||
var _fog_renderer: Node2D = null
|
||||
var _city_screen: CanvasLayer = null
|
||||
var _chronicle_panel: CanvasLayer = null
|
||||
var _combat: RefCounted = null
|
||||
|
|
@ -62,6 +64,9 @@ func _setup_renderers() -> void:
|
|||
_lair_overlay = LairOverlayRendererScript.new()
|
||||
_lair_overlay.name = "LairOverlayRenderer"
|
||||
$OverlayLayer.add_child(_lair_overlay)
|
||||
_fog_renderer = FogRendererScript.new()
|
||||
_fog_renderer.name = "FogRenderer"
|
||||
$FogLayer.add_child(_fog_renderer)
|
||||
_city_screen = CityScreenScene.instantiate()
|
||||
add_child(_city_screen)
|
||||
_chronicle_panel = ChroniclePanelScene.instantiate()
|
||||
|
|
@ -105,6 +110,13 @@ func _start_game() -> void:
|
|||
_hex_renderer.render_map(game_map)
|
||||
_lair_overlay.refresh()
|
||||
|
||||
var local_player: int = 0
|
||||
if not GameState.players.is_empty():
|
||||
var first_player: RefCounted = GameState.get_player(0)
|
||||
if first_player != null:
|
||||
local_player = first_player.index
|
||||
_fog_renderer.initialize(game_map, local_player)
|
||||
|
||||
var bg_camera: Camera2D = _viewport_manager.get_background_camera()
|
||||
bg_camera.setup_bounds(game_map.width, game_map.height)
|
||||
|
||||
|
|
@ -196,6 +208,7 @@ func _update_fog(player: RefCounted, game_map: RefCounted) -> void:
|
|||
elif vis == 1:
|
||||
fog_positions.append(pos)
|
||||
_hex_renderer.update_fog(visible_positions, fog_positions)
|
||||
_fog_renderer.update_all(game_map)
|
||||
|
||||
|
||||
func _sync_units() -> void:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue