Minetest-WorldEditAdditions/worldeditadditions/lib/sculpt/init.lua
2023-08-03 02:42:46 +01:00

39 lines
2.1 KiB
Lua

local wea = worldeditadditions
--- Sculpting brush engine.
-- @namespace worldeditadditions.sculpt
local sculpt = {
brushes = {
circle_soft1 = dofile(wea.modpath.."/lib/sculpt/brushes/circle_soft1.lua"),
circle = dofile(wea.modpath.."/lib/sculpt/brushes/circle.lua"),
square = dofile(wea.modpath.."/lib/sculpt/brushes/square.lua"),
gaussian_hard = dofile(wea.modpath.."/lib/sculpt/brushes/gaussian_hard.lua"),
gaussian = dofile(wea.modpath.."/lib/sculpt/brushes/gaussian.lua"),
gaussian_soft = dofile(wea.modpath.."/lib/sculpt/brushes/gaussian_soft.lua"),
},
make_brush = dofile(wea.modpath.."/lib/sculpt/make_brush.lua"),
make_preview = dofile(wea.modpath.."/lib/sculpt/make_preview.lua"),
preview_brush = dofile(wea.modpath.."/lib/sculpt/preview_brush.lua"),
apply_heightmap = dofile(wea.modpath.."/lib/sculpt/apply_heightmap.lua"),
apply = dofile(wea.modpath.."/lib/sculpt/apply.lua"),
scan_static = dofile(wea.modpath.."/lib/sculpt/scan_static.lua"),
import_static = dofile(wea.modpath.."/lib/sculpt/import_static.lua"),
parse_static = dofile(wea.modpath.."/lib/sculpt/parse_static.lua")
}
--- Brushes for use with the sculpting system.
-- Dump your own in the directory `worldeditadditions/lib/sculpt/brushes` (relative to the WorldEditAdditions git repository root), and WorldEditAdditions will automatically read them!
--
-- See the documentation for more information: <https://worldeditadditions.mooncarrot.space/Reference/#sculpt>
-- @namespace worldeditadditions.sculpt.brushes
-- scan_sculpt is called after everything is loaded in the main init file
return sculpt
-- TODO: Automatically find & register all text file based brushes in the brushes directory
-- TODO: Implement automatic scaling of static brushes to the correct size. We have scale already, but we probably need to implement a proper 2d canvas scaling algorithm. Some options to consider: linear < [bi]cubic < nohalo/lohalo
-- Note that we do NOT automatically find & register computed brushes because that's an easy way to execute arbitrary Lua code & cause a security issue unless handled very carefully