Exemplo n.º 1
0
        private void InitializeCellSpacePartition()
        {
            CellSpacePartition = new Systems.CellSpacePartition(Diameter, Diameter, 4);
            int[,] newTileMap  = GetProperTextures();
            for (int y = 0; y < tileMap.GetLength(1); y++)
            {
                for (int x = 0; x < tileMap.GetLength(0); x++)
                {
                    if (tileMap[x, y] != -1)
                    {
                        //Console.WriteLine(tileMap[x,y]);

                        Tile tempTile = new Tile();

                        switch (tileMap[x, y])
                        {
                        case 0:
                        {
                            Console.WriteLine("Using Old Tile, please check ");
                            break;
                        }

                        case 1:
                        {
                            Console.WriteLine("Using Old Tile, please check ");
                            break;
                        }

                        case 3:
                        {
                            switch (newTileMap[x, y])
                            {
                            case 1:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 10, Tile.TileType.Solid);
                                break;
                            }

                            case 2:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 11, Tile.TileType.Solid);
                                break;
                            }

                            case 3:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 12, Tile.TileType.Solid);
                                break;
                            }

                            case 4:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 13, Tile.TileType.Solid);
                                break;
                            }

                            case 5:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 14, Tile.TileType.Solid);
                                break;
                            }

                            case 6:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 15, Tile.TileType.Solid);
                                break;
                            }

                            case 7:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 16, Tile.TileType.Solid);
                                break;
                            }

                            case 8:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 17, Tile.TileType.Solid);
                                break;
                            }

                            case 9:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 18, Tile.TileType.Solid);
                                break;
                            }

                            case 10:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 19, Tile.TileType.Solid);
                                break;
                            }

                            case 11:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), 20, Tile.TileType.Solid);
                                break;
                            }

                            default:
                            {
                                tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), tileMap[x, y], Tile.TileType.Solid);
                                break;
                            }
                            }

                            break;
                        }

                        default:
                        {
                            tempTile = new Tile(new Vector2(position.X + (x * 128), position.Y + (y * 128)), tileMap[x, y], Tile.TileType.NonSolid);
                            break;
                        }
                        }
                        if (Utilities.Debug.debug)
                        {
                            Console.WriteLine(tempTile.id + " added tile type " + tempTile.tileType.ToString() + " with " + tempTile.components.Count() + " components");
                        }

                        switch (tempTile.tileType)
                        {
                        case Tile.TileType.NonSolid:
                        {
                            CellSpacePartition.AddStaticEntity(tempTile);
                            break;
                        }

                        case Tile.TileType.Solid:
                        {
                            CellSpacePartition.AddEntity(tempTile);
                            break;
                        }
                        }
                    }
                }
            }

            nodeMesh.MakeMap(3, tileMap);

            tileMap = null;
        }
Exemplo n.º 2
0
 /// <summary>
 /// Adds entity to the static cell partition
 /// </summary>
 /// <param name="entity"></param>
 public void AddStaticEntity(Entity.Entity entity)
 {
     cellSpacePartition.AddStaticEntity(entity);
 }