LANTERN purge B1: delete the automation chain (Harvester/Conveyor/Fabricator)

Deletes the M7 production systems, automation components/math, authoring, 3
machine prefabs, and 6 test files (-43 tests, 459 green). Trims the automation
paths out of BaseRestoreSystem/SaveStructureScan/BuildPlaceSystem/BuildSendSystem/
HudSystem/HudTheme/StructureCatalogAuthoring/Tuning. RuntimePlacedTag (save
marker, a keeper) re-homed into StructureComponents.cs. StructureType byte codes
stay reserved.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 14:32:11 -07:00
parent 511e78556b
commit a0f6d4a5c4
49 changed files with 39 additions and 2680 deletions
@@ -6,12 +6,10 @@ using UnityEngine.Serialization;
namespace ProjectM.Authoring
{
/// <summary>
/// Authoring for the baked <see cref="StructureCatalog"/> singleton (the build cost/prefab table). For the
/// M6 foundation there is one buildable type (Turret), so the entry is flat fields — only the prefab
/// object-ref + cost amount need inspector wiring; the type + cost-resource are byte consts in the baker
/// (enum-via-MCP is unreliable, and bytes dodge the cross-assembly enum-in-Burst hazard). M7 generalizes to
/// an array; the runtime <see cref="StructureCatalogEntry"/> buffer is already the data-driven shape. Place
/// once in the gameplay subscene.
/// Authoring for the baked <see cref="StructureCatalog"/> singleton (the build cost/prefab table). Flat
/// prefab + cost fields per buildable type (the type + cost-resource are byte consts in the baker —
/// enum-via-MCP is unreliable, and bytes dodge the cross-assembly enum-in-Burst hazard); the runtime
/// <see cref="StructureCatalogEntry"/> buffer is the data-driven shape. Place once in the gameplay subscene.
/// </summary>
public class StructureCatalogAuthoring : MonoBehaviour
{
@@ -33,18 +31,6 @@ namespace ProjectM.Authoring
[Tooltip("Ore cost to build a pylon.")]
[Min(0)] public int PylonCostOre = 2;
[Tooltip("Harvester machine ghost prefab (HarvesterAuthoring + GhostAuthoring).")]
public GameObject HarvesterPrefab;
[Min(0)] public int HarvesterCostOre = 20;
[Tooltip("Fabricator machine ghost prefab (FabricatorAuthoring + GhostAuthoring).")]
public GameObject FabricatorPrefab;
[Min(0)] public int FabricatorCostOre = 30;
[Tooltip("Conveyor belt ghost prefab (ConveyorAuthoring + GhostAuthoring).")]
public GameObject ConveyorPrefab;
[Min(0)] public int ConveyorCostOre = 2;
private class StructureCatalogBaker : Baker<StructureCatalogAuthoring>
{
public override void Bake(StructureCatalogAuthoring authoring)
@@ -84,40 +70,6 @@ namespace ProjectM.Authoring
CostAmount = authoring.PylonCostOre,
});
}
if (authoring.HarvesterPrefab != null)
{
buf.Add(new StructureCatalogEntry
{
Type = StructureType.Harvester,
Prefab = GetEntity(authoring.HarvesterPrefab, TransformUsageFlags.Dynamic),
CostResourceId = ResourceId.Ore,
CostAmount = authoring.HarvesterCostOre,
});
}
if (authoring.FabricatorPrefab != null)
{
buf.Add(new StructureCatalogEntry
{
Type = StructureType.Fabricator,
Prefab = GetEntity(authoring.FabricatorPrefab, TransformUsageFlags.Dynamic),
CostResourceId = ResourceId.Ore,
CostAmount = authoring.FabricatorCostOre,
});
}
if (authoring.ConveyorPrefab != null)
{
buf.Add(new StructureCatalogEntry
{
Type = StructureType.Conveyor,
Prefab = GetEntity(authoring.ConveyorPrefab, TransformUsageFlags.Dynamic),
CostResourceId = ResourceId.Ore,
CostAmount = authoring.ConveyorCostOre,
});
}
}
}
}