Exemple #1
0
        public void InitTest()
        {
            var map = new HexTileMap <int>(1, 1);

            Assert.AreEqual(1, map.Width);
            Assert.AreEqual(1, map.Height);
        }
Exemple #2
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            Texture2D newTexture = Content.Load <Texture2D>(@"part3_tileset");

            Textures.Add("TileMap", newTexture);

            HexTile.Texture       = Textures["TileMap"];
            HexTile.Width         = 33;
            HexTile.Height        = 27;
            HexTile.StepX         = 52;
            HexTile.StepY         = 14;
            HexTile.OddRowXOffset = 26;

            hexMap = new HexTileMap(100, 100);

            // Create Sample Map Data
            hexMap.Rows[0].Columns[3].TileId = 3;
            hexMap.Rows[0].Columns[4].TileId = 3;
            hexMap.Rows[0].Columns[5].TileId = 1;
            hexMap.Rows[0].Columns[6].TileId = 1;
            hexMap.Rows[0].Columns[7].TileId = 1;

            hexMap.Rows[1].Columns[3].TileId = 3;
            hexMap.Rows[1].Columns[4].TileId = 1;
            hexMap.Rows[1].Columns[5].TileId = 1;
            hexMap.Rows[1].Columns[6].TileId = 1;
            hexMap.Rows[1].Columns[7].TileId = 1;

            hexMap.Rows[2].Columns[2].TileId = 3;
            hexMap.Rows[2].Columns[3].TileId = 1;
            hexMap.Rows[2].Columns[4].TileId = 1;
            hexMap.Rows[2].Columns[5].TileId = 1;
            hexMap.Rows[2].Columns[6].TileId = 1;
            hexMap.Rows[2].Columns[7].TileId = 1;

            hexMap.Rows[3].Columns[2].TileId = 3;
            hexMap.Rows[3].Columns[3].TileId = 1;
            hexMap.Rows[3].Columns[4].TileId = 1;
            hexMap.Rows[3].Columns[5].TileId = 2;
            hexMap.Rows[3].Columns[6].TileId = 2;
            hexMap.Rows[3].Columns[7].TileId = 2;

            hexMap.Rows[4].Columns[2].TileId = 3;
            hexMap.Rows[4].Columns[3].TileId = 1;
            hexMap.Rows[4].Columns[4].TileId = 1;
            hexMap.Rows[4].Columns[5].TileId = 2;
            hexMap.Rows[4].Columns[6].TileId = 2;
            hexMap.Rows[4].Columns[7].TileId = 2;

            hexMap.Rows[5].Columns[2].TileId = 3;
            hexMap.Rows[5].Columns[3].TileId = 1;
            hexMap.Rows[5].Columns[4].TileId = 1;
            hexMap.Rows[5].Columns[5].TileId = 2;
            hexMap.Rows[5].Columns[6].TileId = 2;
            hexMap.Rows[5].Columns[7].TileId = 2;
        }
Exemple #3
0
 /// <summary>
 /// 六边形地图
 /// </summary>
 /// <param name="agrs">六边形地图创建参数</param>
 /// <param name="terrainThroughCostDict">地形通过费用</param>
 public HexGrid(HexMapCreateArgs agrs, Dictionary <string, int> terrainThroughCostDict,
                GameAssetDataHelper gameAssetData, HexTileMap hexTileMap)
 {
     TerrainThroughCostDict = terrainThroughCostDict;
     m_gameAssetData        = gameAssetData;
     m_map = hexTileMap;
     Init(agrs.MapSize.x, agrs.MapSize.y);
 }
Exemple #4
0
 public HexGrid(HexCell[,] hexCells, Dictionary <string, int> terrainThroughCostDict = null,
                GameAssetDataHelper gameAssetData = null, HexTileMap hexTileMap = null)
 {
     HexCells = hexCells;
     TerrainThroughCostDict = terrainThroughCostDict;
     m_gameAssetData        = gameAssetData;
     m_map = hexTileMap;
 }
 // Use this for initialization
 void Start()
 {
     buildMenu = GameObject.Find("BuildMenu").transform;
     gManager = GameObject.FindWithTag("DataHolder").GetComponent<GameManager>();
     tileMapScript = GameObject.Find("HexEditor").GetComponent<HexTileMap>();
     buildMenuScript = buildMenu.GetComponent<UberBuildMenu>();
     buildMenu.gameObject.SetActive(false);
     buildMode = false;
     selected = false;
 }
Exemple #6
0
        void OnEnable()
        {
            hexMap = (HexTileMap)target;

            // Init anim bools
            showTileCoordinateFormat = new AnimBool(Repaint);

            Initialise();

            Undo.undoRedoPerformed += OnUndoPerformed;
        }
