create StaticNodeManager to hold all the nodes that need to get accessed globally
This commit is contained in:
parent
be13b9dbfb
commit
a9aed09bfa
@ -27,6 +27,7 @@ UiManager="*res://scripts/globals/ui_manager.gd"
|
||||
HoveringManager="*res://scripts/globals/hovering_manager.gd"
|
||||
SelectionManager="*res://scripts/globals/selection_manager.gd"
|
||||
SoundManager="*res://scripts/globals/sound_manager.gd"
|
||||
StaticNodesManager="*res://scripts/globals/static_nodes_manager.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
|
||||
@ -73,7 +73,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -58.3389, 0, -63.0179)
|
||||
[node name="Aphids" type="Node" parent="Bunches"]
|
||||
|
||||
[node name="AphidsBunch" type="Marker3D" parent="Bunches/Aphids"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.716, 0, -56.9208)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -49.7297, 0, -59.3123)
|
||||
gizmo_extents = 2.71
|
||||
script = ExtResource("3_vkmt5")
|
||||
amount = 3
|
||||
@ -192,10 +192,11 @@ script = ExtResource("3_vkmt5")
|
||||
[node name="Honeydew" type="Node" parent="Bunches"]
|
||||
|
||||
[node name="BunchSpawner" type="Marker3D" parent="Bunches/Honeydew"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.2604, -7.62939e-06, -58.6667)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50.9454, -8.10623e-06, -60.0162)
|
||||
gizmo_extents = 4.7
|
||||
script = ExtResource("3_vkmt5")
|
||||
what = 1
|
||||
amount = 30
|
||||
|
||||
[node name="UI" type="Node" parent="."]
|
||||
|
||||
@ -214,6 +215,9 @@ current = true
|
||||
fov = 37.8493
|
||||
script = ExtResource("1_gnxhh")
|
||||
|
||||
[node name="AudioListener3D" type="AudioListener3D" parent="MainCamera"]
|
||||
current = true
|
||||
|
||||
[node name="AmbientAudio" type="AudioStreamPlayer" parent="."]
|
||||
process_mode = 3
|
||||
bus = &"ambient"
|
||||
|
||||
@ -10,17 +10,14 @@ var audio_3 := preload("res://assets/audio/ambient/ambient_3.ogg")
|
||||
var streams: Array[AudioStream] = [audio_1, audio_2, audio_3]
|
||||
var filter: AudioEffectHighPassFilter
|
||||
|
||||
@onready var main_camera: MainCamera = $/root/World/MainCamera
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
assert(main_camera != null, "main_camera missing!")
|
||||
|
||||
var bus_idx := AudioServer.get_bus_index(bus)
|
||||
for effect_idx in AudioServer.get_bus_effect_count(bus_idx):
|
||||
var effect := AudioServer.get_bus_effect(bus_idx, effect_idx)
|
||||
if effect is AudioEffectHighPassFilter:
|
||||
filter = effect
|
||||
assert(filter != null, "filter missing!")
|
||||
|
||||
stream = streams.pick_random()
|
||||
play()
|
||||
@ -28,7 +25,7 @@ func _ready() -> void:
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
filter.cutoff_hz = lerpf(
|
||||
ZOOMED_IN_CUTOFF,
|
||||
ZOOMED_OUT_CUTOFF,
|
||||
main_camera.zoom_value,
|
||||
ZOOMED_IN_CUTOFF,
|
||||
ZOOMED_OUT_CUTOFF,
|
||||
StaticNodesManager.main_camera.zoom_value,
|
||||
)
|
||||
|
||||
@ -11,8 +11,6 @@ var ant_nitwit := preload("res://scenes/units/ant_nitwit.tscn")
|
||||
var ant_gatherer := preload("res://scenes/units/ant_gatherer.tscn")
|
||||
|
||||
@onready var ui_origin: Node3D = $UiOrigin
|
||||
@onready var nitwits_holder: Node = $/root/World/Units/Nitwits
|
||||
@onready var gatherers_holder: Node = $/root/World/Units/Gatherers
|
||||
@onready var audio_player: SoundEffectsPlayer = (
|
||||
$SoundEffectsPlayer
|
||||
)
|
||||
@ -20,8 +18,6 @@ var ant_gatherer := preload("res://scenes/units/ant_gatherer.tscn")
|
||||
|
||||
func _ready() -> void:
|
||||
assert(ui_origin != null, "ui_origin missing!")
|
||||
assert(nitwits_holder != null, "nitwits_holder missing!")
|
||||
assert(gatherers_holder != null, "gatherers_holder missing!")
|
||||
assert(audio_player != null, "audio_player missing!")
|
||||
super._ready()
|
||||
honeydew += AntNitwit.get_cost()
|
||||
@ -50,14 +46,14 @@ func spawn_nitwit(ding: bool = true) -> void:
|
||||
if new_unit == null:
|
||||
return
|
||||
print('add!')
|
||||
nitwits_holder.add_child(new_unit)
|
||||
StaticNodesManager.nitwits_holder.add_child(new_unit)
|
||||
|
||||
|
||||
func spawn_gatherer() -> void:
|
||||
var new_unit := _create_unit(ant_gatherer, AntGatherer.get_cost())
|
||||
if new_unit == null:
|
||||
return
|
||||
gatherers_holder.add_child(new_unit)
|
||||
StaticNodesManager.gatherers_holder.add_child(new_unit)
|
||||
|
||||
|
||||
func _click() -> void:
|
||||
|
||||
@ -12,11 +12,7 @@ enum WhatToSpawn {
|
||||
var aphid := preload("res://scenes/units/aphid.tscn")
|
||||
var honeydew := preload("res://scenes/items/honeydew.tscn")
|
||||
|
||||
@onready var aphids_holder: Node = $/root/World/Units/Aphids
|
||||
@onready var honeydew_holder: Node = $/root/World/Items/Honeydew
|
||||
|
||||
func _ready() -> void:
|
||||
assert(aphids_holder != null, "aphids_holder missing!")
|
||||
for i in amount:
|
||||
var pos_offset := Vector3(
|
||||
randf_range(-gizmo_extents, gizmo_extents),
|
||||
@ -25,9 +21,17 @@ func _ready() -> void:
|
||||
)
|
||||
match what:
|
||||
WhatToSpawn.APHID:
|
||||
_spawn(aphid, global_position + pos_offset, aphids_holder)
|
||||
_spawn(
|
||||
aphid,
|
||||
global_position + pos_offset,
|
||||
StaticNodesManager.aphids_holder
|
||||
)
|
||||
WhatToSpawn.HONEYDEW:
|
||||
_spawn(honeydew, global_position + pos_offset, honeydew_holder)
|
||||
_spawn(
|
||||
honeydew,
|
||||
global_position + pos_offset,
|
||||
StaticNodesManager.honeydew_holder
|
||||
)
|
||||
|
||||
|
||||
func _spawn(scene: PackedScene, where: Vector3, holder: Node) -> void:
|
||||
|
||||
@ -15,8 +15,6 @@ var markers_to_draw: Array[Dictionary] = []
|
||||
var circles_to_draw: Array[Dictionary] = []
|
||||
var text_to_draw: PackedStringArray = []
|
||||
|
||||
@onready var main_camera: MainCamera = $/root/World/MainCamera
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
process_mode = Node.PROCESS_MODE_ALWAYS
|
||||
@ -38,7 +36,7 @@ func _process(_delta: float) -> void:
|
||||
|
||||
text('fps: ' + str(Performance.get_monitor(Performance.TIME_FPS)))
|
||||
text('draw calls: ' + str(Performance.get_monitor(Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME)))
|
||||
text('camera anim step: ' + str(main_camera.advance_anim_step))
|
||||
text('camera anim step: ' + str(StaticNodesManager.main_camera.advance_anim_step))
|
||||
text('select anim step: ' + str(SelectionManager.advance_anim_step))
|
||||
|
||||
|
||||
@ -82,7 +80,7 @@ func circle(pos: Vector3, color: Color = DEFAULT_COLOR) -> void:
|
||||
|
||||
|
||||
func _unproject(pos: Vector3) -> Vector2:
|
||||
return main_camera.unproject_position(pos)
|
||||
return StaticNodesManager.main_camera.unproject_position(pos)
|
||||
|
||||
|
||||
func _draw_text() -> void:
|
||||
|
||||
@ -3,7 +3,7 @@ extends Node3D
|
||||
var hovered_node: Variant
|
||||
var mouse_pos: Vector2 = Vector2.ZERO
|
||||
|
||||
@onready var camera: Camera3D = get_viewport().get_camera_3d()
|
||||
@onready var camera: Camera3D = StaticNodesManager.main_camera
|
||||
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
|
||||
@ -25,7 +25,7 @@ var advance_anim_step: int = 1
|
||||
|
||||
var rect_style := preload("res://resources/styles/selection_rect.tres")
|
||||
|
||||
@onready var camera: Camera3D = get_viewport().get_camera_3d()
|
||||
@onready var camera: Camera3D = StaticNodesManager.main_camera
|
||||
@onready var frustrum_area: Area3D = Area3D.new()
|
||||
@onready var frustrum_collision_shape: CollisionShape3D = CollisionShape3D.new()
|
||||
@onready var rect_panel: Panel = Panel.new()
|
||||
|
||||
19
scripts/globals/static_nodes_manager.gd
Normal file
19
scripts/globals/static_nodes_manager.gd
Normal file
@ -0,0 +1,19 @@
|
||||
extends Node
|
||||
|
||||
@onready var player_anthill: Anthill = $/root/World/Structures/Anthill
|
||||
@onready var main_camera: MainCamera = $/root/World/MainCamera
|
||||
|
||||
@onready var nitwits_holder: Node = $/root/World/Units/Nitwits
|
||||
@onready var gatherers_holder: Node = $/root/World/Units/Gatherers
|
||||
|
||||
@onready var aphids_holder: Node = $/root/World/Units/Aphids
|
||||
|
||||
@onready var honeydew_holder: Node = $/root/World/Items/Honeydew
|
||||
|
||||
func _ready() -> void:
|
||||
assert(player_anthill != null, "player_anthill missing!")
|
||||
assert(main_camera != null, "main_camera missing!")
|
||||
assert(nitwits_holder != null, "nitwits_holder missing!")
|
||||
assert(gatherers_holder != null, "gatherers_holder missing!")
|
||||
assert(aphids_holder != null, "aphids_holder missing!")
|
||||
assert(honeydew_holder != null, "honeydew_holder missing!")
|
||||
@ -52,13 +52,12 @@ var state: CameraState = CameraState.FREE
|
||||
|
||||
var window_out_of_focus: bool = false
|
||||
|
||||
@onready var anthill: Anthill = $/root/World/Structures/Anthill
|
||||
@onready var attrs: CameraAttributesPractical = attributes
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
assert(attrs != null, "attrs missing!")
|
||||
target_position = anthill.global_position
|
||||
target_position = StaticNodesManager.player_anthill.global_position
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
@ -95,7 +94,7 @@ func _input(event: InputEvent) -> void:
|
||||
zoom_raw = clampf(zoom_raw, 0, 1)
|
||||
|
||||
if event.is_action_pressed("reset_camera"):
|
||||
head_to(anthill.global_position)
|
||||
head_to(StaticNodesManager.player_anthill.global_position)
|
||||
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
|
||||
@ -9,6 +9,7 @@ func _ready() -> void:
|
||||
play()
|
||||
playback = get_stream_playback()
|
||||
|
||||
|
||||
func play_sound(
|
||||
new_stream: AudioStream,
|
||||
from_offset: float = 0,
|
||||
|
||||
@ -5,18 +5,14 @@ const EDGE_MARGIN = 10
|
||||
|
||||
var target: Node3D
|
||||
|
||||
@onready var camera: Camera3D = get_viewport().get_camera_3d()
|
||||
|
||||
func _ready() -> void:
|
||||
assert(camera != null, "camera missing!")
|
||||
super._ready()
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if not visible or target == null:
|
||||
return
|
||||
|
||||
var pos := camera.unproject_position(target.global_position)
|
||||
var pos := StaticNodesManager.main_camera.unproject_position(
|
||||
target.global_position
|
||||
)
|
||||
var corner_1 := Vector2.ONE * EDGE_MARGIN
|
||||
var viewport_size := get_viewport().get_visible_rect().size
|
||||
var corner_2 := Vector2(
|
||||
|
||||
@ -16,11 +16,8 @@ var spawned_honeydews: Dictionary = {}
|
||||
|
||||
var honeydew_scene := preload("res://scenes/items/honeydew.tscn")
|
||||
|
||||
@onready var holder: Node = $/root/World/Items/Honeydew
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
assert(holder != null, "holder missing!")
|
||||
super._ready()
|
||||
_set_spawn_timer()
|
||||
|
||||
@ -62,7 +59,7 @@ func _handle_honeydew_spawn(delta: float) -> void:
|
||||
new_honeydew.HEIGHT_OFFSET,
|
||||
randf_range(-HONEYDEW_SPAWN_SPREAD, HONEYDEW_SPAWN_SPREAD),
|
||||
)
|
||||
holder.add_child(new_honeydew)
|
||||
StaticNodesManager.honeydew_holder.add_child(new_honeydew)
|
||||
new_honeydew.global_position = global_position + new_pos
|
||||
_put_honeydew(new_honeydew)
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@ var selected: bool = false
|
||||
var is_relocating: bool = false
|
||||
var ground_plane: Plane = Plane(Vector3.UP, 0)
|
||||
|
||||
@onready var camera: Camera3D = get_viewport().get_camera_3d()
|
||||
@onready var selection_indicator: VisualInstance3D = $SelectionIndicator
|
||||
|
||||
|
||||
@ -26,7 +25,6 @@ func _init() -> void:
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
assert(camera != null, "camera missing!")
|
||||
assert(selection_indicator != null, "selection_indicator missing!")
|
||||
nav_agent.navigation_finished.connect(_on_nav_agent_navigation_finished)
|
||||
super._ready()
|
||||
@ -95,8 +93,8 @@ func _set_target_click(mouse_pos: Vector2) -> void:
|
||||
|
||||
|
||||
func _click_raycast(mouse_pos: Vector2) -> Vector3:
|
||||
var from := camera.global_position
|
||||
var to := camera.project_ray_normal(mouse_pos)
|
||||
var from := StaticNodesManager.main_camera.global_position
|
||||
var to := StaticNodesManager.main_camera.project_ray_normal(mouse_pos)
|
||||
return ground_plane.intersects_ray(from, to)
|
||||
|
||||
|
||||
|
||||
@ -24,7 +24,6 @@ var advance_anim_delta_accum: float = 0
|
||||
@onready var visibility_notifier: VisibleOnScreenNotifier3D = (
|
||||
$VisibleOnScreenNotifier3D
|
||||
)
|
||||
@onready var main_camera: MainCamera = $/root/World/MainCamera
|
||||
@onready var audio_player: SoundEffectsPlayer = (
|
||||
$SoundEffectsPlayer
|
||||
)
|
||||
@ -35,7 +34,6 @@ func _ready() -> void:
|
||||
assert(animation_tree != null, "animation_tree missing!")
|
||||
assert(visibility_notifier != null, "visibility_notifier missing!")
|
||||
assert(ui_origin != null, "ui_origin missing!")
|
||||
assert(main_camera != null, "main_camera missing!")
|
||||
assert(anim_advance_indicator != null, "anim_advance_indicator missing!")
|
||||
assert(audio_player != null, "audio_player missing!")
|
||||
super._ready()
|
||||
@ -110,7 +108,7 @@ func _animate(delta: float) -> void:
|
||||
advance_anim_delta_accum += delta
|
||||
|
||||
var advance_anim_step := maxi(
|
||||
main_camera.advance_anim_step,
|
||||
StaticNodesManager.main_camera.advance_anim_step,
|
||||
SelectionManager.advance_anim_step
|
||||
)
|
||||
var frame := Engine.get_frames_drawn()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user