Claude
9872cb9930
Draw the neon components in the editor, not just at runtime
...
Nothing under ui/ or vfx/ was marked @tool, so every hand-drawn control
rendered as an empty rect in the editor. BuildMenu.tscn positions its
buttons with hand-tuned pixel offsets (offset_left = -204) around a glyph
identified only as `icon = 8` - laying out invisible boxes by number.
@tool on the three scene-placed components that are safe to run in the
editor, covering 23 of the 34 placements: IconButton (20 scenes),
TouchJoystick (2), NeonPanel (1).
Two of them mutate persisted properties on _ready, which under @tool
would write computed values back into the .tscn every time the scene was
opened, so both are guarded with Engine.is_editor_hint():
NeonPanel._fit_to_screen() rewrites all four offsets
TouchJoystick._relayout() overwrites max_radius, which is @export
IconButton's _gui_input is guarded too, so clicking a button on the
editor canvas does not emit `pressed`.
The autoload-heavy drawers (ResourceBar, PriceTag, QuestPanel,
ResourceTransferList, SkillTreeView, FormationEditor - 6 to 16
GameState./Quests. references each) are left alone; they need their call
sites guarded first.
Verified: 172/172 headless, and a --headless --editor pass loads the
project with no script errors. That pass only proves the scripts parse
under @tool - it never opens a scene, so it does not exercise the
in-editor _draw.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
2026-09-08 14:13:51 +02:00
..
menus
Stop redrawing what only needs moving
2026-09-08 11:35:45 +02:00
AbilityButtonLayout.gd
Arrange fleet abilities around fire stick
2026-09-03 23:00:52 +02:00
AbilityButtonLayout.gd.uid
Buy fleet berths with Fleet Offices
2026-09-05 17:09:27 +02:00
BreachOverlay.gd
#125 : slow the prologue down, and give the breach a real black hole
2026-08-24 13:25:10 +02:00
BreachOverlay.gd.uid
Add the .uid files for the newest tests
2026-08-24 20:50:51 +02:00
DevMenuButton.gd
Add a free-costs sandbox tool
2026-09-04 22:34:36 +02:00
DevMenuButton.gd.uid
Turn dev mode into sandbox menu
2026-09-03 20:05:33 +02:00
FormationEditor.gd
#118/#121: the speed fader and the formation editor under a mouse
2026-08-23 21:59:24 +02:00
FormationEditor.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
GarrisonPanel.gd
#102/#103 (#97d/#97e): the outpost, and the garrison you compose for it
2026-08-23 14:02:20 +02:00
GarrisonPanel.gd.uid
Add the .uid files Godot generated for the new scripts
2026-08-23 19:23:50 +02:00
IconButton.gd
Draw the neon components in the editor, not just at runtime
2026-09-08 14:13:51 +02:00
IconButton.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LoadingScreen.gd
Resolve pending gameplay tickets
2026-09-02 13:43:56 +02:00
LoadingScreen.gd.uid
#166-#173: plainer words, a point to shoot at, and a catalog that says when it is broken
2026-08-30 14:04:46 +02:00
MainMenu.gd
tmp
2026-08-30 16:53:08 +02:00
MainMenu.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
MainMenu.tscn
Smooth boosted fleet travel
2026-09-04 20:01:56 +02:00
NarrationBanner.gd
Polish dialog and intro transitions
2026-09-02 20:18:44 +02:00
NarrationBanner.gd.uid
Add the .uid files Godot generated for the newest scripts
2026-08-24 12:10:41 +02:00
NeonNumber.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
NeonNumber.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
NeonPanel.gd
Draw the neon components in the editor, not just at runtime
2026-09-08 14:13:51 +02:00
NeonPanel.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
PaletteEntryButton.gd
Take planets by killing what defends them
2026-09-05 13:31:25 +02:00
PaletteEntryButton.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
PlanningPanel.gd
#106/#107 (#98a/#98b): the Planning Center
2026-08-23 14:21:52 +02:00
PlanningPanel.gd.uid
Add the .uid files Godot generated for the new scripts
2026-08-23 19:23:50 +02:00
PriceTag.gd
Resolve pending gameplay tickets
2026-09-02 13:43:56 +02:00
PriceTag.gd.uid
#136 , #137 , #134 : one build grid that cannot stack, one way to show a price
2026-08-28 15:05:20 +02:00
QuestPanel.gd
#166-#173: plainer words, a point to shoot at, and a catalog that says when it is broken
2026-08-30 14:04:46 +02:00
QuestPanel.gd.uid
#140 : the objective moves behind a button next to the map's
2026-08-28 15:37:13 +02:00
ResourceBar.gd
Implement #160 , #161 , #162 , #163 , #164 and #165
2026-08-30 02:27:44 +02:00
ResourceBar.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ResourceReadout.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ResourceReadout.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ResourceTransferList.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ResourceTransferList.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ScannerGuidance.gd
Stop redrawing what only needs moving
2026-09-08 11:35:45 +02:00
ScannerGuidance.gd.uid
Buy fleet berths with Fleet Offices
2026-09-05 17:09:27 +02:00
ScannerGuidance.tscn
Sharpen upgrades, mark the convoy's destination, and give the world sound
2026-09-05 12:16:17 +02:00
SkillTreeView.gd
Implement #160 , #161 , #162 , #163 , #164 and #165
2026-08-30 02:27:44 +02:00
SkillTreeView.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
SpeedFader.gd
#118/#121: the speed fader and the formation editor under a mouse
2026-08-23 21:59:24 +02:00
SpeedFader.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
TouchJoystick.gd
Draw the neon components in the editor, not just at runtime
2026-09-08 14:13:51 +02:00
TouchJoystick.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
WaveAlert.gd
#100 (#97b): waves replace the roaming enemy spawner
2026-08-23 13:37:42 +02:00
WaveAlert.gd.uid
Add the .uid files Godot generated for the new scripts
2026-08-23 19:23:50 +02:00