コード例 #1
0
    /// <summary>
    /// 通过id获取对应的合成图谱
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public CraftingMapItem GetItemById(int id)
    {
        CraftingMapItem temp = null;

        mapItemDic.TryGetValue(id, out temp);
        return(temp);
    }
コード例 #2
0
    /// <summary>
    /// 生成图谱内容.
    /// </summary>
    private void CreateMapContents(int mapId)
    {
        // 重置图谱.
        ResetMap();

        // 图谱材料回归背包.
        ResetMaterials();

        // 合成材料生成.
        CraftingMapItem mapItem = m_CraftingPanelModel.GetMapDataById(mapId);

        if (mapItem == null)
        {
            return;
        }

        for (int i = 0; i < slotsNum; ++i)
        {
            if (mapItem.MapContents[i] != "0")
            {
                Sprite sprite = m_CraftingPanelView.GetMaterialIconByName(mapItem.MapContents[i]);
                slotsList[i].GetComponent <CraftingSlotController>().InitSlot(int.Parse(mapItem.MapContents[i]), sprite);
            }
        }

        // 最终合成物品展现.
        m_CraftingControler.Init(mapId, mapItem.MapName);

        // 获取需要的材料数.
        materialsCount = mapItem.MaterialsCount;
    }
コード例 #3
0
    /// <summary>
    /// 通过图谱编号获取图谱数据.
    /// </summary>
    public CraftingMapItem GetMapDataById(int mapId)
    {
        CraftingMapItem temp = null;

        mapItemDic.TryGetValue(mapId, out temp);
        return(temp);
    }
コード例 #4
0
    /// <summary>
    /// 通过mapId返回一个图谱对象
    /// </summary>
    /// <param name="mapId"></param>
    /// <returns></returns>
    public CraftingMapItem GetCraftingMapItemByMapId(int mapId)
    {
        CraftingMapItem cmi = null;

        dictionary.TryGetValue(mapId, out cmi);
        return(cmi);
    }
    /// <summary>
    /// 生成合成图谱
    /// </summary>
    /// <param name="id"></param>
    private void CreateSlotContents(int id)
    {
        //Debug.Log(id);
        CraftingMapItem tempItem = craftingPanelModel.GetItemById(id);

        //重置材料
        ResetSlotItems();
        dragMaterialsCount = 0;
        //重置按钮
        craftingController.InitButton();
        //重置合成图谱
        ResetSlotContents();
        //重新生成图谱
        if (tempItem != null)
        {
            for (int j = 0; j < tempItem.MapContents.Length; j++)
            {
                if (tempItem.MapContents[j] != "0")
                {
                    Sprite sprite = GetItemSprite(tempItem.MapContents[j]);
                    slotList[j].GetComponent <CraftingSlotController>().Init(sprite, int.Parse(tempItem.MapContents[j]));
                    slotList[j].GetComponent <CraftingSlotController>().SetSlotState(true);
                }
            }
            //初始化需要的素材数量
            materialsCount = tempItem.MaterialsCount;
            //显示最终合成物品
            craftingController.Init(craftingPanelView.GetItemIconByName(tempItem.MapName), tempItem.MapName, tempItem.MapId, tempItem.MapBar);
        }
        else
        {
            materialsCount = 0;
        }
    }
コード例 #6
0
    /// <summary>
    /// 图谱槽数据填充
    /// </summary>
    private void CreatSlotContents(int id)
    {
        CraftingMapItem temp = m_CraftingpanelModel.GetItemById(id);

        if (temp != null)
        {
            // 清空上一次的图谱类容
            ResetSlotContents();
            //把图谱内的材料放入背包中
            ResetMaterials();

            //填充图谱
            for (int j = 0; j < temp.MapContents.Length; j++)
            {
                if (temp.MapContents[j] != "0")
                {
                    Sprite sp = m_CraftingpanelView.ByNameGetMaterialSprite(temp.MapContents[j]);
                    slotList[j].GetComponent <CraftingSlotController>().Init(sp, temp.MapContents[j]);
                }
            }
            //最终合成物品展示
            m_CraftingController.Init(temp.MapId, temp.MapName);
            materialsCount = temp.MaterialsCount;
        }
    }
