private void Recycle() { Vector3 scale = new Vector3( Random.Range(minSize.x, maxSize.x), Random.Range(minSize.y, maxSize.y), Random.Range(minSize.z, maxSize.z)); Vector3 position = nextPosition; position.x += scale.x * 0.5f; position.y += scale.y * 0.5f; Transform o = objectQueue.Dequeue(); Breakers B = o.gameObject.GetComponentInChildren <Breakers>(); if (B) { B.Reset(); } o.localScale = scale; o.localPosition = position; objectQueue.Enqueue(o); nextPosition += new Vector3( Random.Range(minGap.x, maxGap.x) + scale.x, Random.Range(minGap.y, maxGap.y), Random.Range(minGap.z, maxGap.z)); /*if (nextPosition.y < minY) * { * nextPosition.y = minY + maxGap.y; * } * else if (nextPosition.y > maxY) * { * nextPosition.y = maxY - maxGap.y; * }*/ if (nextPosition.x < minX) { nextPosition.x = minX + maxGap.x; } else if (nextPosition.x > maxX) { nextPosition.x = maxX - maxGap.x; } }
public void ParseAll(string filePath) { XElement xelement = XElement.Load(filePath); IEnumerable <XElement> netModElements = xelement.Elements(); double lat, lon; XmlSerializer serializer = null; // Read the entire XML foreach (var netModElement in netModElements) { foreach (var entity in netModElement.Elements()) { var temp = entity.ToString(); using (TextReader reader = new StringReader(temp)) { SubstationEntity resultSubstations = null; Breakers resultBreakers = null; EnergySources resultEnergySources = null; EnergyConsumers resultEnergyConsumers = null; Generator resultGenerators = null; switch (entity.Name.ToString()) { case "SubstationEntity": serializer = new XmlSerializer(typeof(SubstationEntity)); resultSubstations = (SubstationEntity)serializer.Deserialize(reader); ToLatLon(((SubstationEntity)resultSubstations).X, ((SubstationEntity)resultSubstations).Y, 34, out lat, out lon); ((SubstationEntity)resultSubstations).X = lat; ((SubstationEntity)resultSubstations).Y = lon; break; case "Breaker": serializer = new XmlSerializer(typeof(Breakers)); resultBreakers = (Breakers)serializer.Deserialize(reader); ToLatLon(((Breakers)resultBreakers).X, ((Breakers)resultBreakers).Y, 34, out lat, out lon); ((Breakers)resultBreakers).X = lat; ((Breakers)resultBreakers).Y = lon; break; case "EnergySource": serializer = new XmlSerializer(typeof(EnergySources)); resultEnergySources = (EnergySources)serializer.Deserialize(reader); ToLatLon(((EnergySources)resultEnergySources).X, ((EnergySources)resultEnergySources).Y, 34, out lat, out lon); ((EnergySources)resultEnergySources).X = lat; ((EnergySources)resultEnergySources).Y = lon; break; case "EnergyConsumer": serializer = new XmlSerializer(typeof(EnergyConsumers)); resultEnergyConsumers = (EnergyConsumers)serializer.Deserialize(reader); ToLatLon(((EnergyConsumers)resultEnergyConsumers).X, ((EnergyConsumers)resultEnergyConsumers).Y, 34, out lat, out lon); ((EnergyConsumers)resultEnergyConsumers).X = lat; ((EnergyConsumers)resultEnergyConsumers).Y = lon; break; case "Generator": serializer = new XmlSerializer(typeof(Generator)); resultGenerators = (Generator)serializer.Deserialize(reader); ToLatLon(((Generator)resultGenerators).X, ((Generator)resultGenerators).Y, 34, out lat, out lon); ((Generator)resultGenerators).X = lat; ((Generator)resultGenerators).Y = lon; break; } if (resultSubstations != null) { entitiesSustation.Add(resultSubstations); } else if (resultBreakers != null) { entitiesBreaker.Add(resultBreakers); } else if (resultEnergySources != null) { entitiesEnergySource.Add(resultEnergySources); } else if (resultEnergyConsumers != null) { entitiesEnergyConsumer.Add(resultEnergyConsumers); } else if (resultGenerators != null) { entitiesGenerator.Add(resultGenerators); } } } } }