public static void Main(string[] args) { Console.Write("Path: "); var rootPath = Console.ReadLine()?.Replace("\"", ""); while (!Directory.Exists(rootPath)) { Console.WriteLine($"{rootPath}: No such directory, please enter a valid path!"); Console.Write("Path: "); rootPath = Console.ReadLine()?.Replace("\"", ""); } var map = new SampleMap(); var firstNote = InputHandler.LineInput("First note (default is C0): ", map.MidiNotes, "C0"); Console.Write("Interval between the notes in semitones (default is 5): "); dynamic interval = Console.ReadLine(); interval = interval != string.Empty ? Convert.ToInt32(interval) : 5; var ext = "." + InputHandler.LineInput("File extension (default is wav): ", new [] { "wav", "mp3", "flac", "ogg" }, "wav"); var files = StructureHandler.SortByDirs(rootPath, ext); foreach (var dir in files) { var midiValue = map.MidiNotes.ToList().IndexOf(firstNote); foreach (var file in dir) { var suffix = Path.GetRelativePath(rootPath, Path.GetDirectoryName(file)).Replace(Path.DirectorySeparatorChar, '_'); File.Move(file, Path.Combine(Path.GetDirectoryName(file), $"{map.MidiNotes[midiValue]}_{suffix}{ext}")); midiValue += interval; } } #if (DEBUG) foreach (var dir in files) { Console.WriteLine(string.Join('\n', dir)); Console.WriteLine('\n'); } #endif }
private void PhasesDispatcherTick(object sender, EventArgs e) { for (int p = 0; p < Constants.NUMBER_OF_PHASES; p++) { var x = p; Tasks[p] = Task.Run(() => PhaseGenerator(x)); } Task.WaitAll(Tasks); for (int p = 0; p < Constants.NUMBER_OF_PHASES; p++) { Phases[p].Range = Tasks[p].Result; StructureHandler.UpdateBitmap(Phases[p], MainBitmap); } PelletImage.Source = Converters.BitmapToImageSource(MainBitmap); PhasePercentageUpdate(); }
private void PhasePercentageUpdate() { StructureHandler.CountGrains(Phases, MainBitmap); var total = Phases[0].Counter + Phases[1].Counter + Phases[2].Counter + Phases[3].Counter; Phases[0].Percentage = ((total - Phases[1].Counter - Phases[2].Counter - Phases[3].Counter) / Constants.CIRCLE_AREA) * 100; Phases[0].Percentage = Math.Round(Phases[0].Percentage, 2); Phases[1].Percentage = ((total - Phases[0].Counter - Phases[2].Counter - Phases[3].Counter) / Constants.CIRCLE_AREA) * 100; Phases[1].Percentage = Math.Round(Phases[1].Percentage, 2); Phases[2].Percentage = ((total - Phases[0].Counter - Phases[1].Counter - Phases[3].Counter) / Constants.CIRCLE_AREA) * 100; Phases[2].Percentage = Math.Round(Phases[2].Percentage, 2); Phases[3].Percentage = ((total - Phases[0].Counter - Phases[1].Counter - Phases[2].Counter) / Constants.CIRCLE_AREA) * 100; Phases[3].Percentage = Math.Round(Phases[3].Percentage, 2); Phase1Label.Content = Phases[0].Percentage /*> 0 ? Phases[0].Percentage : 0*/; Phase2Label.Content = Phases[1].Percentage /*> 0 ? Phases[1].Percentage : 0*/; Phase3Label.Content = Phases[2].Percentage /*> 0 ? Phases[2].Percentage : 0*/; Phase4Label.Content = Phases[3].Percentage /*> 0 ? Phases[3].Percentage : 0*/; }
public void Cleanup(bool comesFromClient = false) { if (!comesFromClient) { this.message = new NetMessage(NetCode.DISCONNECT); this.client.Send(this.message.GetMessage(), this.message.size); } Cursor.lockState = CursorLockMode.None; Cursor.visible = true; this.biomeHandler.Clear(); this.biomeHandler = null; this.structHandler = null; this.mainControllerManager = null; this.volume = null; this.rend = null; this.playerEvents = null; this.time = null; this.blockBook = null; this.client = null; ClearAllChunks(); Destroy(this); }
private void SetProperties() { MainBitmap = new Bitmap((int)PelletImage.Width, (int)PelletImage.Height); // properties Properties = new MainProperties() { RangeWidth = (int)PelletImage.Width, RangeHeight = (int)PelletImage.Height, AmountOfGrains = int.Parse(AmountOfGrainsTextBox.Text), AmountOfInclusions = int.Parse(AmountOfInclusionsTextBox.Text), PelletSize = int.Parse(PelletSizeTextBox.Text), CurrGrowthProbability = int.Parse(ConstGrowthProbabilityTextBox.Text), ConstGrowthProbability = int.Parse(ConstGrowthProbabilityTextBox.Text), CurrTemperature = 0, TemperatureRiseRate = int.Parse(TemperatureRiseRateTextBox.Text), MaxTemperature = int.Parse(MaxTemperatureTextBox.Text), BufferTemperature = 0, NeighbourhoodType = ChooseNeighbourhoodType(), StartingPointsType = ChooseStartingPointsType(), }; // update constants Constants.UpdateConstants(Properties.PelletSize); // initialization inclusion points inside update area InclusionHandler.InitPoints(Properties.AmountOfInclusions); // initialization inclusion points inside update area StructureHandler.PointsArea = StructureHandler.GetPointsInsideCircle((int)Constants.RADIUS, Constants.MIDDLE_POINT); // phases Phase1NameLabel.Content = Phase1NameTextBox.Text + " [%]"; Phase2NameLabel.Content = Phase2NameTextBox.Text + " [%]"; Phase3NameLabel.Content = Phase3NameTextBox.Text + " [%]"; Phase4NameLabel.Content = Phase4NameTextBox.Text + " [%]"; Phases[0].Name = Phase1NameTextBox.Text; Phases[1].Name = Phase2NameTextBox.Text; Phases[2].Name = Phase3NameTextBox.Text; Phases[3].Name = Phase4NameTextBox.Text; Phases[0].TemperaturePoint = int.Parse(Phase1TextBox.Text); Phases[1].TemperaturePoint = int.Parse(Phase2TextBox.Text); Phases[2].TemperaturePoint = int.Parse(Phase3TextBox.Text); Phases[3].TemperaturePoint = int.Parse(Phase4TextBox.Text); Phases[0].Color = Converters.WindowsToDrawingColor(Phase1ColorPicker.SelectedColor.Value); Phases[1].Color = Converters.WindowsToDrawingColor(Phase2ColorPicker.SelectedColor.Value); Phases[2].Color = Converters.WindowsToDrawingColor(Phase3ColorPicker.SelectedColor.Value); Phases[3].Color = Converters.WindowsToDrawingColor(Phase4ColorPicker.SelectedColor.Value); Phases[0].GrowthProbability = int.Parse(Phase1PropabilityTextBox.Text); Phases[1].GrowthProbability = int.Parse(Phase2PropabilityTextBox.Text); Phases[2].GrowthProbability = int.Parse(Phase3PropabilityTextBox.Text); Phases[3].GrowthProbability = int.Parse(Phase4PropabilityTextBox.Text); for (int i = 0; i < Constants.NUMBER_OF_PHASES; i++) { Phases[i].Range = new Range(Properties.RangeWidth, Properties.RangeWidth); StructureHandler.InitBlankArea(Phases[i].Range); InclusionHandler.AddInclusions(Phases[i].Range); Phases[i].Percentage = 0; if (ConstantGrowthRadioButton.IsChecked == true) { Phases[i].GrowthProbability = Properties.ConstGrowthProbability; } else if (ProgresiveGrowthRadioButton.IsChecked == true) { Phases[i].GrowthProbability = (100 / Constants.NUMBER_OF_PHASES) * (i + 1); } Properties.CurrGrowthProbability = Phases[i].GrowthProbability; Phases[i].Properties = ObjectCopier.Clone(Properties); Phases[i].PrevRange = StructureHandler.InitCellularAutomata(Properties, i + 1, Phases[i].Color); InclusionHandler.AddInclusions(Phases[i].PrevRange); } // !! PHASE 1 - INITIALIZATION !! // StructureHandler.InstantFillColor(Phases[0], 1, Phases[0].Color); // temperature dispatcher TempteratureDispatcher.Interval = new TimeSpan(0, 0, 0, 0, Properties.TemperatureRiseRate); // .csv file csv = new StringBuilder(); var newLine = string.Format("{0};{1};{2};{3};{4};{5}", "Time", "Temperature", Phases[0].Name, Phases[1].Name, Phases[2].Name, Phases[3].Name); csv.AppendLine(newLine); }