Exemple #1
0
    void OnLoadDataClicked(string fileName)
    {
        ClearData();
        MapSaveData saveData = MapDataBase.LoadData(fileName);

        if (saveData == null)
        {
            return;
        }
        MapManager.Instant.ClearData();
        for (int i = 0; i < saveData.blockList.Count; ++i)
        {
            MapSaveCoord saveCo = saveData.blockList [i];
            MapManager.Instant.SetBlock(new Coord(saveCo.xPos, saveCo.yPos), false);
        }
        if (saveData.startCo != null)
        {
            OnClickGird(new Coord(saveData.startCo.xPos, saveData.startCo.yPos), MapView.GridType.StartPoint);
        }
        if (saveData.endCo != null)
        {
            OnClickGird(new Coord(saveData.endCo.xPos, saveData.endCo.yPos), MapView.GridType.EndPoint);
        }
        view.RefreshBlock();
    }
Exemple #2
0
    void OnSaveDataClicked(string fileName)
    {
        MapSaveData saveData = new MapSaveData();

        if (mHasStartCo)
        {
            saveData.startCo      = new MapSaveCoord();
            saveData.startCo.xPos = mStartCo.xPos;
            saveData.startCo.yPos = mStartCo.yPos;
        }
        if (mHasEndCo)
        {
            saveData.endCo      = new MapSaveCoord();
            saveData.endCo.xPos = mEndCo.xPos;
            saveData.endCo.yPos = mEndCo.yPos;
        }
        List <Coord> blockList = MapManager.Instant.GetBlockList();

        for (int i = 0; i < blockList.Count; ++i)
        {
            MapSaveCoord saveCo = new MapSaveCoord();
            saveCo.xPos = blockList [i].xPos;
            saveCo.yPos = blockList [i].yPos;
            saveData.blockList.Add(saveCo);
        }
        MapDataBase.SaveData(saveData, fileName);
    }
Exemple #3
0
    void Start()
    {
        MapDataBase.InitDataBase();
        Instantiate(Resources.Load <GameObject>("blackFrame"));
        Instantiate(Resources.Load <GameObject>("bounds"));

        player = generatPlayer();
        world  = generateWorld();

        player.SetActive(false);
    }
Exemple #4
0
        /// <summary>
        /// 通过[编号]二分快速查表
        /// </summary>
        /// <param name="dwID">编号</param>
        /// <returns></returns>
        public static MapDataBase Query(this List <MapDataBase> sorted, uint dwID)
        {
            var key = new MapDataBase()
            {
                dwID = dwID
            };
            var comparer = new Comparer1();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(MapDataBase));
        }
    /// <summary>
    /// Creates a new TileMap
    /// </summary>
    /// <param name="mapType"></param>
    /// <returns></returns>
    public bool CreateNewMap(MapDataBase.MAPS mapType)
    {
        // Create new Tilemap, parented under and positioned at m_GridGO
        GameObject mapObject = MapDataBase.GetInstance().GetMapGO(mapType);

        mapObject    = Instantiate(mapObject, m_GridGO.transform.position, Quaternion.identity, m_GridGO.transform);
        m_currentMap = mapObject.GetComponent <BaseMapClass>();
        // Resize the layout Array
        int totalSize = m_currentMap.GetTileMapSize().x *m_currentMap.GetTileMapSize().y;

        m_GridTakenArray.Clear();
        m_GridTakenArray.Capacity = totalSize;     // Set the capactiy to prevent calling Array.Resize() multiple times
        for (int i = 0; i < totalSize; ++i)
        {
            m_GridTakenArray.Add(false);
        }
        // Center the Camera to the map
        Vector3 centerMapWorldPos = m_GridGO.CellToWorld((Vector3Int)m_currentMap.GetTileMapSize() / 2);

        centerMapWorldPos             += m_GridGO.cellSize * 0.5f;
        centerMapWorldPos.z            = -10.0f;
        Camera.main.transform.position = centerMapWorldPos;

        // Fire the Map Generated Event
        OnMapGenerated();

        //Get starting route from one of the routes build at spawn

        List <MapStartingBuildings> startingBuildingsList = m_currentMap.GetStartingBuildings();
        Vector2Int mainRoadPos = Vector2Int.zero;

        foreach (MapStartingBuildings startingbuild in startingBuildingsList)
        {
            if (startingbuild.buildingID == BuildingDataBase.BUILDINGS.B_ROAD)
            {
                mainRoadPos = startingbuild.spawnGridPositions[0];
                break;
            }
        }
        m_RoadManager.Init(m_currentMap.GetTileMapSize(), mainRoadPos);

        return(true);
    }
 /// <summary>
 /// 设置地图名称
 /// </summary>
 /// <param name="b">是否显示地图名称</param>
 /// <param name="lineId">分线</param>
 public void SetMapName(bool b, uint lineId = 1)
 {
     if (place != null)
     {
         if (b)
         {
             place.gameObject.SetActive(true);
             MapDataBase mapDataBase = GameTableManager.Instance.GetTableItem <MapDataBase>(this.teamMemberInfo.mapId);
             if (mapDataBase != null)
             {
                 string mapName = string.Format("{0}({1}线)", mapDataBase.strName, lineId);
                 place.text = mapName;
             }
         }
         else
         {
             place.gameObject.SetActive(false);
         }
     }
 }
Exemple #7
0
    void onClickHuntingGrid(HuntingDataBase huntDa)
    {
        HuntingDataBase data = huntDa;

        MonsterID = data.ID;
        DataManager.Manager <HuntingManager>().MonsterID = MonsterID;
        if (boss_dic.Count > 0 && boss_dic.ContainsKey(MonsterID))
        {
            NpcDataBase monster = GameTableManager.Instance.GetTableItem <NpcDataBase>(boss_dic[MonsterID].boss_npc_id);
            if (monster != null)
            {
                m_label_BossName.text = monster.strName;
                MapDataBase map = GameTableManager.Instance.GetTableItem <MapDataBase>(data.mapID);
                m_label_mapLabel.text = map.strName;
            }
        }
        ShowModel(data);
        onClick_DropBtn_Btn(data);
        m_label_LieHunNum.text = data.HuntingScore.ToString();
    }
Exemple #8
0
    void ShowIconOnMap(MapDataBase mdb)
    {
        if (mdb == null)
        {
            return;
        }
        List <NPCInfo> transList = DataManager.Manager <MapDataManager>().GetTransmitList();

        for (int i = 0; i < transList.Count; i++)
        {
            NPCInfo npc = transList[i];
            AddShowIcon(npc.pos.x, npc.pos.y, "tubiao_chuansongdian");
        }
        string mapInfo = mdb.mapinfo;

        if (string.IsNullOrEmpty(mapInfo))
        {
            return;
        }
        string[] infoArray = mapInfo.Split(',');
        for (int i = 0; i < infoArray.Length; i++)
        {
            string   info     = infoArray[i];
            string[] strArray = info.Split(';');
            if (strArray.Length != 3)
            {
                Log.Error("长度不符合规定");
                return;
            }
            Vector3 iconPos = Vector3.zero;
            float   x, y;
            if (float.TryParse(strArray[0], out x))
            {
                if (float.TryParse(strArray[1], out y))
                {
                    AddShowIcon(x, y, strArray[2]);
                }
            }
        }
    }
    private void Awake()
    {
        if (m_Instance != null)
        {
            Destroy(gameObject);
            return;
        }
        m_Instance = this;
        DontDestroyOnLoad(gameObject);

        // Check for duplicates
        int counter;

        for (int i = 0; i < (int)MAPS.M_TOTAL; ++i)
        {
            counter = 0;
            foreach (MapDataEntry dataEntry in listOfMaps)
            {
                if (dataEntry.GetMapID() == (MAPS)i)
                {
                    counter++;
                }
            }
            if (counter > 1)
            {
                Debug.LogError("Duplicate Enum ID in MAP Database!!");
                return;
            }
        }
        // If no duplicates, convert to Dictionary
        foreach (MapDataEntry dataEntry in listOfMaps)
        {
            dictOfMaps[dataEntry.GetMapID()] = dataEntry.GetMapObject();
        }
        listOfMaps.Clear();
    }
Exemple #10
0
    void ResetBtnBgPosition(MapBtnType type)
    {
        m_ctor_bgContent.SetVisible(true);
        m_btn_ColliderMask.gameObject.SetActive(true);
        TransferChildTypeDataBase tab = GameTableManager.Instance.GetTableItem <TransferChildTypeDataBase>((uint)type);

        if (tab == null)
        {
            Engine.Utility.Log.Error("传送表格找不到对应的表格数据ID{0}", (uint)type);
            return;
        }
        mapID.Clear();
        mapData.Clear();
        string[] ids = tab.MapIDList.Split('_');
        uint     id  = 0;

        for (int i = 0; i < ids.Length; i++)
        {
            if (uint.TryParse(ids[i], out id))
            {
                mapID.Add(id);
            }
        }

        if (mapID.Count == 1)
        {
            GotoMap((int)mapID[0]);
            return;
        }
        for (int j = 0; j < mapID.Count; j++)
        {
            MapDataBase map = GameTableManager.Instance.GetTableItem <MapDataBase>(mapID[j]);
            if (map != null)
            {
                mapData.Add(map);
            }
        }

        m_ctor_bgContent.CreateGrids(mapData.Count);
        isShowingGird = true;
        m_btn_ColliderMask.gameObject.SetActive(true);
        Vector3 vec = Vector3.zero;

        switch (type)
        {
        case MapBtnType.ChangShengDian:
        {
            vec = new Vector3(330, -240, 0);
        }
        break;

        case MapBtnType.JiuYouDiGong:
        {
            vec = new Vector3(155, -150, 0);
        }
        break;

        case MapBtnType.WanJieKu:
        {
            vec = new Vector3(250, -20, 0);
        }
        break;

        case MapBtnType.WuWangHai:
        {
            vec = new Vector3(100, 150, 0);
        }
        break;
        }
        AdjustBgPosition(vec, mapID.Count);
    }