Example #1
0
        public RingCollection <SensorValue> CreateHistory(RingCollection <SensorValue> values)
        {
            values.Clear();
            // Create a sorted list of all sensor log times
            List <DateTime> times = new List <DateTime>();

            foreach (ISensor s in used)
            {
                foreach (SensorValue v in s.Values)
                {
                    times.Add(v.Time);
                }
            }
            times.Sort((a, b) => b.CompareTo(a));
            foreach (DateTime cur in times)
            {
                float val = ParseOutput(cur);
                values.Append(new SensorValue(val, cur));
            }
            if (values.Count > 0)
            {
                values.Last = new SensorValue(ParseOutput(), DateTime.UtcNow);
            }

            return(values);
        }
    protected override void SetupFromSplitJsonString(string[] splitJsonString)
    {
        name            = splitJsonString[0];
        notes           = splitJsonString[1];
        size            = EnumValue.CreateFromJsonString(splitJsonString[2]);
        restockSettings = RestockSettings.CreateFromJsonString(splitJsonString[3]);

        m_AvailabilityPerShopSizePerStockType  = AvailabilityPerStockTypePerShopSize.Load(splitJsonString[4]);
        m_RestockFrequencyModifiersPerShopSize = RestockFrequencyModifiersPerShopSize.Load(splitJsonString[5]);
        m_ReadyCashPerShopSize = ReadyCashPerShopSize.Load(splitJsonString[6]);
        m_RarityPerCharacterClassPerSpellContainer = RarityPerCharacterClassPerSpellContainer.Load(splitJsonString[7]);
        m_BudgetRangePerPowerLevelPerStockType     = FloatRangePerPowerLevelPerStockType.Load(splitJsonString[8]);
        m_ArmourCollection               = ArmourCollection.Load(splitJsonString[9]);
        m_SpellCollection                = SpellCollection.Load(splitJsonString[10]);
        m_WeaponCollection               = WeaponCollection.Load(splitJsonString[11]);
        m_RingCollection                 = RingCollection.Load(splitJsonString[12]);
        m_RodCollection                  = RodCollection.Load(splitJsonString[13]);
        m_StaffCollection                = StaffCollection.Load(splitJsonString[14]);
        m_WondrousCollection             = WondrousCollection.Load(splitJsonString[15]);
        m_ArmourQualityCollection        = ArmourQualityCollection.Load(splitJsonString[16]);
        m_WeaponQualityCollection        = WeaponQualityCollection.Load(splitJsonString[17]);
        m_WeaponQualityConstraintsMatrix = WeaponQualityConstraintsMatrix.Load(splitJsonString[18]);
        m_ArmourQualityConstraintsMatrix = ArmourQualityConstraintsMatrix.Load(splitJsonString[19]);

        shops = new Shop[splitJsonString.Length - 20];
        for (int i = 0; i < shops.Length; i++)
        {
            shops[i] = Shop.CreateFromJsonString(splitJsonString[i + 20]);
        }
    }
        private static ICurvePolygon FlattenCurvePolygon(ICurvePolygon curvePolygon, FgfGeometryFactory factory)
        {
            IRing          extRing  = FlattenRing(curvePolygon.ExteriorRing, factory);
            RingCollection intRings = new RingCollection();

            for (int i = 0; i < curvePolygon.InteriorRingCount; i++)
            {
                intRings.Add(FlattenRing(curvePolygon.get_InteriorRing(i), factory));
            }
            return(factory.CreateCurvePolygon(extRing, intRings));
        }
Example #4
0
 private static float GetPreviousValue(RingCollection <SensorValue> vals, int seconds)
 {
     for (int i = vals.Count - 1; i > 0; i--)
     {
         if ((DateTime.UtcNow - vals[i].Time).TotalSeconds > seconds)
         {
             break;
         }
         if ((DateTime.UtcNow - vals[i].Time).TotalSeconds < seconds && (DateTime.UtcNow - vals[i - 1].Time).TotalSeconds >= seconds)
         {
             return(vals[i - 1].Value);
         }
     }
     return(vals[vals.Count - 1].Value);
 }