コード例 #7
0
    /// <summary>
    /// 创建某个材料的合成图谱
    /// </summary>
    public void CreateMaps(int mapId)
    {
        //先恢复到默认状态
        craftingCraft.NorCraft();
        Debug.Log("item" + mapId);
        CraftingMapItem cmi = craftingPanelModel.GetCraftingMapItemByMapId(mapId);

        if (cmi == null)
        {
            return;
        }
        //先把结果槽里的合成物品丢回背包栏
        for (int i = 0; i < craftingCraft.ResultNum; i++)
        {
            List <GameObject> tempList = new List <GameObject>();
            tempList.Add(craftingCraft.GoodItem_Transform.gameObject);
            mapIsCanTAB = ResetMaterials(tempList);
            Debug.Log("执行了:" + tempList.Count);
        }
        //更新一下结果槽的数量
        craftingCraft.CraftResultNum();

        if (!mapIsCanTAB)
        {
            return;
        }
        //mapIsCanTAB等于true表示现在合成槽里的材料为0  false的话说明合成槽里还有材料
        mapIsCanTAB = ResetMaterials(slotList);
        //如果合成槽里还有材料就直接返回
        if (!mapIsCanTAB)
        {
            return;
        }
        //重置合成图谱
        ResetMap();
        //重新进行赋值
        for (int i = 0; i < cmi.MapContents.Length; i++)
        {
            if (cmi.MapContents[i] != "0")
            {
                Sprite sprite = craftingPanelView.LoadMaterialSpriteByName(cmi.MapContents[i]);
                //进行赋值
                slotList[i].GetComponent <CraftingMapItemManager>().SetItemValue(cmi.MapContents[i], sprite, cmi.MapName);
            }
        }
        craftingCraft.SetItemValue(cmi.MapId, cmi.MapName);
        Debug.Log("创建id为" + cmi.MapId + "雪碧图名称为:" + cmi.MapName + "的图谱");
        //把需要的合成的材料总数存储到临时变量中去
        needMaterialsCount = cmi.MapMaterialCount;
    }
コード例 #8
0
    /// <summary>
    /// 加载合成图谱Json数据
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    private Dictionary <int, CraftingMapItem> LoadMapContents(string name)
    {
        Dictionary <int, CraftingMapItem> temp = new Dictionary <int, CraftingMapItem>(); //1.构造数据容器
        string   jsonStr  = Resources.Load <TextAsset>("JsonData/" + name).text;          //2.加载Json文件,返回string数据
        JsonData jsonData = JsonMapper.ToObject(jsonStr);                                 //3.将string数据转化为JsonData(JsonMapper)

        for (int i = 0; i < jsonData.Count; i++)
        {
            //取临时数据
            int      mapId       = int.Parse(jsonData[i]["MapId"].ToString());
            string   tempStr     = jsonData[i]["MapContents"].ToString();
            string[] mapContents = tempStr.Split(',');
            int      mapCount    = int.Parse(jsonData[i]["MaterialsCount"].ToString());
            string   mapName     = jsonData[i]["MapName"].ToString();
            //构造对象
            CraftingMapItem item = new CraftingMapItem(mapId, mapCount, mapContents, mapName);
            temp.Add(mapId, item);
        }
        return(temp);
    }
コード例 #9
0
    /// <summary>
    /// 根据名字返回一个合成图谱对象
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public Dictionary <int, CraftingMapItem> GetMapJsonByName(string fileName)
    {
        Dictionary <int, CraftingMapItem> dictionary = new Dictionary <int, CraftingMapItem>();

        string   jsonText = Resources.Load <TextAsset>("JsonData/" + fileName).text;
        JsonData jsonData = JsonMapper.ToObject(jsonText);

        for (int i = 0; i < jsonData.Count; i++)
        {
            int      mapId            = int.Parse(jsonData[i]["MapId"].ToString());
            string   tempText         = jsonData[i]["MapContents"].ToString();
            string[] mapContents      = tempText.Split(',');
            int      mapMaterialCount = int.Parse(jsonData[i]["MapMaterialCount"].ToString());

            string          mapName = jsonData[i]["MapName"].ToString();
            CraftingMapItem cmi     = new CraftingMapItem(mapId, mapContents, mapMaterialCount, mapName);
            dictionary.Add(mapId, cmi);
        }
        return(dictionary);
    }