public void Update(SolarSystem solarsystem) { var planets = solarsystem.GetPlanets(); var planetCoordinates = planets.Select(x => x.GetPosition().ToCartesian()).ToList(); var triangle = new Triangle(planetCoordinates[0], planetCoordinates[1], planetCoordinates[2]); if (triangle.Contains(solarsystem.GetSunCoordinates())) { var rain = new RainPeriod(solarsystem.GetDay(), triangle.GetPerimeter()); this.rains.Add(rain); this.collection.Add(rain); } }
private void ParseScript() { ScriptParser scriptParser = new ScriptParser(); scriptParser.Parse("Weather/Rain.txt", true); for (int i = 0; i < scriptParser.GetKeysCount(); i++) { Key key = scriptParser.GetKey(i); if (key.GetName() == "Rain") { RainData rainData = new RainData(); rainData.m_RainDuration = key.GetVariable(0).FValue; rainData.m_RainInterval = key.GetVariable(1).FValue; this.m_RainData.Add(rainData); } else if (key.GetName() == "RainCollectorFillPerSecondRain") { this.m_RainCollectorFillPerSecondRain = key.GetVariable(0).FValue; } else if (key.GetName() == "RainCollectorFillPerSecondNoRain") { if (GreenHellGame.ROADSHOW_DEMO) { this.m_RainCollectorFillPerSecondNoRain = 10f; } else { this.m_RainCollectorFillPerSecondNoRain = key.GetVariable(0).FValue; } } else if (key.GetName() == "Period") { RainPeriod rainPeriod = new RainPeriod(); rainPeriod.m_Type = (RainPeriodType)Enum.Parse(typeof(RainPeriodType), key.GetVariable(0).SValue); rainPeriod.m_Duration = key.GetVariable(1).FValue; this.m_Periods.Add(rainPeriod); } } }