public override void Construct(Blob arguments, EntityUniverseFacade entityUniverseFacade) { base.Construct(arguments, entityUniverseFacade); _universe = entityUniverseFacade; var tile = GameContext.TileDatabase.GetTileConfiguration(arguments.GetString("tile")); var component = tile.Components.Select <ChargeableComponent>().FirstOrDefault(); if (component != default(ChargeableComponent)) { _outputToTiles = component.OutputToTiles; _inputFromTiles = component.InputFromTiles; } CycleHook.AddCycle(arguments.FetchBlob("location").GetVector3I()); }
public override void PreUpdate(Timestep timestep, EntityUniverseFacade universe) { base.PreUpdate(timestep, universe); if (universe.ReadTile(Location, TileAccessFlags.SynchronousWait, out var tile)) { if (tile.Configuration.Code == "staxel.tile.Sky") { CycleHook.RemoveCycle(Location); universe.RemoveEntity(Entity.Id); } else { Cycle.RunCycle(RunCycle); } } }