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); }
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); }
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); }
static void SendGetBeltClient(bool success, MySystemBeltItem item, ulong callback) { Static.m_getActionCallbacks[callback](success, item); Static.m_getActionCallbacks.Remove(callback); }