Add modular holdover fishing world
This commit is contained in:
parent
6a5923fdb8
commit
a91f2b9825
17 changed files with 1354 additions and 191 deletions
43
world/regions/graybox_region.gd
Normal file
43
world/regions/graybox_region.gd
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
class_name GrayboxRegion
|
||||
extends Node3D
|
||||
|
||||
@export var region_id: StringName
|
||||
@export var fishable_water_root: NodePath = ^"FishingWater"
|
||||
@export var water_recovery_root: NodePath = ^"WaterRecovery"
|
||||
@export var safe_respawns_root: NodePath = ^"SafeRespawns"
|
||||
|
||||
|
||||
func get_fishable_water_regions() -> Array[FishableWaterRegion]:
|
||||
var regions: Array[FishableWaterRegion] = []
|
||||
var root: Node = get_node_or_null(fishable_water_root)
|
||||
if root == null:
|
||||
return regions
|
||||
for child: Node in root.get_children():
|
||||
var water: FishableWaterRegion = child as FishableWaterRegion
|
||||
if water != null:
|
||||
regions.append(water)
|
||||
return regions
|
||||
|
||||
|
||||
func get_water_recovery_triggers() -> Array[PlayerWaterTrigger]:
|
||||
var triggers: Array[PlayerWaterTrigger] = []
|
||||
var root: Node = get_node_or_null(water_recovery_root)
|
||||
if root == null:
|
||||
return triggers
|
||||
for child: Node in root.get_children():
|
||||
var trigger: PlayerWaterTrigger = child as PlayerWaterTrigger
|
||||
if trigger != null:
|
||||
triggers.append(trigger)
|
||||
return triggers
|
||||
|
||||
|
||||
func get_safe_respawn_points() -> Array[SafeRespawnPoint]:
|
||||
var points: Array[SafeRespawnPoint] = []
|
||||
var root: Node = get_node_or_null(safe_respawns_root)
|
||||
if root == null:
|
||||
return points
|
||||
for child: Node in root.get_children():
|
||||
var point: SafeRespawnPoint = child as SafeRespawnPoint
|
||||
if point != null:
|
||||
points.append(point)
|
||||
return points
|
||||
Loading…
Add table
Add a link
Reference in a new issue