Пример #1
0
        public Tile GetTile(FloorTileData t)
        {
            SetMinimapTile(Color.White);

            var initalizer = new FloorInitializer();
            var res        = new FloorTile(initalizer);

            sidesCreator.SetupSidesAsync(initalizer, currentGridPosition, res);
            res.Renderer     = builder.Factories.RenderersSource.GetTileRenderer(res);
            this.initializer = initalizer;
            return(res);
        }
Пример #2
0
        public virtual async Task SetupSidesAwaitableAsync(FloorInitializer initalizer, Point pos, ITile tile)
        {
            var sides = await Task.WhenAll(MapDirection.Sides
                                           .Select(d => Tuple.Create(d, builder.CurrentMap.GetTileData(pos + d)))
                                           .Where(t => t.Item2 == null || t.Item2.GetType() == typeof(WallTileData))
                                           .Select(async t => await CreateWallSide(t.Item1, (WallTileData)t.Item2, pos))
                                           .ToArray());

            //int level = builder.CurrentLevelIndex - 1;
            //if (level >= 0 && builder.Data.Maps[level].GetTileData(pos) is PitTileData)
            //{
            //    initalizer.WallSides = sides;
            //}
            //else
            //{
            initalizer.WallSides = sides
                                   .Concat(new[] { GetCeelingSide() })
                                   .ToArray();
            //}

            initalizer.FloorSide = await GetFloorSide(pos, tile);
        }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     FloorInitializer.CreateFloor();
     EnvironmentModel.Instance.RemoveAll();
     PickUpGenerator.Clear();
     EnvironmentModel.Instance.Offset = new Vector3(0, 0.5f, 0);         //this.transform.position;
     EnvironmentModel.Instance.Generate(25, 5, 5, 5);
     Player.transform.position = new Vector3(0, 100, 0);
     Star.transform.position   = this.CreateNewStar(5, 5, 5) + EnvironmentModel.Instance.Offset;
     PickUpGenerator.GenerateHearts(5, 7, 3, 7);
     LevelStopwatch.Instance.Reset();
     LevelStopwatch.Instance.Start();
     LevelStopwatch.Instance.ElapsedTimeSpan = new System.TimeSpan();
     this.currentLevel = 0;
     EnvironmentModel.Instance.CurrentLevel = 0;
     Constants.DestroyedBlocksCounter       = 0;
     Constants.CreatedBlocksCounter         = 0;
     if (this.first)
     {
         EnvironmentModel.Instance.DestroyGameObjectEvent += (GameObject obj) => DestroyImmediate(obj);
         first = false;
     }
 }
Пример #4
0
 public FloorTile(FloorInitializer initializer) : base(initializer)
 {
 }
Пример #5
0
 public async void SetupSidesAsync(FloorInitializer initalizer, Point pos, ITile tile)
 {
     await SetupSidesAwaitableAsync(initalizer, pos, tile);
 }