Ejemplo n.º 1
0
        private async void SetupStairsSides(StairsInitializer stairsInitializer, ITile res)
        {
            var pos = currentGridPosition;
            await sidesCreator.SetupSidesAwaitableAsync(stairsInitializer, pos, res);

            stairsInitializer.FloorSide = null;

            stairsInitializer.WallSides = stairsInitializer.WallSides
                                          .Where(w => w.Face != MapDirection.Down && (stairsInitializer.Down || w.Face != MapDirection.Up))
                                          .ToArray();
        }
Ejemplo n.º 2
0
        public Tile GetTile(StairsTileData t)
        {
            SetMinimapTile(Color.Yellow);
            StairsInitializer stairsInitializer = new StairsInitializer {
                Down = t.Direction == VerticalDirection.Down
            };

            var res = new Stairs(stairsInitializer);

            SetupStairsSides(stairsInitializer, res);
            if (t.Direction == VerticalDirection.Down)
            {
                var upperStairsEntry = FindStairsEntryDirection(tilePosition.ToGrid(), -(int)tilePosition.Y);
                var lowerStairsEntry = FindStairsEntryDirection(tilePosition.ToGrid(), -(int)tilePosition.Y + 1);
                res.Renderer = builder.Factories.RenderersSource.GetUpperStairsTileRenderer(upperStairsEntry, lowerStairsEntry, res, builder.WallTexture);
            }
            else
            {
                res.Renderer = builder.Factories.RenderersSource.GetLowerStairsTileRenderer(res, builder.WallTexture);
            }

            this.initializer = stairsInitializer;
            return(res);
        }
Ejemplo n.º 3
0
 public Stairs(StairsInitializer initializer) : base(initializer)
 {
 }