Ejemplo n.º 1
0
 public static bool IsEquipmentPartEqual(DCustomEquipmentPart part1, CustomEquipmentPart part2)
 {
     if (part1.SlotIndex != part2.slotIndex)
     {
         return(false);
     }
     if (part1.Decals.Length != part2.customizations.Length)
     {
         return(false);
     }
     for (int i = 0; i < part1.Decals.Length; i++)
     {
         if (part1.Decals[i].DefinitionId != part2.customizations[i].definitionId)
         {
             return(false);
         }
         if (part1.Decals[i].Index != part2.customizations[i].index)
         {
             return(false);
         }
         if (part1.Decals[i].Repeat != part2.customizations[i].repeat)
         {
             return(false);
         }
         if (Math.Abs(part1.Decals[i].Rotation - part2.customizations[i].rotation) > float.Epsilon)
         {
             return(false);
         }
         if (Math.Abs(part1.Decals[i].Scale - part2.customizations[i].scale) > float.Epsilon)
         {
             return(false);
         }
         if (part1.Decals[i].Type != (EquipmentDecalType)part2.customizations[i].type)
         {
             return(false);
         }
         if (Math.Abs(part1.Decals[i].Uoffset - part2.customizations[i].uoffset) > float.Epsilon)
         {
             return(false);
         }
         if (Math.Abs(part1.Decals[i].Voffset - part2.customizations[i].voffset) > float.Epsilon)
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 2
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);
    }
Ejemplo n.º 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);
        }