// Token: 0x06003740 RID: 14144 RVA: 0x0018163C File Offset: 0x0017FA3C
        public static void viewItem(int newItem, ulong newInstance)
        {
            MenuSurvivorsClothingInspectUI.item     = newItem;
            MenuSurvivorsClothingInspectUI.instance = newInstance;
            if (MenuSurvivorsClothingInspectUI.model != null)
            {
                UnityEngine.Object.Destroy(MenuSurvivorsClothingInspectUI.model.gameObject);
            }
            ushort id;
            ushort id2;

            Provider.provider.economyService.getInventoryTargetID(MenuSurvivorsClothingInspectUI.item, out id, out id2);
            ushort       inventorySkinID   = Provider.provider.economyService.getInventorySkinID(MenuSurvivorsClothingInspectUI.item);
            ushort       inventoryMythicID = Provider.provider.economyService.getInventoryMythicID(MenuSurvivorsClothingInspectUI.item);
            ItemAsset    itemAsset         = (ItemAsset)Assets.find(EAssetType.ITEM, id);
            VehicleAsset vehicleAsset      = (VehicleAsset)Assets.find(EAssetType.VEHICLE, id2);

            if (itemAsset == null && vehicleAsset == null)
            {
                return;
            }
            if (inventorySkinID != 0)
            {
                SkinAsset skinAsset = (SkinAsset)Assets.find(EAssetType.SKIN, inventorySkinID);
                if (vehicleAsset != null)
                {
                    MenuSurvivorsClothingInspectUI.model = VehicleTool.getVehicle(vehicleAsset.id, skinAsset.id, inventoryMythicID, vehicleAsset, skinAsset);
                }
                else
                {
                    ushort    id3        = itemAsset.id;
                    ushort    skin       = inventorySkinID;
                    byte      quality    = 100;
                    byte[]    state      = itemAsset.getState();
                    bool      viewmodel  = false;
                    ItemAsset itemAsset2 = itemAsset;
                    SkinAsset skinAsset2 = skinAsset;
                    if (MenuSurvivorsClothingInspectUI.< > f__mg$cache0 == null)
                    {
                        MenuSurvivorsClothingInspectUI.< > f__mg$cache0 = new GetStatTrackerValueHandler(MenuSurvivorsClothingInspectUI.getInspectedItemStatTrackerValue);
                    }
                    MenuSurvivorsClothingInspectUI.model = ItemTool.getItem(id3, skin, quality, state, viewmodel, itemAsset2, skinAsset2, MenuSurvivorsClothingInspectUI.< > f__mg$cache0);
                    if (inventoryMythicID != 0)
                    {
                        ItemTool.applyEffect(MenuSurvivorsClothingInspectUI.model, inventoryMythicID, EEffectType.THIRD);
                    }
                }
            }
            else
            {
                ushort    id4        = itemAsset.id;
                ushort    skin2      = 0;
                byte      quality2   = 100;
                byte[]    state2     = itemAsset.getState();
                bool      viewmodel2 = false;
                ItemAsset itemAsset3 = itemAsset;
                if (MenuSurvivorsClothingInspectUI.< > f__mg$cache1 == null)
                {
                    MenuSurvivorsClothingInspectUI.< > f__mg$cache1 = new GetStatTrackerValueHandler(MenuSurvivorsClothingInspectUI.getInspectedItemStatTrackerValue);
                }
                MenuSurvivorsClothingInspectUI.model = ItemTool.getItem(id4, skin2, quality2, state2, viewmodel2, itemAsset3, MenuSurvivorsClothingInspectUI.< > f__mg$cache1);
                if (inventoryMythicID != 0)
                {
                    ItemTool.applyEffect(MenuSurvivorsClothingInspectUI.model, inventoryMythicID, EEffectType.HOOK);
                }
            }
            MenuSurvivorsClothingInspectUI.model.parent        = MenuSurvivorsClothingInspectUI.inspect;
            MenuSurvivorsClothingInspectUI.model.localPosition = Vector3.zero;
            if (vehicleAsset != null)
            {
                MenuSurvivorsClothingInspectUI.model.localRotation = Quaternion.identity;
            }
            else if (itemAsset != null && itemAsset.type == EItemType.MELEE)
            {
                MenuSurvivorsClothingInspectUI.model.localRotation = Quaternion.Euler(0f, -90f, 90f);
            }
            else
            {
                MenuSurvivorsClothingInspectUI.model.localRotation = Quaternion.Euler(-90f, 0f, 0f);
            }
            Bounds bounds = new Bounds(MenuSurvivorsClothingInspectUI.model.position, Vector3.zero);

            Collider[] components = MenuSurvivorsClothingInspectUI.model.GetComponents <Collider>();
            foreach (Collider collider in components)
            {
                Bounds bounds2 = collider.bounds;
                bounds.Encapsulate(bounds2);
            }
            MenuSurvivorsClothingInspectUI.look.pos  = bounds.center;
            MenuSurvivorsClothingInspectUI.look.dist = bounds.extents.magnitude * 2.25f;
        }
예제 #2
0
        // Token: 0x06002A15 RID: 10773 RVA: 0x0010512C File Offset: 0x0010352C
        private static void apply(byte slot, bool showItems)
        {
            if (Characters.slots[(int)slot] != null)
            {
                UnityEngine.Object.Destroy(Characters.slots[(int)slot].gameObject);
            }
            if (!showItems)
            {
                return;
            }
            ushort num = 0;

            byte[] state = null;
            if (slot == 0)
            {
                num   = Characters.active.primaryItem;
                state = Characters.active.primaryState;
            }
            else if (slot == 1)
            {
                num   = Characters.active.secondaryItem;
                state = Characters.active.secondaryState;
            }
            if (num == 0)
            {
                return;
            }
            ItemAsset itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, num);

            if (itemAsset != null)
            {
                ushort skin = 0;
                ushort num2 = 0;
                for (int i = 0; i < Characters.packageSkins.Count; i++)
                {
                    ulong num3 = Characters.packageSkins[i];
                    if (num3 != 0UL)
                    {
                        int inventoryItem = Provider.provider.economyService.getInventoryItem(num3);
                        if (inventoryItem != 0)
                        {
                            ushort inventoryItemID = Provider.provider.economyService.getInventoryItemID(inventoryItem);
                            if (inventoryItemID != 0)
                            {
                                if (num == inventoryItemID)
                                {
                                    skin = Provider.provider.economyService.getInventorySkinID(inventoryItem);
                                    num2 = Provider.provider.economyService.getInventoryMythicID(inventoryItem);
                                    break;
                                }
                            }
                        }
                    }
                }
                GetStatTrackerValueHandler statTrackerCallback = null;
                if (slot == 0)
                {
                    if (Characters.< > f__mg$cache0 == null)
                    {
                        Characters.< > f__mg$cache0 = new GetStatTrackerValueHandler(Characters.getSlot0StatTrackerValue);
                    }
                    statTrackerCallback = Characters.< > f__mg$cache0;
                }
                else if (slot == 1)
                {
                    if (Characters.< > f__mg$cache1 == null)
                    {
                        Characters.< > f__mg$cache1 = new GetStatTrackerValueHandler(Characters.getSlot1StatTrackerValue);
                    }
                    statTrackerCallback = Characters.< > f__mg$cache1;
                }
                Transform item = ItemTool.getItem(num, skin, 100, state, false, statTrackerCallback);
                if (slot == 0)
                {
                    if (itemAsset.type == EItemType.MELEE)
                    {
                        item.transform.parent = Characters.primaryMeleeSlot;
                    }
                    else if (itemAsset.slot == ESlotType.PRIMARY)
                    {
                        item.transform.parent = Characters.primaryLargeGunSlot;
                    }
                    else
                    {
                        item.transform.parent = Characters.primarySmallGunSlot;
                    }
                }
                else if (slot == 1)
                {
                    if (itemAsset.type == EItemType.MELEE)
                    {
                        item.transform.parent = Characters.secondaryMeleeSlot;
                    }
                    else
                    {
                        item.transform.parent = Characters.secondaryGunSlot;
                    }
                }
                item.localPosition = Vector3.zero;
                item.localRotation = Quaternion.Euler(0f, 0f, 90f);
                item.localScale    = Vector3.one;
                UnityEngine.Object.Destroy(item.GetComponent <Collider>());
                if (num2 != 0)
                {
                    ItemTool.applyEffect(item, num2, EEffectType.THIRD);
                }
                Characters.slots[(int)slot] = item;
            }
        }
