示例#1
0
    void SetLocalGridItemInfo(VCEAssetMgr.IsoFileInfo _isoFileInfo, UIWorkShopGridItem item)
    {
        string isoName = _isoFileInfo.m_Name;

        if (_isoFileInfo.m_IsFolder)
        {
            item.InitItem(WorkGridItemType.mLocalFloder, isoName);
            item.SetIco(null);
        }
        else
        {
            VCIsoHeadData headData;
            VCIsoData.ExtractHeader(_isoFileInfo.m_Path, out headData);

            item.InitItem(WorkGridItemType.mLocalIcon, isoName);

            Texture2D texture = new Texture2D(256, 256);
            texture.LoadImage(headData.IconTex);

            item.SetIco(texture);
            item.SetAuthor(headData.Author);
        }
    }
示例#2
0
    void BtnUploadOnClick()
    {
        if (this.m_ImportIsoing)
        {
            return;
        }
        this.m_ImportIsoing = true;
        if (mSelectedIsoIndex == -1 || mSelectedIsoIndex >= mLocalIsoInfo.Count)
        {
            SetInfoMsg(UIMsgBoxInfo.mCZ_WorkShopUpNeedSeletedIso.GetString());
            this.m_ImportIsoing = false;
            return;
        }
        int i = mSelectedIsoIndex % mLocalGridCtrl.mMaxGridCount;

        if (i < 0 || i >= mLocalGridCtrl.mMaxGridCount)
        {
            this.m_ImportIsoing = false;
            return;
        }
        VCEAssetMgr.IsoFileInfo fileInfo = mLocalIsoInfo[mSelectedIsoIndex];
        VCIsoData iso = new VCIsoData();

        try
        {
            string fullpath = fileInfo.m_Path;
            using (FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read))
            {
                byte[] iso_buffer = new byte [(int)(fs.Length)];
                fs.Read(iso_buffer, 0, (int)(fs.Length));
                fs.Close();
                iso.Import(iso_buffer, new VCIsoOption(true));

                //VCGameMediator.SendIsoDataToServer();
                if (iso.m_HeadInfo.Version < 0x02030001)
                {
                    MessageBox_N.ShowOkBox(PELocalization.GetString(8000487));
                    this.m_ImportIsoing = false;
                    return;
                }

                string isoPath = fullpath.Replace('\\', '/');
                isoPath = isoPath.Replace(mDefoutIcoPath, "[ISO]/");
                mUpLoadIndex++;

                //lz-2016.05.17 存储上传中Iso 的 hash
                ulong hash = CRC64.Compute(iso_buffer);
                if (null != this.m_UploadingIsoHashList && this.m_UploadingIsoHashList.Contains(hash))
                {
                    MessageBox_N.ShowOkBox(PELocalization.GetString(8000488));
                    this.m_ImportIsoing = false;
                    return;
                }
                this.m_UploadingIsoHashList.Add(hash);

                mUpLoadMap[mUpLoadIndex] = isoPath;
                mUpLoadStateMap[mUpLoadMap[mUpLoadIndex]] = 0;
                mLocalGridCtrl.mUIItems[i].ActiveUpDown(true);
                mLocalGridCtrl.mUIItems[i].UpdteUpDownInfo(PELocalization.GetString(8000908)); //"Uploading"

                SteamWorkShop.SendFile(UpLoadFileCallBack, iso.m_HeadInfo.Name, iso.m_HeadInfo.SteamDesc,
                                       iso.m_HeadInfo.SteamPreview, iso_buffer, SteamWorkShop.AddNewVersionTag(iso.m_HeadInfo.ScenePaths()), false, mUpLoadIndex);
            }
        }
        catch (Exception e)
        {
            mLocalGridCtrl.mUIItems[i].ActiveUpDown(false);
            mLocalGridCtrl.mUIItems[i].UpdteUpDownInfo("");
            Debug.Log(" WorkShop Loading ISO Error : " + e.ToString());
            MessageBox_N.ShowOkBox(PELocalization.GetString(8000489));
        }
        this.m_ImportIsoing = false;
    }