fix: recover players from shallow freshwater
This commit is contained in:
parent
d2ee4a515e
commit
8dbeb06e73
6 changed files with 65 additions and 7 deletions
|
|
@ -151,6 +151,11 @@ func _validate_portable_water_body() -> void:
|
|||
water_body.set("surface_size", Vector2(12.0, 8.0))
|
||||
water_body.set("fishing_depth", 6.0)
|
||||
water_body.set("recovery_depth", 7.0)
|
||||
water_body.set(
|
||||
"recovery_entry_height_reference",
|
||||
PlayerWaterTrigger.EntryHeightReference.PLAYER_ORIGIN,
|
||||
)
|
||||
water_body.set("recovery_entry_depth_threshold", 0.1)
|
||||
water_body.set("fish_pool", PondPool)
|
||||
root.add_child(water_body)
|
||||
await process_frame
|
||||
|
|
@ -169,8 +174,15 @@ func _validate_portable_water_body() -> void:
|
|||
assert(is_equal_approx(fishing_region.get_surface_height(), 7.0))
|
||||
assert(is_equal_approx(fishing_shape_node.position.y, -3.0))
|
||||
assert(fishing_shape.size.is_equal_approx(Vector3(12.0, 6.0, 8.0)))
|
||||
var recovery_region := water_body.get_node("RecoveryRegion") as Area3D
|
||||
var recovery_region := (
|
||||
water_body.get_node("RecoveryRegion") as PlayerWaterTrigger
|
||||
)
|
||||
assert(is_equal_approx(recovery_region.position.y, -3.5))
|
||||
assert(
|
||||
recovery_region.entry_height_reference
|
||||
== PlayerWaterTrigger.EntryHeightReference.PLAYER_ORIGIN
|
||||
)
|
||||
assert(is_equal_approx(recovery_region.entry_depth_threshold, 0.1))
|
||||
|
||||
water_body.queue_free()
|
||||
await process_frame
|
||||
|
|
|
|||
|
|
@ -377,6 +377,12 @@ func _validate_generated_region(
|
|||
assert(ocean != null and fresh_root != null)
|
||||
assert(ocean.water_type == WaterType.Type.SALT_WATER)
|
||||
assert(is_equal_approx(ocean.position.y, GeneratedWorldRegion.WATER_HEIGHT))
|
||||
var ocean_recovery := ocean.get_node("RecoveryRegion") as PlayerWaterTrigger
|
||||
assert(
|
||||
ocean_recovery.entry_height_reference
|
||||
== PlayerWaterTrigger.EntryHeightReference.BODY_CENTER
|
||||
)
|
||||
assert(is_equal_approx(ocean_recovery.entry_depth_threshold, 0.35))
|
||||
var fresh_placement_count := 0
|
||||
var river_placement_count := 0
|
||||
var polygon_sizes_by_coordinate: Dictionary[Vector2i, int] = {}
|
||||
|
|
@ -415,6 +421,14 @@ func _validate_generated_region(
|
|||
assert(fresh.surface_size.x <= 10.0 and fresh.surface_size.y <= 10.0)
|
||||
assert(not fresh.visual_surface_enabled)
|
||||
assert(not (fresh.get_node("VisualWater") as MeshInstance3D).visible)
|
||||
var fresh_recovery := (
|
||||
fresh.get_node("RecoveryRegion") as PlayerWaterTrigger
|
||||
)
|
||||
assert(
|
||||
fresh_recovery.entry_height_reference
|
||||
== PlayerWaterTrigger.EntryHeightReference.PLAYER_ORIGIN
|
||||
)
|
||||
assert(is_equal_approx(fresh_recovery.entry_depth_threshold, 0.1))
|
||||
var coordinate_tokens := child.name.trim_prefix("FreshWater_").split("_")
|
||||
assert(coordinate_tokens.size() == 2)
|
||||
var coordinate := Vector2i(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue