Esempio n. 1
0
        private static void SetItemFx(GameObject __result, ItemDrop.ItemData equippedItem, Player player)
        {
            var equipFx = GetEquipFxName(equippedItem, out var mode);

            if (!string.IsNullOrEmpty(equipFx))
            {
                var asset = EpicLoot.LoadAsset <GameObject>(equipFx);
                if (asset != null)
                {
                    var attachObject = mode == FxAttachMode.Player ? player.transform : __result?.transform;
                    if (attachObject == null)
                    {
                        EpicLoot.LogError($"Tried to attach FX to item that did not exist. item={equippedItem.m_shared.m_name}, equipFx={equipFx}, mode={mode}");
                        return;
                    }

                    var equipEffects = attachObject.Find("equiped");
                    if (equipEffects != null && mode == FxAttachMode.EquipRoot)
                    {
                        attachObject = equipEffects;
                    }

                    AttachFx(attachObject, equipFx, asset);
                }
            }
        }
Esempio n. 2
0
        private static void SetMainTextureOnRenderers(IEnumerable <Renderer> renderers, string mainTexture)
        {
            var mainTextureAsset = EpicLoot.LoadAsset <Texture>(mainTexture);

            if (mainTextureAsset != null)
            {
                foreach (var renderer in renderers)
                {
                    renderer.material.mainTexture = mainTextureAsset;
                }
            }
            else
            {
                EpicLoot.LogError($"Missing Texture Override Asset: MainTexture={mainTexture}");
            }
        }
Esempio n. 3
0
        private static void SetTextureOverrides(VisEquipment __instance, List <GameObject> __result, string itemID, ItemDrop.ItemData equippedItem)
        {
            GetTexOverrides(itemID, equippedItem, out var mainTexture, out var chestTex, out var legsTex);
            if (!string.IsNullOrEmpty(mainTexture))
            {
                foreach (var go in __result)
                {
                    var skinnedMeshRenderers = go.GetComponentsInChildren <SkinnedMeshRenderer>(true);
                    SetMainTextureOnRenderers(skinnedMeshRenderers, mainTexture);

                    var meshRenderers = go.GetComponentsInChildren <MeshRenderer>(true);
                    SetMainTextureOnRenderers(meshRenderers, mainTexture);
                }
            }

            if (!string.IsNullOrEmpty(chestTex))
            {
                var chestTexAsset = EpicLoot.LoadAsset <Texture>(chestTex);
                if (chestTexAsset != null)
                {
                    __instance.m_bodyModel.material.SetTexture("_ChestTex", chestTexAsset);
                }
                else
                {
                    EpicLoot.LogError($"Missing Texture Override Asset: ChestTex={chestTex}");
                }
            }

            if (!string.IsNullOrEmpty(legsTex))
            {
                var legsTexAsset = EpicLoot.LoadAsset <Texture>(legsTex);
                if (legsTexAsset != null)
                {
                    __instance.m_bodyModel.material.SetTexture("_ChestTex", legsTexAsset);
                }
                else
                {
                    EpicLoot.LogError($"Missing Texture Override Asset: LegsTex={legsTex}");
                }
            }
        }