public void InitTest() { var map = new HexTileMap <int>(1, 1); Assert.AreEqual(1, map.Width); Assert.AreEqual(1, map.Height); }
/// <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; }
/// <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); }
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; }
void OnEnable() { hexMap = (HexTileMap)target; // Init anim bools showTileCoordinateFormat = new AnimBool(Repaint); Initialise(); Undo.undoRedoPerformed += OnUndoPerformed; }
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; }
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); }
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; }
public void AddTile(HexTile.eDirection direction, HexTile.eState status, HexMoveMapParametrs parametrs) { HexTileMap hex = new HexTileMap(status, parametrs); Map.Add(direction, hex); }
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>(); }