Exemple #1
0
    public static CustomEquipment ConvertCustomEquipmentToRequest(DCustomEquipment equipment)
    {
        CustomEquipment result = default(CustomEquipment);
        Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
        bool flag = false;

        foreach (TemplateDefinition value in dictionary.Values)
        {
            if (value.AssetName.Equals(equipment.Name))
            {
                result.definitionId = value.Id;
                flag = true;
                break;
            }
        }
        if (!flag)
        {
            Log.LogFatalFormatted(typeof(CustomEquipmentResponseAdaptor), "No known equipment template definition for asset named {0}", equipment.Name);
        }
        CustomEquipmentPart[] array = new CustomEquipmentPart[equipment.Parts.Length];
        for (int i = 0; i < equipment.Parts.Length; i++)
        {
            CustomEquipmentPart customEquipmentPart = default(CustomEquipmentPart);
            customEquipmentPart.slotIndex = equipment.Parts[i].SlotIndex;
            if (equipment.Parts[i].Decals != null)
            {
                Dictionary <int, FabricDefinition> dictionary2 = Service.Get <GameData>().Get <Dictionary <int, FabricDefinition> >();
                Dictionary <int, DecalDefinition>  dictionary3 = Service.Get <GameData>().Get <Dictionary <int, DecalDefinition> >();
                CustomEquipmentCustomization[]     array2      = new CustomEquipmentCustomization[equipment.Parts[i].Decals.Length];
                for (int j = 0; j < equipment.Parts[i].Decals.Length; j++)
                {
                    DCustomEquipmentDecal        dCustomEquipmentDecal        = equipment.Parts[i].Decals[j];
                    CustomEquipmentCustomization customEquipmentCustomization = default(CustomEquipmentCustomization);
                    customEquipmentCustomization.index    = dCustomEquipmentDecal.Index;
                    customEquipmentCustomization.scale    = dCustomEquipmentDecal.Scale;
                    customEquipmentCustomization.rotation = dCustomEquipmentDecal.Rotation;
                    customEquipmentCustomization.uoffset  = dCustomEquipmentDecal.Uoffset;
                    customEquipmentCustomization.voffset  = dCustomEquipmentDecal.Voffset;
                    flag = false;
                    if (dCustomEquipmentDecal.Type == EquipmentDecalType.FABRIC)
                    {
                        foreach (FabricDefinition value2 in dictionary2.Values)
                        {
                            if (value2.AssetName.Equals(dCustomEquipmentDecal.TextureName))
                            {
                                customEquipmentCustomization.type         = EquipmentCustomizationType.FABRIC;
                                customEquipmentCustomization.definitionId = value2.Id;
                                flag = true;
                                break;
                            }
                        }
                    }
                    else if (dCustomEquipmentDecal.Type == EquipmentDecalType.DECAL)
                    {
                        foreach (DecalDefinition value3 in dictionary3.Values)
                        {
                            if (value3.AssetName.Equals(dCustomEquipmentDecal.TextureName))
                            {
                                customEquipmentCustomization.type         = EquipmentCustomizationType.DECAL;
                                customEquipmentCustomization.definitionId = value3.Id;
                                customEquipmentCustomization.repeat       = dCustomEquipmentDecal.Repeat;
                                flag = true;
                                break;
                            }
                        }
                    }
                    if (!flag)
                    {
                        Log.LogFatalFormatted(typeof(CustomEquipmentResponseAdaptor), "No known customization definition for texture {0}", dCustomEquipmentDecal.TextureName);
                    }
                    array2[j] = customEquipmentCustomization;
                }
                customEquipmentPart.customizations = array2;
            }
            array[i] = customEquipmentPart;
        }
        result.parts = array;
        return(result);
    }
