Add modular holdover fishing world
This commit is contained in:
parent
6a5923fdb8
commit
a91f2b9825
17 changed files with 1354 additions and 191 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue