spaceship/vessels
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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