private MySystemItem IsInsideRing(Vector3D position)
        {
            foreach (MySystemItem p in SystemGenerator.Static.m_objects)
            {
                if (p.Type == SystemObjectType.PLANET)
                {
                    MyPlanetItem planet = (MyPlanetItem)p;

                    if (planet.PlanetRing == null)
                    {
                        continue;
                    }
                    AsteroidRingShape shape = AsteroidRingShape.CreateFromRingItem(planet.PlanetRing);
                    if (shape.Contains(position) == ContainmentType.Contains)
                    {
                        return(planet.PlanetRing);
                    }
                }
                else if (p.Type == SystemObjectType.BELT)
                {
                    MySystemBeltItem  belt  = (MySystemBeltItem)p;
                    AsteroidBeltShape shape = AsteroidBeltShape.CreateFromRingItem(belt);
                    if (shape.Contains(position) == ContainmentType.Contains)
                    {
                        return(belt);
                    }
                }
            }
            return(null);
        }
        /// <summary>
        /// Creates a new asteroid belt shape from an MySystemBeltItem
        /// </summary>
        /// <param name="belt">The belt it should create the shape for.</param>
        /// <returns>The shape representation of the given belt</returns>
        public static AsteroidBeltShape CreateFromBeltItem(MySystemBeltItem belt)
        {
            AsteroidBeltShape shape = new AsteroidBeltShape();

            shape.center = Vector3D.Zero;
            shape.radius = belt.Radius;
            shape.width  = belt.Width;
            shape.height = belt.Height;

            return(shape);
        }
        public static AsteroidBeltShape CreateFromRingItem(MySystemBeltItem ring)
        {
            AsteroidBeltShape shape = new AsteroidBeltShape();

            shape.center = Vector3D.Zero;
            shape.radius = ring.Radius;
            shape.width  = ring.Width;
            shape.height = ring.Height;

            return(shape);
        }
Example #4
0
        private void GenerateBelt(long distance, ref int beltIndex)
        {
            MySystemBeltItem belt = new MySystemBeltItem();

            belt.DisplayName = "Belt " + greek_letters[beltIndex++ % greek_letters.Length];
            belt.Type        = SystemObjectType.BELT;
            belt.Height      = MyRandom.Instance.Next(m_settings.BeltSettings.MinBeltHeight, m_settings.BeltSettings.MaxBeltHeight);
            belt.Radius      = distance;
            belt.Width       = MyRandom.Instance.Next(belt.Height * 10, belt.Height * 100);
            belt.RoidSize    = MyRandom.Instance.Next(256, 512);

            m_objects.Add(belt);
        }
Example #5
0
        private void GenerateBelt(long distance, ref int beltIndex)
        {
            MySystemBeltItem belt = new MySystemBeltItem();

            string name = SettingsSession.Static.Settings.GeneratorSettings.BeltSettings.BeltNameFormat
                          .SetProperty("ObjectNumber", beltIndex + 1)
                          .SetProperty("ObjectNumberGreek", greek_letters[beltIndex])
                          .SetProperty("ObjectLetterLower", (char)('a' + (beltIndex % 26)))
                          .SetProperty("ObjectLetterUpper", (char)('A' + (beltIndex % 26)));

            ++beltIndex;

            belt.DisplayName = name;
            belt.Type        = SystemObjectType.BELT;
            belt.Height      = MyRandom.Instance.Next(m_settings.BeltSettings.MinBeltHeight, m_settings.BeltSettings.MaxBeltHeight);
            belt.Radius      = distance;
            belt.Width       = MyRandom.Instance.Next(belt.Height * 10, belt.Height * 100);
            belt.RoidSize    = MyRandom.Instance.Next(256, 512);

            m_objects.Add(belt);
        }
Example #6
0
 static void SendGetBeltClient(bool success, MySystemBeltItem item, ulong callback)
 {
     Static.m_getActionCallbacks[callback](success, item);
     Static.m_getActionCallbacks.Remove(callback);
 }