Example #1
0
        public static CharacteristicDefinitions MakeCharacteristicDefinitionsFrom(this Table table)
        {
            var characteristicDefinitions = new CharacteristicDefinitions();

            foreach (var charaDef in table.Pairs)
            {
                var key = charaDef.Key.String;
                var val = charaDef.Value.Table;

                var def = new CharacteristicDefinition();

                def.cost = (int)val.Get("cost").Number;
                def.max  = (int)val.Get("max").Number;
                def.min  = (int)val.Get("min").Number;

                var rules = val.Get("rules").Table;
                def.rules = new CharacteristicDefinition.Rules();

                def.rules.isBad    = rules.Get("isBad").Boolean;
                def.rules.isFrozen = rules.Get("isFrozen").Boolean;
                def.rules.onChange = new Action <Characteristics, int>((characteristics, changeAmount) =>
                {
                    var tCharas = characteristics.Serialize(table.OwnerScript);
                    rules.Get("onChange").Function.Call(
                        tCharas,
                        changeAmount
                        );

                    characteristics.LoadValuesFromTable(tCharas);
                });
            }

            return(characteristicDefinitions);
        }
Example #2
0
        public GattCharacteristic FindCharacteristic(CharacteristicDefinition characteristicDef)
        {
            var service = FindService(characteristicDef.ServiceDefinition);

            if (service == null)
            {
                return(null);
            }

            return(service.FindCharacteristic(characteristicDef.Id));
        }
Example #3
0
 public Characteristic(CharacteristicDefinition _definition)
 {
     definition = _definition;
     value      = definition.min;
 }