using ProjectM.Simulation; using Unity.Entities; using UnityEngine; namespace ProjectM.Authoring { /// /// Authoring for a Blight-geyser ghost prefab (ownerless interpolated — duplicate from ResourceNode.prefab so the /// GhostAuthoringComponent + LinkedEntityGroup come free; keep a cosmetic vent mesh, NO physics collider — the /// hazard is the AoE, you walk over it). Bakes (NextEruptTick left 0 — the server stamps it /// born-correct from the live ServerTick at spawn in RoomFieldSystem; a 0 must NEVER erupt) + /// {Expedition} so GhostRelevancy scopes it to expedition players. The field spawner /// overrides Position + the born-correct NextEruptTick per instance. /// public class GeyserAuthoring : MonoBehaviour { private class GeyserBaker : Baker { public override void Bake(GeyserAuthoring authoring) { var entity = GetEntity(authoring, TransformUsageFlags.Dynamic); AddComponent(entity, new Geyser { NextEruptTick = 0u }); // 0 = unstamped; server stamps born-correct at spawn AddComponent(entity, new RegionTag { Region = RegionId.Expedition }); } } } }