public Entity SpawnEntity(EntityFactory factory, IntVector2 position, IntVector2 orientation) { System.Console.WriteLine($"Creating entity of factory id : {factory.id}"); var entity = factory.Instantiate(); entity.id = Registry.Global.RuntimeEntities.Add(entity); if (entity.TryInitTransform(position, orientation, out var transform)) { Grid.AddTransformNoEvent(transform); factory.InitInWorld(transform); } if (entity.TryInitActing(out var acting)) { State.AddActor(acting); } if (entity.TryGetTicking(out var ticking)) { ticking.Init(entity); State.AddTicking(ticking); } Chains.Get(SpawnEntityIndex).Pass(entity); return(entity); }