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)); }
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); }
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); }
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); }
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); }
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; }
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); }
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]); }
/// <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; }
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); }