Example #5
0
 private static float GetValueAtTime(RingCollection <SensorValue> values, DateTime time)
 {
     for (int i = values.Count - 1; i > 0; i--)
     {
         if (time > values[i].Time)
         {
             break;
         }
         if (time < values[i].Time && time >= values[i - 1].Time)
         {
             time = values[i - 1].Time;
             return(values[i - 1].Value);
         }
     }
     return(values[values.Count - 1].Value);
 }
Example #6
0
        private static float GetPreviousAverageAtTime(RingCollection <SensorValue> values, int seconds, DateTime time)
        {
            float sum   = 0f;
            int   items = 0;

            for (int i = values.Count - 1; i > 0; i--)
            {
                if (time.AddSeconds(-1 * seconds) > values[i - 1].Time)
                {
                    break;
                }
                if (time >= values[i].Time)
                {
                    sum += values[i].Value;
                    items++;
                }
            }
            return(sum / items);
        }
Example #7
0
        private static float GetPreviousAverage(RingCollection <SensorValue> values, int seconds)
        {
            float sum   = 0f;
            int   items = 0;

            for (int i = values.Count - 1; i > 0; i--)
            {
                if ((DateTime.UtcNow - values[i].Time).TotalSeconds > seconds)
                {
                    break;
                }
                if ((DateTime.UtcNow - values[i].Time).TotalSeconds <= seconds)
                {
                    sum += values[i].Value;
                    items++;
                }
            }
            return(sum / items);
        }
Example #8
0
    protected override void SetupFromSplitJsonString(string[] splitJsonString)
    {
        name               = splitJsonString[0];
        notes              = CreateStringFromSafeJson(splitJsonString[1]);
        m_Books            = EnumSetting.Load(splitJsonString[2]);
        m_CharacterClasses = EnumSetting.Load(splitJsonString[3]);
        m_ShopSizes        = EnumSetting.Load(splitJsonString[4]);
        m_SettlementSizes  = EnumSetting.Load(splitJsonString[5]);
        m_Rarities         = EnumSetting.Load(splitJsonString[6]);
        m_Allowances       = EnumSetting.Load(splitJsonString[7]);
        m_UsesAutomaticBonusProgressionRules = Wrapper <bool> .CreateFromJsonString(splitJsonString[8]);

        m_UsesMinimumCasterLevelForSpellContainerItems = Wrapper <bool> .CreateFromJsonString(splitJsonString[9]);

        m_CasterTypesPerCharacterClass             = SaveableSelectedEnumPerEnum.Load(splitJsonString[10]);
        m_WeightingPerRarity                       = WeightingPerRarity.Load(splitJsonString[11]);
        m_RestockSettingsPerSettlementSize         = RestockSettingsPerSettlementSize.Load(splitJsonString[12]);
        m_AvailabilityPerShopSizePerStockType      = AvailabilityPerStockTypePerShopSize.Load(splitJsonString[13]);
        m_RestockFrequencyModifiersPerShopSize     = RestockFrequencyModifiersPerShopSize.Load(splitJsonString[14]);
        m_ReadyCashPerShopSize                     = ReadyCashPerShopSize.Load(splitJsonString[15]);
        m_RarityPerCharacterClassPerSpellContainer = RarityPerCharacterClassPerSpellContainer.Load(splitJsonString[16]);
        m_BudgetRangePerPowerLevelPerStockType     = FloatRangePerPowerLevelPerStockType.Load(splitJsonString[17]);
        m_ArmourCollection               = ArmourCollection.Load(splitJsonString[18]);
        m_SpellCollection                = SpellCollection.Load(splitJsonString[19]);
        m_WeaponCollection               = WeaponCollection.Load(splitJsonString[20]);
        m_RingCollection                 = RingCollection.Load(splitJsonString[21]);
        m_RodCollection                  = RodCollection.Load(splitJsonString[22]);
        m_StaffCollection                = StaffCollection.Load(splitJsonString[23]);
        m_WondrousCollection             = WondrousCollection.Load(splitJsonString[24]);
        m_ArmourQualityCollection        = ArmourQualityCollection.Load(splitJsonString[25]);
        m_WeaponQualityCollection        = WeaponQualityCollection.Load(splitJsonString[26]);
        m_WeaponQualityConstraintsMatrix = WeaponQualityConstraintsMatrix.Load(splitJsonString[27]);
        m_ArmourQualityConstraintsMatrix = ArmourQualityConstraintsMatrix.Load(splitJsonString[28]);

        settlements = new Settlement[splitJsonString.Length - 29];
        for (int i = 0; i < settlements.Length; i++)
        {
            settlements[i] = Settlement.CreateFromJsonString(splitJsonString[i + 29]);
        }

        current = this;
    }
