Minetest-WorldEditAdditions/CHANGELOG.md

18 KiB

WorldEditAdditions Changelog

It's about time I started a changelog! This will serve from now on as the main changelog for WorldEditAdditions.

Note to self: See the bottom of this file for the release template text.

v1.15: The direction update (unreleased)

  • Added the optional argument all to //unmark
  • Added a (rather nuclear) fix (attempt 4) at finally exterminating all zombie region marker walls forever
    • This is not a hotfix to avoid endless small releases fixing the bug, as it's clear it's much more difficult to fix on all systems than initially expected
  • Added //nodeapply, a generalisation of //airapply that works with a defined list of nodes. Check out the reference - it has some cool tricks to it! (thanks for suggesting, @kliv91 from the Discord server!)
  • Added //ngroups, which lists the groups that a given node is a member of. Useful when paired with //nodeapply!
  • Added //rotate+ to rotate regions through arbitrary series of potentially non-axis-aligned rotations. Does not support slabs/stairs yet, but this is on the todo list!
  • Added //speed to adjust your own movement speed
  • Added //set+ for setting nodes and param2/light levels quickly.
    • NOTE TO SELF: Setting light values doesn't appear to be working very well for some reason
  • Added //ndef to print a given node's definition table. This is for debugging and development purposes.
  • Added //sgrow and //sshrink commands to enlarge and shrink selection regions and aliased them over WorldEdit equivalents (//expand, //outset and //contract, //inset respectively).
  • Added Unified Axis Syntax (UAS) parser. - Implementation by @VorTechnix
    • See [UAS System reference] for details. (Note to self hook up hyperlink)
  • Added //uasparse command to show the vectors produced by a given UAS expression. - Implementation by @VorTechnix
  • Added new player notification system with coloured output - thanks, @VorTechnix!
    • Please be patient as we switch all usages over to the new system.

Bugfixes and changes

  • When commands produce an error, the name of the command that produced the error is now also printed. Useful when using e.g. //multi etc.
  • Don't warn on failed registration of //flora//bonemeal if the bonemeal mod isn't installed (e.g. in MineClone2) - thanks @VorTechnix in #106
  • Improve documentation of //noise2d. If it still doesn't make sense, please let me know. It's a complicated command that needs reworking a bit to be easier to use.
  • Alias //napply to //nodeapply
  • Re-factored selection tools to all use WEA position system and UAS Parser if applicable. - Re-factor by @VorTechnix
  • //sshift now overrides //shift from WorldEdit. - Re-factor by @VorTechnix

Deprecations

  • Deprecated //scol, //srect and //scube. Now that //srel is using UAS parser there is no need for them. - Deprecated by @VorTechnix
  • Deprecated //sfactor. Now that //sgrow and //sshrink exist it is no longer needed. - Deprecated by @VorTechnix

Lua API changes

  • Add core.pos.get12(player_name, sort=false)

v1.14.5: The multipoint update, hotfix 5 (1st August 2023)

  • Fix a bug where creative players in survival couldn't punch out position markers
  • Added //listentities, which lists all currently loaded ObjectRefs. This is intended for debugging mods - thanks to @Zughy in #103

v1.14.4: The multipoint update, hotfix 4 (31st July 2023)

  • When any segment of the marker wall is punched, unmark the entire wall - thanks to @Zughy in #102

v1.14.3: The multipoint update, hotfix 3 (18th July 2023)

  • Fix regions not remembering their state and being unresettable

v1.14.2: The multipoint update, hotfix 2 (15th July 2023)

  • Fix crash in //subdivide, again due to the new position system

v1.14.1: The multipoint update, hotfix 1 (12th July 2023)

  • Fix issue #100, which caused a crash as //pos1 and //pos2 allowed non-integer positions to be set

v1.14: The multipoint update (11th July 2023)

  • Add //dome+, which allows you to change the direction the dome is pointing in, and also create multiple domes at once
  • Add //metaball, which renders 2 or more metaballs in Minetest
  • Significant backend refactoring to tidy things up
  • Add new multi-point selection wand A picture of the multi-point wand to select many points at once.
  • Implement custom region boxing UI, which replaces the WorldEdit region box when using WorldEditAdditions wands.
    • Is backwards compatible with regular WorldEdit wands and tools, as WorldEditAdditions keeps the new positioning system in sync with WorldEdit's.
    • The new multipoint wand required this as a prerequisite
  • Add //pos, for setting any numbered point (i.e. not just pos1 and pos2, but pos3 and beyond)
  • Add //spline, for drawing curved lines with an arbitrary number of points (uses the new multi-point wand)
  • Add //revolve, which makes multiple evenly-spaced rotated copies of the defined region (uses the new multi-point wand)
  • //copy+, //move+:
    • Added support for integrated airapply mode, which replaces nodes at the target only if they are air - append airapply/aa to the command to use
    • Respect node rotation (i.e. param2) when copying/moving
    • Override //move and //copy by default

