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);
                }
            });
        }
Example #2
0
        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);
        }