Example #9
0
        void ExportCurvePolygon(Polygon pol)
        {
            // Get the exterior ring
            IRing xr = GetRing(pol);

            // Pick up any islands
            RingCollection irs = new RingCollection();

            if (pol.HasAnyIslands)
            {
                foreach (Island i in pol.Islands)
                {
                    IRing ir = GetRing(i);
                    irs.Add(ir);
                }
            }

            IGeometry g = m_Factory.CreateCurvePolygon(xr, irs);

            ExportGeometry(g);
        }
Example #10
0
    protected override void SetupFromSplitJsonString(string[] splitJsonString)
    {
        name              = splitJsonString[0];
        notes             = CreateStringFromSafeJson(splitJsonString[1]);
        size              = splitJsonString[2];
        frequencyModifier = Wrapper <float> .CreateFromJsonString(splitJsonString[3]);

        readyCash = Wrapper <float> .CreateFromJsonString(splitJsonString[4]);

        stockTypes           = FlagsEnumSetting.CreateFromJsonString(splitJsonString[5]);
        daysSinceLastRestock = Wrapper <int> .CreateFromJsonString(splitJsonString[6]);

        totalCash = Wrapper <float> .CreateFromJsonString(splitJsonString[7]);

        specificArmourCollection   = SpecificArmourCollection.CreateFromJsonString(splitJsonString[8]);
        specificPotionCollection   = SpecificPotionCollection.CreateFromJsonString(splitJsonString[9]);
        specificRingCollection     = SpecificRingCollection.CreateFromJsonString(splitJsonString[10]);
        specificRodCollection      = SpecificRodCollection.CreateFromJsonString(splitJsonString[11]);
        specificScrollCollection   = SpecificScrollCollection.CreateFromJsonString(splitJsonString[12]);
        specificStaffCollection    = SpecificStaffCollection.CreateFromJsonString(splitJsonString[13]);
        specificWandCollection     = SpecificWandCollection.CreateFromJsonString(splitJsonString[14]);
        specificWeaponCollection   = SpecificWeaponCollection.CreateFromJsonString(splitJsonString[15]);
        specificWondrousCollection = SpecificWondrousCollection.CreateFromJsonString(splitJsonString[16]);

        m_RarityPerCharacterClassPerSpellContainer = RarityPerCharacterClassPerSpellContainer.Load(splitJsonString[17]);
        m_BudgetRangePerPowerLevelPerStockType     = FloatRangePerPowerLevelPerStockType.Load(splitJsonString[18]);
        m_ArmourCollection               = ArmourCollection.Load(splitJsonString[19]);
        m_SpellCollection                = SpellCollection.Load(splitJsonString[20]);
        m_WeaponCollection               = WeaponCollection.Load(splitJsonString[21]);
        m_RingCollection                 = RingCollection.Load(splitJsonString[22]);
        m_RodCollection                  = RodCollection.Load(splitJsonString[23]);
        m_StaffCollection                = StaffCollection.Load(splitJsonString[24]);
        m_WondrousCollection             = WondrousCollection.Load(splitJsonString[25]);
        m_ArmourQualityCollection        = ArmourQualityCollection.Load(splitJsonString[26]);
        m_WeaponQualityCollection        = WeaponQualityCollection.Load(splitJsonString[27]);
        m_WeaponQualityConstraintsMatrix = WeaponQualityConstraintsMatrix.Load(splitJsonString[28]);
        m_ArmourQualityConstraintsMatrix = ArmourQualityConstraintsMatrix.Load(splitJsonString[29]);
    }
