Exemplo n.º 1
0
 // Use this for initialization
 void Start()
 {
     orbit      = GetComponent <OrbitingObject>();
     shipRotate = GetComponent <ShipRotation>();
     rotating   = false;
     powered    = false;
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 // 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>();
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 // Use this for initialization
 void Start()
 {
     orbit = GetComponent <OrbitingObject>();
 }