Ejemplo n.º 1
0
 private void OnPlayerReady(BoolAttribute attr, bool oldValue, bool newValue)
 {
     if (newValue == true)
     {
         playersWaiting--;
     }
 }
Ejemplo n.º 2
0
        public void AddAttribute(string name, AttributeTypes type, string value)
        {
            Attribute attribute = null;

            switch (type)
            {
            case AttributeTypes.String: attribute = new StringAttribute(name); break;

            case AttributeTypes.Int: attribute = new IntAttribute(name); break;

            case AttributeTypes.Float: attribute = new FloatAttribute(name); break;

            case AttributeTypes.Vector2: attribute = new Vector2Attribute(name); break;

            case AttributeTypes.Vector3: attribute = new Vector3Attribute(name); break;

            case AttributeTypes.Quaternion: attribute = new QuaternionAttribute(name); break;

            case AttributeTypes.Matrix: attribute = new MatrixAttribute(name); break;

            case AttributeTypes.Bool: attribute = new BoolAttribute(name); break;

            default: throw new System.Exception("AttributeType '" + type + "' does not exist!");
            }
            attribute.Initialize(value);
            AddAttribute(attribute);
        }
Ejemplo n.º 3
0
 private void DeadChanged(
     BoolAttribute sender,
     bool oldValue,
     bool newValue
     )
 {
     ChangeBool("Dead", newValue);
 }
 private void HideChanged(
     BoolAttribute sender,
     bool oldValue,
     bool newValue
     )
 {
     ChangeBool("Hide", newValue);
 }
Ejemplo n.º 5
0
 private void InteractableChanged(
     BoolAttribute sender,
     bool oldValue,
     bool newValue
     )
 {
     ChangeBool("Interactable", newValue);
 }
 private void FueledChanged(
     BoolAttribute sender,
     bool oldValue,
     bool newValue
     )
 {
     ChangeBool("Fueled", newValue);
 }
 private void FlameFuelChangeHandler(BoolAttribute sender, bool oldValue, bool newValue)
 {
     // activate cooldown
     if (flameThrowerState == FlameThrowerState.Active)
     {
         flameThrowerStateChangedAt = at;
     }
     flameThrowerState = FlameThrowerState.Cooldown;
 }
Ejemplo n.º 8
0
        protected override ModelMetadata CreateMetadata(IEnumerable <Attribute> attributes, Type containerType, Func <object> modelAccessor, Type modelType, string propertyName)
        {
            ModelMetadata metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);

            PropertyEditableAttribute editable = attributes.OfType <PropertyEditableAttribute>().FirstOrDefault();

            if (editable == null)
            {
                editable = PropertyEditableAttribute.Default;
            }
            metadata.AdditionalValues.Add(EditableWhenCreate_Key, editable.WhenCreate);
            metadata.AdditionalValues.Add(EditableWhenEdit_Key, editable.WhenEdit);

            metadata.AdditionalValues.Add(Icon_Prefix, attributes.OfType <IconAttribute>().Select(i => i.File).FirstOrDefault());
            metadata.AdditionalValues.Add(RealSort_Key, attributes.OfType <RealSortAttribute>().Select(s => s.Expression).FirstOrDefault());

            TypeConverterAttribute typeConverterAttribute = attributes.OfType <TypeConverterAttribute>().FirstOrDefault();

            if (typeConverterAttribute != null && typeConverterAttribute.ConverterTypeName != null)
            {
                metadata.AdditionalValues.Add(ConverterTypeName_Key, typeConverterAttribute.ConverterTypeName);
            }

            foreach (var item in attributes.OfType <KeyValueInfoAttribute>())
            {
                metadata.AdditionalValues.Add(KeyValueInfoAttribute_Prefix + item.Key, item.Value);
            }

            DataFormatAttribute dataFormatAttribute = attributes.OfType <DataFormatAttribute>().FirstOrDefault();

            if (dataFormatAttribute != null)
            {
                metadata.EditFormatString         = dataFormatAttribute.EditFormatStringWithBraces;
                metadata.DisplayFormatString      = dataFormatAttribute.DiaplayFormatStringWithBraces;
                metadata.NullDisplayText          = dataFormatAttribute.NullDisplayText;
                metadata.ConvertEmptyStringToNull = dataFormatAttribute.ConvertEmptyStringToNull;
            }

            EnumerationAttribute enumerationAttribute = attributes.OfType <EnumerationAttribute>().FirstOrDefault();

            if (enumerationAttribute != null)
            {
                metadata.AdditionalValues.Add(EnumerationAttribute_Key, enumerationAttribute);
            }

            BoolAttribute boolAttribute = attributes.OfType <BoolAttribute>().FirstOrDefault();

            if (boolAttribute != null)
            {
                metadata.AdditionalValues.Add(BoolAttribute_Key, boolAttribute);
            }

            metadata.AdditionalValues.Add(AllAttribute_Key, attributes);

            return(metadata);
        }
Ejemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="udfValue"></param>
        /// <param name="newValue"></param>
        /// <returns></returns>
        public static bool SetUdf(UDFValue udfValue, string newValue)
        {
            if (udfValue.TypedValueAttribute is StringAttribute)
            {
                logger.Trace("SetUdf: StringAttribute");
                ((StringAttribute)udfValue.TypedValueAttribute).Value = newValue;
            }
            else if (udfValue.TypedValueAttribute is BoolAttribute)
            {
                logger.Trace("SetUdf: BoolAttribute");
                BoolAttribute boolValue = (BoolAttribute)udfValue.TypedValueAttribute;
                if (string.IsNullOrEmpty(newValue) == false)
                {
                    switch (newValue.ToUpperInvariant())
                    {
                    case "TRUE":
                    case "1":
                        boolValue.Value = true;
                        break;

                    case "FALSE":
                    case "0":
                        boolValue.Value = false;
                        break;

                    default:
                        logger.Error("SetUdf: Invalid boolean value {0} for UDF {1}.", newValue, udfValue.Field.Description);
                        return(false);
                    }
                }
            }
            else if (udfValue.TypedValueAttribute is EntityAttribute)
            {
                logger.Trace("SetUdf: EntityAttribute");
                EntityAttribute entityValue = (EntityAttribute)udfValue.TypedValueAttribute;
                if (entityValue.FromString(newValue) == false)
                {
                    logger.Error("SetUdf: Invalid lookup value {0} for UDF {1}.", newValue, udfValue.Field.Description);
                    return(false);
                }
            }
            else
            {
                logger.Error("SetUdf: Unsupported UDF type {0} for UDF {1}.", udfValue.TypedValueAttribute, udfValue.Field.Description);
                return(false);
            }

            return(true);
        }
        public void SetValue_SetsBooleanAttribute()
        {
            NewElement element = InitializeEmptyNewElement();
            int        id      = 15;
            var        att     = new BoolAttribute()
            {
                Id = id
            };

            element.BoolAttributes.Add(att);
            bool value = true;

            element.SetValue(id, value);

            Assert.Equal(value, att.Value);
        }
Ejemplo n.º 11
0
 public static void labelAttribute(this BoolAttribute _p0)
 {
 }
Ejemplo n.º 12
0
        private CarPartAttribute GetPreparedAttribute(CarPartAttributeData attributeData)
        {
            var attributeName = HashMapper.ResolveHash(attributeData.NameHash);
            CarPartAttribute attribute;

            switch (attributeName)
            {
            case "PARTID_UPGRADE_GROUP":
                attribute = new PartIdAttribute();
                break;

            case "LANGUAGEHASH":
                attribute = new LanguageHashAttribute();
                break;

            case "KITNUMBER":
                attribute = new KitNumberAttribute();
                break;

            case "LOD_NAME_PREFIX_SELECTOR":
                attribute = new LodNamePrefixAttribute();
                break;

            case "LOD_BASE_NAME":
                attribute = new LodBaseNameAttribute();
                break;

            case "NAME_OFFSET":
                attribute = new NameOffsetAttribute();
                break;

            case "LOD_CHARACTERS_OFFSET":
                attribute = new LodCharactersOffsetAttribute();
                break;

            case "LOD_NAME_PREFIX_NAMEHASH":
                attribute = new LodNamePrefixNameHashAttribute();
                break;

            case "ONLINE":
            case "STOCK":
            case "CARBONFIBRE":
            case "CENTER":
            case "0x87557E1E":
            case "0xF9661A07":
            case "STOCK_MATERIAL":
            case "USEMARKER1":
            case "FULLBODY":
            case "MIRROR":
            case "ISDECAL":
                attribute = new BoolAttribute(attributeName);
                break;

            case "TEXTURE":
                attribute = new TextureAttribute();
                break;

            case "0x10C98090":
            case "MAX_LOD":
            case "COLOR0ID":
            case "COLOR1ID":
            case "COLOR2ID":
            case "COLOR3ID":
            case "VINYLLANGUAGEHASH":
            case "TEXTUREHASH":
            case "CV":
            case "SPECIFICCARNAME":
            case "0x6BA02C05":
            case "MAT0":
            case "MAT1":
            case "MAT2":
            case "MAT3":
            case "MAT4":
            case "MAT5":
            case "MAT6":
            case "MAT7":
            case "0xC9818DFC":
            case "0xEBB03E66":
            case "MATNAMEA":
            case "MATNAMEB":
            case "0xD68A7BAB":
            case "RED":
            case "GREEN":
            case "BLUE":
            case "SWATCH":
            case "GROUPLANGUAGEHASH":
            case "0x04B39858":
            case "0x5412A1D9":
            case "MODEL_TABLE_OFFSET":
            case "MORPHTARGET_NUM":
            case "0xCE7D8DB5":
            case "0x7D29CF3E":
            case "0x65F58556":
            case "GLOSS":
            case "0xB5548ED7":
            case "0x1B0EA1A9":
            case "0xEB0101E2":
            case "0xE80A3B62":
            case "PAINTGROUP":
            case "DAMAGELEVEL":
                attribute = new IntAttribute(attributeName);
                break;

            case "BLEND":
            case "0x9A9B6DDC":
                attribute = new FloatAttribute(attributeName);
                break;

            default:
                attribute = new IntAttribute(attributeName);
                Debug.WriteLine("WARNING: Unimplemented attribute {0}; value={1} (0x{1:X8})", attributeName, attributeData.UnsignedParam);
                break;
            }

            attribute.LoadValue(attributeData);

            if (attribute is StringBasedAttribute sba)
            {
                sba.ReadStrings(_stringsDictionary);
            }

            return(attribute);
        }
