Loïc Wisniewski
12bd5eb7bf
Clip the cooldown fill with Geometry2D, not by hand
...
Every cooling vessel logged "Invalid polygon data, triangulation failed"
once per frame, for as long as its cooldown ran - 16 of them in a single
test_laser_vessel run. The fill was drawn anyway, so nothing looked wrong,
but it buried real errors in test logs.
_filled_hull cut each hull edge against the fill line itself, which is
Sutherland-Hodgman, and Sutherland-Hodgman is only sound for a CONVEX
subject. Hulls are not: the gas bomber has a tail notch and the distorder a
waist. On those it stitched the pieces back together with a zero-width
bridge, and a polygon with a zero-width bridge is not one the triangulator
accepts.
Geometry2D.intersect_polygons does the clipping properly and returns a list
of polygons, which is also the truer answer - a notched hull genuinely fills
as two puddles until the level rises past the notch. A weld-and-area guard
stays in front of the renderer for repeated vertices and slivers.
Zero triangulation errors across the vessel tests now.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 23:30:05 +02:00
..
CarrierCapacityUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
CarrierVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
DistorderVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Fleet.gd
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Fleet.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
GasBomberVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
InterceptorDamageUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorRangeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorRateUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorVesselDefinition.tres
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
LaserCooldownUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserDamageUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserRangeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Projectile.gd
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Projectile.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Projectile.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldHitsUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldRechargeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldVesselDefinition.tres
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
Ship.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Ship.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Ship.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
TransportCapacityUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
TransporterVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
TransportSpeedUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCooldownFillComponent.gd
Clip the cooldown fill with Geometry2D, not by hand
2026-08-22 23:30:05 +02:00
VesselCooldownFillComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinition.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinition.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinitions.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinitions.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGasBomberComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGasBomberComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGasBomberComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselUpgradeDefinition.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselUpgradeDefinition.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselWeaponComponent.gd
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
VesselWeaponComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselWeaponComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00