// using System.Collections; // using System.Collections.Generic; // using UnityEngine; // using UnityEngine.UIElements; // // [CreateAssetMenu(fileName = "HomeMapSOBak", menuName = "GameData/HomeMapBak")] // public class HomeMapSOBak : ScriptableObject // { // public Vector2Int mapSize = new Vector2Int(10, 10); // public List gridList = new List(); // // // enum // public enum RoomType // { // None = 0, // PlaceholderRoom = 1, // StatueRoom = 2, // AreaRoom = 3, // CageRoom = 4, // SingleRoom = 5, // } // // [System.Serializable] // public class GridData // 每个格子的数据 // { // public Vector2Int position; // public bool hasRoom = false; // public int roomID = 0; // public RoomType roomType = RoomType.None; // } // // private readonly GridData null_grid_data = new GridData { position = new Vector2Int(0, 0), hasRoom = true }; // // public bool m_recv_judge_room_placeholder_is_trigger(Vector2Int build_position, // List placeholder_position_list = null) // { // if (placeholder_position_list == null) return false; // foreach (Vector2Int placeholder_position in placeholder_position_list) // { // if (m_self_get_grid_data_by_position(build_position + placeholder_position).hasRoom) return true; // } // // return false; // } // // public void m_recv_initialize_map_data() // { // gridList.Clear(); // for (var x = -mapSize.x; x <= mapSize.x + 1; x++) // 创建地图数据 x + 1 保证默认房间两侧对称 // { // for (var y = -mapSize.y; y <= mapSize.y; y++) // { // gridList.Add(new GridData { position = new Vector2Int(x, y) }); // } // } // } // // // 获取某个位置的数据 // private GridData m_self_get_grid_data_by_position(Vector2Int position) // { // if (position.x < -mapSize.x || position.x > mapSize.x || position.y < -mapSize.y || position.y > mapSize.y) // { // return null_grid_data; // } // // return gridList.Find(item => item.position == position); // } // // // 通过has_room字段来获取数据 // public List m_recv_get_position_by_has_room() // { // return gridList.FindAll(item => item.hasRoom).ConvertAll(item => item.position); // } // // public void m_recv_create_a_room(Vector2Int position, MapPlacerItem map_placer_item) // { // if (map_placer_item.m_recv_get_placeholder_position_list().Count > 0) // { // foreach (var item in map_placer_item.m_recv_get_placeholder_position_list()) // { // mm_self_create_a_room(item + position, RoomType.PlaceholderRoom); // } // } // // mm_self_create_a_room(position, map_placer_item.roomType); // // return; // // void mm_self_create_a_room(Vector2Int _position, RoomType _room_type) // { // GridData grid = m_self_get_grid_data_by_position(_position); // grid.hasRoom = true; // grid.roomType = _room_type; // grid.roomID = mmm_self_general_id(position); // } // // int mmm_self_general_id(Vector2Int _position) // 生成id // { // string id_string = $"{_position.x}{_position.y}"; // bool is_negative = id_string.Contains("-"); // id_string = id_string.Replace("-", ""); // id_string = int.Parse(id_string).ToString("D5"); // id_string = $"1{id_string}"; // int id = int.Parse(id_string); // if (is_negative) id = -id; // return id; // } // } // }