/// <summary> /// Update the display based on a mass update /// </summary> /// <param name="sender">The object sending you here</param> /// <param name="e">Event arguments</param> private void numCurrMass_Leave(object sender, EventArgs e) { //first, initial luminosity txtInitLumin.Text = Star.getMinLumin((double)numCurrMass.Value).ToString(); //now we need to get an updated timeline this.currAgeChart.addMainLimit(Star.findMainLimit((double)numCurrMass.Value)); this.currAgeChart.addSubLimit(Star.findSubLimit((double)numCurrMass.Value)); this.currAgeChart.addGiantLimit(Star.findGiantLimit((double)numCurrMass.Value)); //now we need to get what stage we are and push the details to the field. lblEndMain.Text = "End of Main Sequence: " + this.currAgeChart.getMainLimit() + " GYr"; lblEndSubGiant.Text = "End of the Sub Giant Sequence: " + this.currAgeChart.getSubLimit() + " GYr"; lblEndGiantPhase.Text = "End of the Giant Phase: " + this.currAgeChart.getGiantLimit() + " GYr"; this.currAgeStatus = this.currAgeChart.findCurrentAgeGroup((double)numAge.Value); lblCurrentStage.Text = "Current Status: " + StarAgeLine.descBranch(this.currAgeStatus); //now we can get the current luminosity, figure out what the intial mass is. //and fill in the effective temperature if it's no longer in range. numInitMass.Value = numCurrMass.Value; txtCurrLumin.Text = Math.Round(Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), 3).ToString(); double temp; temp = Star.getCurrentTemp(this.currAgeChart, Convert.ToDouble(txtCurrLumin.Text), (double)numAge.Value, (double)numCurrMass.Value, this.myDice); txtEffTemp.Text = Convert.ToString(temp); //set good ranges createAcceptRanges(Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), temp); //display information for users benefits (formation zones, colors) this.color = Star.setColor(this.myDice, temp); lblStellarColor.Text = "Stellar Color: " + color; lblStellarRadius.Text = "Stellar Radius: " + Star.getRadius((double)numCurrMass.Value, temp, Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), this.currAgeChart.findCurrentAgeGroup((double)numAge.Value)) + " AU"; lblInnerFormation.Text = "Inner Formation Range: " + Star.innerRadius(Convert.ToDouble(txtInitLumin.Text), (double)numInitMass.Value) + " AU"; lblOuterFormation.Text = "Outer Formation Range: " + Star.outerRadius((double)numInitMass.Value) + " AU"; lblSnowLine.Text = "Snow Line: " + Star.snowLine(Convert.ToDouble(txtInitLumin.Text)) + " AU"; if ((double)numCurrMass.Value > .525) { chkFlareStar.Checked = false; chkFlareStar.Enabled = false; } }
/// <summary> /// Display the star's details /// </summary> private void displayFromStar() { txtName.Text = this.ourSystem.sysStars[this.starID].name; numInitMass.Value = (decimal)this.ourSystem.sysStars[this.starID].initMass; numCurrMass.Value = (decimal)this.ourSystem.sysStars[this.starID].currMass; txtInitLumin.Text = this.ourSystem.sysStars[this.starID].initLumin.ToString(); txtCurrLumin.Text = this.ourSystem.sysStars[this.starID].currLumin.ToString(); txtEffTemp.Text = this.ourSystem.sysStars[this.starID].effTemp.ToString(); createAcceptRanges(this.ourSystem.sysStars[this.starID].currLumin, this.ourSystem.sysStars[this.starID].effTemp); numAge.Value = (decimal)this.ourSystem.sysStars[this.starID].starAge; if ((double)numCurrMass.Value > .525) { chkFlareStar.Enabled = false; } if (this.ourSystem.sysStars[this.starID].isFlareStar) { chkFlareStar.Checked = true; } txtOrbitalParent.Text = this.ourSystem.sysStars[this.starID].parentName; txtRadius.Text = this.ourSystem.sysStars[this.starID].orbitalRadius.ToString(); numEccent.Value = (decimal)this.ourSystem.sysStars[this.starID].orbitalEccent; lblStellarColor.Text = "Stellar Color: " + this.ourSystem.sysStars[this.starID].starColor; this.currAgeStatus = this.ourSystem.sysStars[this.starID].evoLine.findCurrentAgeGroup((double)numAge.Value); lblCurrentStage.Text = "Current Status: " + StarAgeLine.descBranch(this.currAgeStatus); //MessageBox.Show(Star.getRadius(this.ourSystem.sysStars[this.starID].currMass, this.ourSystem.sysStars[this.starID].effTemp, this.ourSystem.sysStars[this.starID].currLumin, this.currAgeStatus).ToString()); lblStellarRadius.Text = "Star Radius: " + this.ourSystem.sysStars[this.starID].radius + " AU"; lblInnerFormation.Text = "Inner Radius of Formation Zone: " + Star.innerRadius(this.ourSystem.sysStars[this.starID].initLumin, this.ourSystem.sysStars[this.starID].initMass) + " AU"; lblOuterFormation.Text = "Outer Radius of Formation Zone: " + Star.outerRadius(this.ourSystem.sysStars[this.starID].initMass) + " AU"; lblSnowLine.Text = "Snow Line: " + Star.snowLine(this.ourSystem.sysStars[this.starID].initLumin) + " AU"; lblPeriapsis.Text = "Periapsis: " + Star.getPeriapsis((double)numEccent.Value, Convert.ToDouble(txtRadius.Text)) + " AU"; lblApapsis.Text = "Apapsis: " + Star.getApapsis((double)numEccent.Value, Convert.ToDouble(txtRadius.Text)) + " AU"; lblEndMain.Text = "End of Main Sequence: " + this.ourSystem.sysStars[this.starID].evoLine.getMainLimit() + " GYr"; lblEndSubGiant.Text = "End of the Sub Giant Sequence: " + this.ourSystem.sysStars[this.starID].evoLine.getSubLimit() + " GYr"; lblEndGiantPhase.Text = "End of the Giant Phase: " + this.ourSystem.sysStars[this.starID].evoLine.getGiantLimit() + " GYr"; this.currAgeStatus = this.ourSystem.sysStars[this.starID].evoLine.findCurrentAgeGroup((double)numAge.Value); lblCurrentStage.Text = "Current Status: " + StarAgeLine.descBranch(this.currAgeStatus); }
/// <summary> /// Update the display when you change the age of the star /// </summary> /// <param name="sender">The object sending you here</param> /// <param name="e">Event arguments</param> private void numAge_Leave(object sender, EventArgs e) { this.currAgeStatus = this.currAgeChart.findCurrentAgeGroup((double)numAge.Value); lblCurrentStage.Text = "Current Status: " + StarAgeLine.descBranch(this.currAgeStatus); txtCurrLumin.Text = Math.Round(Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), 3).ToString(); double temp; temp = Star.getCurrentTemp(this.currAgeChart, Convert.ToDouble(txtCurrLumin.Text), (double)numAge.Value, (double)numCurrMass.Value, this.myDice); txtEffTemp.Text = Convert.ToString(temp); createAcceptRanges(Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), temp); lblStellarColor.Text = "Stellar Color: " + Star.setColor(this.myDice, temp); lblStellarRadius.Text = Star.getRadius((double)numCurrMass.Value, temp, Star.getCurrLumin(this.currAgeChart, (double)numAge.Value, (double)numCurrMass.Value), this.currAgeChart.findCurrentAgeGroup((double)numAge.Value)) + " AU"; }
/// <summary> /// This returns the current branch description for this star /// </summary> /// <returns>A string containing the branch description</returns> public string returnCurrentBranchDesc() { return(StarAgeLine.descBranch(this.evoLine.findCurrentAgeGroup(this.starAge))); }