5.1 KiB
mcl_mapgen
============ Helps to avoid problems caused by 'chunk-in-shell' feature of mapgen.cpp. It also queues your generators to run them in proper order:
mcl_mapgen.register_on_generated(callback_function, order_number)
For Minetest 5.4 it doesn't recommended to place blocks within callback function.
See MineClone2/MineClone2#1395
callback_function
: chunk callback LVM function definition:
function(vm_context)
:
Function MUST RETURN vm_context
back anyway! It will passed into next callback function from the queue.
vm_context
: a table which already contains some LVM data if the fields, and some of them can be added by you right in the callback function:
vm
: curent voxel manipulator object itself;
blockseed
: seed of this mapchunk;
minp
& maxp
: minimum and maximum chunk position;
emin
& emax
: minimum and maximum chunk position WITH SHELL AROUND IT;
area
: voxel area, can be helpful to access data;
data
: LVM buffer data array, data loads into it before the callbacks;
write
: set it to true in yout callback functionm, if you changed data
and want to write it;
data2
: LVM buffer data array of param2
, !NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - you load it yourfels:
vm_context.data2 = vm_context.data2 or vm_context.vm.get_param2_data(vm_context.lvm_param2_buffer)
write_param2
: set it to true in yout callback functionm, if you used data2
and want to write it;
lvm_param2_buffer
: static param2
buffer pointer, used to load data2
array;
shadow
: set it to false to disable shadow propagation;
heightmap
: mapgen object contanting y coordinates of ground level,
!NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - load it yourfels:
vm_context.heightmap = vm_context.heightmap or minetest.get_mapgen_object('heightmap')
biomemap
: mapgen object contanting biome IDs of nodes,
!NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - load it yourfels:
vm_context.biomemap = vm_context.biomemap or minetest.get_mapgen_object('biomemap')
heatmap
: mapgen object contanting temperature values of nodes,
!NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - load it yourfels:
vm_context.heatmap = vm_context.heatmap or minetest.get_mapgen_object('heatmap')
humiditymap
: mapgen object contanting humidity values of nodes,
!NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - load it yourfels:
vm_context.humiditymap = vm_context.humiditymap or minetest.get_mapgen_object('humiditymap')
gennotify
: mapgen object contanting mapping table of structures, see Minetest Lua API for explanation,
!NO ANY DATA LOADS INTO IT BEFORE THE CALLBACKS! - load it yourfels:
vm_context.gennotify = vm_context.gennotify or minetest.get_mapgen_object('gennotify')
order_number
(optional): the less, the earlier,
e.g. mcl_mapgen.order.BUILDINGS
or mcl_mapgen.order.LARGE_BUILDINGS
mcl_mapgen.register_mapgen(callback_function, order_number)
==============================================================================
Registers callback function to be called when current chunk generation is finished.
callback_function
: callback function definition:
function(minp, maxp, seed)
:
minp
& maxp
: minimum and maximum chunk position;
seed
: seed of this mapchunk;
order_number
(optional): the less, the earlier,
e.g. mcl_mapgen.order.BUILDINGS
or mcl_mapgen.order.LARGE_BUILDINGS
mcl_mapgen.register_mapgen_block(callback_function, order_number)
=======================================================================
Registers callback function to be called when block (usually 16x16x16 nodes) generation is finished.
callback_function
: callback function definition:
function(minp, maxp, seed)
:
minp
& maxp
: minimum and maximum block position;
seed
: seed of this mapblock;
order_number
(optional): the less, the earlier,
e.g. mcl_mapgen.order.BUILDINGS
or mcl_mapgen.order.LARGE_BUILDINGS
mcl_mapgen.register_mapgen_block_lvm(callback_function, order_number)
============================================================================
Registers callback function to be called when block (usually 16x16x16 nodes) generation is finished.
vm_context
passes into callback function and should be returned back.
callback_function
: block callback LVM function definition, see below;
order_number
(optional): the less, the earlier,
e.g. mcl_mapgen.order.BUILDINGS
or mcl_mapgen.order.LARGE_BUILDINGS
mcl_mapgen.register_mapgen_lvm(callback_function, order_number)
============================================================================
mcl_mapgen.get_far_node(pos)
===============================
Returns node if it is generated. Otherwise returns {name = "ignore"}
.
Constants:
mcl_mapgen.EDGE_MIN
,mcl_mapgen.EDGE_MAX
- world edges, min & max.mcl_mapgen.seed
,mcl_mapgen.name
- mapgen seed & name.mcl_mapgen.v6
,mcl_mapgen.superflat
,mcl_mapgen.singlenode
- is mapgen v6, superflat, singlenode.mcl_mapgen.normal
is mapgen normal (not superflat or singlenode).