fix(parity): implement ground click ripple, target select glow, and 3D projectile obstacle collision with regression probes

This commit is contained in:
shen
2026-09-19 17:01:50 -07:00
parent 66d217b313
commit 5d43682498
6 changed files with 357 additions and 6 deletions
+19 -6
View File
@@ -196,12 +196,25 @@ class FlyInstance extends RefCounted:
_explode()
return false
if data.hit_on_background and _world and _world.has_method("sample_height"):
var gh := float(_world.call("sample_height", pos.x, pos.z))
if gh > pos.y:
_emit("at_background")
_explode()
return false
if data.hit_on_background:
if _world and _world.has_method("sample_height"):
var gh := float(_world.call("sample_height", pos.x, pos.z))
if gh > pos.y:
_emit("at_background")
_explode()
return false
# 40250 CFlyingInstance::Update FCheckBackgroundDuringFlying:
# 空间 3D 建筑与静态障碍物碰撞(碰撞层 2: StaticBody3D
if _world is Node3D and _world.is_inside_tree():
var w3d: World3D = _world.get_world_3d()
if w3d and w3d.direct_space_state:
var q := PhysicsRayQueryParameters3D.create(last_pos, pos, 2)
var hit := w3d.direct_space_state.intersect_ray(q)
if not hit.is_empty():
pos = hit.position
_emit("at_background")
_explode()
return false
return true
func _explode(bomb := true) -> void: