public override void Update(Timestep timestep, EntityUniverseFacade entityUniverseFacade) { var state = entityUniverseFacade.FetchTileStateEntityLogic(Location, TileAccessFlags.SynchronousWait, out var tile) as SwitchTileStateEntityLogic; entityUniverseFacade.ForAllEntitiesInRange(Location.ToTileCenterVector3D(), 2, entity => { if (entity.Logic is InnerCableTileEntityLogic logic) { logic.PowerState(state.On == tile.Configuration); } }); }
public static bool AnyInnerCableEntitiesInTile(this EntityUniverseFacade facade, Vector3I location, out Lyst <Entity> entities) { var output = false; var outputEntities = new Lyst <Entity>(); facade.ForAllEntitiesInRange(location.ToTileCenterVector3D(), 1F, entity => { if (entity.Logic is InnerCableTileEntityLogic logic) { if (logic.Location == location) { output = true; outputEntities.Add(entity); } } }); entities = outputEntities; return(output); }