Beispiel #1
0
        private async void SetupWallIllusionSidesAsync(WallIlusionInitializer initializer, int?randomDecoration, ITile tile)
        {
            await sidesCreator.SetupSidesAwaitableAsync(initializer, currentGridPosition, tile);

            var trickSides = MapDirection.Sides.Except(initializer.WallSides.Select(x => x.Face))
                             .Select(x =>
            {
                var decoration = randomDecoration != null ? builder.WallTextures[randomDecoration.Value] : null;
                var res        = new TileSide(x);
                res.Renderer   = builder.Factories.RenderersSource.GetWallIllusionTileSideRenderer(res, builder.WallTexture, decoration);
                return(res);
            });

            initializer.WallSides = initializer.WallSides
                                    .Concat(trickSides)
                                    .ToArray();
        }
Beispiel #2
0
        public Tile GetTile(TrickTileData t)
        {
            SetMinimapTile(Color.Green);

            var trickTileInitializer = new WallIlusionInitializer
            {
                Imaginary        = t.IsImaginary,
                Open             = t.IsOpen,
                RandomDecoration = t.RandomDecoration,
            };

            var res = new WallIlusion(trickTileInitializer);

            SetupWallIllusionSidesAsync(trickTileInitializer, t.RandomDecoration, res);
            res.Renderer = builder.Factories.RenderersSource.GetWallIllusionTileRenderer(res, builder.WallTexture);

            initializer = trickTileInitializer;
            return(res);
        }
Beispiel #3
0
 public WallIlusion(WallIlusionInitializer initalizer) : base(initalizer)
 {
 }