Ejemplo n.º 1
0
 public static bool TryCloneObject(string key, out GameObject clonedObject)
 {
     NpcCache.CachingItem cachingItem;
     if (NpcCache.Enabled && NpcCache.mCachedItems.TryGetValue(key, out cachingItem) && cachingItem.model != null)
     {
         cachingItem.refCount++;
         clonedObject = (UnityEngine.Object.Instantiate(cachingItem.model) as GameObject);
         NpcCache.RegisterAutoRemover(key, clonedObject);
         return(true);
     }
     clonedObject = null;
     return(false);
 }
Ejemplo n.º 2
0
 public override void FinishDownloadBase(ref IDownloadedItem wItem)
 {
     base.downloadCounter--;
     if (NpcCache.Enabled)
     {
         this.m_kBaseObject = NpcCache.AddAndClone(this.GenerateKey_(), wItem);
     }
     else
     {
         GameObject original = wItem.mainAsset as GameObject;
         this.m_kBaseObject = (UnityEngine.Object.Instantiate(original) as GameObject);
     }
     this.FinishDownloadModelSetting();
     base.FinishDownloadBase(ref wItem);
 }
Ejemplo n.º 3
0
    private void ClearGameInfo(bool bClear)
    {
        EventTriggerMapManager.Instance.Claer();
        this.m_nLatestPersonID = 0L;
        this.m_kInputManager.Initialize();
        TsAudioManager.Instance.InitAudioListenerSwitcher();
        if (bClear && NkUserInventory.instance != null)
        {
            NkUserInventory.instance.Clear();
        }
        NrTSingleton <NkQuestManager> .Instance.ClearCurrentQuest();

        NrTSingleton <NkQuestManager> .Instance.ClearCompleteQuest();

        NrTSingleton <Nr3DCharSystem> .Instance.Initialize();

        NrTSingleton <NkCharManager> .Instance.DeleteAllChar();

        NrTSingleton <NkCharManager> .Instance.Init(false);

        NrTSingleton <NkCharManager> .Instance.m_kCharAccountInfo.Init();

        NrTSingleton <NkCharManager> .Instance.CharacterListSetComplete = false;
        if (bClear)
        {
            NrTSingleton <NewGuildManager> .Instance.Clear();
        }
        NrTSingleton <GameGuideManager> .Instance.InitGameGuide();

        NrTSingleton <GameGuideManager> .Instance.InitReserveGuide();

        NrTSingleton <FormsManager> .Instance.DeleteAll();

        NrTSingleton <NkClientLogic> .Instance.Init();

        NrTSingleton <NrGlobalReference> .Instance.ReloginInit();

        TsImmortal.bundleService.Init();
        NrTSingleton <NkEffectManager> .Instance.ClearEffectCache();

        NpcCache.Clear();
        NrTSingleton <ItemMallItemManager> .Instance.ClearItemMallBuyCount();

        NrTSingleton <ChatManager> .Instance.InitChatMsg();

        NrTSingleton <UIManager> .Instance.ClearInputQueue();
    }
Ejemplo n.º 4
0
 public void SwitchModelMesh()
 {
     if (null == this.m_kRootGameObj)
     {
         Debug.LogError("Nr3DCharNonePart root go is null at Request! " + this.m_kRootGameObj.name);
     }
     else
     {
         string text = this.GenerateKey_();
         if (!NpcCache.TryCloneObject(text, out this.m_kBaseObject))
         {
             base.bStartDownloadBundle = true;
             base.downloadCounter++;
             NrTSingleton <NkBundleCallBack> .Instance.RequestBundleRuntime(text, NkBundleCallBack.NPCBundleStackName, ItemType.SKIN_BONE, 0, this.m_szCharCode.ToLower(), NkBundleParam.eBundleType.BUNDLE_CHAR_NONEPART, base.GetID().ToString(), true);
         }
         else
         {
             this.FinishDownloadModelSetting();
         }
     }
 }
Ejemplo n.º 5
0
    public static GameObject AddAndClone(string key, IDownloadedItem item)
    {
        if (!NpcCache.Enabled)
        {
            GameObject original = item.mainAsset as GameObject;
            return(UnityEngine.Object.Instantiate(original) as GameObject);
        }
        if (string.IsNullOrEmpty(key))
        {
            int startIndex = item.assetPath.IndexOf('.');
            key = item.assetPath.Remove(startIndex);
        }
        GameObject gameObject;

        if (NpcCache.TryCloneObject(key, out gameObject))
        {
            return(gameObject);
        }
        if (NpcCache.mRoot == null)
        {
            NpcCache.mRoot = GameObject.Find("@Internal NPC");
            if (NpcCache.mRoot == null)
            {
                NpcCache.mRoot = new GameObject("@Internal NPC");
                NpcCache.mRoot.SetActive(false);
                UnityEngine.Object.DontDestroyOnLoad(NpcCache.mRoot);
            }
        }
        gameObject                  = (UnityEngine.Object.Instantiate(item.mainAsset) as GameObject);
        gameObject.name             = key;
        NpcCache.mCachedItems[key]  = new NpcCache.CachingItem(gameObject);
        gameObject.transform.parent = NpcCache.mRoot.transform;
        GameObject gameObject2 = UnityEngine.Object.Instantiate(gameObject) as GameObject;

        NpcCache.RegisterAutoRemover(key, gameObject2);
        return(gameObject2);
    }
Ejemplo n.º 6
0
        // 1        Gremlin
        static string Print(NpcCache model)
        {
            string formattedId = model.Id.ToString().PadRight(5);

            return($"{formattedId}\t{model.Name}");
        }