Example #1
0
        public void ImportImages(string[] imagepaths)
        {
            bool java   = (SelectedWorld is JavaWorld);
            var  import = new ImportWindow(java);

            import.InterpolationModeBox.SelectedIndex = Properties.Settings.Default.InterpIndex;
            import.ApplyAllCheck.Checked = Properties.Settings.Default.ApplyAllCheck;
            import.DitherChecked         = Properties.Settings.Default.Dither;
            import.StartImports(UI, imagepaths);
            Properties.Settings.Default.InterpIndex   = import.InterpolationModeBox.SelectedIndex;
            Properties.Settings.Default.ApplyAllCheck = import.ApplyAllCheck.Checked;
            Properties.Settings.Default.Dither        = import.DitherChecked;
            long id    = GetSafeID();
            var  tasks = new List <Task>();

            UI.OpenButton.Enabled = false;
            UI.SendButton.Enabled = false;
            foreach (var settings in import.OutputSettings)
            {
                var boxes = new List <MapIDControl>();
                for (int i = 0; i < settings.SplitH * settings.SplitW; i++)
                {
                    var box = new MapIDControl(id);
                    boxes.Add(box);
                    SendToZone(box, MapStatus.Importing);
                    id++;
                }
                var t = new Task <IEnumerable <Map> >(() =>
                {
                    if (java)
                    {
                        return(JavaMap.FromSettings(settings));
                    }
                    else
                    {
                        return(BedrockMap.FromSettings(settings));
                    }
                });
                t.Start();
                t.ContinueWith((prev) =>
                {
                    var results = prev.Result.ToArray();
                    for (int i = 0; i < settings.SplitH * settings.SplitW; i++)
                    {
                        boxes[i].SetBox(new MapPreviewBox(results[i]));
                    }
                }, TaskScheduler.FromCurrentSynchronizationContext());
                tasks.Add(t);
            }
            var done = Task.WhenAll(tasks);

            done.ContinueWith((t) =>
            {
                UI.OpenButton.Enabled = true;
                UI.SendButton.Enabled = true;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Example #2
0
        public void ImportImages(string[] imagepaths)
        {
            var import = new ImportWindow();

            import.InterpolationModeBox.SelectedIndex = Properties.Settings.Default.InterpIndex;
            import.ApplyAllCheck.Checked = Properties.Settings.Default.ApplyAllCheck;
            import.StartImports(UI, imagepaths);
            Properties.Settings.Default.InterpIndex   = import.InterpolationModeBox.SelectedIndex;
            Properties.Settings.Default.ApplyAllCheck = import.ApplyAllCheck.Checked;
            var taken = ImportingMapPreviews.Concat(ExistingMapPreviews).Select(x => x.ID).ToList();

            taken.Add(-1);
            long id = taken.Max() + 1;

            foreach (var image in import.OutputImages)
            {
                MapIDControl mapbox = new MapIDControl(id, SelectedWorld is JavaWorld ? (Map) new JavaMap(image) : new BedrockMap(image));
                ImportingMapPreviews.Add(mapbox);
                UI.ImportZone.Controls.Add(mapbox);
                mapbox.MouseDown += ImportingBox_MouseDown;
                id++;
            }
        }