Bugfixes and changes

  • Migrate from depends.txt to mod.conf
  • Cloud wand: fix typo in item description.
  • Commands that modify the terrain now ignore liquids
  • //sculpt:
    • Fix undefined default brush
    • Change defaults to circle, height=1, and brushsize=8.
    • Change argument ordering to put height after brushsize instead of the other way around
  • //hollow: Fix safe region bug
  • Make //pos1, //1, //pos2, //2, //mark, //unmark, and //reset aware of the new WEA positioning system

v1.13: The transformational update (2nd January 2022)

  • Add //sfactor (selection factor) - Selection Tools by @VorTechnix are finished for now.
  • Add //mface (measure facing), //midpos (measure middle position), //msize (measure size), //mtrig (measure trigonometry) - Measuring Tools implemented by @VorTechnix.
  • Add //airapply for applying commands only to air nodes in the defined region
  • Add //wcorner (wireframe corners), //wbox (wireframe box), //wcompass (wireframe compass) - Wireframes implemented by @VorTechnix.
  • Add //for for executing commands while changing their arguments - Implemented by @VorTechnix.
  • Add //sshift (selection shift) - WorldEdit cuboid manipulator replacements implemented by @VorTechnix.
  • Add //noise2d for perturbing terrain with multiple different noise functions
  • Add //noiseapply2d for running commands on columns where a noise value is over a threshold
  • Add //ellipsoid2 which creates an ellipsoid that fills the defined region
  • Add //spiral2 for creating both square and circular spirals
  • Add //copy+ for copying a defined region across multiple axes at once
  • Add //move+ for moving a defined region across multiple axes at once
  • Add //sculpt and //sculptlist for sculpting terrain using a number of custom brushes.
  • Use luacheck to find and fix a large number of bugs and other issues [code quality from now on will be significantly improved]
  • Multiple commands: Allow using quotes ("thing", 'thing') to quote values when splitting
  • //layers: Add optional slope constraint (inspired by WorldPainter)
  • //bonemeal: Add optional node list constraint
  • //walls: Add optional thickness argument
  • //sstack: Add human-readable approx volumes of regions in the selection stack

