public void Add(DataItemDescriptor desc)
        {
            Type diGenType = typeof(DataItemClient <>);
            Type diType    = diGenType.MakeGenericType(desc.DataType);

            Add(desc.Name, (IDataItemClient)Activator.CreateInstance(diType, desc));
        }
Ejemplo n.º 2
0
        static ShellViewModel()
        {
            CaliberDescriptor = new DataItemDescriptor <ShellViewModel>("ShellCaliberFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.Caliber, "UnitMillimeters", "ShellCaliberDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            ExplosionRadiusDescriptor = new DataItemDescriptor <ShellViewModel>("ShellExplosionRadiusFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.ExplosionRadius, "UnitMeters", "ShellExplosionRadiusDescription", "{0:#,0.###}", ComparisonMode.HigherBetter);

            SpeedDescriptor = new DataItemDescriptor <ShellViewModel>("ShellSpeedFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.Speed, "UnitMetersPerSecond", "ShellSpeedDescription", "{0:#,0}", ComparisonMode.HigherBetter);

            GravityDescriptor = new DataItemDescriptor <ShellViewModel>("ShellGravityFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.Gravity, "UnitMetersPerSquareSecond", "ShellGravityDescription", "{0:#,0.##}", ComparisonMode.Plain);

            MaxDistanceDescriptor = new DataItemDescriptor <ShellViewModel>("ShellMaxDistanceFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.MaxDistance, "UnitMeters", "ShellMaxDistanceDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            PenetrationDescriptor = new DataItemDescriptor <ShellViewModel>("ShellPenetrationFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Penetration, "UnitMillimeters", "ShellPenetrationDescription", "{0}", ComparisonMode.HigherBetter);

            ArmorDamageDescriptor = new DataItemDescriptor <ShellViewModel>("ShellArmorDamageFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.ArmorDamage, "UnitHealthPoints", "ShellArmorDamageDescription", "{0}", ComparisonMode.HigherBetter);

            DamagePerMinuteDescriptor = new DataItemDescriptor <ShellViewModel>("ShellDamagePerMinuteFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.DamagePerMinute, "UnitHealthPointsPerMinute", "ShellDamagePerMinuteDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            ModuleDamageDescriptor = new DataItemDescriptor <ShellViewModel>("ShellModuleDamageFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.Damage.Devices, "UnitHealthPoints", "ShellModuleDamageDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            PriceDescriptor = new DataItemDescriptor <ShellViewModel>("ShellPriceFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Price, null, "ShellPriceDescription", "{0:#,0.#}", ComparisonMode.LowerBetter);

            PricePerDamageDescriptor = new DataItemDescriptor <ShellViewModel>("ShellPricePerDamageFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.PricePerDamage, null, "ShellPricePerDamageDescription", "{0}", ComparisonMode.LowerBetter);

            PiercingPowerLossFactorByDistanceDescriptor = new DataItemDescriptor <ShellViewModel>("ShellPiercingPowerLossFactorByDistanceFullName", tank => tank.LoadedModules.Gun.SelectedShell, shell => shell.Shell.PiercingPowerLossFactorByDistance, "UnitPerMeter", "ShellPiercingPowerLossFactorByDistanceDescription", "{0:#,0.#%}", ComparisonMode.LowerBetter);
        }
Ejemplo n.º 3
0
 static TankViewModelBase()
 {
     HealthDescriptor = new DataItemDescriptor <TankViewModelBase>("TankHealthFullName", tank => tank, tank => tank.Health,
                                                                   "UnitHealthPoints", "TankHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);
     WeightDescriptor = new DataItemDescriptor <TankViewModelBase>("TankWeightFullName", tank => tank, tank => tank.Weight,
                                                                   "UnitKilograms", "TankWeightDescription", "{0:#,0}", ComparisonMode.Plain);
     EquipmentWeightDescriptor = new DataItemDescriptor <TankViewModelBase>("TankEquipmentWeightFullName", tank => tank,
                                                                            tank => tank.EquipmentWeight, "UnitKilograms", "TankEquipmentWeightDescription", "{0:#,0}", ComparisonMode.Plain);
     RepairCostDescriptor = new DataItemDescriptor <TankViewModelBase>("TankRepairCostFullName", tank => tank,
                                                                       tank => tank.RepairCost, "UnitCredits", "TankRepairCostDescription", "{0:#,0.#}", ComparisonMode.LowerBetter);
     MatchmakingWeightDescriptor = new DataItemDescriptor <TankViewModelBase>("TankMatchmakingWeightFullName",
                                                                              tank => tank, tank => tank.Tank.MatchMakingWeight, null, "TankMatchmakingWeightDescription", "{0:#,0.#}",
                                                                              ComparisonMode.LowerBetter);
     BattleTiersDescriptor = new DataItemDescriptor <TankViewModelBase>("TankBattleTiersFullName", tank => tank,
                                                                        tank => tank.BattleTiers, null, "TankBattleTiersDescription", "{0}", ComparisonMode.NotComparable, isDecimal: false,
                                                                        benchmarkRatio: 0.02);
     PriceDescriptor = new DataItemDescriptor <TankViewModelBase>("TankPriceFullName", tank => tank, tank => tank.Price,
                                                                  null, "TankPriceDescription", "{0}", ComparisonMode.LowerBetter);
     StationaryCamouflageDescriptor = new DataItemDescriptor <TankViewModelBase>("TankStationaryCamouflageFullName",
                                                                                 tank => tank, tank => tank.StationaryCamoflagueValue, null, "TankStationaryCamouflageDescription", "{0}",
                                                                                 ComparisonMode.HigherBetter, isDecimal: false);
     MovingCamouflageDescriptor = new DataItemDescriptor <TankViewModelBase>("TankMovingCamouflageFullName", tank => tank,
                                                                             tank => tank.MovingCamoflagueValue, null, "TankMovingCamouflageDescription", "{0}", ComparisonMode.HigherBetter,
                                                                             isDecimal: false);
     FiringStationaryCamouflageDescriptor = new DataItemDescriptor <TankViewModelBase>(
         "TankFiringStationaryCamouflageFullName", tank => tank, tank => tank.FiringStationaryCamoflagueValue, null,
         "TankFiringStationaryCamouflageDescription", "{0}", ComparisonMode.HigherBetter, isDecimal: false);
     FiringMovingCamouflageDescriptor = new DataItemDescriptor <TankViewModelBase>("TankFiringMovingCamouflageFullName",
                                                                                   tank => tank, tank => tank.FiringMovingCamoflagueValue, null, "TankFiringMovingCamouflageDescription", "{0}",
                                                                                   ComparisonMode.HigherBetter, isDecimal: false);
 }
Ejemplo n.º 4
0
        static RadioViewModel()
        {
            HealthDescriptor = new DataItemDescriptor <RadioViewModel>("RadioHealthFullName", tank => tank.LoadedModules.Radio, radio => radio.Health, "UnitHealthPoints", "RadioHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            SignalDistanceDescriptor = new DataItemDescriptor <RadioViewModel>("RadioSignalDistanceFullName", tank => tank.LoadedModules.Radio, radio => radio.SignalDistance, "UnitMeters", "RadioSignalDistanceDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <RadioViewModel>("RadioWeightFullName", tank => tank.LoadedModules.Radio, radio => radio.Radio.Weight, "UnitKilograms", "RadioWeightDescription", "{0:#,0}", ComparisonMode.Plain);
        }
        private static void HandleItem(XmlReader reader, DataItemCallback cbk)
        {
            // should be positioned on the dataItem element
            Debug.Assert(reader.NodeType == XmlNodeType.Element && reader.LocalName == "dataItem");

            //reader.ReadAttributeValue();
            string name          = reader.GetAttribute("name", "http://www.cornellracing.com/datasetConfig.xsd");
            string typename      = reader.GetAttribute("type", "http://www.cornellracing.com/datasetConfig.xsd");
            string units         = reader.GetAttribute("units", "http://www.cornellracing.com/datasetConfig.xsd");
            string maxEntriesStr = reader.GetAttribute("maxEntries", "http://www.cornellracing.com/datasetConfig.xsd");
            string specialType   = reader.GetAttribute("specialType", "http://www.cornellracing.com/datasetConfig.xsd");

            // get the list of attributes
            List <KeyValuePair <string, string> > attribs = new List <KeyValuePair <string, string> >();

            if (reader.MoveToFirstAttribute())
            {
                do
                {
                    if (reader.NamespaceURI != "http://www.cornellracing.com/datasetConfig.xsd")
                    {
                        attribs.Add(new KeyValuePair <string, string>(reader.LocalName, reader.Value));
                    }
                } while (reader.MoveToNextAttribute());

                reader.MoveToElement();
            }

            // try to parse
            Type type = GetType(typename);

            // read the next thing in the document
            string description = null;

            if (!reader.Read())
            {
                throw new InvalidOperationException();
            }
            if (reader.NodeType == XmlNodeType.Element && reader.LocalName == "description" && reader.NamespaceURI == "http://www.cornellracing.com/datasetConfig.xsd")
            {
                // there is a description field
                description = reader.ReadElementContentAsString("description", "http://www.cornellracing.com/datasetConfig.xsd");
            }

            int capacity = 250;

            if (maxEntriesStr != null)
            {
                capacity = int.Parse(maxEntriesStr);
            }

            DataItemDescriptor desc = new DataItemDescriptor(name, type, description, units, capacity);

            cbk(desc, specialType, attribs);
        }
Ejemplo n.º 6
0
        static EngineViewModel()
        {
            EnginePowerDescriptor = new DataItemDescriptor <EngineViewModel>("EnginePowerFullName", tank => tank.LoadedModules.Engine, engine => engine.HorsePower, "UnitHorsePowers", "EnginePowerDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            SpecificPowerDescriptor = new DataItemDescriptor <EngineViewModel>("EngineSpecificPowerFullName", tank => tank.LoadedModules.Engine, engine => engine.SpecificPower, "UnitHorsePowersPerTon", "EngineSpecificPowerDescription", "{0:#,0.##}", ComparisonMode.HigherBetter);

            FireChanceDescriptor = new DataItemDescriptor <EngineViewModel>("EngineFireChanceFullName", tank => tank.LoadedModules.Engine, engine => engine.FireChance, null, "EngineFireChanceDescription", "{0:#,0.#%}", ComparisonMode.LowerBetter);

            HealthDescriptor = new DataItemDescriptor <EngineViewModel>("EngineHealthFullName", tank => tank.LoadedModules.Engine, engine => engine.Health, "UnitHealthPoints", "EngineHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <EngineViewModel>("EngineWeightFullName", tank => tank.LoadedModules.Engine, engine => engine.Engine.Weight, "UnitKilograms", "EngineWeightDescription", "{0:#,0.#}", ComparisonMode.Plain);
        }
Ejemplo n.º 7
0
        static FuelTankViewModel()
        {
            HealthDescriptor = new DataItemDescriptor <FuelTankViewModel>("FuelTankHealthFullName", tank => tank.LoadedModules.FuelTank, fueltank => fueltank.Health, "UnitHealthPoints", "FuelTankHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            FuelTypeDescriptor = new DataItemDescriptor <FuelTankViewModel>("FuelTankFuelTypeFullName", tank => tank.LoadedModules.FuelTank, fueltank => fueltank.FuelType, null, "FuelTankFuelTypeDescription", "{0}", ComparisonMode.NotComparable);


            GroupViewDescriptor = new DataGroupViewDescriptor("FuelTank");
            GroupViewDescriptor.Items.Add(new DataItemViewDescriptor("Health", HealthDescriptor));
            GroupViewDescriptor.Items.Add(new DataSeparatorDescriptor());
            GroupViewDescriptor.Items.Add(new DataItemViewDescriptor("FuelType", FuelTypeDescriptor));
        }
Ejemplo n.º 8
0
        static HullViewModel()
        {
            FrontalArmorDescriptor = new DataItemDescriptor <HullViewModel>("HullFrontalArmorFullName", tank => tank.LoadedModules.Hull, hull => hull.Hull.FrontalArmor, "UnitMillimeters", "HullFrontalArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            SideArmorDescriptor = new DataItemDescriptor <HullViewModel>("HullSideArmorFullName", tank => tank.LoadedModules.Hull, hull => hull.Hull.SideArmor, "UnitMillimeters", "HullSideArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            RearArmorDescriptor = new DataItemDescriptor <HullViewModel>("HullRearArmorFullName", tank => tank.LoadedModules.Hull, hull => hull.Hull.RearArmor, "UnitMillimeters", "HullRearArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);


            HealthDescriptor = new DataItemDescriptor <HullViewModel>("HullHealthFullName", tank => tank.LoadedModules.Hull, hull => hull.Hull.MaxHealth, "UnitHealthPoints", "HullHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <HullViewModel>("HullWeightFullName", tank => tank.LoadedModules.Hull, hull => hull.Hull.Weight, "UnitKilograms", "HullWeightDescription", "{0:#,0}", ComparisonMode.Plain);
        }
Ejemplo n.º 9
0
        public RunRateDataItemSource(DataItemDescriptor desc, List <KeyValuePair <string, string> > attributes)
            : base(desc)
        {
            // initialize the default settings
            windowSize = DefaultWindowSize;
            int nominalRate = DefaultRate;

            // process the attributes
            foreach (KeyValuePair <string, string> attrib in attributes)
            {
                string attribName = attrib.Key.ToLower();
                if (attribName == "windowsize")
                {
                    if (!int.TryParse(attrib.Value, out windowSize))
                    {
                        windowSize = DefaultWindowSize;
                    }
                }
                else if (attribName == "nominalrate")
                {
                    if (!int.TryParse(attrib.Value, out nominalRate))
                    {
                        nominalRate = DefaultRate;
                    }
                }
            }

            // bound the window size below
            if (windowSize < MinWindowSize)
            {
                windowSize = MinWindowSize;
            }

            // don't let the nominal rate be less that the default space -- allocating a bit more storage isn't too bad
            if (nominalRate < DefaultRate)
            {
                nominalRate = DefaultRate;
            }

            // construct the sub items
            DataItemDescriptor periodMaxDesc    = new DataItemDescriptor(desc.Name + " (max period)", typeof(double), desc.Description, "s", desc.Capacity);
            DataItemDescriptor periodStdDevDesc = new DataItemDescriptor(desc.Name + " (period σ)", typeof(double), desc.Description, "s", desc.Capacity);

            // create the data items
            periodMaxDataItem    = new DataItemSource <double>(periodMaxDesc);
            periodStdDevDataItem = new DataItemSource <double>(periodStdDevDesc);

            // create the queue array using the window size and default rate
            runTimeQueue = new RunTimeEntry[windowSize * nominalRate];
        }
Ejemplo n.º 10
0
        static TurretViewModel()
        {
            RotationSpeedDescriptor = new DataItemDescriptor <TurretViewModel>("TurretRotationSpeedFullName", tank => tank.LoadedModules.Turret, turret => turret.RotationSpeed, "UnitDegreesPerSecond", "TurretRotationSpeedDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            CircularVisionRadiusDescriptor = new DataItemDescriptor <TurretViewModel>("TurretCircularVisionRadiusFullName", tank => tank.LoadedModules.Turret, turret => turret.CircularVisionRadius, "UnitMeters", "TurretCircularVisionRadiusDescription", "{0:#,0.#}", ComparisonMode.HigherBetter, benchmarkRatio: 0.08);

            FrontalArmorDescriptor = new DataItemDescriptor <TurretViewModel>("TurretFrontalArmorFullName", tank => tank.LoadedModules.Turret, turret => turret.Turret.FrontalArmor, "UnitMillimeters", "TurretFrontalArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            SideArmorDescriptor = new DataItemDescriptor <TurretViewModel>("TurretSideArmorFullName", tank => tank.LoadedModules.Turret, turret => turret.Turret.SideArmor, "UnitMillimeters", "TurretSideArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            RearArmorDescriptor = new DataItemDescriptor <TurretViewModel>("TurretRearArmorFullName", tank => tank.LoadedModules.Turret, turret => turret.Turret.RearArmor, "UnitMillimeters", "TurretRearArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            HorizontalTraverseDescriptor = new DataItemDescriptor <TurretViewModel>("TurretHorizontalTraverseFullName", tank => tank.LoadedModules.Turret, turret => turret.HorizontalTraverse, "UnitDegrees", "TurretHorizontalTraverseDescription", "{0}", ComparisonMode.HigherBetter);

            HealthDescriptor = new DataItemDescriptor <TurretViewModel>("TurretHealthFullName", tank => tank.LoadedModules.Turret, turret => turret.Turret.MaxHealth, "UnitHealthPoints", "TurretHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <TurretViewModel>("TurretWeightFullName", tank => tank.LoadedModules.Turret, turret => turret.Turret.Weight, "UnitKilograms", "TurretWeightDescription", "{0:#,0}", ComparisonMode.Plain);
        }
Ejemplo n.º 11
0
        static GunViewModel()
        {
            ReloadTimeDescriptor = new DataItemDescriptor <GunViewModel>("GunReloadTimeFullName", tank => tank.LoadedModules.Gun, gun => gun.ReloadTime, "UnitSeconds", "GunReloadTimeDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            AccuracyDescriptor = new DataItemDescriptor <GunViewModel>("GunAccuracyFullName", tank => tank.LoadedModules.Gun, gun => gun.Accuracy, "UnitMetersPer100Meters", "GunAccuracyDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            ArmorDescriptor = new DataItemDescriptor <GunViewModel>("GunArmorFullName", tank => tank.LoadedModules.Gun, gun => gun.Gun.GunArmor, "UnitMillimeters", "GunArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            AimingTimeDescriptor = new DataItemDescriptor <GunViewModel>("GunAimingTimeFullName", tank => tank.LoadedModules.Gun, gun => gun.AimingTime, "UnitSeconds", "GunAimingTimeDescription", "{0:#,0.0#}", ComparisonMode.LowerBetter);

            RateOfFireDescriptor = new DataItemDescriptor <GunViewModel>("GunRateOfFireFullName", tank => tank.LoadedModules.Gun, gun => gun.RateOfFire, "UnitShotsPerMinute", "GunRateOfFireDescription", "{0:#,0.00#}", ComparisonMode.HigherBetter);

            ElevationDescriptor = new DataItemDescriptor <GunViewModel>("GunElevationFullName", tank => tank.LoadedModules.Gun, gun => gun.Elevation, "UnitDegrees", "GunElevationDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            DepressionDescriptor = new DataItemDescriptor <GunViewModel>("GunDepressionFullName", tank => tank.LoadedModules.Gun, gun => gun.Depression, "UnitDegrees", "GunDepressionDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            DispersionAfterShotDescriptor = new DataItemDescriptor <GunViewModel>("GunDispersionAfterShotFullName", tank => tank.LoadedModules.Gun, gun => gun.DispersionAfterShot, "UnitFactor", "GunDispersionAfterShotDescription", "{0:#,0.00#}", ComparisonMode.LowerBetter);

            DispersionOnTurretRotationDescriptor = new DataItemDescriptor <GunViewModel>("GunDispersionOnTurretRotationFullName", tank => tank.LoadedModules.Gun, gun => gun.DispersionOnTurretRotation, "UnitFactor", "GunDispersionOnTurretRotationDescription", "{0:#,0.00#}", ComparisonMode.LowerBetter);

            DispersionOnTurretFullSpeedRotatingDescriptor = new DataItemDescriptor <GunViewModel>("GunDispersionOnTurretFullSpeedRotatingFullName", tank => tank.LoadedModules.Gun, gun => gun.DispersionOnTurretFullSpeedRotating, "UnitFactor", "GunDispersionOnTurretFullSpeedRotatingDescription", "{0:#,0.##}", ComparisonMode.LowerBetter);

            DispersionWhileGunDamagedDescriptor = new DataItemDescriptor <GunViewModel>("GunDispersionWhileGunDamagedFullName", tank => tank.LoadedModules.Gun, gun => gun.DispersionWhileGunDamaged, "UnitFactor", "GunDispersionWhileGunDamagedDescription", "{0:#,0.00#}", ComparisonMode.LowerBetter);

            HorizontalTraverseDescriptor = new DataItemDescriptor <GunViewModel>("GunHorizontalTraverseFullName", tank => tank.LoadedModules.Gun, gun => gun.HorizontalTraverse, "UnitDegrees", "GunHorizontalTraverseDescription", "{0}", ComparisonMode.HigherBetter);

            RotationSpeedDescriptor = new DataItemDescriptor <GunViewModel>("GunRotationSpeedFullName", tank => tank.LoadedModules.Gun, gun => gun.Gun.RotationSpeed, "UnitDegreesPerSecond", "GunRotationSpeedDescription", "{0:#,0.##}", ComparisonMode.HigherBetter);

            MaxAmmoDescriptor = new DataItemDescriptor <GunViewModel>("GunMaxAmmoFullName", tank => tank.LoadedModules.Gun, gun => gun.Gun.MaxAmmo, "UnitShots", "GunMaxAmmoDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            ClipCountDescriptor = new DataItemDescriptor <GunViewModel>("GunClipCountFullName", tank => tank.LoadedModules.Gun, gun => gun.ClipCount, "UnitShots", "GunClipCountDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            ClipReloadTimeDescriptor = new DataItemDescriptor <GunViewModel>("GunClipReloadTimeFullName", tank => tank.LoadedModules.Gun, gun => gun.ClipReloadTime, "UnitSeconds", "GunClipReloadTimeDescription", "{0:#,0.00#}", ComparisonMode.LowerBetter);

            BurstCountDescriptor = new DataItemDescriptor <GunViewModel>("GunBurstCountFullName", tank => tank.LoadedModules.Gun, gun => gun.BurstCount, "UnitShots", "GunBurstCountDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            BurstRateOfFireDescriptor = new DataItemDescriptor <GunViewModel>("GunBurstRateOfFireFullName", tank => tank.LoadedModules.Gun, gun => gun.BurstRateOfFire, "UnitShotsPerMinute", "GunBurstRateOfFireDescription", "{0:#,0.00#}", ComparisonMode.HigherBetter);

            CaliberDescriptor = new DataItemDescriptor <GunViewModel>("GunCaliberFullName", tank => tank.LoadedModules.Gun, gun => gun.Caliber, "UnitMillimeters", "GunCaliberDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            HealthDescriptor = new DataItemDescriptor <GunViewModel>("GunHealthFullName", tank => tank.LoadedModules.Gun, gun => gun.Health, "UnitHealthPoints", "GunHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <GunViewModel>("GunWeightFullName", tank => tank.LoadedModules.Gun, gun => gun.Gun.Weight, "UnitKilograms", "GunWeightDescription", "{0:#,0.#}", ComparisonMode.Plain);
        }
        public object MapField(BigEndianBinaryReader reader, DatasetSource ds, CarTimestamp ct)
        {
            object val = MapData(ReadData(reader));

            if (!string.IsNullOrEmpty(dsitem) && ds != null)
            {
                IDataItemSource di;
                if (!ds.TryGetValue(dsitem, out di))
                {
                    Type digType            = typeof(DataItemSource <>);
                    Type diType             = digType.MakeGenericType(outtype);
                    DataItemDescriptor desc = new DataItemDescriptor(dsitem, outtype, null, null, 250);
                    di = (IDataItemSource)Activator.CreateInstance(diType, desc);
                    ds.Add(dsitem, di);
                }
                di.Add(val, ct);
            }

            return(val);
        }
Ejemplo n.º 13
0
        static ChassisViewModel()
        {
            RotationSpeedDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisRotationSpeedFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.RotationSpeed, "UnitDegreesPerSecond", "ChassisRotationSpeedDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            ForwardSpeedLimitDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisForwardSpeedLimitFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Chassis.SpeedLimits.Forward, "UnitKilometersPerHour", "ChassisForwardSpeedLimitDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            BackwardSpeedLimitDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisBackwardSpeedLimitFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Chassis.SpeedLimits.Backward, "UnitKilometersPerHour", "ChassisBackwardSpeedLimitDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            HardTerrainResistanceDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisHardTerrainResistanceFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.HardTerrainResistance, "UnitMetersPerSquareSecond", "ChassisHardTerrainResistanceDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            MediumTerrainResistanceDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisMediumTerrainResistanceFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.MediumTerrainResistance, "UnitMetersPerSquareSecond", "ChassisMediumTerrainResistanceDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            SoftTerrainResistanceDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisSoftTerrainResistanceFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.SoftTerrainResistance, "UnitMetersPerSquareSecond", "ChassisSoftTerrainResistanceDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            CanTraverseDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisCanTraverseFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.CanTraverse, null, "ChassisCanTraverseDescription", "{0}", ComparisonMode.NotComparable, 0.0, false);

            BrakeForceDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisBrakeForceFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Chassis.BrakeForce, "UnitNewtons", "ChassisBrakeForceDescription", "{0:#,0}", ComparisonMode.HigherBetter);

            MaxClimbAngleDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisMaxClimbAngleFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Chassis.MaxClimbAngle, "UnitDegrees", "ChassisMaxClimbAngleDescription", "{0:#,0}", ComparisonMode.HigherBetter);

            DispersionOnVehicleMoveDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisDispersionOnVehicleMoveFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.DispersionOnMovement, "UnitFactor", "ChassisDispersionOnVehicleMoveDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            DispersionOnVehicleFullSpeedMovingDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisDispersionOnVehicleFullSpeedMovingFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.DispersionOnFullSpeedMoving, "UnitFactor", "ChassisDispersionOnVehicleFullSpeedMovingDescription", "{0:0.##}", ComparisonMode.LowerBetter);

            DispersionOnVehicleRotationDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisDispersionOnVehicleRotationFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.DispersionOnRotation, "UnitFactor", "ChassisDispersionOnVehicleRotationDescription", "{0:#,0.0##}", ComparisonMode.LowerBetter);

            DispersionOnVehicleFullSpeedRotatingDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisDispersionOnVehicleFullSpeedRotatingFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.DispersionOnFullSpeedRotating, "UnitFactor", "ChassisDispersionOnVehicleFullSpeedRotatingDescription", "{0:#,0.##}", ComparisonMode.LowerBetter);

            MaxLoadDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisMaxLoadFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.MaxLoad, "UnitKilograms", "ChassisMaxLoadDescription", "{0:#,0}", ComparisonMode.HigherBetter);

            HealthDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisHealthFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Health, "UnitHealthPoints", "ChassisHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);

            WeightDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisWeightFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.Chassis.Weight, "UnitKilograms", "ChassisWeightDescription", "{0:#,0}", ComparisonMode.Plain);

            ArmorDescriptor = new DataItemDescriptor <ChassisViewModel>("ChassisArmorFullName", tank => tank.LoadedModules.Chassis, chassis => chassis.TrackArmor, "UnitMillimeters", "ChassisArmorDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);
        }
Ejemplo n.º 14
0
 public MapFieldsDataItemClient(DataItemDescriptor desc, DatasetClient parent)
     : base(desc)
 {
     Init(desc.Name, parent);
 }
 static TurretRotatorViewModel()
 {
     HealthDescriptor = new DataItemDescriptor <TurretRotatorViewModel>("TurretRotatorHealthFullName", tank => tank.LoadedModules.Turret.TurretRotator, rotator => rotator.Health, "UnitHealthPoints", "TurretRotatorHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);
 }
Ejemplo n.º 16
0
 static AmmoBayViewModel()
 {
     HealthDescriptor = new DataItemDescriptor <AmmoBayViewModel>("AmmoBayHealthFullName", tank => tank.LoadedModules.Turret.AmmoBay, ammoBay => ammoBay.Health, "UnitHealthPoints", "AmmoBayHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);
 }
 public DataItemSource(DataItemDescriptor ds)
 {
     this.desc = ds;
     this.dtc  = ds.DataTypeCode;
     this.name = ds.Name;
 }
Ejemplo n.º 18
0
 static SurveyingDeviceViewModel()
 {
     HealthDescriptor = new DataItemDescriptor <SurveyingDeviceViewModel>("SurveyingDeviceHealthFullName", tank => tank.LoadedModules.Turret.SurveyingDevice, device => device.Health, "UnitHealthPoints", "SurveyingDeviceHealthDescription", "{0:#,0.#}", ComparisonMode.HigherBetter);
 }
 public DataItemClient(DataItemDescriptor desc)
 {
     this.name  = desc.Name;
     this.units = desc.Units;
 }