Exemplo n.º 1
0
 private void EnsureSkin(string path)
 {
     if (GetItem(path) == null)
     {
         RagdollPresetMetadata ragdollPresetMetadata = WorkshopItemMetadata.Load <RagdollPresetMetadata>(path);
         if (ragdollPresetMetadata == null)
         {
             ragdollPresetMetadata        = CreateDefaultSkin();
             ragdollPresetMetadata.folder = path;
         }
         AddItem(WorkshopItemSource.BuiltIn, ragdollPresetMetadata);
     }
 }
Exemplo n.º 2
0
 private void OnDownloadLevel(DownloadItemResult_t param)
 {
     if (onRead != null)
     {
         if (param.m_eResult == EResult.k_EResultOK)
         {
             onRead(WorkshopItemMetadata.Load <WorkshopLevelMetadata>("ws:" + param.m_nPublishedFileId));
         }
         else
         {
             onRead(null);
         }
         onRead = null;
     }
 }
Exemplo n.º 3
0
    public void LoadLevel(ulong levelId, Action <WorkshopLevelMetadata> onRead)
    {
        PublishedFileId_t publishedFileId_t = new PublishedFileId_t(levelId);
        uint itemState = SteamUGC.GetItemState(publishedFileId_t);

        Debug.Log("itemstate: " + itemState + " " + publishedFileId_t);
        if ((itemState & 8) != 0 || itemState == 0)
        {
            this.onRead = onRead;
            OnDownloadItemCallResult = Callback <DownloadItemResult_t> .Create(OnDownloadLevel);

            if (!SteamUGC.DownloadItem(publishedFileId_t, bHighPriority: true))
            {
                onRead(null);
                this.onRead = null;
            }
        }
        else
        {
            onRead(WorkshopItemMetadata.Load <WorkshopLevelMetadata>("ws:" + publishedFileId_t.m_PublishedFileId));
            this.onRead = null;
        }
    }
Exemplo n.º 4
0
    private void ReadFolder(WorkshopItemSource source, string folder)
    {
        WorkshopItemMetadata workshopItemMetadata = WorkshopItemMetadata.Load(folder);

        if (workshopItemMetadata == null)
        {
            return;
        }
        switch (workshopItemMetadata.itemType)
        {
        case WorkshopItemType.Level:
            break;

        case WorkshopItemType.Levels:
            if (source == WorkshopItemSource.Subscription || source == WorkshopItemSource.LocalWorkshop)
            {
                levelRepo.AddItem(source, workshopItemMetadata);
            }
            break;

        case WorkshopItemType.Lobbies:
            if (source == WorkshopItemSource.SubscriptionLobbies || source == WorkshopItemSource.LocalWorkshop)
            {
                levelRepo.AddItem(source, workshopItemMetadata);
            }
            break;

        case WorkshopItemType.RagdollPreset:
            presetRepo.AddItem(source, workshopItemMetadata);
            break;

        default:
            modelRepos[workshopItemMetadata.itemType].AddItem(source, workshopItemMetadata);
            break;
        }
    }