Exemple #7
0
        public void ReadWriteByCoord()
        {
            var axial = new AxialCoord(-1, +2);
            var map   = new HexTileMap <int>(5, 5);

            int expectedValue = 3;

            map[axial] = expectedValue;

            Assert.AreEqual(expectedValue, map[axial]);
            Assert.AreEqual(expectedValue, map[axial.ToOffset()]);
            Assert.AreEqual(expectedValue, map[axial.ToCube()]);
        }
      public async Task<HexTileMap> GetMap(int hexMapId)
      {
         var hexMap = await this.db.HexMaps.Include(hm => hm.Game.Memberships).SingleOrDefaultAsync(hm => hm.Id == hexMapId);

         if (!this.User.IsInRole("Administrator") && !hexMap.Game.Memberships.Any(m => m.ApplicationUserID == this.User.Identity.GetUserId()))
         {
            throw new AuthenticationException("Not a member of game that owns hex map " + hexMapId);
         }

         var hexes = await this.db.HexTiles.Where(tile => tile.HexMapId == hexMapId).ToListAsync();

         var hexTileMap = new HexTileMap(hexMap.Width, hexMap.Height);

         hexTileMap.AddTiles(hexes);

         return hexTileMap;
      }
Exemple #9
0
    public override void _Ready()
    {
        TileMap  = (HexTileMap)GetNode("HexTileMap");
        Hovered  = (Sprite)GetNode("Hovered");
        Selected = (Sprite)GetNode("Selected");

        // Inicia o TileManager
        foreach (Vector2 cell in TileMap.GetUsedCells())
        {
            TileManager.Tiles[cell.x, cell.y] = new Tile(Terrain.GetTerrain(TileMap.GetCellv(cell)));
        }

        // Adiciona a primeira unidade do jogo
        Unit newUnit = UnitManager.CreateUnit(UnitType.Goblin);

        newUnit.Position = TileMap.TileSize / 2;
        AddChild(newUnit);
    }
