Skip to content

Releases: Querz/mcaselector

mcaselector-2.1

17 Jul 16:05
Compare
Choose a tag to compare

This release fixes some bugs, changes custom filters and improves the height slider.

Details:

  • Changed the custom filter and the custom field changer to use Groovy instead of JavaScript to be closer to Java.
  • The input field next to the height slider now allows values up to 2047 for worlds with custom data packs that increase the maximum build height.
  • Added debugs to log what program arguments were passed to MCA Selector and how MCA Selector parsed them.
  • Fixed a bug where filters were not applied to chunks that had entities or poi data, but no region data.
  • Fixed and improved the structure filter. It now detects all kinds of combinations of Minecraft's internal structure names as vanilla structure names, with or without the minecraft: namespace.
  • Fixed a bug where chunk sections were not merged correctly (#360).
  • Removed the wiki files from the main repository and moved them to their own repository for more independent contribution.

mcaselector-2.0.2

29 Jun 21:07
Compare
Choose a tag to compare

Fixing some critical bugs and adding custom filters.

Details:

  • Added a Custom filter. This filter is basically the content of a JavaScript function returning either true or false, indicating whether the chunk should be selected or not. All chunk data can be accessed. The value region contains all region data, poi all POI data and entities all entity data. The chunk data structure is a Java CompoundTag Object of the NBT library. Example: return region.getString("Status") == "full" will be a custom version of the Status = "full" filter.
  • Added a Custom field for the NBT Changer. This works similar to the Custom filter, except that the JavaScript function doesn't have any return value. However, all changes made to the NBT structure in region, poi, and entities will be saved. Example: region.putString("Status", "empty") will be a custom version of the Status = "empty" field change.
  • (Most likely) fixed a problem where Minecraft 1.19 would freeze any world generation and saving after attempting to generate lighting in a protochunk that is adjacent to a full chunk where MCA Selector deleted some sections. MCA Selector will now reset the chunk's Status field back to features after deleting sections to force Minecraft to recalculate any lighting data in that chunk.
  • Added error handlers for all multithreaded jobs to make sure that the progress bar doesn't get stuck and to catch any uncaught exceptions.
  • Added the Wiki to this repository so people can edit it and create pull requests. The Wiki files in this folder will be synced with the wiki repository on every push to this repository.
  • Fixed a bug where CLI mode would skip saving files and then freeze the progress bar.

mcaselector-2.0.1

19 Jun 11:23
Compare
Choose a tag to compare

This update fixes some bugs.

If you encounter a bug please let me know by creating a bug report issue Here or ping me on Discord.

Changes:

  • Fixed a bug where adding a radius to a selection was throwing an NPE if the selection contained a fully selected region.
  • Fixed warning message when running CLI: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance..
  • Fixed an issue with the --output parameter when forcing cache generation using --mode cache.
  • Added support for omitting the --zoom-level parameter in CLI cache mode. It will now generate all zoom levels when this parameter is omitted.
  • Made sure that the CLI progress bar stops when skipping the maximum.
  • Made circles and radiuses in selections more "circle-like".

mcaselector-2.0

14 Jun 19:46
92d4aae
Compare
Choose a tag to compare

Big update with a lot of technical changes. Also: 2.0!

If you encounter a bug please let me know by creating a bug report issue Here or ping me on Discord.

Changes:

  • Fixed a bug where entire regions would be imported when importing chunks without an offset.
  • Fixed a bug where the coordinates in the status bar would be off by one when hovering over blocks with negative coordinates.
  • Added mappings for Minecraft 1.19.
  • ReplaceBlocks now supports regular expressions to select blocks. Regular expressions need to be in single quotes. As an example, here is how to replace all blocks in a chunk with air: '.+'=minecraft:air.
  • SkyLight and BlockLight data will now be deleted when using ReplaceBlocks in the hope Minecraft recalculates those values.
  • Added an option in the long array editor to view 32-bit values.
  • Added invalid biome mapping. This "biome" can be used in Minecraft versions that still use numeric biome IDs to set the biome id to -1 which will force Minecraft to regenerate the biomes (no the terrain!).
  • The chunk editor will now automatically expand the root tag for convenience.
  • Removed File --> Open Region so people avoid the mistake of omitting the poi and entities folders when manipulating their world. The poi and entities folders can still be manually changed through the File --> Settings --> World dialog.
  • Added a dialog to choose between overwriting and merging when importing a selection.
  • Added an error message for when saving or loading a selection failed.
  • Added a flag to keep track of whether a selection has just been saved.
  • Rephrased the confirmation dialog that appears when quitting with an unsaved selection and made this dialog appear when opening a new world if necessary.
  • Clearing the cache no longer clears the selection.
  • Added more options to render images in CLI image mode.
  • Added more options to render overlays in CLI image mode.
  • Removed unused translations.
  • Implemented a new selection model that uses way less memory and should be unnoticeably faster. This should fix some bugs with inverted selections as well, such as applying a filter to an inverted selection removing the wrong chunks from the selection.
  • Switched to a new and better, more cache oriented version of the NBT library.
  • Replaced the old logging / debug system, with log4J2. The log files are now persistent and roll over into a new log file on start-up. The Print debug messages option in the Settings now enables logging of DEBUG level for the log file. Warnings and errors will always be logged to the log file. Only errors will be logged to the console.
  • Reworked the CLI code, it now uses commons-cli to validate command line arguments. Also added a --help command that prints out a manual page.
  • When specifying world folders in CLI mode, a new parameter --world (or --source-world, or --output-world, depending on the context) is now required. This option automatically searches in the provided folder for a region, poi and entities folder, while having a region folder is mandatory. Those folders can be overwritten manually by using the old --region, --poi and --entities (or --source-region, --source-poi, etc.) parameters, but they should generally not be used except in very specific use cases.
  • Changed the CLI to show an actual progress bar.
  • Switched CI from Travis to GitHub Actions. Release assets are now automatically created and uploaded to the release.
  • Cleaned up build.gradle and moved scripts to external script files.
  • Updated version to 2.0 so people don't confuse the MCA Selector version with the Minecraft version (lol). JK, there have been a LOT of changes in the background.

mcaselector-1.17.3

26 Mar 12:31
8dd506a
Compare
Choose a tag to compare

This update adds some new features and fixes bugs.

Details:

  • Added ForceBlend feature to the NBT Changer. This sets some values to a chunk that forces a chunk generated in 1.18 to blend with other 1.18 chunks.
  • Added PreventRetrogen field in the NBT Changer to block below zero retrogen after upgrading a world to 1.18.
  • Added an option in View to show coordinates in the map view.
  • Updated dependencies and improved build.gradle (see #306).
  • Fixed a bug where it would throw an Exception when a version file was missing in the cache (see #305).
  • Fixed a concurrency issue with the ImagePool where it would throw an ArrayIndexOutOfBoundsException.
  • Changed the text of the Import selection and Export selection to Import selection from .csv and Export selection as .csv for more clarity.
  • Fixed a bug where the biome filter and the biome field would not accept valid numeric minecraft ids anymore.
  • Decreased minimum zoom level to allow zooming in further.
  • Changed the redner height slider to be inclusive (when showing 319 it now also shows layer 319).
  • Fixed a bug where selections without a biome palette would fail to render.
  • Improved rendering by only getting a block's biome when actually needed.
  • Added debug to measure duration of image generation.
  • Fixed occasional FileNotFOundException when reading a regions last modified date (see #320).
  • Added the option to selection chunks and regions in a paint brush mode by holding the Shift key while draggin the mouse to select (see #321).
  • Fixed an error when reloading the view before selecting a world (see #322).
  • Speeded up world loading when opening large worlds and added a progress bar (see #323).
  • Fixed rare NullPointerException when filtering chunks (see #324).
  • Added a hard limit of 4 to the default value of Process threads in the settings.
  • Changed the loading animation icon in the bottom right corner to use a scheduled executor instead of busy waiting (see #336).
  • Region files that do not contain a region file header will no longer be attempted to load (see #337).
  • Fixed a resource leak if reading a config file fails (see #334).

mcaselector-1.17.2

15 Dec 23:09
f9ab092
Compare
Choose a tag to compare

This update adds a new filter, a new field change and fixes some bugs. Also updated to Java 17.

Details:

  • Added Border filter. This filter selects all chunks that are empty or that are next to the specified amount of empty chunks. Accepts a number from 0 to 8.
  • Added a DeleteStructureReference field that causes structure references and structure starts to be deleted. Structure names can be specified in a comma separated list. If a custom structure name is specified, it has to match exactly (case sensitive) and must be written in single quotes (').
  • Made the NBT Changer dialog properly resizable.
  • Fixed a bug in headless mode (CLI mode) where using --mode image and --mode cache wouldn't work because of JavaFX not being initialized correctly.
  • Fixed a bug that caused chunks with missing sections to be drawn with the corrupted chunk pattern (see #301 ).
  • Fixed a bug that caused chunks upgraded to 1.18 and not loaded ingame to not render at all (see #300).
  • Fixed a bug that caused the image pool to throw tons of exceptions after being done deleting lots of regions.
  • Fixed a bug where closing the Overlay dialog using the OK or Cancel buttons would throw an exception if overlays were still rendering in the background.
  • Added Korean (Korea) translation (see #291).
  • Fixed Turkish translation (see #292).
  • Fixed Japanese translation (see #293).
  • Fixed a bug where merging chunks vertically wouldn't use the code for Minecraft 1.17/1.18 worlds, so it would not merge chunks correctly or not at all.
  • The current configuration is now also printed into the debug.log file whenever logging is initialized.
  • Upgraded to Java 17.
  • Upgraded Gradle to 7.3.2.

mcaselector-1.17.1

30 Nov 00:22
Compare
Choose a tag to compare

This release fixes some bugs and introduces new filters.

Attention: All documentation in the README has been migrated to the WIKI in an attempt at making the README easier to navigate for inexperienced people. If you would like to give feedback to improve the Wiki or the README, feel free to contact me on Discord.

Details:

  • Fixed Swedish translation (see #271).
  • Fixed Japanese translation (see #272).
  • Fixed Czech translation (see #273).
  • Added Turkish translation (see #280).
  • Added PlayerSpawn filter. This filter loads player data files from a directory and reads their spawn points. The syntax works like this: <directory><path-separator><dimension>. e.g.: C:\Some\Folder;minecraft:overworld. The path separator character on Windows is ;, on Mac / Linux :.
  • Added PlayerLocation filter. Works the same way as the PlayerSpawn filter, but reads the location at which the players have logged out from. PlayerLocation and PlayerSpawn filter also work like the xPos and zPos filters - if the filter query allows skipping of entire region files it will do so.
  • Added Circle filter. This will create a circular selection with a given center point and radius in chunks. The syntax is <center-x>;<center-z>;<radius>. Multiple of these can be chained using a comma ,.
  • Added an "Invert selected regions" option in the Selection menu. This will invert a selection, but only if a region contains any selected chunks. This only works when the selection is currently not inverted using the other "Invert" function.
  • Added an "Overwrite selection" option to the Chunk filter dialog. When this is enabled, any previously existing selection will be overwritten by the selection resulting from the current filter. When disabled, all selected chunks resulting from the current filter will instead be added to the current selection.
  • Updated color mappings for 1.18.
  • Fixed a bug that would cause a crash on startup when the directory containing the mcaselector.jar file contains an exclamation mark at the beginning or in the middle of folder names. There is currently a problem with folder names containing an exclamation mark at the end, which will not be fixed in this release. This is a bug in the Java standard library that loads resources from the jar file. The associated bug report can be found here: https://bugs.openjdk.java.net/browse/JDK-4523159 . The issue is over 20 years old and I don't expect it to be fixed in the near future.
  • Fixed a bug where clearing the cacne for a selection would use an incorrect regexp to list image files.
  • Fixed a bug where inverted selections would not be rendered correctly on empty regions.
  • Fixed a bug where regions with DataVersion > 2843 would not be minimized correctly for memory. This resulted in regions not being rendered for some zoom levels.
  • Fixed a bug where parsing a cached image file's name would throw an NPE.
  • Fixed a bug where the world config is not loaded when using File --> Open Region.

mcaselector-1.17

02 Nov 12:40
9056d69
Compare
Choose a tag to compare

This update improves render performance (and much more).

Details:

  • Added support for the 21w43a snapshot and below (including experimental snapshots).
  • The settings dialog has been split into multiple tabs. The tabs on the left are global settings, the tabs on the right are per-world settings:
    • Global: contains settings such as language and selection colors
    • Processing: contains settings related to threads and memory usage. The Read Threads slider has been removed. The Max files slider has been repurposed to indicating how many region files are kept in memory for faster rendering.
    • Rendering: contains settings for rendering the current world.
    • World: this is the old World Settings dialog. The poi and entities folders can be set manually here.
  • The Render settings menu option is now a shortcut to the Rendering tab.
  • Added a cave renderer. It can be enabled in the Rendering tab.
  • Huge rework of how threads are handled:
    • Removed the the load data jobs.
    • Added a more secure way to load, process and save data (especially for rendering) to not have any bottlenecks that might use up too much memory.
    • Removed the threadpool that loads cached images and let them load through the main scheduler.
    • The main scheduler now uses a new type of queue that prioritizes loading from cache (because it's faster) and regions in the center of the screen.
    • Map draws are now at a fixed rate, and they are not dictated by how fast images are loaded (which might have caused lags).
    • Map updates are now also at a fixed rate in their own thread and independent of map draws to avoid lags.
    • Reduced the default amount of threads used for the scheduler. This value can be adjusted in the Processing settings.
  • Huge rework for the rendering pipeline:
    • Only the actually needed image is now rendered and cached. E.g. if zoomed out completely, only a 64x64 image of each region is rendered (compared to before where the 512x512 version was always rendered and then scaled to fit) which should be significantly faster.
    • When any image is found in either the memory cache or the file cache, it is now used to display the region. The incentive is to have any image over having no image at all, no matter the scale. The appropriate image will be loaded or generated later on.
  • Added an option to the chunk import dialog to shift sections vertically. This can be used in combination with the Sections option to avoid overwriting existing sections in the target chunk with empty sections.
  • Improved drawing regions and the chunk- and region grid to use floating point calculations instead of integers.
  • MCA Selector now keeps track of when a region file was last saved and rerenders an image automatically when it detects that an image is outdated. It is checking for images being outdated whenever they are loaded from disk cache.
  • Added the menu option View --> Reload to manually trigger reloading the map view and checking which images are outdated.
  • Added default biome color mapping to avoid unknown biomes being rendered in grayscale.
  • Added a warning dialog when attempting to quit while having a selection.
  • Whenever the config is loaded from file, it is now printed as a debug.
  • Rewrote most of the version specific code for simplification.
  • Biome color mappings are now version specific (due to the switch to biome palettes in the 1.18 snapshots).
  • Switched to fastutil's maps for big datastructures (like selections) to make them faster and more memory efficient.
  • Added license for fastutil.
  • Changed the visible label to queue which now shows the number of tasks being queued.
  • Improved and unified null checks when parsing, filtering or changing data.
  • Changed the default chunk filter to be InhabitedTime < "5 minutes" because this seems to be the most commonly used filter.
  • Reduced the default JVM max memory for the Windows installer version to 4GB.
  • Added support for 1-3 bit views in the array editor.
  • Added a filter for yPos.
  • Fixed a bug where selecting from a filter threw an NPE when applying a radius without applying to an existing selection (see #268).
  • Fixed a bug where filtering entities wouldn't work for worlds below Minecraft version 1.17.
  • Fixed a bug where MC saves dir, and debug options were not saved while changing them when no world was open.
  • Fixed a crash when the parent directory was a symlink when creating cache, log and settings files and directories (see #265).
  • Fixed a bug where parsing and stringifying the ReplaceBlocks field would strip single quotes for custom block names.
  • Fixed a bug where the world config was not saved when quitting.
  • Fixed a bug where sections would not render when the block palette would have a length of 1 and no block states array.
  • Fixed some typos in the Czech translation, see #246 .
  • Fixed japanese translation, see #240 .

mcaselector-1.16.3

07 Jul 21:12
908665c
Compare
Choose a tag to compare

This update adds a new overlay type and fixes some bugs.

Details:

  • Added custom overlays. When a custom field is saved in mca files (or you just want to see stats for a field that is not implemented as its own overlay), custom overlays can be used. The path to the field needs to be provided in the custom data field.
    • The path must start with either region, poi, or entities.
    • An index inside a list can be accessed with a number in block brackets, e.g. [0] to access the first entry in a list.
    • The size of a list, compound tag or array tag can be accessed by appending .size at the end.
    • When not measuring the size of a tag, the last tag must be any number type tag.
    • Example: entities/Entities.size would measure the amount of entities in a Minecraft 1.17 world.
  • Fixed a bug that caused the map view to scroll upwards indefinitely after pressing the UP-arrow key on some systems, see #229 . When the focus is on the Menu bar or on the height slider, the focus can be given back to the map view by pressing Escape.
  • Fixed a bug that caused the map view to not load the last chunk in a region file in an edge case.
  • Fixed a bug that caused entities to not be relocated from a 1.17 world, see #222 .
  • Added missing documentation for input-selection import parameter to Readme.
  • Fixed an NPE that was thrown when trying to save chunk timestamps into a nonexisting chunk.
  • Updated supported version in Readme, see #226 .
  • Fixed a bug that caused container tag names to be editable inside list tags in the NBT editor.
  • Added Japanese (Japan) translation (thanks to @Uguisu64J for translating), see #231 .
  • Updated the bug report template on GitHub.

mcaselector-1.16.2

09 Jun 20:53
64bc3fb
Compare
Choose a tag to compare

Update 1.16 introduced Java 16 alongside Minecraft. If you were not using the Windows installer before, you will most likely have to upgrade to Java 16 to continue using MCA Selector. The installation instructions in the Readme have been updated accordingly.

This update fixes a major bug.

Details:

  • Fixed a bug that caused the progress bar to freeze after a while and make it fail to cancel (see #211)
  • Updated Traditional Chinese translation (see #212, thanks to @SiderealArt)