feat: v2.0.0 -- confirmed working, scaffolding removed

Confirmed in game. The radiator's thermal-ammo and hold signals both
arrive, VentAllowed goes false, and the radiator idles with its manual
switch still on -- heat banked for the launchers instead of vented.

The self-test probes did their job: ThresholdToggle was fine, and a
mod-defined category carries a value perfectly well. The EMP probe was
simply a bad probe -- it read thermal_load_dissipation, which an idled
radiator broadcasts as zero, so it was correctly reporting a real zero.
Routing in v1.3.0 was the actual cure.

Remove the probes and the diagnostic indicators. The repointed power
indicator is the one cue a player needs: it now shows on a radiator the
mod has idled.

Add test_override_values_name_real_components, which catches an Overrides
value naming a component that does not exist -- a fourth way to produce a
mod that loads clean and does nothing, and one this very commit
introduced while stripping the scaffolding.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011oLWY1G6S8U35bi2FxVWni
This commit is contained in:
2026-08-29 00:27:25 +02:00
co-authored by Claude Opus 5
parent 323ee90f3d
commit d82b7e43a4
5 changed files with 99 additions and 212 deletions
+2 -73
View File
@@ -72,67 +72,6 @@ AutoRad_ForceVent
Invert = true
}
// --- Self-test probes -------------------------------------------------------
//
// Three versions of this mod have now loaded cleanly and done nothing, each for
// a different reason, so these bisect the remaining possibilities directly.
// Each drives an indicator, and an indicator is drawn while its toggle is OFF,
// so in every case a visible icon means that probe FAILED.
// A: does ThresholdToggle behave as expected at all? No network involved.
AutoRad_ProbeOne { Type = StaticValue; Value = 1 }
AutoRad_ProbeThresholdOK
{
Type = ThresholdToggle
ValueFrom = AutoRad_ProbeOne
MinAmount = 0
MaxAmount = 0
Invert = true
}
// B: can a mod-defined category carry a value at all? The radiator broadcasts
// and receives this one itself, so no second part is involved.
AutoRad_ProbeBroadcast
{
Type = NetworkValue
ValueSource = AutoRad_ProbeOne
Categories = [ auto_radiator_selftest ]
IncludeInBlueprints = false
}
AutoRad_ProbeReceive
{
Type = NetworkValueReceiver
Categories = [ auto_radiator_selftest ]
Mode = Max
AllowUncategorized = false
}
AutoRad_ProbeSelfLoopOK
{
Type = ThresholdToggle
ValueFrom = AutoRad_ProbeReceive
MinAmount = 0
MaxAmount = 0
Invert = true
}
// C: does receiving work for a category vanilla already broadcasts? The
// radiator's own NetworkedThermalDissipationLoadValue publishes this one.
AutoRad_ProbeVanillaCat
{
Type = NetworkValueReceiver
Categories = [ thermal_load_dissipation ]
Mode = Max
AllowUncategorized = false
}
AutoRad_ProbeVanillaCatOK
{
Type = ThresholdToggle
ValueFrom = AutoRad_ProbeVanillaCat
MinAmount = 0
MaxAmount = 0
Invert = true
}
AutoRad_VentAllowed
{
Type = MultiToggle
@@ -146,21 +85,11 @@ AutoRad_VentAllowed
}
// The replacement gate. PowerToggle is the radiator's vanilla UIToggle, so the
// player's switch remains the master control.
// player's switch remains the master control: it can turn a radiator off, and
// the automation can only idle one the player has left on.
AutoPowerToggle
{
Type = MultiToggle
Toggles = [ PowerToggle, AutoRad_VentAllowed ]
Mode = All
}
// Diagnostic anchor. An indicator icon shows while its toggle is OFF, so an
// icon bound to this one is visible whenever these components were merged onto
// the part at all. If that icon is absent, the AddBase in mod.rules did not
// take effect and nothing else in this file is running either -- which is the
// single most useful thing to be able to tell apart from a dead signal.
AutoRad_AlwaysOff
{
Type = StaticToggle
ToggleOn = false
}