Exemple #10
0
    private void SelectMap(HexTile tile, HexTileMap map, int player)
    {
        if (tile != null)
        {
            foreach (KeyValuePair <HexTile.eDirection, HexTileMap> h in map.Map)
            {
                SelectMap((HexTile)tile.Neighbors[(int)h.Key], h.Value, player);
            }

            HexTile.eState result;

            var state = map.States
                        .Where(x => x.Value.MustBeOccupied == tile.IsOcuppied)
                        .Where(x => x.Value.DifferentPlayers ? tile.OcuppiedBy.Player != player : true);

            foreach (KeyValuePair <HexTile.eState, HexMoveMapParametrs> s in state)
            {
                result = s.Key;

                tile.State = result;
            }
        }
    }
 void OnSceneGUI()
 {
     if (tileMap == null)
             tileMap = (HexTileMap)target;
         if (editing)
         {
             UpdateMatrices();
             HexUpdate();
             MouseUpdate();
         }
 }
    public override void OnInspectorGUI()
    {
        //Get tilemap
            if (tileMap == null)
            {
                //tileMap = GameObject.Find("UberTiles").GetComponent<TileMap>();
                tileMap = (HexTileMap)target;
                Caching.CleanCache();
                tileMap.Hexes = new Hex[tileMap.gridSize * tileMap.gridSize];
            }

            //Toggle editing mode
            if (editing)
            {
                if (GUILayout.Button("Stop Editing"))
                {
                    editing = false;
                    //StaticBatchingUtility.Combine(tileMap.gameObject);
                    Caching.CleanCache();
                    EditorUtility.SetDirty(tileMap);
                }
                if (GUILayout.Button("Generate Hex matrix clears everything"))
                {
                    Caching.CleanCache();
                    tileMap.clean();
                    tileMap.Hexes = new Hex[tileMap.gridSize * tileMap.gridSize];
                    GenerateHexGrid();
                }
                if (GUILayout.Button("Generate Hex neighbours"))
                {
                    GenerateHexNeighbours();
                }
                if (GUILayout.Button("Generate HexPath neighbours"))
                {
                    GenerateHexPathNeighbours();
                }
            }
            else if (GUILayout.Button("Edit TileMap"))
            {
                editing = true;
                //tileMap.Hexes = new Hex[tileMap.gridSize + 1, tileMap.gridSize + 1];
                //GenerateHexGrid();
            }

            //Tile Size
            EditorGUI.BeginChangeCheck();
            var newTileSize = EditorGUILayout.FloatField("Tile Size", tileMap.tileSize);
            if (EditorGUI.EndChangeCheck())
            {
                tileMap.tileSize = newTileSize;
            }

            //Grid Size
            EditorGUI.BeginChangeCheck();
            var newGridSize = EditorGUILayout.IntField("Grid Size", tileMap.gridSize);
            if (EditorGUI.EndChangeCheck())
            {
                tileMap.gridSize = newGridSize;
                tileMap.Hexes = new Hex[newGridSize * newGridSize];
            }

            //Tile Prefab
            EditorGUI.BeginChangeCheck();
            var newTilePrefab = (Transform)EditorGUILayout.ObjectField("Tile Prefab", tileMap.tilePrefab, typeof(Transform), false);
            if (EditorGUI.EndChangeCheck())
            {
                tileMap.tilePrefab = newTilePrefab;
            }

            //Tile Map
            EditorGUI.BeginChangeCheck();
            var newTileSet = (HexSet)EditorGUILayout.ObjectField("Tile Set", tileMap.hexSet, typeof(HexSet), false);
            if (EditorGUI.EndChangeCheck())
            {
                tileMap.hexSet = newTileSet;
            }

            //Tile Prefab selector
            if (tileMap.hexSet != null)
            {
                EditorGUI.BeginChangeCheck();
                var names = new string[tileMap.hexSet.prefabs.Length + 1];
                var values = new int[names.Length + 1];
                names[0] = tileMap.tilePrefab != null ? tileMap.tilePrefab.name : "";
                values[0] = 0;
                for (int i = 1; i < names.Length; i++)
                {
                    names[i] = tileMap.hexSet.prefabs[i - 1] != null ? tileMap.hexSet.prefabs[i - 1].name : "";
                    //if (i < 10)
                    //	names[i] = i + ". " + names[i];
                    values[i] = i;
                }
                var index = EditorGUILayout.IntPopup("Select Tile", 0, names, values);
                if (EditorGUI.EndChangeCheck() && index > 0)
                {
                    tileMap.tilePrefab = tileMap.hexSet.prefabs[index - 1];
                }
            }

            //Selecting direction
            EditorGUILayout.BeginHorizontal(GUILayout.Width(60));
            EditorGUILayout.PrefixLabel("Direction");
            EditorGUILayout.BeginVertical(GUILayout.Width(20));
            GUILayout.Space(20);
            if (direction == 3)
                GUILayout.Box("<", GUILayout.Width(20));
            else if (GUILayout.Button("<"))
                direction = 3;
            GUILayout.Space(20);
            EditorGUILayout.EndVertical();
            EditorGUILayout.BeginVertical(GUILayout.Width(20));
            if (direction == 0)
                GUILayout.Box("^", GUILayout.Width(20));
            else if (GUILayout.Button("^"))
                direction = 0;
            if (direction == -1)
                GUILayout.Box("?", GUILayout.Width(20));
            else if (GUILayout.Button("?"))
                direction = -1;
            if (direction == 2)
                GUILayout.Box("v", GUILayout.Width(20));
            else if (GUILayout.Button("v"))
                direction = 2;
            EditorGUILayout.EndVertical();
            EditorGUILayout.BeginVertical(GUILayout.Width(20));
            GUILayout.Space(20);
            if (direction == 1)
                GUILayout.Box(">", GUILayout.Width(20));
            else if (GUILayout.Button(">"))
                direction = 1;
            GUILayout.Space(20);
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndHorizontal();

            if (GUI.changed)
                EditorUtility.SetDirty(tileMap);
    }
 void Awake()
 {
     KselectedHex = ScriptableObject.CreateInstance("Hex") as Hex;
     KselectedHex.init(new Vector3(0,0,0),0,0);
     LselectedHex = ScriptableObject.CreateInstance("Hex") as Hex;
     LselectedHex.init(new Vector3(0, 0, 0), 0, 0);
     tileMap = (HexTileMap)target;
 }
Exemple #14
0
    public void AddTile(HexTile.eDirection direction, HexTile.eState status, HexMoveMapParametrs parametrs)
    {
        HexTileMap hex = new HexTileMap(status, parametrs);

        Map.Add(direction, hex);
    }
Exemple #15
0
    public void AddTile(HexTile.eDirection direction)
    {
        HexTileMap hex = new HexTileMap(States);

        Map.Add(direction, hex);
    }
 void Awake()
 {
     gManager = GameObject.FindWithTag("DataHolder").GetComponent<GameManager>();
     tileMap = GameObject.Find("HexEditor").GetComponent<HexTileMap>();
 }