Example #11
0
        /// <summary>
        /// Displays the number of rings, their area and length
        /// </summary>
        /// <param name="rings">[in] Ring collection object: RingCollection.</param>
        /// <returns>  
        /// Returns true if successful.
        /// </returns>
        private bool RingStatistics(RingCollection rings)
        {
            if (rings == null)
            {
                return false;
            }

            // get the number of rings
            int ringCount = rings.Count;
            Utility.AcadEditor.WriteMessage(string.Format("\nThe number of rings :{0}", ringCount.ToString()));

            // Do statistics for each ring.
            double ringArea = 0.0;
            double ringLen = 0.0;
            int realRingIndex = 0;
            foreach (Ring ring in rings)
            {
                if (ring.IsExterior)
                {
                    ringArea += ring.Area;
                    ringLen  += ring.Length;
                }
                else
                {
                    ringArea -= ring.Area;
                    ringLen  -= ring.Length;
                }
                // find out if the ring is an Exterior Or Interior ring
                string strExteriorOrInterior = ring.IsExterior ? "exterior" : "interior";

                // print out the rings area and length
                double area = ring.Area;
                double length = ring.Length;
                realRingIndex++;

                Utility.AcadEditor.WriteMessage(string.Format("\n{0} is {1},", realRingIndex.ToString(), strExteriorOrInterior));
                Utility.AcadEditor.WriteMessage(string.Format("Area:{0} Length:{1}", area.ToString(), length.ToString()));

                // highlight all of the ring edges
                HighLightRingEdges(ring);
            }

            return true;
        }
Example #12
0
        void ExportCurvePolygon(Polygon pol)
        {
            // Get the exterior ring
            IRing xr = GetRing(pol);

            // Pick up any islands
            RingCollection irs = new RingCollection();
            if (pol.HasAnyIslands)
            {
                foreach (Island i in pol.Islands)
                {
                    IRing ir = GetRing(i);
                    irs.Add(ir);
                }
            }

            IGeometry g = m_Factory.CreateCurvePolygon(xr, irs);
            ExportGeometry(g);
        }
Example #13
0
    public static SpecificRing CreateRandom(EnumValue powerLevel, FloatRange budgetRange, RingCollection ringCollection)
    {
        SpecificRing newSpecificRing = CreateInstance <SpecificRing>();

        newSpecificRing.powerLevel = powerLevel;
        newSpecificRing.ring       = ringCollection.PickRing(budgetRange);
        newSpecificRing.cost       = newSpecificRing.ring.cost;
        newSpecificRing.name       = newSpecificRing.ring.name;
        return(newSpecificRing);
    }
 private static ICurvePolygon FlattenCurvePolygon(ICurvePolygon curvePolygon, FgfGeometryFactory factory)
 {
     IRing extRing = FlattenRing(curvePolygon.ExteriorRing, factory);
     RingCollection intRings = new RingCollection();
     for (int i = 0; i < curvePolygon.InteriorRingCount; i++)
     {
         intRings.Add(FlattenRing(curvePolygon.get_InteriorRing(i), factory));
     }
     return factory.CreateCurvePolygon(extRing, intRings);
 }