예제 #3
0
        // Token: 0x06003424 RID: 13348 RVA: 0x00153C00 File Offset: 0x00152000
        public static Transform getItem(ushort id, ushort skin, byte quality, byte[] state, bool viewmodel, ItemAsset itemAsset, SkinAsset skinAsset, List <Mesh> outTempMeshes, out Material tempMaterial, GetStatTrackerValueHandler statTrackerCallback)
        {
            tempMaterial = null;
            if (itemAsset != null && itemAsset.item != null)
            {
                if (id != itemAsset.id)
                {
                    Debug.LogError("ID and asset ID are not in sync!");
                }
                Transform transform = UnityEngine.Object.Instantiate <GameObject>(itemAsset.item).transform;
                transform.name = id.ToString();
                if (viewmodel)
                {
                    Layerer.viewmodel(transform);
                }
                if (skinAsset != null)
                {
                    if (skinAsset.overrideMeshes != null && skinAsset.overrideMeshes.Count > 0)
                    {
                        HighlighterTool.remesh(transform, skinAsset.overrideMeshes, outTempMeshes, true);
                    }
                    else if (outTempMeshes != null)
                    {
                        outTempMeshes.Clear();
                    }
                    if (skinAsset.primarySkin != null)
                    {
                        if (skinAsset.isPattern)
                        {
                            Material material = UnityEngine.Object.Instantiate <Material>(skinAsset.primarySkin);
                            material.SetTexture("_AlbedoBase", itemAsset.albedoBase);
                            material.SetTexture("_MetallicBase", itemAsset.metallicBase);
                            material.SetTexture("_EmissionBase", itemAsset.emissionBase);
                            HighlighterTool.rematerialize(transform, material, out tempMaterial);
                        }
                        else
                        {
                            HighlighterTool.rematerialize(transform, skinAsset.primarySkin, out tempMaterial);
                        }
                    }
                }
                else if (outTempMeshes != null)
                {
                    outTempMeshes.Clear();
                }
                if (itemAsset.type == EItemType.GUN)
                {
                    Attachments attachments = transform.gameObject.AddComponent <Attachments>();
                    attachments.isSkinned = true;
                    attachments.updateGun((ItemGunAsset)itemAsset, skinAsset);
                    attachments.updateAttachments(state, viewmodel);
                }
                EStatTrackerType estatTrackerType;
                int num;
                if (!Dedicator.isDedicated && statTrackerCallback != null && statTrackerCallback(out estatTrackerType, out num))
                {
                    StatTracker statTracker = transform.gameObject.AddComponent <StatTracker>();
                    statTracker.statTrackerCallback = statTrackerCallback;
                    statTracker.updateStatTracker(viewmodel);
                }
                return(transform);
            }
            Transform transform2 = new GameObject().transform;

            transform2.name = id.ToString();
            if (viewmodel)
            {
                transform2.tag = "Viewmodel";
                transform2.gameObject.layer = LayerMasks.VIEWMODEL;
            }
            else
            {
                transform2.tag = "Item";
                transform2.gameObject.layer = LayerMasks.ITEM;
            }
            return(transform2);
        }
예제 #4
0
        // Token: 0x06003423 RID: 13347 RVA: 0x00153BDC File Offset: 0x00151FDC
        public static Transform getItem(ushort id, ushort skin, byte quality, byte[] state, bool viewmodel, ItemAsset itemAsset, SkinAsset skinAsset, GetStatTrackerValueHandler statTrackerCallback)
        {
            Material material;

            return(ItemTool.getItem(id, skin, quality, state, viewmodel, itemAsset, skinAsset, null, out material, statTrackerCallback));
        }
예제 #5
0
        // Token: 0x06003422 RID: 13346 RVA: 0x00153BA8 File Offset: 0x00151FA8
        public static Transform getItem(ushort id, ushort skin, byte quality, byte[] state, bool viewmodel, ItemAsset itemAsset, GetStatTrackerValueHandler statTrackerCallback)
        {
            SkinAsset skinAsset = null;

            if (skin != 0)
            {
                skinAsset = (SkinAsset)Assets.find(EAssetType.SKIN, skin);
            }
            return(ItemTool.getItem(id, skin, quality, state, viewmodel, itemAsset, skinAsset, statTrackerCallback));
        }
예제 #6
0
        // Token: 0x06003420 RID: 13344 RVA: 0x00153B48 File Offset: 0x00151F48
        public static Transform getItem(ushort id, ushort skin, byte quality, byte[] state, bool viewmodel, GetStatTrackerValueHandler statTrackerCallback)
        {
            ItemAsset itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, id);

            return(ItemTool.getItem(id, skin, quality, state, viewmodel, itemAsset, statTrackerCallback));
        }