コード例 #1
0
        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
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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*/;
        }
コード例 #4
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);
    }
コード例 #5
0
        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);
        }