Bugfixes

  • //floodfill: Fix crash caused by internal refactoring of the Queue data structure
  • //spop: Fix wording in displayed message
  • Sapling alias compatibility:
    • Correct alias of default:sapling from oak to apple (since it produces apples)
    • moretrees:apple_tree_sapling_ongen from apple to apple_moretrees
    • Add plumplumtree:sapling
    • Add hollyhollytree:sapling
  • //replacemix: Improve error handling to avoid crashes (thanks, Jonathon for reporting via Discord!)
  • Cloud wand: Improve chat message text
  • Fix bonemeal mod detection to look for the global bonemeal, not whether the bonemeal mod name has been loaded
  • //bonemeal: Fix argument parsing
  • //walls: Prevent crash if no parameters are specified by defaulting to dirt as the replace_node
  • //maze, //maze3d:
    • Fix generated maze not reaching the very edge of the defined region
    • Fix crash if no arguments are specified
    • Fix automatic seed when generating many mazes in the same second (e.g. with //for, //many)
  • //convolve: Fix those super tall pillars appearing randomly
  • cloud wand: improve feedback messages sent to players
  • //forest: Update sapling aliases for bamboobambo:sprout instead of bamboo:sapling

v1.12: The selection tools update (26th June 2021)

  • Add //spush, //spop, and //sstack
  • Add //srect (select rectangle), //scol (select column), //scube (select cube) - thanks, @VorTechnix!
  • Add //scloud (select point cloud), //scentre (select centre node(s)), //srel (select relative) - thanks, @VorTechnix!
  • Add //smake (selection make) - thanks, @VorTechnix!
  • Significantly refactored backend utility functions (more to come in future updates)
  • Add new universal chance parsing
    • Any <chance> can now either be a 1-in-N number (e.g. 4, 10), or a percentage chance (e.g. 50%, 10%).
    • Caveat: Percentages are converted to a 1-in-N chance, but additionally that number is rounded down in some places
  • //torus, //hollowtorus: Add optional new axes
  • //torus, //ellipsoid: Add optional hollow keyword - @VorTechnix
  • //multi: Add curly brace syntax for nesting command calls (more information)
  • //erode: Add new river erosion algorithm for filling in potholes and removing pillars

Bugfixes

  • //bonemeal: Try bonemealing everything that isn't an air block (#49)
  • //overlay: Don't place nodes above water
  • //multi: Improve resilience by handling some edge cases
  • //layers: Fix crash due to outdated debug code
  • //erode/snowballs: Fix assignment to undeclared variable
  • //floodfill: Fix error handling

v1.11: The big data update (25th January 2021)

  • Add //scale (currently experimental)
    • Scale operations that scale up and down at the same time are split into 2 separate operations automatically (scaling up is always performed first)
  • //count: Make numbers human-readable
    • Tip: Use a monospace font for the chat window, and the columns will be aligned!
  • Add //hollow for hollowing out areas (a step towards parity with Minecraft WorldEdit)
  • //subdivide: Improve performance of initial chunk counting algorithm - it should get started on the job much quicker now (especially on large regions)
  • //subdivide: Fix a bug where the entire defined region was emerged all at once instead of in chunks
  • //subdivide: Fix performance & memory usage issues
    • Fix passing arguments to the command being executed
    • If you encounter any other issues with it over large areas (particularly 2000x150x2000 and larger), please let me know
  • Bugfix: Fix obscure crash in calls to human_size ("unknown" will now be returned if passed junk)
  • //many can now be used with commands with no arguments.
  • //conv, //erode, //fillcaves: Treat liquids as air
  • Add new cloud wand
  • //conv, //erode: Minor refactoring to improve code clarity

v1.10: The tidyup update (16th January 2021)

  • //maze: Fix some parts of generated mazes staying solid
  • //maze, //maze3d: Allow non-number seeds (existing seeds aren't affected - they will still produce identical output)
  • //many: Improve format of progress messages, add ETA
  • //subdivide: Make asynchronous, and use minetest.emerge_area() to ensure areas are loaded before executing on a subdivision chunk
    • This will ensure that //subdivideing enormous regions should now function as expected. Want to level an entire rainforest with //subdivide and //clearcut? Now you can! :D
  • Add //line for drawing simple lines

v1.9: The Nature Update (20th September 2020)

  • Add //many for executing a command many times in a row
  • Add experimental //erode command
  • Add //fillcaves command - fills in all air nodes beneath non air-nodes
  • Add //forest command for quickly generating forests, and //saplingaliases to compliment it
  • Add //ellipsoidapply: Like //cubeapply, but clips the result to an ellipsoid that is the size of the defined region.
  • Fix some minor bugs and edge cases
  • //subdivide: Print status update when completing the last chunk
  • //count: Optimise by removing nested for loops

v1.8: The Quality of Life Update (17th July 2020)

  • Update //multi to display human readable times (e.g. 2.11mins instead of 126600ms)
  • Far wand: Notify player when setting pos1 and pos2
  • Make timings more accurate (use minetest.get_us_time() instead of os.clock())
  • Add experimental //subdivide command
  • Attempt to fix a crash on startup due to a dependency issue (#21)

v1.7: The Terrain Update! (21st June 2020)

  • Added //layers (like WorldEdit for Minecraft's //naturalize)
  • Added //convolve (advanced terrain smoothing inspired by image editors)
  • Added far wand (like the regular WorldEdit wand, but with a configurable range that can extend to 100s of blocks) [/list]

Release text template

The text below is used as a template when making releases.


INTRO

See below the changelog for instructions on how to update.

CHANGELOG HERE

Updating

Updating depends on how you installed WorldEditAdditions.

  • UI in Minetest: There should be an update button for you to click in the mod menu
  • ContentDB: Download the latest update from here
  • Git: cd to the WorldEditAdditions directory and run git pull (Important: Recently, WorldEditAdditions changed the default branch from master to main. If you're updating from before then, you'll need to re-clone the mod or else do some git-fu)

After installing the update, don't forget to restart your client and / or server.