DungeonMasterEngine.Builders.WallActuatorCreator.CreateSetupActuators C# (CSharp) Method

CreateSetupActuators() public method

public CreateSetupActuators ( Tile currentTile ) : void
currentTile Tile
return void
        public void CreateSetupActuators(Tile currentTile)
        {
            CurrentTile = currentTile;

            var sides = 
                MapDirection.AllSides
                .Except(currentTile.Neighbours.Select(t => t.Item2))//sides with walls
                .Select(side =>
                {
                    var pos = CurrentTile.GridPosition + side;
                    var wall = builder.CurrentMap.GetTileData(pos); //get appropriate WallData
                    return wall == null ? null : new Tuple<TileData,Point,IReadOnlyList<ActuatorItemData>>(wall,pos,
                        wall.Actuators.Where(x => x.TilePosition == side.Opposite.ToTilePosition())
                        .ToArray());//select appropriate side
                })
                .Where(x => x != null );//filter map border nonexisting tiles

            foreach (var tuple in sides)
            {
                SetupTags(tuple.Item1, tuple.Item2);
                SetupWallSideActuators(tuple.Item1.GrabableItems, tuple.Item3);
            }
        }

Usage Example

Exemplo n.º 1
0
 private void SetupItems()
 {
     foreach (var tile in outputTiles)
     {
         WallActuatorCreator.CreateSetupActuators(tile);
         SetupFloorItems(tile);
     }
 }