/// <summary> /// Renders a preview of the hollow sphere currently edited /// </summary> private void RenderSpherePreview(MyAsteroidSphereData data) { MyPluginDrawSession.Static.RemoveRenderObject(PREVIEW_RENDER_ID); if (data != null) { MyPluginDrawSession.Static.AddRenderObject(PREVIEW_RENDER_ID, new RenderHollowSphere(data.Center, (float)data.OuterRadius, (float)data.OuterRadius, Color.LightGreen.ToVector4(), (float)data.OuterRadius / 500f)); } }
public static MyAsteroidObjectShapeSphere CreateFromAsteroidSphereData(MyAsteroidSphereData data) { MyAsteroidObjectShapeSphere shape = new MyAsteroidObjectShapeSphere(); shape.Center = data.Center; shape.InnerRadius = data.InnerRadius; shape.OuterRadius = data.OuterRadius; return(shape); }
/// <summary> /// Generates a MyAsteroidSphereData object from the gui elements of the spawn menu /// </summary> /// <returns>The generated data</returns> private MyAsteroidSphereData GetDataFromGui() { if (m_parentObjectListBox.SelectedItems.Count <= 0) { return(null); } var selected = m_parentObjectListBox.SelectedItems[m_parentObjectListBox.SelectedItems.Count - 1]; MySystemObject parent = selected.UserData as MySystemObject; MyAsteroidSphereData data = new MyAsteroidSphereData(); data.Center = parent.CenterPosition; data.InnerRadius = m_radiusSlider.Value * 1000; data.OuterRadius = m_radiusSlider.Value * 1000 + m_widthSlider.Value * 1000; return(data); }
private void GenerateData(out MySystemAsteroids instance, out MyAsteroidSphereData data) { if (m_parentObjectListBox.SelectedItems.Count <= 0) { instance = null; data = null; return; } var selectedParent = m_parentObjectListBox.SelectedItems[m_parentObjectListBox.SelectedItems.Count - 1]; var parentItem = selectedParent.UserData as MySystemObject; StringBuilder name = new StringBuilder(); m_nameBox.GetText(name); instance = new MySystemAsteroids(); instance.AsteroidTypeName = MyAsteroidSphereProvider.TYPE_NAME; instance.CenterPosition = parentItem.CenterPosition; instance.AsteroidSize = new MySerializableMinMax((int)m_asteroidSizesSlider.CurrentMin, (int)m_asteroidSizesSlider.CurrentMax); instance.ParentId = parentItem.Id; instance.DisplayName = name.ToString(); data = GetDataFromGui(); }