worm/mapgen.lua
2017-06-20 23:22:02 +02:00

141 lines
4.6 KiB
Lua

-- Marked mapgen nodes
local mapgen_node = {
description = "worm mapgen node",
paramtype = "light",
paramtype2 = "facedir",
drawtype = "airlike",
groups = {not_in_creative_inventory = 1, worm_mapgen = 1},
}
minetest.register_node("worm:snake_tail_1_mapgen", mapgen_node)
minetest.register_node("worm:black_snake_tail_1_mapgen", mapgen_node)
minetest.register_node("worm:worm_tail_1_mapgen", mapgen_node)
minetest.register_node("worm:eel_tail_1_mapgen", mapgen_node)
minetest.register_node("worm:caterpillar_tail_1_mapgen", mapgen_node)
minetest.register_node("worm:maggot_tail_1_mapgen", mapgen_node)
-- Replace mapgen nodes by real ones and initialize the node timer.
minetest.register_lbm({
name = "worm:init_nodetimers_mapgen",
nodenames = "group:worm_mapgen",
run_at_every_load = true,
action = function(pos, node)
node.name = node.name:sub(1, -8)
print("[worm]"..node.name.." spawned at "..pos.x..", "..pos.y..", "..pos.z)
minetest.swap_node(pos, node)
local timer = minetest.get_node_timer(pos)
timer:set(worm.config.WALKING_PERIOD, 0)
end,
})
-- Snake
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_dirt_with_grass",
sidelen = 16,
fill_ratio = 0.0001,
schematic = {
size = {x=5, y=1, z=1},
data = {
{name="worm:snake_head_1", param1=255, param2=3, force_place = true},
{name="worm:snake_body", param1=255, param2=3, force_place = true},
{name="worm:snake_body", param1=255, param2=3, force_place = true},
{name="worm:snake_body", param1=255, param2=3, force_place = true},
{name="worm:snake_tail_1_mapgen", param1=255, param2=3, force_place = true},
},
},
})
-- Black Snake
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_desert_sand",
sidelen = 16,
fill_ratio = 0.0001,
schematic = {
size = {x=4, y=1, z=1},
data = {
{name="worm:black_snake_head_1", param1=255, param2=3, force_place = true},
{name="worm:black_snake_body", param1=255, param2=3, force_place = true},
{name="worm:black_snake_body", param1=255, param2=3, force_place = true},
{name="worm:black_snake_tail_1_mapgen", param1=255, param2=3, force_place = true},
},
},
})
-- Worm
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_dirt_with_grass",
sidelen = 16,
fill_ratio = 0.0001,
schematic = {
size = {x=4, y=1, z=1},
data = {
{name="worm:worm_head_1", param1=255, param2=3, force_place = true},
{name="worm:worm_body", param1=255, param2=3, force_place = true},
{name="worm:worm_body", param1=255, param2=3, force_place = true},
{name="worm:worm_tail_1_mapgen", param1=255, param2=3, force_place = true},
},
},
})
-- Caterpillar
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_dirt_with_grass",
sidelen = 16,
fill_ratio = 0.0001,
schematic = {
size = {x=4, y=1, z=1},
data = {
{name="worm:caterpillar_head_1", param1=255, param2=3, force_place = true},
{name="worm:caterpillar_body", param1=255, param2=3, force_place = true},
{name="worm:caterpillar_body", param1=255, param2=3, force_place = true},
{name="worm:caterpillar_tail_1_mapgen", param1=255, param2=3, force_place = true},
},
},
})
-- Worm
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_dirt_with_grass",
sidelen = 16,
fill_ratio = 0.00003,
schematic = {
size = {x=3, y=1, z=1},
data = {
{name="worm:maggot_head_1", param1=255, param2=3, force_place = true},
{name="worm:maggot_body", param1=255, param2=3, force_place = true},
{name="worm:maggot_tail_1_mapgen", param1=255, param2=3, force_place = true},
},
},
})
-- Eel
minetest.register_decoration({
deco_type = "schematic",
place_on = "mapgen_water_source",
flags = "liquid_surface, place_center_y",
sidelen = 16,
fill_ratio = 0.0002,
schematic = {
size = {x=4, y=3, z=1},
data = {
{name="worm:eel_head_1", param1=255, param2=3, force_place = true},
{name="worm:eel_body", param1=255, param2=3, force_place = true},
{name="worm:eel_body", param1=255, param2=3, force_place = true},
{name="worm:eel_tail_1_mapgen", param1=255, param2=3, force_place = true},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
{name="ignore", param1=0, param2=0},
},
},
rotation = "random",
})