Exemple #2
0
    public static DCustomEquipment ConvertResponseToCustomEquipment(CustomEquipment data)
    {
        Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
        DCustomEquipment result = default(DCustomEquipment);

        result.Id              = data.equipmentId;
        result.DefinitionId    = data.definitionId;
        result.DateTimeCreated = data.dateTimeCreated;
        if (!dictionary.ContainsKey(data.definitionId))
        {
            Log.LogErrorFormatted(typeof(CustomEquipmentResponseAdaptor), "No known equipment template definition for id {0}", data.definitionId);
            throw new KeyNotFoundException();
        }
        result.Name = dictionary[data.definitionId].AssetName;
        if (data.parts != null)
        {
            DCustomEquipmentPart[] array = new DCustomEquipmentPart[data.parts.Length];
            for (int i = 0; i < data.parts.Length; i++)
            {
                DCustomEquipmentPart dCustomEquipmentPart = default(DCustomEquipmentPart);
                dCustomEquipmentPart.SlotIndex = data.parts[i].slotIndex;
                if (data.parts[i].customizations != null)
                {
                    Dictionary <int, FabricDefinition> dictionary2 = Service.Get <GameData>().Get <Dictionary <int, FabricDefinition> >();
                    Dictionary <int, DecalDefinition>  dictionary3 = Service.Get <GameData>().Get <Dictionary <int, DecalDefinition> >();
                    DCustomEquipmentDecal[]            array2      = new DCustomEquipmentDecal[data.parts[i].customizations.Length];
                    for (int j = 0; j < array2.Length; j++)
                    {
                        CustomEquipmentCustomization customEquipmentCustomization = data.parts[i].customizations[j];
                        DCustomEquipmentDecal        dCustomEquipmentDecal        = default(DCustomEquipmentDecal);
                        dCustomEquipmentDecal.DefinitionId = customEquipmentCustomization.definitionId;
                        dCustomEquipmentDecal.Index        = customEquipmentCustomization.index;
                        dCustomEquipmentDecal.Scale        = customEquipmentCustomization.scale;
                        dCustomEquipmentDecal.Rotation     = customEquipmentCustomization.rotation;
                        dCustomEquipmentDecal.Uoffset      = customEquipmentCustomization.uoffset;
                        dCustomEquipmentDecal.Voffset      = customEquipmentCustomization.voffset;
                        switch (customEquipmentCustomization.type)
                        {
                        case EquipmentCustomizationType.DECAL:
                            if (!dictionary3.ContainsKey(customEquipmentCustomization.definitionId))
                            {
                                Log.LogErrorFormatted(typeof(CustomEquipmentResponseAdaptor), "No known decal template definition for id {0}", customEquipmentCustomization.definitionId);
                                continue;
                            }
                            dCustomEquipmentDecal.TextureName = dictionary3[customEquipmentCustomization.definitionId].AssetName;
                            dCustomEquipmentDecal.Repeat      = customEquipmentCustomization.repeat;
                            dCustomEquipmentDecal.Type        = EquipmentDecalType.DECAL;
                            break;

                        case EquipmentCustomizationType.FABRIC:
                            if (!dictionary2.ContainsKey(customEquipmentCustomization.definitionId))
                            {
                                Log.LogErrorFormatted(typeof(CustomEquipmentResponseAdaptor), "No known fabric template definition for id {0}", customEquipmentCustomization.definitionId);
                                continue;
                            }
                            dCustomEquipmentDecal.TextureName = dictionary2[customEquipmentCustomization.definitionId].AssetName;
                            dCustomEquipmentDecal.Type        = EquipmentDecalType.FABRIC;
                            dCustomEquipmentDecal.Repeat      = true;
                            break;
                        }
                        array2[j] = dCustomEquipmentDecal;
                    }
                    dCustomEquipmentPart.Decals = array2;
                }
                else
                {
                    dCustomEquipmentPart.Decals = new DCustomEquipmentDecal[0];
                }
                array[i] = dCustomEquipmentPart;
            }
            result.Parts = array;
        }
        else
        {
            result.Parts = new DCustomEquipmentPart[0];
        }
        return(result);
    }
Exemple #3
0
        private CustomEquipment[] randomizeOutfitParts()
        {
            Dictionary <int, TemplateDefinition> dictionary   = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
            Dictionary <int, FabricDefinition>   definitions  = Service.Get <GameData>().Get <Dictionary <int, FabricDefinition> >();
            Dictionary <int, DecalDefinition>    definitions2 = Service.Get <GameData>().Get <Dictionary <int, DecalDefinition> >();
            AvatarService avatarService = Service.Get <AvatarService>();
            int           num           = avatarService.GetDefinitionByName("penguinAvatar").Slots.Length;
            int           num2          = Enum.GetNames(typeof(DecalColorChannel)).Length / 2;
            int           num3          = 3;

            CustomEquipment[] array = new CustomEquipment[num3];
            List <int>        list  = new List <int>();

            for (int i = 0; i < num3; i++)
            {
                CustomEquipment customEquipment = default(CustomEquipment);
                bool            flag            = false;
                int             num4            = 0;
                while (!flag)
                {
                    num4 = getRandomDefinitionId(dictionary);
                    flag = !dictionary[num4].WorkInProgress && !list.Contains(num4);
                }
                customEquipment.definitionId = num4;
                list.Add(num4);
                customEquipment.equipmentId = UnityEngine.Random.Range(0, int.MaxValue);
                CustomEquipmentCustomization[] array2 = new CustomEquipmentCustomization[num2 * 2];
                CustomEquipmentCustomization   customEquipmentCustomization;
                for (int j = 0; j < num2; j++)
                {
                    customEquipmentCustomization = default(CustomEquipmentCustomization);
                    customEquipmentCustomization.definitionId = getRandomDefinitionId(definitions);
                    customEquipmentCustomization.index        = j;
                    customEquipmentCustomization.repeat       = true;
                    customEquipmentCustomization.rotation     = 0f;
                    customEquipmentCustomization.scale        = 1f;
                    customEquipmentCustomization.type         = EquipmentCustomizationType.FABRIC;
                    customEquipmentCustomization.uoffset      = 0f;
                    customEquipmentCustomization.voffset      = 0f;
                    array2[j] = customEquipmentCustomization;
                }
                for (int j = 0; j < num2; j++)
                {
                    customEquipmentCustomization = default(CustomEquipmentCustomization);
                    customEquipmentCustomization.definitionId = getRandomDefinitionId(definitions2);
                    customEquipmentCustomization.index        = j + num2;
                    customEquipmentCustomization.repeat       = true;
                    customEquipmentCustomization.rotation     = 0f;
                    customEquipmentCustomization.scale        = 1f;
                    customEquipmentCustomization.type         = EquipmentCustomizationType.DECAL;
                    customEquipmentCustomization.uoffset      = 0f;
                    customEquipmentCustomization.voffset      = 0f;
                    array2[j + num2] = customEquipmentCustomization;
                }
                customEquipment.parts = new CustomEquipmentPart[num];
                for (int k = 0; k < num; k++)
                {
                    CustomEquipmentPart customEquipmentPart = default(CustomEquipmentPart);
                    customEquipmentPart.slotIndex      = k;
                    customEquipmentPart.customizations = array2;
                    customEquipment.parts[k]           = customEquipmentPart;
                }
                array[i] = customEquipment;
            }
            return(array);
        }