public frmCreateWorld(AzmythGame game) : base(new Rectangle(0, 0, 300, 300), true) { Game = game; m_viewport = game.GraphicsDevice.Viewport; Rectangle = new Rectangle(0, 0, m_viewport.Width, m_viewport.Height); m_world = new World(new VectorID(1, 1), new Random().Next(500, 9999)); XnaGUIManager.Controls.Add(this); pnlMain = new XGPanel( new Rectangle(20, 20, 600, 600)); pnlTitle = new XGPanel( new Rectangle(20, 20, 600, 600)); lblTitle = new XGLabel( new Rectangle(20, 30, 50, 30), "Generate a New Adventure"); lblSeed = new XGLabel( new Rectangle(20, 40, 50, 30), "Seed:"); txtSeed = new XGTextBox( new Rectangle(80, 40, 100, 30)); btnRandomSeed = new XGButton( new Rectangle(190, 40, 125, 30), "Random Seed", this.btnRandomSeed_Clicked); lblWorldName = new XGLabel( new Rectangle(20, 20, 100, 30), "Name:"); txtWorldName = new XGTextBox( new Rectangle(140, 20, pnlMain.Rectangle.Width- 300 , 30)); btnRandomName = new XGButton( new Rectangle(pnlMain.Rectangle.Width, 20, 125, 30), "Random Name", this.btnRandomName_Clicked); lblTerrainNoise = new XGLabel( new Rectangle(20, 80, 200, 30), "Terrain Noise"); lstTerrainNoise = new XGListBox( new Rectangle(20, 110, 200, 60)); lblRiverNoise = new XGLabel( new Rectangle(250, 80, 200, 30), "River Noise"); lstRiverNoise = new XGListBox( new Rectangle(250, 110, 200, 60)); lblCharacteristics = new XGLabel( new Rectangle(20, 180, 150, 30), "Terrain Characteristics"); sldContinentSize = new XGLabeledSlider(new Rectangle(20, 210, 425, 30), 150, "Continent Size", 2, ((0.1f-m_world.ContinentSize) * 100), 0, 10); sldCoastLine = new XGLabeledSlider(new Rectangle(20, 240, 425, 30), 150, "Coast Line", 2, m_world.CoastLine, m_world.TerrainHeight * -1, m_world.TerrainHeight); sldShoreLine = new XGLabeledSlider(new Rectangle(20, 270, 425, 30), 150, "Shore Line", 2, m_world.ShoreLine * 100, 1, 100); sldTreeLine = new XGLabeledSlider(new Rectangle(20, 300, 425, 30), 150, "Tree Line", 2, m_world.TreeLine * 100, 2, 100); mapMiniMap = new XGMiniMap( new Rectangle(0, 0, 100, 100), m_world, 3); btnCreateWorld = new XGButton( new Rectangle(m_viewport.Width - 210, m_viewport.Height - 40, 200, 30), "Create World", this.btnCreateWorld_Clicked); sldContinentSize.ValueLabelFormat = "0"; sldCoastLine.ValueLabelFormat = "0"; sldShoreLine.ValueLabelFormat = "0"; sldTreeLine.ValueLabelFormat = "0"; pnlMain.CanFocus = false; lblWorldName.CanFocus = false; lblCharacteristics.CanFocus = false; mapMiniMap.CanFocus = false; nameGenerator = new MarkovNameGenerator("Acalia,Aldaire,Aldebron,Vulcan,Earth,Romulus,Andor,Adair,Adara,Adriel,Alaire,Alixandra,Altair,Amara,Anatola,Arcadia,Aurelia,Aurelian,Aurelius,Avalon,Bastian,Breen,Briallan,Brielle,Briseis,Cambria,Caspian,Cassia,Cassiel,Cassiopeia,Cassius,Chaniel,Cora,Corbin,Cyprian,Dagen,Daire,Darius,Destin,Devlin,Devlyn,Drake,Drystan,Eira,Eirian,Eliron,Elysia,Eoin,Evadne,Evanth,Fineas,Finian,Fyodor,Gaerwn,Gareth,Gavriel,Ginerva,Griffin,Guinevere,Hadriel,Hannelore,Hermione,Hesperos,Iagan,Ianthe,Ignacia,Ignatius,Iseult,Isolde,Jessalyn,Kara,Katriel,Kerensa,Korbin,Kyler,Kyra,Kyrielle,Leala,Leila,Leira,Lilith,Liora,Liriene,Liron,Lucien,Lyra,Maia,Marius,Mathieu,Maylea,Meira,Mireille,Mireya,Natania,Neirin,Nerys,Nuriel,Nyfain,Nyssa,Oisin,Oleisa,Oralie,Orinthea,Orion,Orpheus,Ozara,Peregrine,Persephone,Perseus,Petronela,Phelan,Pryderi,Pyralia,Pyralis,Qadira,Quinevere,Quintessa,Raisa,Remus,Renfrew,Rhyan,Rhydderch,Riona,Saira,Saoirse,Sarai,Sarielle,Sebastian,Seraphim,Seraphina,Serian,Sirius,Sorcha,Severin,Tavish,Tearlach,Terra,Thalia,Thaniel,Theia,Torian,Torin,Tressa,Tristana,Ulyssia,Uriela,Urien,Vanora,Vasilis,Vespera,Xanthus,Xara,Xylia,Yadira,Yakira,Yeira,Yeriel,Yestin,Yseult,Zaira,Zaniel,Zarek,Zephyr,Zora,Zorion".Split(','), 3); txtSeed.Text = m_world.Seed.ToString(); lblTitle.Alignment = GUIAlignment.HCenter | GUIAlignment.VCenter; txtWorldName.Text = Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(nameGenerator.Next()); lstTerrainNoise.Items.Add(liAzmyth); lstTerrainNoise.Items.Add(liPerlin); lstTerrainNoise.Items.Add(liSimplex); lstTerrainNoise.SelectedIndex = 0; lstRiverNoise.Items.Add(liAzmyth); lstRiverNoise.Items.Add(liPerlin); lstRiverNoise.Items.Add(liSimplex); lstRiverNoise.SelectedIndex = 0; Children.Add(pnlMain); Children.Add(pnlTitle); pnlTitle.Children.Add(lblTitle); pnlMain.Children.Add(lblSeed); pnlMain.Children.Add(txtSeed); pnlMain.Children.Add(btnRandomSeed); pnlMain.Children.Add(lblWorldName); pnlMain.Children.Add(txtWorldName); pnlMain.Children.Add(btnRandomName); pnlMain.Children.Add(lblCharacteristics); pnlMain.Children.Add(sldContinentSize); pnlMain.Children.Add(sldCoastLine); pnlMain.Children.Add(sldShoreLine); pnlMain.Children.Add(sldTreeLine); pnlMain.Children.Add(lblTerrainNoise); pnlMain.Children.Add(lstTerrainNoise); pnlMain.Children.Add(lblRiverNoise); pnlMain.Children.Add(lstRiverNoise); pnlMain.Children.Add(mapMiniMap); pnlMain.Children.Add(btnCreateWorld); focusControl = pnlMain; pnlMain.ActivateFirst(); XnaGUIManager.ActivateNext(); }
public void ShowMiniMap(bool blnShow) { if (blnShow) { if (m_miniMap == null) { m_miniMap = new XGMiniMap(new Rectangle(this.GraphicsDevice.Viewport.Width - 210, 10, 200, 200), this.World, 3); XnaGUIManager.Controls.Add(m_miniMap); XGControl.BkgColor = Color.Black; XGControl.ControlColor = Color.Gray; XGControl.ForeColor = Color.White; } } else { if (m_miniMap != null) { XnaGUIManager.Controls.Remove(m_miniMap); m_miniMap = null; } } }