// Use this for initialization void Start() { orbit = GetComponent <OrbitingObject>(); shipRotate = GetComponent <ShipRotation>(); rotating = false; powered = false; }
public void Build(string[] orbits) { CenterOfMass = new OrbitingObject { Name = "COM", OrbitLevel = 0 }; CenterOfMass.OrbitingObjects.AddRange(GetOrbitingObjects(orbits, CenterOfMass.Name, 0)); OrbitChecksum += CenterOfMass.OrbitingObjects.Sum(o => o.OrbitLevel); }
// Use this for initialization void Start() { movementIndicators = new Transform[(int)Movements.InForward + 1]; foreach (Movements m in System.Enum.GetValues(typeof(Movements))) { movementIndicators[(int)m] = Instantiate(indicatorPrefab, transform.position, Quaternion.identity); movementIndicators[(int)m].GetComponentInChildren <Text>().text = indicators[(int)m].ToString(); } orbit = GetComponent <OrbitingObject>(); ship = GetComponent <ShipMovement>(); }
private static OrbitingObject?FindOrbitingObject(OrbitingObject orbitingObject, string nameToFind) { OrbitingObject?result = null; if (orbitingObject.OrbitingObjects.Any(o => o.Name == nameToFind)) { result = orbitingObject; } else if (orbitingObject.OrbitingObjects.Count > 0) { result = orbitingObject.OrbitingObjects.Select(oo => FindOrbitingObject(oo, nameToFind)) .SingleOrDefault(oo => oo != null); } return(result); }
private IEnumerable <OrbitingObject> GetOrbitingObjects(string[] orbits, string name, int currentOrbitLevel) { var orbitingObjects = new List <OrbitingObject>(); // Need to add the ')' or C and COM both match and an infinite loop occurs. foreach (var orbit in orbits.Where(o => o.StartsWith($"{name})"))) { var orbitingObject = new OrbitingObject { Name = orbit.Substring(orbit.IndexOf(')') + 1), OrbitLevel = currentOrbitLevel + 1 }; if (orbits.Any(o => o.StartsWith(orbitingObject.Name))) { orbitingObject.OrbitingObjects.AddRange( GetOrbitingObjects(orbits, orbitingObject.Name, currentOrbitLevel + 1)); } orbitingObjects.Add(orbitingObject); OrbitChecksum += orbitingObject.OrbitingObjects.Sum(o => o.OrbitLevel); } return(orbitingObjects); }
// Use this for initialization void Start() { orbit = GetComponent <OrbitingObject>(); }