Add modular holdover fishing world

This commit is contained in:
Alexander Sellite 2026-07-26 00:33:37 -04:00
parent 6a5923fdb8
commit a91f2b9825
17 changed files with 1354 additions and 191 deletions

View file

@ -5,23 +5,52 @@ const FishingShopInteractionType = preload(
"res://world/fishing_shop_interaction.gd"
)
@onready var _water_trigger: PlayerWaterTrigger = %PlayerWaterTrigger
@onready var _safe_respawn_points: Node3D = %SafeRespawnPoints
@onready var _fishing_shop: FishingShopInteractionType = %FishingShopInteraction
@onready var _regions_root: Node3D = $Regions
@onready var _below_world_failsafe: PlayerWaterTrigger = (
$Safety/BelowWorldFailsafe
)
@onready var _fishing_shop: FishingShopInteractionType = (
$Regions/VillageRegion/Interactables/FishingShopWorld/FishingShopInteraction
)
func get_player_water_trigger() -> PlayerWaterTrigger:
return _water_trigger
func get_player_water_triggers() -> Array[PlayerWaterTrigger]:
var triggers: Array[PlayerWaterTrigger] = []
for region: GrayboxRegion in _get_regions():
triggers.append_array(region.get_water_recovery_triggers())
triggers.append(_below_world_failsafe)
return triggers
func get_safe_respawn_points() -> Array[SafeRespawnPoint]:
var points: Array[SafeRespawnPoint] = []
for child: Node in _safe_respawn_points.get_children():
var point: SafeRespawnPoint = child as SafeRespawnPoint
if point != null:
points.append(point)
for region: GrayboxRegion in _get_regions():
points.append_array(region.get_safe_respawn_points())
return points
func get_fishing_shop() -> FishingShopInteractionType:
return _fishing_shop
func get_fishable_water_regions() -> Array[FishableWaterRegion]:
var waters: Array[FishableWaterRegion] = []
for region: GrayboxRegion in _get_regions():
waters.append_array(region.get_fishable_water_regions())
return waters
func get_pelican_convenience_landmark() -> Node3D:
return (
$Regions/VillageRegion/Interactables/PelicanCoolerPerch
as Node3D
)
func _get_regions() -> Array[GrayboxRegion]:
var regions: Array[GrayboxRegion] = []
for child: Node in _regions_root.get_children():
var region: GrayboxRegion = child as GrayboxRegion
if region != null:
regions.append(region)
return regions