Ejemplo n.º 13
0
        private Element ConvertXElementToElement(XElement element)
        {
            var elementValues = new List <string>();

            if (!element.Elements().Any())
            {
                var tElem = _oldRoot.Descendants(element.Name).Where(x => GetParentsAsString(x, -1) == GetParentsAsString(element, -1) && !x.Elements().Any()).Select(e => e.Value);
                elementValues.AddRange(tElem);
            }

            var xElementList = _oldRoot.Descendants(element.Name).GroupBy(el => el.Parent).Select(g => new { g.Key, Count = g.Count() }).Where(x => x.Count > 1);

            Element returnElement;
            var     elementName = element.Name.LocalName;
            var     elementType = DataType.GetDataTypeFromList(elementValues, _dateFormat, _dateTimeFormat);

            switch (elementType.type)
            {
            case DataType.Type.Date:
                returnElement = new DateTimeElement(elementName, _dateFormat);
                break;

            case DataType.Type.DateTime:
                returnElement = new DateTimeElement(elementName, _dateTimeFormat);
                break;

            case DataType.Type.Bool:
                returnElement = new BoolElement(elementName, "True", "False");
                break;

            case DataType.Type.@bool:
                returnElement = new BoolElement(elementName, "true", "false");
                break;

            case DataType.Type.@int:
                returnElement = new IntElement(elementName);
                break;

            case DataType.Type.@decimal:
                returnElement = new DecimalElement(elementName);
                break;

            case DataType.Type.@string:
                returnElement = new StringElement(elementName);
                break;

            default:
                returnElement = new Element(elementName);
                break;
            }
            returnElement.Enumerable      = xElementList.Any();
            returnElement.Type            = elementType;
            returnElement.OriginalElement = element;

            foreach (var xElement in element.Elements())
            {
                returnElement.Elements.Add(ConvertXElementToElement(xElement));
            }

            foreach (var xAttribute in element.Attributes())
            {
                var tElements = _oldRoot.DescendantsAndSelf(element.Name).Where(x => GetParentsAsString(x, -1) == GetParentsAsString(element, -1)).ToList();

                var xAttr           = xAttribute;
                var attributeValues = tElements.Select(tElement => tElement.Attribute(xAttr.Name)).Select(attribute => attribute != null ? attribute.Value : "").ToList();

                Attribute thisAttribute;
                var       attributeName = xAttribute.Name.LocalName;

                if (xAttribute.IsNamespaceDeclaration)
                {
                    returnElement.NamespaceAttributes.Add(xAttribute);
                    continue;
                }

                if (attributeName == "schemaLocation")
                {
                    thisAttribute = new SchemaLocationAttribute(attributeName, xAttribute.Value);
                    returnElement.Attributes.Add(thisAttribute);
                    continue;
                }

                var attributeType = DataType.GetDataTypeFromList(attributeValues, _dateFormat, _dateTimeFormat);
                switch (attributeType.type)
                {
                case DataType.Type.Date:
                    thisAttribute = new DateTimeAttribute(attributeName, _dateFormat);
                    break;

                case DataType.Type.DateTime:
                    thisAttribute = new DateTimeAttribute(attributeName, _dateTimeFormat);
                    break;

                case DataType.Type.Bool:
                    thisAttribute = new BoolAttribute(attributeName, "True", "False");
                    break;

                case DataType.Type.@bool:
                    thisAttribute = new BoolAttribute(attributeName, "true", "false");
                    break;

                case DataType.Type.@int:
                    thisAttribute = new IntAttribute(attributeName);
                    break;

                case DataType.Type.@decimal:
                    thisAttribute = new DecimalAttribute(attributeName);
                    break;

                case DataType.Type.@string:
                    thisAttribute = new StringAttribute(attributeName);
                    break;

                default:
                    thisAttribute = new Attribute(attributeName);
                    break;
                }
                thisAttribute.Type = attributeType;

                returnElement.Attributes.Add(thisAttribute);
            }

            return(returnElement);
        }