mirror of
https://github.com/minetest/minetest.git
synced 2025-03-28 21:22:34 +01:00
Rename minetest.*
to core.*
in devtest
This commit is contained in:
@ -8,19 +8,19 @@ local LAVA_VISC = 7
|
|||||||
|
|
||||||
-- Register nodes
|
-- Register nodes
|
||||||
|
|
||||||
minetest.register_node("basenodes:stone", {
|
core.register_node("basenodes:stone", {
|
||||||
description = "Stone",
|
description = "Stone",
|
||||||
tiles = {"default_stone.png"},
|
tiles = {"default_stone.png"},
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:desert_stone", {
|
core.register_node("basenodes:desert_stone", {
|
||||||
description = "Desert Stone",
|
description = "Desert Stone",
|
||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:dirt_with_grass", {
|
core.register_node("basenodes:dirt_with_grass", {
|
||||||
description = "Dirt with Grass",
|
description = "Dirt with Grass",
|
||||||
tiles ={"default_grass.png",
|
tiles ={"default_grass.png",
|
||||||
-- a little dot on the bottom to distinguish it from dirt
|
-- a little dot on the bottom to distinguish it from dirt
|
||||||
@ -30,7 +30,7 @@ minetest.register_node("basenodes:dirt_with_grass", {
|
|||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:dirt_with_snow", {
|
core.register_node("basenodes:dirt_with_snow", {
|
||||||
description = "Dirt with Snow",
|
description = "Dirt with Snow",
|
||||||
tiles ={"basenodes_dirt_with_snow.png",
|
tiles ={"basenodes_dirt_with_snow.png",
|
||||||
-- a little dot on the bottom to distinguish it from dirt
|
-- a little dot on the bottom to distinguish it from dirt
|
||||||
@ -40,31 +40,31 @@ minetest.register_node("basenodes:dirt_with_snow", {
|
|||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:dirt", {
|
core.register_node("basenodes:dirt", {
|
||||||
description = "Dirt",
|
description = "Dirt",
|
||||||
tiles ={"default_dirt.png"},
|
tiles ={"default_dirt.png"},
|
||||||
groups = {crumbly=3, soil=1},
|
groups = {crumbly=3, soil=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:sand", {
|
core.register_node("basenodes:sand", {
|
||||||
description = "Sand",
|
description = "Sand",
|
||||||
tiles ={"default_sand.png"},
|
tiles ={"default_sand.png"},
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:desert_sand", {
|
core.register_node("basenodes:desert_sand", {
|
||||||
description = "Desert Sand",
|
description = "Desert Sand",
|
||||||
tiles ={"default_desert_sand.png"},
|
tiles ={"default_desert_sand.png"},
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:gravel", {
|
core.register_node("basenodes:gravel", {
|
||||||
description = "Gravel",
|
description = "Gravel",
|
||||||
tiles ={"default_gravel.png"},
|
tiles ={"default_gravel.png"},
|
||||||
groups = {crumbly=2},
|
groups = {crumbly=2},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:junglegrass", {
|
core.register_node("basenodes:junglegrass", {
|
||||||
description = "Jungle Grass",
|
description = "Jungle Grass",
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
tiles ={"default_junglegrass.png"},
|
tiles ={"default_junglegrass.png"},
|
||||||
@ -75,14 +75,14 @@ minetest.register_node("basenodes:junglegrass", {
|
|||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:tree", {
|
core.register_node("basenodes:tree", {
|
||||||
description = "Normal Tree Trunk",
|
description = "Normal Tree Trunk",
|
||||||
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
|
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {choppy=2,oddly_breakable_by_hand=1},
|
groups = {choppy=2,oddly_breakable_by_hand=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:leaves", {
|
core.register_node("basenodes:leaves", {
|
||||||
description = "Normal Leaves",
|
description = "Normal Leaves",
|
||||||
drawtype = "allfaces_optional",
|
drawtype = "allfaces_optional",
|
||||||
tiles = {"default_leaves.png"},
|
tiles = {"default_leaves.png"},
|
||||||
@ -91,14 +91,14 @@ minetest.register_node("basenodes:leaves", {
|
|||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:jungletree", {
|
core.register_node("basenodes:jungletree", {
|
||||||
description = "Jungle Tree Trunk",
|
description = "Jungle Tree Trunk",
|
||||||
tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
|
tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {choppy=2,oddly_breakable_by_hand=1},
|
groups = {choppy=2,oddly_breakable_by_hand=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:jungleleaves", {
|
core.register_node("basenodes:jungleleaves", {
|
||||||
description = "Jungle Leaves",
|
description = "Jungle Leaves",
|
||||||
drawtype = "allfaces_optional",
|
drawtype = "allfaces_optional",
|
||||||
tiles = {"default_jungleleaves.png"},
|
tiles = {"default_jungleleaves.png"},
|
||||||
@ -107,14 +107,14 @@ minetest.register_node("basenodes:jungleleaves", {
|
|||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:pine_tree", {
|
core.register_node("basenodes:pine_tree", {
|
||||||
description = "Pine Tree Trunk",
|
description = "Pine Tree Trunk",
|
||||||
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"},
|
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {choppy=2,oddly_breakable_by_hand=1},
|
groups = {choppy=2,oddly_breakable_by_hand=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:pine_needles", {
|
core.register_node("basenodes:pine_needles", {
|
||||||
description = "Pine Needles",
|
description = "Pine Needles",
|
||||||
drawtype = "allfaces_optional",
|
drawtype = "allfaces_optional",
|
||||||
tiles = {"default_pine_needles.png"},
|
tiles = {"default_pine_needles.png"},
|
||||||
@ -123,7 +123,7 @@ minetest.register_node("basenodes:pine_needles", {
|
|||||||
groups = {snappy=3},
|
groups = {snappy=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:water_source", {
|
core.register_node("basenodes:water_source", {
|
||||||
description = "Water Source".."\n"..
|
description = "Water Source".."\n"..
|
||||||
"Swimmable, spreading, renewable liquid".."\n"..
|
"Swimmable, spreading, renewable liquid".."\n"..
|
||||||
"Drowning damage: 1",
|
"Drowning damage: 1",
|
||||||
@ -151,7 +151,7 @@ minetest.register_node("basenodes:water_source", {
|
|||||||
groups = {water = 3, liquid = 3},
|
groups = {water = 3, liquid = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:water_flowing", {
|
core.register_node("basenodes:water_flowing", {
|
||||||
description = "Flowing Water".."\n"..
|
description = "Flowing Water".."\n"..
|
||||||
"Swimmable, spreading, renewable liquid".."\n"..
|
"Swimmable, spreading, renewable liquid".."\n"..
|
||||||
"Drowning damage: 1",
|
"Drowning damage: 1",
|
||||||
@ -182,7 +182,7 @@ minetest.register_node("basenodes:water_flowing", {
|
|||||||
groups = {water = 3, liquid = 3},
|
groups = {water = 3, liquid = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:river_water_source", {
|
core.register_node("basenodes:river_water_source", {
|
||||||
description = "River Water Source".."\n"..
|
description = "River Water Source".."\n"..
|
||||||
"Swimmable, spreading, non-renewable liquid".."\n"..
|
"Swimmable, spreading, non-renewable liquid".."\n"..
|
||||||
"Drowning damage: 1",
|
"Drowning damage: 1",
|
||||||
@ -212,7 +212,7 @@ minetest.register_node("basenodes:river_water_source", {
|
|||||||
groups = {water = 3, liquid = 3, },
|
groups = {water = 3, liquid = 3, },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:river_water_flowing", {
|
core.register_node("basenodes:river_water_flowing", {
|
||||||
description = "Flowing River Water".."\n"..
|
description = "Flowing River Water".."\n"..
|
||||||
"Swimmable, spreading, non-renewable liquid".."\n"..
|
"Swimmable, spreading, non-renewable liquid".."\n"..
|
||||||
"Drowning damage: 1",
|
"Drowning damage: 1",
|
||||||
@ -245,7 +245,7 @@ minetest.register_node("basenodes:river_water_flowing", {
|
|||||||
groups = {water = 3, liquid = 3, },
|
groups = {water = 3, liquid = 3, },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:lava_flowing", {
|
core.register_node("basenodes:lava_flowing", {
|
||||||
description = "Flowing Lava".."\n"..
|
description = "Flowing Lava".."\n"..
|
||||||
"Swimmable, spreading, renewable liquid".."\n"..
|
"Swimmable, spreading, renewable liquid".."\n"..
|
||||||
"4 damage per second".."\n"..
|
"4 damage per second".."\n"..
|
||||||
@ -257,7 +257,7 @@ minetest.register_node("basenodes:lava_flowing", {
|
|||||||
{name="default_lava_flowing.png", backface_culling = false},
|
{name="default_lava_flowing.png", backface_culling = false},
|
||||||
},
|
},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
light_source = minetest.LIGHT_MAX,
|
light_source = core.LIGHT_MAX,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
pointable = false,
|
pointable = false,
|
||||||
diggable = false,
|
diggable = false,
|
||||||
@ -273,7 +273,7 @@ minetest.register_node("basenodes:lava_flowing", {
|
|||||||
groups = {lava=3, liquid=1},
|
groups = {lava=3, liquid=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:lava_source", {
|
core.register_node("basenodes:lava_source", {
|
||||||
description = "Lava Source".."\n"..
|
description = "Lava Source".."\n"..
|
||||||
"Swimmable, spreading, renewable liquid".."\n"..
|
"Swimmable, spreading, renewable liquid".."\n"..
|
||||||
"4 damage per second".."\n"..
|
"4 damage per second".."\n"..
|
||||||
@ -285,7 +285,7 @@ minetest.register_node("basenodes:lava_source", {
|
|||||||
{name = "default_lava.png", backface_culling = true},
|
{name = "default_lava.png", backface_culling = true},
|
||||||
},
|
},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
light_source = minetest.LIGHT_MAX,
|
light_source = core.LIGHT_MAX,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
pointable = false,
|
pointable = false,
|
||||||
diggable = false,
|
diggable = false,
|
||||||
@ -301,21 +301,21 @@ minetest.register_node("basenodes:lava_source", {
|
|||||||
groups = {lava=3, liquid=1},
|
groups = {lava=3, liquid=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:cobble", {
|
core.register_node("basenodes:cobble", {
|
||||||
description = "Cobblestone",
|
description = "Cobblestone",
|
||||||
tiles ={"default_cobble.png"},
|
tiles ={"default_cobble.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:mossycobble", {
|
core.register_node("basenodes:mossycobble", {
|
||||||
description = "Mossy Cobblestone",
|
description = "Mossy Cobblestone",
|
||||||
tiles ={"default_mossycobble.png"},
|
tiles ={"default_mossycobble.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:apple", {
|
core.register_node("basenodes:apple", {
|
||||||
description = "Apple".."\n"..
|
description = "Apple".."\n"..
|
||||||
"Punch: Eat (+2)",
|
"Punch: Eat (+2)",
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -328,10 +328,10 @@ minetest.register_node("basenodes:apple", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
|
|
||||||
-- Make eatable because why not?
|
-- Make eatable because why not?
|
||||||
on_use = minetest.item_eat(2),
|
on_use = core.item_eat(2),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:ice", {
|
core.register_node("basenodes:ice", {
|
||||||
description = "Ice",
|
description = "Ice",
|
||||||
tiles ={"default_ice.png"},
|
tiles ={"default_ice.png"},
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
@ -339,7 +339,7 @@ minetest.register_node("basenodes:ice", {
|
|||||||
|
|
||||||
-- The snow nodes intentionally have different tints to make them more
|
-- The snow nodes intentionally have different tints to make them more
|
||||||
-- distinguishable
|
-- distinguishable
|
||||||
minetest.register_node("basenodes:snow", {
|
core.register_node("basenodes:snow", {
|
||||||
description = "Snow Sheet",
|
description = "Snow Sheet",
|
||||||
tiles = {"basenodes_snow_sheet.png"},
|
tiles = {"basenodes_snow_sheet.png"},
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3},
|
||||||
@ -352,7 +352,7 @@ minetest.register_node("basenodes:snow", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("basenodes:snowblock", {
|
core.register_node("basenodes:snowblock", {
|
||||||
description = "Snow Block",
|
description = "Snow Block",
|
||||||
tiles ={"default_snow.png"},
|
tiles ={"default_snow.png"},
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3},
|
||||||
|
@ -24,11 +24,11 @@ Tool materials:
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
-- The hand
|
-- The hand
|
||||||
if minetest.settings:get_bool("creative_mode") then
|
if core.settings:get_bool("creative_mode") then
|
||||||
local digtime = 42
|
local digtime = 42
|
||||||
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
|
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
|
||||||
|
|
||||||
minetest.register_item(":", {
|
core.register_item(":", {
|
||||||
type = "none",
|
type = "none",
|
||||||
wield_image = "wieldhand.png",
|
wield_image = "wieldhand.png",
|
||||||
wield_scale = {x = 1, y = 1, z = 2.5},
|
wield_scale = {x = 1, y = 1, z = 2.5},
|
||||||
@ -50,7 +50,7 @@ if minetest.settings:get_bool("creative_mode") then
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
minetest.register_item(":", {
|
core.register_item(":", {
|
||||||
type = "none",
|
type = "none",
|
||||||
wield_image = "wieldhand.png",
|
wield_image = "wieldhand.png",
|
||||||
wield_scale = {x = 1, y = 1, z = 2.5},
|
wield_scale = {x = 1, y = 1, z = 2.5},
|
||||||
@ -69,7 +69,7 @@ else
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Mese Pickaxe: special tool that digs "everything" instantly
|
-- Mese Pickaxe: special tool that digs "everything" instantly
|
||||||
minetest.register_tool("basetools:pick_mese", {
|
core.register_tool("basetools:pick_mese", {
|
||||||
description = "Mese Pickaxe".."\n"..
|
description = "Mese Pickaxe".."\n"..
|
||||||
"Digs diggable nodes instantly.",
|
"Digs diggable nodes instantly.",
|
||||||
inventory_image = "basetools_mesepick.png",
|
inventory_image = "basetools_mesepick.png",
|
||||||
@ -89,7 +89,7 @@ minetest.register_tool("basetools:pick_mese", {
|
|||||||
|
|
||||||
|
|
||||||
-- A variant of the mese pickaxe that is not affected by the 0.15s digging delay
|
-- A variant of the mese pickaxe that is not affected by the 0.15s digging delay
|
||||||
minetest.register_tool("basetools:pick_mese_no_delay", {
|
core.register_tool("basetools:pick_mese_no_delay", {
|
||||||
description = "Mese Pickaxe (no delay)".."\n"..
|
description = "Mese Pickaxe (no delay)".."\n"..
|
||||||
"Digs diggable nodes instantly.".."\n"..
|
"Digs diggable nodes instantly.".."\n"..
|
||||||
"There is no delay between digging each node,\n"..
|
"There is no delay between digging each node,\n"..
|
||||||
@ -114,7 +114,7 @@ minetest.register_tool("basetools:pick_mese_no_delay", {
|
|||||||
-- Pickaxes: Dig cracky
|
-- Pickaxes: Dig cracky
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_tool("basetools:pick_wood", {
|
core.register_tool("basetools:pick_wood", {
|
||||||
description = "Wooden Pickaxe".."\n"..
|
description = "Wooden Pickaxe".."\n"..
|
||||||
"Digs cracky=3",
|
"Digs cracky=3",
|
||||||
inventory_image = "basetools_woodpick.png",
|
inventory_image = "basetools_woodpick.png",
|
||||||
@ -125,7 +125,7 @@ minetest.register_tool("basetools:pick_wood", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:pick_stone", {
|
core.register_tool("basetools:pick_stone", {
|
||||||
description = "Stone Pickaxe".."\n"..
|
description = "Stone Pickaxe".."\n"..
|
||||||
"Digs cracky=2..3",
|
"Digs cracky=2..3",
|
||||||
inventory_image = "basetools_stonepick.png",
|
inventory_image = "basetools_stonepick.png",
|
||||||
@ -136,7 +136,7 @@ minetest.register_tool("basetools:pick_stone", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:pick_steel", {
|
core.register_tool("basetools:pick_steel", {
|
||||||
description = "Steel Pickaxe".."\n"..
|
description = "Steel Pickaxe".."\n"..
|
||||||
"Digs cracky=1..3",
|
"Digs cracky=1..3",
|
||||||
inventory_image = "basetools_steelpick.png",
|
inventory_image = "basetools_steelpick.png",
|
||||||
@ -147,7 +147,7 @@ minetest.register_tool("basetools:pick_steel", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:pick_steel_l1", {
|
core.register_tool("basetools:pick_steel_l1", {
|
||||||
description = "Steel Pickaxe Level 1".."\n"..
|
description = "Steel Pickaxe Level 1".."\n"..
|
||||||
"Digs cracky=1..3".."\n"..
|
"Digs cracky=1..3".."\n"..
|
||||||
"maxlevel=1",
|
"maxlevel=1",
|
||||||
@ -159,7 +159,7 @@ minetest.register_tool("basetools:pick_steel_l1", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:pick_steel_l2", {
|
core.register_tool("basetools:pick_steel_l2", {
|
||||||
description = "Steel Pickaxe Level 2".."\n"..
|
description = "Steel Pickaxe Level 2".."\n"..
|
||||||
"Digs cracky=1..3".."\n"..
|
"Digs cracky=1..3".."\n"..
|
||||||
"maxlevel=2",
|
"maxlevel=2",
|
||||||
@ -176,7 +176,7 @@ minetest.register_tool("basetools:pick_steel_l2", {
|
|||||||
-- Shovels (dig crumbly)
|
-- Shovels (dig crumbly)
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_tool("basetools:shovel_wood", {
|
core.register_tool("basetools:shovel_wood", {
|
||||||
description = "Wooden Shovel".."\n"..
|
description = "Wooden Shovel".."\n"..
|
||||||
"Digs crumbly=3",
|
"Digs crumbly=3",
|
||||||
inventory_image = "basetools_woodshovel.png",
|
inventory_image = "basetools_woodshovel.png",
|
||||||
@ -187,7 +187,7 @@ minetest.register_tool("basetools:shovel_wood", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:shovel_stone", {
|
core.register_tool("basetools:shovel_stone", {
|
||||||
description = "Stone Shovel".."\n"..
|
description = "Stone Shovel".."\n"..
|
||||||
"Digs crumbly=2..3",
|
"Digs crumbly=2..3",
|
||||||
inventory_image = "basetools_stoneshovel.png",
|
inventory_image = "basetools_stoneshovel.png",
|
||||||
@ -198,7 +198,7 @@ minetest.register_tool("basetools:shovel_stone", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:shovel_steel", {
|
core.register_tool("basetools:shovel_steel", {
|
||||||
description = "Steel Shovel".."\n"..
|
description = "Steel Shovel".."\n"..
|
||||||
"Digs crumbly=1..3",
|
"Digs crumbly=1..3",
|
||||||
inventory_image = "basetools_steelshovel.png",
|
inventory_image = "basetools_steelshovel.png",
|
||||||
@ -214,7 +214,7 @@ minetest.register_tool("basetools:shovel_steel", {
|
|||||||
-- Axes (dig choppy)
|
-- Axes (dig choppy)
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_tool("basetools:axe_wood", {
|
core.register_tool("basetools:axe_wood", {
|
||||||
description = "Wooden Axe".."\n"..
|
description = "Wooden Axe".."\n"..
|
||||||
"Digs choppy=3",
|
"Digs choppy=3",
|
||||||
inventory_image = "basetools_woodaxe.png",
|
inventory_image = "basetools_woodaxe.png",
|
||||||
@ -225,7 +225,7 @@ minetest.register_tool("basetools:axe_wood", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:axe_stone", {
|
core.register_tool("basetools:axe_stone", {
|
||||||
description = "Stone Axe".."\n"..
|
description = "Stone Axe".."\n"..
|
||||||
"Digs choppy=2..3",
|
"Digs choppy=2..3",
|
||||||
inventory_image = "basetools_stoneaxe.png",
|
inventory_image = "basetools_stoneaxe.png",
|
||||||
@ -236,7 +236,7 @@ minetest.register_tool("basetools:axe_stone", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:axe_steel", {
|
core.register_tool("basetools:axe_steel", {
|
||||||
description = "Steel Axe".."\n"..
|
description = "Steel Axe".."\n"..
|
||||||
"Digs choppy=1..3",
|
"Digs choppy=1..3",
|
||||||
inventory_image = "basetools_steelaxe.png",
|
inventory_image = "basetools_steelaxe.png",
|
||||||
@ -252,7 +252,7 @@ minetest.register_tool("basetools:axe_steel", {
|
|||||||
-- Shears (dig snappy)
|
-- Shears (dig snappy)
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_tool("basetools:shears_wood", {
|
core.register_tool("basetools:shears_wood", {
|
||||||
description = "Wooden Shears".."\n"..
|
description = "Wooden Shears".."\n"..
|
||||||
"Digs snappy=3",
|
"Digs snappy=3",
|
||||||
inventory_image = "basetools_woodshears.png",
|
inventory_image = "basetools_woodshears.png",
|
||||||
@ -263,7 +263,7 @@ minetest.register_tool("basetools:shears_wood", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:shears_stone", {
|
core.register_tool("basetools:shears_stone", {
|
||||||
description = "Stone Shears".."\n"..
|
description = "Stone Shears".."\n"..
|
||||||
"Digs snappy=2..3",
|
"Digs snappy=2..3",
|
||||||
inventory_image = "basetools_stoneshears.png",
|
inventory_image = "basetools_stoneshears.png",
|
||||||
@ -274,7 +274,7 @@ minetest.register_tool("basetools:shears_stone", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:shears_steel", {
|
core.register_tool("basetools:shears_steel", {
|
||||||
description = "Steel Shears".."\n"..
|
description = "Steel Shears".."\n"..
|
||||||
"Digs snappy=1..3",
|
"Digs snappy=1..3",
|
||||||
inventory_image = "basetools_steelshears.png",
|
inventory_image = "basetools_steelshears.png",
|
||||||
@ -290,7 +290,7 @@ minetest.register_tool("basetools:shears_steel", {
|
|||||||
-- Swords (deal damage)
|
-- Swords (deal damage)
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_tool("basetools:sword_wood", {
|
core.register_tool("basetools:sword_wood", {
|
||||||
description = "Wooden Sword".."\n"..
|
description = "Wooden Sword".."\n"..
|
||||||
"Damage: fleshy=2",
|
"Damage: fleshy=2",
|
||||||
inventory_image = "basetools_woodsword.png",
|
inventory_image = "basetools_woodsword.png",
|
||||||
@ -299,7 +299,7 @@ minetest.register_tool("basetools:sword_wood", {
|
|||||||
damage_groups = {fleshy=2},
|
damage_groups = {fleshy=2},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_stone", {
|
core.register_tool("basetools:sword_stone", {
|
||||||
description = "Stone Sword".."\n"..
|
description = "Stone Sword".."\n"..
|
||||||
"Damage: fleshy=5",
|
"Damage: fleshy=5",
|
||||||
inventory_image = "basetools_stonesword.png",
|
inventory_image = "basetools_stonesword.png",
|
||||||
@ -309,7 +309,7 @@ minetest.register_tool("basetools:sword_stone", {
|
|||||||
damage_groups = {fleshy=5},
|
damage_groups = {fleshy=5},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_steel", {
|
core.register_tool("basetools:sword_steel", {
|
||||||
description = "Steel Sword".."\n"..
|
description = "Steel Sword".."\n"..
|
||||||
"Damage: fleshy=10",
|
"Damage: fleshy=10",
|
||||||
inventory_image = "basetools_steelsword.png",
|
inventory_image = "basetools_steelsword.png",
|
||||||
@ -319,7 +319,7 @@ minetest.register_tool("basetools:sword_steel", {
|
|||||||
damage_groups = {fleshy=10},
|
damage_groups = {fleshy=10},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_titanium", {
|
core.register_tool("basetools:sword_titanium", {
|
||||||
description = "Titanium Sword".."\n"..
|
description = "Titanium Sword".."\n"..
|
||||||
"Damage: fleshy=100",
|
"Damage: fleshy=100",
|
||||||
inventory_image = "basetools_titaniumsword.png",
|
inventory_image = "basetools_titaniumsword.png",
|
||||||
@ -329,7 +329,7 @@ minetest.register_tool("basetools:sword_titanium", {
|
|||||||
damage_groups = {fleshy=100},
|
damage_groups = {fleshy=100},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_blood", {
|
core.register_tool("basetools:sword_blood", {
|
||||||
description = "Blood Sword".."\n"..
|
description = "Blood Sword".."\n"..
|
||||||
"Damage: fleshy=1000",
|
"Damage: fleshy=1000",
|
||||||
inventory_image = "basetools_bloodsword.png",
|
inventory_image = "basetools_bloodsword.png",
|
||||||
@ -341,7 +341,7 @@ minetest.register_tool("basetools:sword_blood", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Max. damage sword
|
-- Max. damage sword
|
||||||
minetest.register_tool("basetools:sword_mese", {
|
core.register_tool("basetools:sword_mese", {
|
||||||
description = "Mese Sword".."\n"..
|
description = "Mese Sword".."\n"..
|
||||||
"Damage: fleshy=32767, fiery=32767, icy=32767".."\n"..
|
"Damage: fleshy=32767, fiery=32767, icy=32767".."\n"..
|
||||||
"Full Punch Interval: 0.0s",
|
"Full Punch Interval: 0.0s",
|
||||||
@ -354,7 +354,7 @@ minetest.register_tool("basetools:sword_mese", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Fire/Ice sword: Deal damage to non-fleshy damage groups
|
-- Fire/Ice sword: Deal damage to non-fleshy damage groups
|
||||||
minetest.register_tool("basetools:sword_fire", {
|
core.register_tool("basetools:sword_fire", {
|
||||||
description = "Fire Sword".."\n"..
|
description = "Fire Sword".."\n"..
|
||||||
"Damage: icy=10",
|
"Damage: icy=10",
|
||||||
inventory_image = "basetools_firesword.png",
|
inventory_image = "basetools_firesword.png",
|
||||||
@ -364,7 +364,7 @@ minetest.register_tool("basetools:sword_fire", {
|
|||||||
damage_groups = {icy=10},
|
damage_groups = {icy=10},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_ice", {
|
core.register_tool("basetools:sword_ice", {
|
||||||
description = "Ice Sword".."\n"..
|
description = "Ice Sword".."\n"..
|
||||||
"Damage: fiery=10",
|
"Damage: fiery=10",
|
||||||
inventory_image = "basetools_icesword.png",
|
inventory_image = "basetools_icesword.png",
|
||||||
@ -374,7 +374,7 @@ minetest.register_tool("basetools:sword_ice", {
|
|||||||
damage_groups = {fiery=10},
|
damage_groups = {fiery=10},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_elemental", {
|
core.register_tool("basetools:sword_elemental", {
|
||||||
description = "Elemental Sword".."\n"..
|
description = "Elemental Sword".."\n"..
|
||||||
"Damage: fiery=10, icy=10",
|
"Damage: fiery=10, icy=10",
|
||||||
inventory_image = "basetools_elementalsword.png",
|
inventory_image = "basetools_elementalsword.png",
|
||||||
@ -386,7 +386,7 @@ minetest.register_tool("basetools:sword_elemental", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Healing weapons: heal HP
|
-- Healing weapons: heal HP
|
||||||
minetest.register_tool("basetools:dagger_heal", {
|
core.register_tool("basetools:dagger_heal", {
|
||||||
description = "Healing Dagger".."\n"..
|
description = "Healing Dagger".."\n"..
|
||||||
"Heal: fleshy=1".."\n"..
|
"Heal: fleshy=1".."\n"..
|
||||||
"Full Punch Interval: 0.5s",
|
"Full Punch Interval: 0.5s",
|
||||||
@ -396,7 +396,7 @@ minetest.register_tool("basetools:dagger_heal", {
|
|||||||
damage_groups = {fleshy=-1},
|
damage_groups = {fleshy=-1},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_heal", {
|
core.register_tool("basetools:sword_heal", {
|
||||||
description = "Healing Sword".."\n"..
|
description = "Healing Sword".."\n"..
|
||||||
"Heal: fleshy=10",
|
"Heal: fleshy=10",
|
||||||
inventory_image = "basetools_healsword.png",
|
inventory_image = "basetools_healsword.png",
|
||||||
@ -405,7 +405,7 @@ minetest.register_tool("basetools:sword_heal", {
|
|||||||
damage_groups = {fleshy=-10},
|
damage_groups = {fleshy=-10},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:sword_heal_super", {
|
core.register_tool("basetools:sword_heal_super", {
|
||||||
description = "Super Healing Sword".."\n"..
|
description = "Super Healing Sword".."\n"..
|
||||||
"Heal: fleshy=32768, fiery=32768, icy=32768",
|
"Heal: fleshy=32768, fiery=32768, icy=32768",
|
||||||
inventory_image = "basetools_superhealsword.png",
|
inventory_image = "basetools_superhealsword.png",
|
||||||
@ -419,7 +419,7 @@ minetest.register_tool("basetools:sword_heal_super", {
|
|||||||
--
|
--
|
||||||
-- Dagger: Low damage, fast punch interval
|
-- Dagger: Low damage, fast punch interval
|
||||||
--
|
--
|
||||||
minetest.register_tool("basetools:dagger_wood", {
|
core.register_tool("basetools:dagger_wood", {
|
||||||
description = "Wooden Dagger".."\n"..
|
description = "Wooden Dagger".."\n"..
|
||||||
"Damage: fleshy=1".."\n"..
|
"Damage: fleshy=1".."\n"..
|
||||||
"Full Punch Interval: 0.5s",
|
"Full Punch Interval: 0.5s",
|
||||||
@ -430,7 +430,7 @@ minetest.register_tool("basetools:dagger_wood", {
|
|||||||
damage_groups = {fleshy=1},
|
damage_groups = {fleshy=1},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_tool("basetools:dagger_steel", {
|
core.register_tool("basetools:dagger_steel", {
|
||||||
description = "Steel Dagger".."\n"..
|
description = "Steel Dagger".."\n"..
|
||||||
"Damage: fleshy=2".."\n"..
|
"Damage: fleshy=2".."\n"..
|
||||||
"Full Punch Interval: 0.5s",
|
"Full Punch Interval: 0.5s",
|
||||||
@ -492,7 +492,7 @@ for i, params in ipairs(tool_params) do
|
|||||||
local uses = params.uses
|
local uses = params.uses
|
||||||
local ustring = uses.."-Use"..(uses == 1 and "" or "s")
|
local ustring = uses.."-Use"..(uses == 1 and "" or "s")
|
||||||
local color = string.format("#FF00%02X", math.floor(((i-1)/#tool_params) * 255))
|
local color = string.format("#FF00%02X", math.floor(((i-1)/#tool_params) * 255))
|
||||||
minetest.register_tool("basetools:pick_uses_"..string.format("%05d", uses), {
|
core.register_tool("basetools:pick_uses_"..string.format("%05d", uses), {
|
||||||
description = ustring.." Pickaxe".."\n"..
|
description = ustring.." Pickaxe".."\n"..
|
||||||
"Digs cracky=3"..
|
"Digs cracky=3"..
|
||||||
(params.wear_description and "\n".."Wear bar: " .. params.wear_description or ""),
|
(params.wear_description and "\n".."Wear bar: " .. params.wear_description or ""),
|
||||||
@ -506,7 +506,7 @@ for i, params in ipairs(tool_params) do
|
|||||||
wear_color = params.wear_color
|
wear_color = params.wear_color
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("basetools:sword_uses_"..string.format("%05d", uses), {
|
core.register_tool("basetools:sword_uses_"..string.format("%05d", uses), {
|
||||||
description = ustring.." Sword".."\n"..
|
description = ustring.." Sword".."\n"..
|
||||||
"Damage: fleshy=1",
|
"Damage: fleshy=1",
|
||||||
inventory_image = "basetools_usessword.png^[colorize:"..color..":127",
|
inventory_image = "basetools_usessword.png^[colorize:"..color..":127",
|
||||||
@ -517,11 +517,11 @@ for i, params in ipairs(tool_params) do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("wear_color", {
|
core.register_chatcommand("wear_color", {
|
||||||
params = "[idx]",
|
params = "[idx]",
|
||||||
description = "Set wear bar color override",
|
description = "Set wear bar color override",
|
||||||
func = function(player_name, param)
|
func = function(player_name, param)
|
||||||
local player = minetest.get_player_by_name(player_name)
|
local player = core.get_player_by_name(player_name)
|
||||||
if not player then return end
|
if not player then return end
|
||||||
|
|
||||||
local wear_color = nil
|
local wear_color = nil
|
||||||
@ -551,7 +551,7 @@ local wear_on_use = function(itemstack, user, pointed_thing)
|
|||||||
local color = math.random(0, 0xFFFFFF)
|
local color = math.random(0, 0xFFFFFF)
|
||||||
local colorstr = string.format("#%06x", color)
|
local colorstr = string.format("#%06x", color)
|
||||||
meta:set_wear_bar_params(colorstr)
|
meta:set_wear_bar_params(colorstr)
|
||||||
minetest.log("action", "[basetool] Wear bar color of "..itemstack:get_name().." changed to "..colorstr)
|
core.log("action", "[basetool] Wear bar color of "..itemstack:get_name().." changed to "..colorstr)
|
||||||
itemstack:set_wear(math.random(0, 65535))
|
itemstack:set_wear(math.random(0, 65535))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
@ -563,7 +563,7 @@ local wear_on_place = function(itemstack, user, pointed_thing)
|
|||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("basetools:random_wear_bar", {
|
core.register_tool("basetools:random_wear_bar", {
|
||||||
description = "Wear Bar Color Test\n" ..
|
description = "Wear Bar Color Test\n" ..
|
||||||
"Punch: Set random color & wear\n" ..
|
"Punch: Set random color & wear\n" ..
|
||||||
"Place: Clear color",
|
"Place: Clear color",
|
||||||
|
@ -6,17 +6,17 @@ local function bench_name2content()
|
|||||||
local t = {}
|
local t = {}
|
||||||
_G._bench_content_ids_data[t] = true
|
_G._bench_content_ids_data[t] = true
|
||||||
|
|
||||||
local get_content_id = minetest.get_content_id
|
local get_content_id = core.get_content_id
|
||||||
|
|
||||||
local start = minetest.get_us_time()
|
local start = core.get_us_time()
|
||||||
|
|
||||||
for i = 1, 200 do
|
for i = 1, 200 do
|
||||||
for name in pairs(minetest.registered_nodes) do
|
for name in pairs(core.registered_nodes) do
|
||||||
t[#t + 1] = get_content_id(name)
|
t[#t + 1] = get_content_id(name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local finish = minetest.get_us_time()
|
local finish = core.get_us_time()
|
||||||
|
|
||||||
return (finish - start) / 1000
|
return (finish - start) / 1000
|
||||||
end
|
end
|
||||||
@ -28,13 +28,13 @@ local function bench_content2name()
|
|||||||
-- Try to estimate the highest content ID that's used
|
-- Try to estimate the highest content ID that's used
|
||||||
-- (not accurate but good enough for this test)
|
-- (not accurate but good enough for this test)
|
||||||
local n = 0
|
local n = 0
|
||||||
for _ in pairs(minetest.registered_nodes) do
|
for _ in pairs(core.registered_nodes) do
|
||||||
n = n + 1
|
n = n + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_name_from_content_id = minetest.get_name_from_content_id
|
local get_name_from_content_id = core.get_name_from_content_id
|
||||||
|
|
||||||
local start = minetest.get_us_time()
|
local start = core.get_us_time()
|
||||||
|
|
||||||
for i = 1, 200 do
|
for i = 1, 200 do
|
||||||
for j = 0, n do
|
for j = 0, n do
|
||||||
@ -42,30 +42,30 @@ local function bench_content2name()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local finish = minetest.get_us_time()
|
local finish = core.get_us_time()
|
||||||
|
|
||||||
return (finish - start) / 1000
|
return (finish - start) / 1000
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("bench_name2content", {
|
core.register_chatcommand("bench_name2content", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Benchmark: Conversion from node names to content IDs",
|
description = "Benchmark: Conversion from node names to content IDs",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
minetest.chat_send_player(name, "Benchmarking minetest.get_content_id. Warming up ...")
|
core.chat_send_player(name, "Benchmarking core.get_content_id. Warming up ...")
|
||||||
bench_name2content()
|
bench_name2content()
|
||||||
minetest.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
core.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
||||||
local time = bench_name2content()
|
local time = bench_name2content()
|
||||||
return true, ("Time: %.2f ms"):format(time)
|
return true, ("Time: %.2f ms"):format(time)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("bench_content2name", {
|
core.register_chatcommand("bench_content2name", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Benchmark: Conversion from content IDs to node names",
|
description = "Benchmark: Conversion from content IDs to node names",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
minetest.chat_send_player(name, "Benchmarking minetest.get_name_from_content_id. Warming up ...")
|
core.chat_send_player(name, "Benchmarking core.get_name_from_content_id. Warming up ...")
|
||||||
bench_content2name()
|
bench_content2name()
|
||||||
minetest.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
core.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
||||||
local time = bench_content2name()
|
local time = bench_content2name()
|
||||||
return true, ("Time: %.2f ms"):format(time)
|
return true, ("Time: %.2f ms"):format(time)
|
||||||
end,
|
end,
|
||||||
@ -87,32 +87,32 @@ local function get_positions_cube(ppos)
|
|||||||
return pos_list
|
return pos_list
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("bench_bulk_set_node", {
|
core.register_chatcommand("bench_bulk_set_node", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Benchmark: Bulk-set 99×99×99 stone nodes",
|
description = "Benchmark: Bulk-set 99×99×99 stone nodes",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local pos_list = get_positions_cube(player:get_pos())
|
local pos_list = get_positions_cube(player:get_pos())
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Benchmarking minetest.bulk_set_node. Warming up ...")
|
core.chat_send_player(name, "Benchmarking core.bulk_set_node. Warming up ...")
|
||||||
|
|
||||||
-- warm up with stone to prevent having different callbacks
|
-- warm up with stone to prevent having different callbacks
|
||||||
-- due to different node topology
|
-- due to different node topology
|
||||||
minetest.bulk_set_node(pos_list, {name = "mapgen_stone"})
|
core.bulk_set_node(pos_list, {name = "mapgen_stone"})
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
core.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
||||||
|
|
||||||
local start_time = minetest.get_us_time()
|
local start_time = core.get_us_time()
|
||||||
for i=1,#pos_list do
|
for i=1,#pos_list do
|
||||||
minetest.set_node(pos_list[i], {name = "mapgen_stone"})
|
core.set_node(pos_list[i], {name = "mapgen_stone"})
|
||||||
end
|
end
|
||||||
local middle_time = minetest.get_us_time()
|
local middle_time = core.get_us_time()
|
||||||
minetest.bulk_set_node(pos_list, {name = "mapgen_stone"})
|
core.bulk_set_node(pos_list, {name = "mapgen_stone"})
|
||||||
local end_time = minetest.get_us_time()
|
local end_time = core.get_us_time()
|
||||||
local msg = string.format("Benchmark results: minetest.set_node loop: %.2f ms; minetest.bulk_set_node: %.2f ms",
|
local msg = string.format("Benchmark results: core.set_node loop: %.2f ms; core.bulk_set_node: %.2f ms",
|
||||||
((middle_time - start_time)) / 1000,
|
((middle_time - start_time)) / 1000,
|
||||||
((end_time - middle_time)) / 1000
|
((end_time - middle_time)) / 1000
|
||||||
)
|
)
|
||||||
@ -120,19 +120,19 @@ minetest.register_chatcommand("bench_bulk_set_node", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("bench_bulk_get_node", {
|
core.register_chatcommand("bench_bulk_get_node", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Benchmark: Bulk-get 99×99×99 nodes",
|
description = "Benchmark: Bulk-get 99×99×99 nodes",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local pos_list = get_positions_cube(player:get_pos())
|
local pos_list = get_positions_cube(player:get_pos())
|
||||||
local function bench()
|
local function bench()
|
||||||
local start_time = minetest.get_us_time()
|
local start_time = core.get_us_time()
|
||||||
for i=1,#pos_list do
|
for i=1,#pos_list do
|
||||||
local n = minetest.get_node(pos_list[i])
|
local n = core.get_node(pos_list[i])
|
||||||
-- Make sure the name lookup is never optimized away.
|
-- Make sure the name lookup is never optimized away.
|
||||||
-- Table allocation might still be omitted. But only accessing
|
-- Table allocation might still be omitted. But only accessing
|
||||||
-- the name of a node is a common pattern anyways.
|
-- the name of a node is a common pattern anyways.
|
||||||
@ -140,47 +140,47 @@ minetest.register_chatcommand("bench_bulk_get_node", {
|
|||||||
error("should never happen")
|
error("should never happen")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return minetest.get_us_time() - start_time
|
return core.get_us_time() - start_time
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Benchmarking minetest.get_node. Warming up ...")
|
core.chat_send_player(name, "Benchmarking core.get_node. Warming up ...")
|
||||||
bench()
|
bench()
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
core.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
||||||
local result_us = bench()
|
local result_us = bench()
|
||||||
|
|
||||||
local msg = string.format("Benchmark results: minetest.get_node loop 1: %.2f ms",
|
local msg = string.format("Benchmark results: core.get_node loop 1: %.2f ms",
|
||||||
result_us / 1000)
|
result_us / 1000)
|
||||||
return true, msg
|
return true, msg
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("bench_bulk_swap_node", {
|
core.register_chatcommand("bench_bulk_swap_node", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Benchmark: Bulk-swap 99×99×99 stone nodes",
|
description = "Benchmark: Bulk-swap 99×99×99 stone nodes",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local pos_list = get_positions_cube(player:get_pos())
|
local pos_list = get_positions_cube(player:get_pos())
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Benchmarking minetest.bulk_swap_node. Warming up ...")
|
core.chat_send_player(name, "Benchmarking core.bulk_swap_node. Warming up ...")
|
||||||
|
|
||||||
-- warm up because first execution otherwise becomes
|
-- warm up because first execution otherwise becomes
|
||||||
-- significantly slower
|
-- significantly slower
|
||||||
minetest.bulk_swap_node(pos_list, {name = "mapgen_stone"})
|
core.bulk_swap_node(pos_list, {name = "mapgen_stone"})
|
||||||
|
|
||||||
minetest.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
core.chat_send_player(name, "Warming up finished, now benchmarking ...")
|
||||||
|
|
||||||
local start_time = minetest.get_us_time()
|
local start_time = core.get_us_time()
|
||||||
for i=1,#pos_list do
|
for i=1,#pos_list do
|
||||||
minetest.swap_node(pos_list[i], {name = "mapgen_stone"})
|
core.swap_node(pos_list[i], {name = "mapgen_stone"})
|
||||||
end
|
end
|
||||||
local middle_time = minetest.get_us_time()
|
local middle_time = core.get_us_time()
|
||||||
minetest.bulk_swap_node(pos_list, {name = "mapgen_stone"})
|
core.bulk_swap_node(pos_list, {name = "mapgen_stone"})
|
||||||
local end_time = minetest.get_us_time()
|
local end_time = core.get_us_time()
|
||||||
local msg = string.format("Benchmark results: minetest.swap_node loop: %.2f ms; minetest.bulk_swap_node: %.2f ms",
|
local msg = string.format("Benchmark results: core.swap_node loop: %.2f ms; core.bulk_swap_node: %.2f ms",
|
||||||
((middle_time - start_time)) / 1000,
|
((middle_time - start_time)) / 1000,
|
||||||
((end_time - middle_time)) / 1000
|
((end_time - middle_time)) / 1000
|
||||||
)
|
)
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
-- The itemstrings are deliberately kept descriptive to keep them easy to
|
-- The itemstrings are deliberately kept descriptive to keep them easy to
|
||||||
-- recognize.
|
-- recognize.
|
||||||
|
|
||||||
minetest.register_node("broken:node_with_empty_definition", {})
|
core.register_node("broken:node_with_empty_definition", {})
|
||||||
minetest.register_tool("broken:tool_with_empty_definition", {})
|
core.register_tool("broken:tool_with_empty_definition", {})
|
||||||
minetest.register_craftitem("broken:craftitem_with_empty_definition", {})
|
core.register_craftitem("broken:craftitem_with_empty_definition", {})
|
||||||
|
|
||||||
minetest.register_entity("broken:entity_with_empty_definition", {})
|
core.register_entity("broken:entity_with_empty_definition", {})
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
-- Bucket: Punch liquid source or flowing liquid to collect it
|
-- Bucket: Punch liquid source or flowing liquid to collect it
|
||||||
|
|
||||||
minetest.register_tool("bucket:bucket", {
|
core.register_tool("bucket:bucket", {
|
||||||
description = "Bucket".."\n"..
|
description = "Bucket".."\n"..
|
||||||
"Picks up liquid nodes",
|
"Picks up liquid nodes",
|
||||||
inventory_image = "bucket.png",
|
inventory_image = "bucket.png",
|
||||||
@ -13,10 +13,10 @@ minetest.register_tool("bucket:bucket", {
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- Check if pointing to a liquid
|
-- Check if pointing to a liquid
|
||||||
local n = minetest.get_node(pointed_thing.under)
|
local n = core.get_node(pointed_thing.under)
|
||||||
local def = minetest.registered_nodes[n.name]
|
local def = core.registered_nodes[n.name]
|
||||||
if def ~= nil and (def.liquidtype == "source" or def.liquidtype == "flowing") then
|
if def ~= nil and (def.liquidtype == "source" or def.liquidtype == "flowing") then
|
||||||
minetest.add_node(pointed_thing.under, {name="air"})
|
core.add_node(pointed_thing.under, {name="air"})
|
||||||
local inv = user:get_inventory()
|
local inv = user:get_inventory()
|
||||||
if inv then
|
if inv then
|
||||||
inv:add_item("main", ItemStack(n.name))
|
inv:add_item("main", ItemStack(n.name))
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
-- Entities that test their callbacks
|
-- Entities that test their callbacks
|
||||||
|
|
||||||
local message = function(msg)
|
local message = function(msg)
|
||||||
minetest.log("action", "[callbacks] "..msg)
|
core.log("action", "[callbacks] "..msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_object_name = function(obj)
|
local get_object_name = function(obj)
|
||||||
@ -18,11 +18,11 @@ local get_object_name = function(obj)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local spos = function(self)
|
local spos = function(self)
|
||||||
return minetest.pos_to_string(vector.round(self.object:get_pos()))
|
return core.pos_to_string(vector.round(self.object:get_pos()))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Callback test entity (all callbacks except on_step)
|
-- Callback test entity (all callbacks except on_step)
|
||||||
minetest.register_entity("callbacks:callback", {
|
core.register_entity("callbacks:callback", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "upright_sprite",
|
visual = "upright_sprite",
|
||||||
textures = { "callbacks_callback_entity.png" },
|
textures = { "callbacks_callback_entity.png" },
|
||||||
@ -69,7 +69,7 @@ minetest.register_entity("callbacks:callback", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Only test on_step callback
|
-- Only test on_step callback
|
||||||
minetest.register_entity("callbacks:callback_step", {
|
core.register_entity("callbacks:callback_step", {
|
||||||
visual = "upright_sprite",
|
visual = "upright_sprite",
|
||||||
textures = { "callbacks_callback_entity_step.png" },
|
textures = { "callbacks_callback_entity_step.png" },
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
@ -78,7 +78,7 @@ minetest.register_entity("callbacks:callback_step", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Callback punch with nil puncher
|
-- Callback punch with nil puncher
|
||||||
minetest.register_entity("callbacks:callback_puncher", {
|
core.register_entity("callbacks:callback_puncher", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "upright_sprite",
|
visual = "upright_sprite",
|
||||||
textures = { "callbacks_callback_entity.png" },
|
textures = { "callbacks_callback_entity.png" },
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dofile(minetest.get_modpath("callbacks").."/items.lua")
|
dofile(core.get_modpath("callbacks").."/items.lua")
|
||||||
dofile(minetest.get_modpath("callbacks").."/nodes.lua")
|
dofile(core.get_modpath("callbacks").."/nodes.lua")
|
||||||
dofile(minetest.get_modpath("callbacks").."/entities.lua")
|
dofile(core.get_modpath("callbacks").."/entities.lua")
|
||||||
dofile(minetest.get_modpath("callbacks").."/players.lua")
|
dofile(core.get_modpath("callbacks").."/players.lua")
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
--
|
--
|
||||||
|
|
||||||
local function print_to_everything(msg)
|
local function print_to_everything(msg)
|
||||||
minetest.log("action", "[callbacks] " .. msg)
|
core.log("action", "[callbacks] " .. msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_craftitem("callbacks:callback_item_1", {
|
core.register_craftitem("callbacks:callback_item_1", {
|
||||||
description = "Callback Test Item 1".."\n"..
|
description = "Callback Test Item 1".."\n"..
|
||||||
"Tests callbacks: on_secondary_use, on_drop, on_pickup, on_use, after_use".."\n"..
|
"Tests callbacks: on_secondary_use, on_drop, on_pickup, on_use, after_use".."\n"..
|
||||||
"Punch/Drop + Sneak: Switch to Callback Test Item 2".."\n"..
|
"Punch/Drop + Sneak: Switch to Callback Test Item 2".."\n"..
|
||||||
@ -34,7 +34,7 @@ minetest.register_craftitem("callbacks:callback_item_1", {
|
|||||||
itemstack:set_name("callbacks:callback_item_2")
|
itemstack:set_name("callbacks:callback_item_2")
|
||||||
end
|
end
|
||||||
|
|
||||||
return minetest.item_drop(itemstack, dropper, pos)
|
return core.item_drop(itemstack, dropper, pos)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_pickup = function(itemstack, picker, pointed_thing, ...)
|
on_pickup = function(itemstack, picker, pointed_thing, ...)
|
||||||
@ -50,7 +50,7 @@ minetest.register_craftitem("callbacks:callback_item_1", {
|
|||||||
-- Pick up one item of the other kind at once
|
-- Pick up one item of the other kind at once
|
||||||
local taken = itemstack:take_item()
|
local taken = itemstack:take_item()
|
||||||
taken:set_name("callbacks:callback_item_2")
|
taken:set_name("callbacks:callback_item_2")
|
||||||
local leftover = minetest.item_pickup(taken, picker, pointed_thing, ...)
|
local leftover = core.item_pickup(taken, picker, pointed_thing, ...)
|
||||||
leftover:set_name("callbacks:callback_item_1")
|
leftover:set_name("callbacks:callback_item_1")
|
||||||
itemstack:add_item(leftover)
|
itemstack:add_item(leftover)
|
||||||
return itemstack
|
return itemstack
|
||||||
@ -59,10 +59,10 @@ minetest.register_craftitem("callbacks:callback_item_1", {
|
|||||||
return
|
return
|
||||||
elseif ctrl.left then
|
elseif ctrl.left then
|
||||||
-- Eat it
|
-- Eat it
|
||||||
return minetest.do_item_eat(2, nil, itemstack, picker, pointed_thing)
|
return core.do_item_eat(2, nil, itemstack, picker, pointed_thing)
|
||||||
else
|
else
|
||||||
-- Normal: pick up everything
|
-- Normal: pick up everything
|
||||||
return minetest.item_pickup(itemstack, picker, pointed_thing, ...)
|
return core.item_pickup(itemstack, picker, pointed_thing, ...)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ minetest.register_craftitem("callbacks:callback_item_1", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("callbacks:callback_item_2", {
|
core.register_craftitem("callbacks:callback_item_2", {
|
||||||
description = "Callback Test Item 2".."\n"..
|
description = "Callback Test Item 2".."\n"..
|
||||||
"Punch to switch to Callback Test Item 1",
|
"Punch to switch to Callback Test Item 1",
|
||||||
inventory_image = "callbacks_callback_item_2.png",
|
inventory_image = "callbacks_callback_item_2.png",
|
||||||
@ -102,7 +102,7 @@ minetest.register_craftitem("callbacks:callback_item_2", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_item_pickup(function(itemstack, picker, pointed_thing, time_from_last_punch, ...)
|
core.register_on_item_pickup(function(itemstack, picker, pointed_thing, time_from_last_punch, ...)
|
||||||
assert(not pointed_thing or pointed_thing.ref:get_luaentity().name == "__builtin:item")
|
assert(not pointed_thing or pointed_thing.ref:get_luaentity().name == "__builtin:item")
|
||||||
|
|
||||||
local item_name = itemstack:get_name()
|
local item_name = itemstack:get_name()
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
local function print_to_everything(msg)
|
local function print_to_everything(msg)
|
||||||
minetest.log("action", "[callbacks] " .. msg)
|
core.log("action", "[callbacks] " .. msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("callbacks:callback_node", {
|
core.register_node("callbacks:callback_node", {
|
||||||
description = "Callback Test Node (construct/destruct/timer)".."\n"..
|
description = "Callback Test Node (construct/destruct/timer)".."\n"..
|
||||||
"Tests callbacks: on_construct, after_place_node, on_destruct, after_destruct, after_dig_node, on_timer",
|
"Tests callbacks: on_construct, after_place_node, on_destruct, after_destruct, after_dig_node, on_timer",
|
||||||
tiles = {"callbacks_callback_node.png"},
|
tiles = {"callbacks_callback_node.png"},
|
||||||
groups = {callback_test=1, dig_immediate=3},
|
groups = {callback_test=1, dig_immediate=3},
|
||||||
-- This was known to cause a bug in minetest.item_place_node() when used
|
-- This was known to cause a bug in core.item_place_node() when used
|
||||||
-- via minetest.place_node(), causing a placer with no position
|
-- via core.place_node(), causing a placer with no position
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
drop = "",
|
drop = "",
|
||||||
|
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
print_to_everything("callbacks:callback_node:on_construct("..minetest.pos_to_string(pos)..")")
|
print_to_everything("callbacks:callback_node:on_construct("..core.pos_to_string(pos)..")")
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("mine", "test")
|
meta:set_string("mine", "test")
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = core.get_node_timer(pos)
|
||||||
timer:start(4, 3)
|
timer:start(4, 3)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
after_place_node = function(pos, placer)
|
after_place_node = function(pos, placer)
|
||||||
print_to_everything("callbacks:callback_node:after_place_node("..minetest.pos_to_string(pos)..")")
|
print_to_everything("callbacks:callback_node:after_place_node("..core.pos_to_string(pos)..")")
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
if meta:get_string("mine") == "test" then
|
if meta:get_string("mine") == "test" then
|
||||||
print_to_everything("correct metadata found")
|
print_to_everything("correct metadata found")
|
||||||
else
|
else
|
||||||
@ -32,15 +32,15 @@ minetest.register_node("callbacks:callback_node", {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
on_destruct = function(pos)
|
on_destruct = function(pos)
|
||||||
print_to_everything("callbacks:callback_node:on_destruct("..minetest.pos_to_string(pos)..")")
|
print_to_everything("callbacks:callback_node:on_destruct("..core.pos_to_string(pos)..")")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
after_destruct = function(pos)
|
after_destruct = function(pos)
|
||||||
print_to_everything("callbacks:callback_node:after_destruct("..minetest.pos_to_string(pos)..")")
|
print_to_everything("callbacks:callback_node:after_destruct("..core.pos_to_string(pos)..")")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||||
print_to_everything("callbacks:callback_node:after_dig_node("..minetest.pos_to_string(pos)..")")
|
print_to_everything("callbacks:callback_node:after_dig_node("..core.pos_to_string(pos)..")")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
local message = function(msg)
|
local message = function(msg)
|
||||||
minetest.log("action", "[callbacks] "..msg)
|
core.log("action", "[callbacks] "..msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
|
core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
local function print_to_everything(msg)
|
local function print_to_everything(msg)
|
||||||
minetest.log("action", "[chest] " .. msg)
|
core.log("action", "[chest] " .. msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("chest:chest", {
|
core.register_node("chest:chest", {
|
||||||
description = "Chest" .. "\n" ..
|
description = "Chest" .. "\n" ..
|
||||||
"32 inventory slots",
|
"32 inventory slots",
|
||||||
tiles ={"chest_chest.png^[sheet:2x2:0,0", "chest_chest.png^[sheet:2x2:0,0",
|
tiles ={"chest_chest.png^[sheet:2x2:0,0", "chest_chest.png^[sheet:2x2:0,0",
|
||||||
@ -13,7 +13,7 @@ minetest.register_node("chest:chest", {
|
|||||||
groups = {dig_immediate=2,choppy=3,meta_is_privatizable=1},
|
groups = {dig_immediate=2,choppy=3,meta_is_privatizable=1},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("formspec",
|
meta:set_string("formspec",
|
||||||
"size[8,9]"..
|
"size[8,9]"..
|
||||||
"list[current_name;main;0,0;8,4;]"..
|
"list[current_name;main;0,0;8,4;]"..
|
||||||
@ -24,7 +24,7 @@ minetest.register_node("chest:chest", {
|
|||||||
inv:set_size("main", 8*4)
|
inv:set_size("main", 8*4)
|
||||||
end,
|
end,
|
||||||
can_dig = function(pos,player)
|
can_dig = function(pos,player)
|
||||||
local meta = minetest.get_meta(pos);
|
local meta = core.get_meta(pos);
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
return inv:is_empty("main")
|
return inv:is_empty("main")
|
||||||
end,
|
end,
|
||||||
|
@ -2,12 +2,12 @@ local ALLOW_PUT_MAX = 1
|
|||||||
local ALLOW_TAKE_MAX = 4
|
local ALLOW_TAKE_MAX = 4
|
||||||
|
|
||||||
local function print_to_everything(msg)
|
local function print_to_everything(msg)
|
||||||
minetest.log("action", "[chest] " .. msg)
|
core.log("action", "[chest] " .. msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Create a detached inventory
|
-- Create a detached inventory
|
||||||
local inv = minetest.create_detached_inventory("detached_inventory", {
|
local inv = core.create_detached_inventory("detached_inventory", {
|
||||||
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
||||||
print_to_everything("Detached inventory: "..player:get_player_name().." triggered allow_move")
|
print_to_everything("Detached inventory: "..player:get_player_name().." triggered allow_move")
|
||||||
return count -- Allow all
|
return count -- Allow all
|
||||||
@ -34,7 +34,7 @@ inv:set_size("main", 8*3)
|
|||||||
|
|
||||||
|
|
||||||
-- Add a special chest to grant access to this inventory
|
-- Add a special chest to grant access to this inventory
|
||||||
minetest.register_node("chest:detached_chest", {
|
core.register_node("chest:detached_chest", {
|
||||||
description = "Detached Chest" .. "\n" ..
|
description = "Detached Chest" .. "\n" ..
|
||||||
"Grants access to a shared detached inventory" .."\n" ..
|
"Grants access to a shared detached inventory" .."\n" ..
|
||||||
"Max. item put count: "..ALLOW_PUT_MAX .."\n"..
|
"Max. item put count: "..ALLOW_PUT_MAX .."\n"..
|
||||||
@ -46,7 +46,7 @@ minetest.register_node("chest:detached_chest", {
|
|||||||
groups = {dig_immediate=2,choppy=3,meta_is_privatizable=1},
|
groups = {dig_immediate=2,choppy=3,meta_is_privatizable=1},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("formspec",
|
meta:set_string("formspec",
|
||||||
"size[8,9]"..
|
"size[8,9]"..
|
||||||
"list[detached:detached_inventory;main;0,0;8,3;0]"..
|
"list[detached:detached_inventory;main;0,0;8,3;0]"..
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dofile(minetest.get_modpath("chest").."/chest.lua")
|
dofile(core.get_modpath("chest").."/chest.lua")
|
||||||
dofile(minetest.get_modpath("chest").."/detached.lua")
|
dofile(core.get_modpath("chest").."/detached.lua")
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
local F = minetest.formspec_escape
|
local F = core.formspec_escape
|
||||||
local S = minetest.get_translator("chest_of_everything")
|
local S = core.get_translator("chest_of_everything")
|
||||||
|
|
||||||
local detached_inventories = {}
|
local detached_inventories = {}
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ local all_items_list -- cached list of all items
|
|||||||
-- Create detached inventories
|
-- Create detached inventories
|
||||||
local function add_detached_inventories(player)
|
local function add_detached_inventories(player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local inv_items = minetest.create_detached_inventory("chest_of_everything_items_"..name, {
|
local inv_items = core.create_detached_inventory("chest_of_everything_items_"..name, {
|
||||||
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
||||||
return 0
|
return 0
|
||||||
end,
|
end,
|
||||||
@ -33,7 +33,7 @@ local function add_detached_inventories(player)
|
|||||||
return -1
|
return -1
|
||||||
end,
|
end,
|
||||||
}, name)
|
}, name)
|
||||||
local inv_trash = minetest.create_detached_inventory("chest_of_everything_trash_"..name, {
|
local inv_trash = core.create_detached_inventory("chest_of_everything_trash_"..name, {
|
||||||
allow_take = function(inv, listname, index, stack, player)
|
allow_take = function(inv, listname, index, stack, player)
|
||||||
return 0
|
return 0
|
||||||
end,
|
end,
|
||||||
@ -58,14 +58,14 @@ local sort_items_by_type = function(item1, item2)
|
|||||||
* Other items
|
* Other items
|
||||||
* Items from the 'broken' mod
|
* Items from the 'broken' mod
|
||||||
* Dummy items ]]
|
* Dummy items ]]
|
||||||
local def1 = minetest.registered_items[item1]
|
local def1 = core.registered_items[item1]
|
||||||
local def2 = minetest.registered_items[item2]
|
local def2 = core.registered_items[item2]
|
||||||
local tool1 = def1.type == "tool"
|
local tool1 = def1.type == "tool"
|
||||||
local tool2 = def2.type == "tool"
|
local tool2 = def2.type == "tool"
|
||||||
local testtool1 = minetest.get_item_group(item1, "testtool") == 1
|
local testtool1 = core.get_item_group(item1, "testtool") == 1
|
||||||
local testtool2 = minetest.get_item_group(item2, "testtool") == 1
|
local testtool2 = core.get_item_group(item2, "testtool") == 1
|
||||||
local dummy1 = minetest.get_item_group(item1, "dummy") == 1
|
local dummy1 = core.get_item_group(item1, "dummy") == 1
|
||||||
local dummy2 = minetest.get_item_group(item2, "dummy") == 1
|
local dummy2 = core.get_item_group(item2, "dummy") == 1
|
||||||
local broken1 = def1.mod_origin == "broken"
|
local broken1 = def1.mod_origin == "broken"
|
||||||
local broken2 = def2.mod_origin == "broken"
|
local broken2 = def2.mod_origin == "broken"
|
||||||
local craftitem1 = def1.type == "craft"
|
local craftitem1 = def1.type == "craft"
|
||||||
@ -113,7 +113,7 @@ local collect_items = function(filter, lang_code)
|
|||||||
filter = string.trim(filter)
|
filter = string.trim(filter)
|
||||||
filter = string.lower(filter) -- to make sure the search is case-insensitive
|
filter = string.lower(filter) -- to make sure the search is case-insensitive
|
||||||
end
|
end
|
||||||
for itemstring, def in pairs(minetest.registered_items) do
|
for itemstring, def in pairs(core.registered_items) do
|
||||||
if itemstring ~= "" and itemstring ~= "unknown" and itemstring ~= "ignore" then
|
if itemstring ~= "" and itemstring ~= "unknown" and itemstring ~= "ignore" then
|
||||||
if filter and lang_code then
|
if filter and lang_code then
|
||||||
local desc = ItemStack(itemstring):get_description()
|
local desc = ItemStack(itemstring):get_description()
|
||||||
@ -124,7 +124,7 @@ local collect_items = function(filter, lang_code)
|
|||||||
matches = string.match(ldesc, filter) ~= nil
|
matches = string.match(ldesc, filter) ~= nil
|
||||||
-- Second, try to match translated description
|
-- Second, try to match translated description
|
||||||
if not matches then
|
if not matches then
|
||||||
local tdesc = minetest.get_translated_string(lang_code, desc)
|
local tdesc = core.get_translated_string(lang_code, desc)
|
||||||
if tdesc ~= "" then
|
if tdesc ~= "" then
|
||||||
tdesc = string.lower(tdesc)
|
tdesc = string.lower(tdesc)
|
||||||
matches = string.match(tdesc, filter) ~= nil
|
matches = string.match(tdesc, filter) ~= nil
|
||||||
@ -134,7 +134,7 @@ local collect_items = function(filter, lang_code)
|
|||||||
if not matches then
|
if not matches then
|
||||||
local sdesc = ItemStack(itemstring):get_short_description()
|
local sdesc = ItemStack(itemstring):get_short_description()
|
||||||
if sdesc ~= "" then
|
if sdesc ~= "" then
|
||||||
sdesc = minetest.get_translated_string(lang_code, sdesc)
|
sdesc = core.get_translated_string(lang_code, sdesc)
|
||||||
sdesc = string.lower(sdesc)
|
sdesc = string.lower(sdesc)
|
||||||
matches = string.match(sdesc, filter) ~= nil
|
matches = string.match(sdesc, filter) ~= nil
|
||||||
end
|
end
|
||||||
@ -172,7 +172,7 @@ local function update_inventory(name)
|
|||||||
if search == "" then
|
if search == "" then
|
||||||
items = all_items_list
|
items = all_items_list
|
||||||
else
|
else
|
||||||
local lang_code = minetest.get_player_information(name).lang_code
|
local lang_code = core.get_player_information(name).lang_code
|
||||||
items = collect_items(search, lang_code)
|
items = collect_items(search, lang_code)
|
||||||
end
|
end
|
||||||
local max_page = math.ceil(#items / SLOTS)
|
local max_page = math.ceil(#items / SLOTS)
|
||||||
@ -197,7 +197,7 @@ local function get_formspec(page, name)
|
|||||||
if not name then
|
if not name then
|
||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local playerinvsize = player:get_inventory():get_size("main")
|
local playerinvsize = player:get_inventory():get_size("main")
|
||||||
local hotbarsize = player:hud_get_hotbar_itemcount()
|
local hotbarsize = player:hud_get_hotbar_itemcount()
|
||||||
local pinv_w, pinv_h, pinv_x
|
local pinv_w, pinv_h, pinv_x
|
||||||
@ -250,11 +250,11 @@ end
|
|||||||
local show_formspec = function(name)
|
local show_formspec = function(name)
|
||||||
local page = current_pages[name]
|
local page = current_pages[name]
|
||||||
local form = get_formspec(page, name)
|
local form = get_formspec(page, name)
|
||||||
minetest.show_formspec(name, "chest_of_everything:getitem", form)
|
core.show_formspec(name, "chest_of_everything:getitem", form)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname ~= "chest_of_everything:getitem" then
|
if formname ~= "chest_of_everything:getitem" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -296,7 +296,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_tool("chest_of_everything:bag", {
|
core.register_tool("chest_of_everything:bag", {
|
||||||
description = S("Bag of Everything") .. "\n" ..
|
description = S("Bag of Everything") .. "\n" ..
|
||||||
S("Grants access to all items"),
|
S("Grants access to all items"),
|
||||||
inventory_image = "chest_of_everything_bag.png",
|
inventory_image = "chest_of_everything_bag.png",
|
||||||
@ -310,7 +310,7 @@ minetest.register_tool("chest_of_everything:bag", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("chest_of_everything:chest", {
|
core.register_node("chest_of_everything:chest", {
|
||||||
description = S("Chest of Everything") .. "\n" ..
|
description = S("Chest of Everything") .. "\n" ..
|
||||||
S("Grants access to all items"),
|
S("Grants access to all items"),
|
||||||
tiles ={"chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:0,0",
|
tiles ={"chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:0,0",
|
||||||
@ -320,7 +320,7 @@ minetest.register_node("chest_of_everything:chest", {
|
|||||||
groups = { dig_immediate=2, choppy=3 },
|
groups = { dig_immediate=2, choppy=3 },
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", S("Chest of Everything"))
|
meta:set_string("infotext", S("Chest of Everything"))
|
||||||
end,
|
end,
|
||||||
on_rightclick = function(pos, node, clicker)
|
on_rightclick = function(pos, node, clicker)
|
||||||
@ -332,11 +332,11 @@ minetest.register_node("chest_of_everything:chest", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_mods_loaded(function()
|
core.register_on_mods_loaded(function()
|
||||||
all_items_list = collect_items()
|
all_items_list = collect_items()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
core.register_on_joinplayer(function(player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
current_searches[name] = ""
|
current_searches[name] = ""
|
||||||
current_pages[name] = 1
|
current_pages[name] = 1
|
||||||
@ -345,7 +345,7 @@ minetest.register_on_joinplayer(function(player)
|
|||||||
update_inventory(name)
|
update_inventory(name)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
core.register_on_leaveplayer(function(player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
current_pages[name] = nil
|
current_pages[name] = nil
|
||||||
current_max_pages[name] = nil
|
current_max_pages[name] = nil
|
||||||
|
@ -20,7 +20,7 @@ for g=1, #groups do
|
|||||||
elseif l==2 then
|
elseif l==2 then
|
||||||
tile = tile .. "^[colorize:#FF0000:127"
|
tile = tile .. "^[colorize:#FF0000:127"
|
||||||
end
|
end
|
||||||
minetest.register_node("dignodes:"..gr.."_"..r.."_"..l, {
|
core.register_node("dignodes:"..gr.."_"..r.."_"..l, {
|
||||||
description = d,
|
description = d,
|
||||||
tiles = { tile },
|
tiles = { tile },
|
||||||
groups = { [gr] = r, level = l },
|
groups = { [gr] = r, level = l },
|
||||||
@ -31,7 +31,7 @@ for g=1, #groups do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Node without any digging groups
|
-- Node without any digging groups
|
||||||
minetest.register_node("dignodes:none", {
|
core.register_node("dignodes:none", {
|
||||||
description = "Dig Test Node: groupless".."\n"..
|
description = "Dig Test Node: groupless".."\n"..
|
||||||
"Can't be dug by normal digging tools".."\n"..
|
"Can't be dug by normal digging tools".."\n"..
|
||||||
"(use the Remover tool to remove)",
|
"(use the Remover tool to remove)",
|
||||||
|
@ -12,21 +12,21 @@ local give_initial_stuff = function(player)
|
|||||||
give_if_not_gotten_already(inv, "main", "bucket:bucket")
|
give_if_not_gotten_already(inv, "main", "bucket:bucket")
|
||||||
give_if_not_gotten_already(inv, "main", "testnodes:light14")
|
give_if_not_gotten_already(inv, "main", "testnodes:light14")
|
||||||
give_if_not_gotten_already(inv, "main", "chest_of_everything:bag")
|
give_if_not_gotten_already(inv, "main", "chest_of_everything:bag")
|
||||||
minetest.log("action", "[give_initial_stuff] Giving initial stuff to "..player:get_player_name())
|
core.log("action", "[give_initial_stuff] Giving initial stuff to "..player:get_player_name())
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_newplayer(function(player)
|
core.register_on_newplayer(function(player)
|
||||||
if minetest.settings:get_bool("give_initial_stuff", true) then
|
if core.settings:get_bool("give_initial_stuff", true) then
|
||||||
give_initial_stuff(player)
|
give_initial_stuff(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("stuff", {
|
core.register_chatcommand("stuff", {
|
||||||
params = "",
|
params = "",
|
||||||
privs = { give = true },
|
privs = { give = true },
|
||||||
description = "Give yourself initial items",
|
description = "Give yourself initial items",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player or not player:is_player() then
|
if not player or not player:is_player() then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
local function register_entity(name, textures, backface_culling)
|
local function register_entity(name, textures, backface_culling)
|
||||||
minetest.register_entity("gltf:" .. name, {
|
core.register_entity("gltf:" .. name, {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "gltf_" .. name .. ".gltf",
|
mesh = "gltf_" .. name .. ".gltf",
|
||||||
@ -18,7 +18,7 @@ do
|
|||||||
register_entity("blender_cube", cube_textures)
|
register_entity("blender_cube", cube_textures)
|
||||||
register_entity("blender_cube_scaled", cube_textures)
|
register_entity("blender_cube_scaled", cube_textures)
|
||||||
register_entity("blender_cube_matrix_transform", cube_textures)
|
register_entity("blender_cube_matrix_transform", cube_textures)
|
||||||
minetest.register_entity("gltf:blender_cube_glb", {
|
core.register_entity("gltf:blender_cube_glb", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "gltf_blender_cube.glb",
|
mesh = "gltf_blender_cube.glb",
|
||||||
@ -31,7 +31,7 @@ end
|
|||||||
register_entity("snow_man", {"gltf_snow_man.png"})
|
register_entity("snow_man", {"gltf_snow_man.png"})
|
||||||
register_entity("spider", {"gltf_spider.png"})
|
register_entity("spider", {"gltf_spider.png"})
|
||||||
|
|
||||||
minetest.register_entity("gltf:spider_animated", {
|
core.register_entity("gltf:spider_animated", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "gltf_spider_animated.gltf",
|
mesh = "gltf_spider_animated.gltf",
|
||||||
@ -42,7 +42,7 @@ minetest.register_entity("gltf:spider_animated", {
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("gltf:simple_skin", {
|
core.register_entity("gltf:simple_skin", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
visual_size = vector.new(5, 5, 5),
|
visual_size = vector.new(5, 5, 5),
|
||||||
@ -57,7 +57,7 @@ minetest.register_entity("gltf:simple_skin", {
|
|||||||
|
|
||||||
-- The claws rendering incorrectly from one side is expected behavior:
|
-- The claws rendering incorrectly from one side is expected behavior:
|
||||||
-- They use an unsupported double-sided material.
|
-- They use an unsupported double-sided material.
|
||||||
minetest.register_entity("gltf:frog", {
|
core.register_entity("gltf:frog", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "gltf_frog.gltf",
|
mesh = "gltf_frog.gltf",
|
||||||
@ -70,14 +70,14 @@ minetest.register_entity("gltf:frog", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("gltf:frog", {
|
core.register_node("gltf:frog", {
|
||||||
description = "glTF frog, but it's a node",
|
description = "glTF frog, but it's a node",
|
||||||
tiles = {{name = "gltf_frog.png", backface_culling = false}},
|
tiles = {{name = "gltf_frog.png", backface_culling = false}},
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "gltf_frog.gltf",
|
mesh = "gltf_frog.gltf",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("show_model", {
|
core.register_chatcommand("show_model", {
|
||||||
params = "<model> [textures]",
|
params = "<model> [textures]",
|
||||||
description = "Show a model (defaults to gltf models, for example '/show_model frog').",
|
description = "Show a model (defaults to gltf models, for example '/show_model frog').",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
@ -86,7 +86,7 @@ minetest.register_chatcommand("show_model", {
|
|||||||
model = "gltf_" .. param .. ".gltf"
|
model = "gltf_" .. param .. ".gltf"
|
||||||
textures = "gltf_" .. param .. ".png"
|
textures = "gltf_" .. param .. ".png"
|
||||||
end
|
end
|
||||||
minetest.show_formspec(name, "gltf:model", table.concat{
|
core.show_formspec(name, "gltf:model", table.concat{
|
||||||
"formspec_version[7]",
|
"formspec_version[7]",
|
||||||
"size[10,10]",
|
"size[10,10]",
|
||||||
"model[0,0;10,10;model;", model, ";", textures, ";0,0;true;true;0,0;0]",
|
"model[0,0;10,10;model;", model, ";", textures, ";0,0;true;true;0,0;0]",
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
minetest.register_on_joinplayer(function(player)
|
core.register_on_joinplayer(function(player)
|
||||||
local cb = function(player)
|
local cb = function(player)
|
||||||
if not player or not player:is_player() then
|
if not player or not player:is_player() then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(player:get_player_name(), "This is the \"Development Test\" [devtest], meant only for testing and development.")
|
core.chat_send_player(player:get_player_name(), "This is the \"Development Test\" [devtest], meant only for testing and development.")
|
||||||
end
|
end
|
||||||
minetest.after(2.0, cb, player)
|
core.after(2.0, cb, player)
|
||||||
end)
|
end)
|
||||||
|
@ -63,11 +63,11 @@ local function dump_lighting(lighting)
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("set_lighting", {
|
core.register_chatcommand("set_lighting", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Tune lighting parameters",
|
description = "Tune lighting parameters",
|
||||||
func = function(player_name, param)
|
func = function(player_name, param)
|
||||||
local player = minetest.get_player_by_name(player_name);
|
local player = core.get_player_by_name(player_name);
|
||||||
if not player then return end
|
if not player then return end
|
||||||
|
|
||||||
local lighting = player:get_lighting()
|
local lighting = player:get_lighting()
|
||||||
@ -107,14 +107,14 @@ minetest.register_chatcommand("set_lighting", {
|
|||||||
}
|
}
|
||||||
table.insert_all(form, content)
|
table.insert_all(form, content)
|
||||||
|
|
||||||
minetest.show_formspec(player_name, "lighting", table.concat(form))
|
core.show_formspec(player_name, "lighting", table.concat(form))
|
||||||
local debug_value = dump_lighting(lighting)
|
local debug_value = dump_lighting(lighting)
|
||||||
local debug_ui = player:hud_add({type="text", position={x=0.1, y=0.3}, scale={x=1,y=1}, alignment = {x=1, y=1}, text=debug_value, number=0xFFFFFF})
|
local debug_ui = player:hud_add({type="text", position={x=0.1, y=0.3}, scale={x=1,y=1}, alignment = {x=1, y=1}, text=debug_value, number=0xFFFFFF})
|
||||||
player:get_meta():set_int("lighting_hud", debug_ui)
|
player:get_meta():set_int("lighting_hud", debug_ui)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname ~= "lighting" then return end
|
if formname ~= "lighting" then return end
|
||||||
|
|
||||||
if not player then return end
|
if not player then return end
|
||||||
@ -137,7 +137,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
for _,v in ipairs(parameters) do
|
for _,v in ipairs(parameters) do
|
||||||
|
|
||||||
if fields[section.n.."."..v.n] then
|
if fields[section.n.."."..v.n] then
|
||||||
local event = minetest.explode_scrollbar_event(fields[section.n.."."..v.n])
|
local event = core.explode_scrollbar_event(fields[section.n.."."..v.n])
|
||||||
if event.type == "CHG" then
|
if event.type == "CHG" then
|
||||||
local value = v.min + (v.max - v.min) * (event.value / 1000);
|
local value = v.min + (v.max - v.min) * (event.value / 1000);
|
||||||
if v.type == "log2" then
|
if v.type == "log2" then
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
local modname = minetest.get_current_modname()
|
local modname = core.get_current_modname()
|
||||||
local prefix = "["..modname.."] "
|
local prefix = "["..modname.."] "
|
||||||
|
|
||||||
-- Startup info
|
-- Startup info
|
||||||
minetest.log("action", prefix.."modname="..dump(modname))
|
core.log("action", prefix.."modname="..dump(modname))
|
||||||
minetest.log("action", prefix.."modpath="..dump(minetest.get_modpath(modname)))
|
core.log("action", prefix.."modpath="..dump(core.get_modpath(modname)))
|
||||||
minetest.log("action", prefix.."worldpath="..dump(minetest.get_worldpath()))
|
core.log("action", prefix.."worldpath="..dump(core.get_worldpath()))
|
||||||
|
|
||||||
-- Callback info
|
-- Callback info
|
||||||
minetest.register_on_mods_loaded(function()
|
core.register_on_mods_loaded(function()
|
||||||
minetest.log("action", prefix.."Callback: on_mods_loaded()")
|
core.log("action", prefix.."Callback: on_mods_loaded()")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_chatcommand(function(name, command, params)
|
core.register_on_chatcommand(function(name, command, params)
|
||||||
minetest.log("action", prefix.."Caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'")
|
core.log("action", prefix.."Caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'")
|
||||||
end)
|
end)
|
||||||
|
@ -4,46 +4,46 @@
|
|||||||
|
|
||||||
-- ESSENTIAL node aliases
|
-- ESSENTIAL node aliases
|
||||||
-- Basic nodes
|
-- Basic nodes
|
||||||
minetest.register_alias("mapgen_stone", "basenodes:stone")
|
core.register_alias("mapgen_stone", "basenodes:stone")
|
||||||
minetest.register_alias("mapgen_water_source", "basenodes:water_source")
|
core.register_alias("mapgen_water_source", "basenodes:water_source")
|
||||||
minetest.register_alias("mapgen_river_water_source", "basenodes:river_water_source")
|
core.register_alias("mapgen_river_water_source", "basenodes:river_water_source")
|
||||||
|
|
||||||
-- Additional essential aliases for v6
|
-- Additional essential aliases for v6
|
||||||
minetest.register_alias("mapgen_lava_source", "basenodes:lava_source")
|
core.register_alias("mapgen_lava_source", "basenodes:lava_source")
|
||||||
minetest.register_alias("mapgen_dirt", "basenodes:dirt")
|
core.register_alias("mapgen_dirt", "basenodes:dirt")
|
||||||
minetest.register_alias("mapgen_dirt_with_grass", "basenodes:dirt_with_grass")
|
core.register_alias("mapgen_dirt_with_grass", "basenodes:dirt_with_grass")
|
||||||
minetest.register_alias("mapgen_sand", "basenodes:sand")
|
core.register_alias("mapgen_sand", "basenodes:sand")
|
||||||
minetest.register_alias("mapgen_tree", "basenodes:tree")
|
core.register_alias("mapgen_tree", "basenodes:tree")
|
||||||
minetest.register_alias("mapgen_leaves", "basenodes:leaves")
|
core.register_alias("mapgen_leaves", "basenodes:leaves")
|
||||||
minetest.register_alias("mapgen_apple", "basenodes:apple")
|
core.register_alias("mapgen_apple", "basenodes:apple")
|
||||||
|
|
||||||
-- Essential alias for dungeons
|
-- Essential alias for dungeons
|
||||||
minetest.register_alias("mapgen_cobble", "basenodes:cobble")
|
core.register_alias("mapgen_cobble", "basenodes:cobble")
|
||||||
|
|
||||||
-- Optional aliases for v6 (they all have fallback values in the engine)
|
-- Optional aliases for v6 (they all have fallback values in the engine)
|
||||||
if minetest.settings:get_bool("devtest_v6_mapgen_aliases", false) then
|
if core.settings:get_bool("devtest_v6_mapgen_aliases", false) then
|
||||||
minetest.register_alias("mapgen_gravel", "basenodes:gravel")
|
core.register_alias("mapgen_gravel", "basenodes:gravel")
|
||||||
minetest.register_alias("mapgen_desert_stone", "basenodes:desert_stone")
|
core.register_alias("mapgen_desert_stone", "basenodes:desert_stone")
|
||||||
minetest.register_alias("mapgen_desert_sand", "basenodes:desert_sand")
|
core.register_alias("mapgen_desert_sand", "basenodes:desert_sand")
|
||||||
minetest.register_alias("mapgen_dirt_with_snow", "basenodes:dirt_with_snow")
|
core.register_alias("mapgen_dirt_with_snow", "basenodes:dirt_with_snow")
|
||||||
minetest.register_alias("mapgen_snowblock", "basenodes:snowblock")
|
core.register_alias("mapgen_snowblock", "basenodes:snowblock")
|
||||||
minetest.register_alias("mapgen_snow", "basenodes:snow")
|
core.register_alias("mapgen_snow", "basenodes:snow")
|
||||||
minetest.register_alias("mapgen_ice", "basenodes:ice")
|
core.register_alias("mapgen_ice", "basenodes:ice")
|
||||||
minetest.register_alias("mapgen_junglegrass", "basenodes:junglegrass")
|
core.register_alias("mapgen_junglegrass", "basenodes:junglegrass")
|
||||||
minetest.register_alias("mapgen_jungletree", "basenodes:jungletree")
|
core.register_alias("mapgen_jungletree", "basenodes:jungletree")
|
||||||
minetest.register_alias("mapgen_jungleleaves", "basenodes:jungleleaves")
|
core.register_alias("mapgen_jungleleaves", "basenodes:jungleleaves")
|
||||||
minetest.register_alias("mapgen_pine_tree", "basenodes:pine_tree")
|
core.register_alias("mapgen_pine_tree", "basenodes:pine_tree")
|
||||||
minetest.register_alias("mapgen_pine_needles", "basenodes:pine_needles")
|
core.register_alias("mapgen_pine_needles", "basenodes:pine_needles")
|
||||||
end
|
end
|
||||||
-- Optional alias for mossycobble (should fall back to cobble)
|
-- Optional alias for mossycobble (should fall back to cobble)
|
||||||
if minetest.settings:get_bool("devtest_dungeon_mossycobble", false) then
|
if core.settings:get_bool("devtest_dungeon_mossycobble", false) then
|
||||||
minetest.register_alias("mapgen_mossycobble", "basenodes:mossycobble")
|
core.register_alias("mapgen_mossycobble", "basenodes:mossycobble")
|
||||||
end
|
end
|
||||||
-- Optional aliases for dungeon stairs (should fall back to full nodes)
|
-- Optional aliases for dungeon stairs (should fall back to full nodes)
|
||||||
if minetest.settings:get_bool("devtest_dungeon_stairs", false) then
|
if core.settings:get_bool("devtest_dungeon_stairs", false) then
|
||||||
minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
|
core.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
|
||||||
if minetest.settings:get_bool("devtest_v6_mapgen_aliases", false) then
|
if core.settings:get_bool("devtest_v6_mapgen_aliases", false) then
|
||||||
minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone")
|
core.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -51,11 +51,11 @@ end
|
|||||||
-- Register biomes for biome API
|
-- Register biomes for biome API
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.clear_registered_biomes()
|
core.clear_registered_biomes()
|
||||||
minetest.clear_registered_decorations()
|
core.clear_registered_decorations()
|
||||||
|
|
||||||
if minetest.settings:get_bool("devtest_register_biomes", true) then
|
if core.settings:get_bool("devtest_register_biomes", true) then
|
||||||
minetest.register_biome({
|
core.register_biome({
|
||||||
name = "mapgen:grassland",
|
name = "mapgen:grassland",
|
||||||
node_top = "basenodes:dirt_with_grass",
|
node_top = "basenodes:dirt_with_grass",
|
||||||
depth_top = 1,
|
depth_top = 1,
|
||||||
@ -72,7 +72,7 @@ if minetest.settings:get_bool("devtest_register_biomes", true) then
|
|||||||
humidity_point = 50,
|
humidity_point = 50,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_biome({
|
core.register_biome({
|
||||||
name = "mapgen:grassland_ocean",
|
name = "mapgen:grassland_ocean",
|
||||||
node_top = "basenodes:sand",
|
node_top = "basenodes:sand",
|
||||||
depth_top = 1,
|
depth_top = 1,
|
||||||
@ -90,7 +90,7 @@ if minetest.settings:get_bool("devtest_register_biomes", true) then
|
|||||||
humidity_point = 50,
|
humidity_point = 50,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_biome({
|
core.register_biome({
|
||||||
name = "mapgen:grassland_under",
|
name = "mapgen:grassland_under",
|
||||||
node_cave_liquid = {"basenodes:water_source", "basenodes:lava_source"},
|
node_cave_liquid = {"basenodes:water_source", "basenodes:lava_source"},
|
||||||
node_dungeon = "basenodes:cobble",
|
node_dungeon = "basenodes:cobble",
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
--
|
--
|
||||||
-- Mod channels experimental handlers
|
-- Mod channels experimental handlers
|
||||||
--
|
--
|
||||||
local mod_channel = minetest.mod_channel_join("experimental_preview")
|
local mod_channel = core.mod_channel_join("experimental_preview")
|
||||||
|
|
||||||
minetest.register_on_modchannel_message(function(channel, sender, message)
|
core.register_on_modchannel_message(function(channel, sender, message)
|
||||||
minetest.log("action", "[modchannels] Server received message `" .. message
|
core.log("action", "[modchannels] Server received message `" .. message
|
||||||
.. "` on channel `" .. channel .. "` from sender `" .. sender .. "`")
|
.. "` on channel `" .. channel .. "` from sender `" .. sender .. "`")
|
||||||
|
|
||||||
if mod_channel:is_writeable() then
|
if mod_channel:is_writeable() then
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
local walk_speed = 2
|
local walk_speed = 2
|
||||||
local walk_distance = 10
|
local walk_distance = 10
|
||||||
|
|
||||||
minetest.register_entity("soundstuff:bigfoot", {
|
core.register_entity("soundstuff:bigfoot", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
physical = false,
|
physical = false,
|
||||||
collisionbox = {-1, -1, -1, 1, 1, 1},
|
collisionbox = {-1, -1, -1, 1, 1, 1},
|
||||||
@ -31,18 +31,18 @@ minetest.register_entity("soundstuff:bigfoot", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("spawn_bigfoot", {
|
core.register_chatcommand("spawn_bigfoot", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Spawn a big foot object that makes footstep sounds",
|
description = "Spawn a big foot object that makes footstep sounds",
|
||||||
func = function(name, _param)
|
func = function(name, _param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local pos = player:get_pos()
|
local pos = player:get_pos()
|
||||||
pos.y = pos.y + player:get_properties().collisionbox[2]
|
pos.y = pos.y + player:get_properties().collisionbox[2]
|
||||||
pos.y = pos.y - (-1) -- bigfoot collisionbox goes 1 down
|
pos.y = pos.y - (-1) -- bigfoot collisionbox goes 1 down
|
||||||
minetest.add_entity(pos, "soundstuff:bigfoot")
|
core.add_entity(pos, "soundstuff:bigfoot")
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
local path = minetest.get_modpath("soundstuff") .. "/"
|
local path = core.get_modpath("soundstuff") .. "/"
|
||||||
dofile(path .. "sound_event_items.lua")
|
dofile(path .. "sound_event_items.lua")
|
||||||
dofile(path .. "jukebox.lua")
|
dofile(path .. "jukebox.lua")
|
||||||
dofile(path .. "bigfoot.lua")
|
dofile(path .. "bigfoot.lua")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local F = minetest.formspec_escape
|
local F = core.formspec_escape
|
||||||
|
|
||||||
-- hashed node pos -> sound handle
|
-- hashed node pos -> sound handle
|
||||||
local played_sounds = {}
|
local played_sounds = {}
|
||||||
@ -57,8 +57,8 @@ local function get_all_metadata(meta)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function log_msg(msg)
|
local function log_msg(msg)
|
||||||
minetest.log("action", msg)
|
core.log("action", msg)
|
||||||
minetest.chat_send_all(msg)
|
core.chat_send_all(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function try_call(f, ...)
|
local function try_call(f, ...)
|
||||||
@ -74,11 +74,11 @@ local function try_call(f, ...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function show_formspec(pos, player)
|
local function show_formspec(pos, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
|
|
||||||
local md = get_all_metadata(meta)
|
local md = get_all_metadata(meta)
|
||||||
|
|
||||||
local pos_hash = minetest.hash_node_position(pos)
|
local pos_hash = core.hash_node_position(pos)
|
||||||
local sound_handle = played_sounds[pos_hash]
|
local sound_handle = played_sounds[pos_hash]
|
||||||
|
|
||||||
local fs = {}
|
local fs = {}
|
||||||
@ -195,17 +195,17 @@ local function show_formspec(pos, player)
|
|||||||
button_exit[10.75,11;3,0.75;btn_save_quit;Save & Quit]
|
button_exit[10.75,11;3,0.75;btn_save_quit;Save & Quit]
|
||||||
]])
|
]])
|
||||||
|
|
||||||
minetest.show_formspec(player:get_player_name(), "soundstuff:jukebox@"..pos:to_string(),
|
core.show_formspec(player:get_player_name(), "soundstuff:jukebox@"..pos:to_string(),
|
||||||
table.concat(fs))
|
table.concat(fs))
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("soundstuff:jukebox", {
|
core.register_node("soundstuff:jukebox", {
|
||||||
description = "Jukebox\nAllows to play arbitrary sounds.",
|
description = "Jukebox\nAllows to play arbitrary sounds.",
|
||||||
tiles = {"soundstuff_jukebox.png"},
|
tiles = {"soundstuff_jukebox.png"},
|
||||||
groups = {dig_immediate = 2},
|
groups = {dig_immediate = 2},
|
||||||
|
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
-- SimpleSoundSpec
|
-- SimpleSoundSpec
|
||||||
meta:set_string("sss.name", "")
|
meta:set_string("sss.name", "")
|
||||||
meta:set_string("sss.gain", "")
|
meta:set_string("sss.gain", "")
|
||||||
@ -236,18 +236,18 @@ minetest.register_node("soundstuff:jukebox", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname:sub(1, 19) ~= "soundstuff:jukebox@" then
|
if formname:sub(1, 19) ~= "soundstuff:jukebox@" then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local pos = vector.from_string(formname, 20)
|
local pos = vector.from_string(formname, 20)
|
||||||
if not pos or pos ~= pos:round() then
|
if not pos or pos ~= pos:round() then
|
||||||
minetest.log("error", "[soundstuff:jukebox] Invalid formname.")
|
core.log("error", "[soundstuff:jukebox] Invalid formname.")
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
|
|
||||||
for _, k in ipairs(meta_keys) do
|
for _, k in ipairs(meta_keys) do
|
||||||
if fields[k] then
|
if fields[k] then
|
||||||
@ -256,7 +256,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
meta:mark_as_private(meta_keys)
|
meta:mark_as_private(meta_keys)
|
||||||
|
|
||||||
local pos_hash = minetest.hash_node_position(pos)
|
local pos_hash = core.hash_node_position(pos)
|
||||||
local sound_handle = played_sounds[pos_hash]
|
local sound_handle = played_sounds[pos_hash]
|
||||||
|
|
||||||
if not sound_handle then
|
if not sound_handle then
|
||||||
@ -274,17 +274,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
pitch = tonumber(md.sparam.pitch),
|
pitch = tonumber(md.sparam.pitch),
|
||||||
fade = tonumber(md.sparam.fade),
|
fade = tonumber(md.sparam.fade),
|
||||||
start_time = tonumber(md.sparam.start_time),
|
start_time = tonumber(md.sparam.start_time),
|
||||||
loop = minetest.is_yes(md.sparam.loop),
|
loop = core.is_yes(md.sparam.loop),
|
||||||
pos = vector.from_string(md.sparam.pos),
|
pos = vector.from_string(md.sparam.pos),
|
||||||
object = testtools.get_branded_object(md.sparam.object),
|
object = testtools.get_branded_object(md.sparam.object),
|
||||||
to_player = md.sparam.to_player,
|
to_player = md.sparam.to_player,
|
||||||
exclude_player = md.sparam.exclude_player,
|
exclude_player = md.sparam.exclude_player,
|
||||||
max_hear_distance = tonumber(md.sparam.max_hear_distance),
|
max_hear_distance = tonumber(md.sparam.max_hear_distance),
|
||||||
}
|
}
|
||||||
local ephemeral = minetest.is_yes(md.ephemeral)
|
local ephemeral = core.is_yes(md.ephemeral)
|
||||||
|
|
||||||
log_msg(string.format(
|
log_msg(string.format(
|
||||||
"[soundstuff:jukebox] Playing sound: minetest.sound_play(%s, %s, %s)",
|
"[soundstuff:jukebox] Playing sound: core.sound_play(%s, %s, %s)",
|
||||||
string.format("{name=\"%s\", gain=%s, pitch=%s, fade=%s}",
|
string.format("{name=\"%s\", gain=%s, pitch=%s, fade=%s}",
|
||||||
sss.name, sss.gain, sss.pitch, sss.fade),
|
sss.name, sss.gain, sss.pitch, sss.fade),
|
||||||
string.format("{gain=%s, pitch=%s, fade=%s, start_time=%s, loop=%s, pos=%s, "
|
string.format("{gain=%s, pitch=%s, fade=%s, start_time=%s, loop=%s, pos=%s, "
|
||||||
@ -295,7 +295,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
sparam.max_hear_distance),
|
sparam.max_hear_distance),
|
||||||
tostring(ephemeral)))
|
tostring(ephemeral)))
|
||||||
|
|
||||||
sound_handle = try_call(minetest.sound_play, sss, sparam, ephemeral)
|
sound_handle = try_call(core.sound_play, sss, sparam, ephemeral)
|
||||||
|
|
||||||
played_sounds[pos_hash] = sound_handle
|
played_sounds[pos_hash] = sound_handle
|
||||||
show_formspec(pos, player)
|
show_formspec(pos, player)
|
||||||
@ -303,9 +303,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
|
|
||||||
else
|
else
|
||||||
if fields.btn_stop then
|
if fields.btn_stop then
|
||||||
log_msg("[soundstuff:jukebox] Stopping sound: minetest.sound_stop(<handle>)")
|
log_msg("[soundstuff:jukebox] Stopping sound: core.sound_stop(<handle>)")
|
||||||
|
|
||||||
try_call(minetest.sound_stop, sound_handle)
|
try_call(core.sound_stop, sound_handle)
|
||||||
|
|
||||||
elseif fields.btn_release then
|
elseif fields.btn_release then
|
||||||
log_msg("[soundstuff:jukebox] Releasing handle.")
|
log_msg("[soundstuff:jukebox] Releasing handle.")
|
||||||
@ -320,10 +320,10 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
local gain = tonumber(md.fade.gain)
|
local gain = tonumber(md.fade.gain)
|
||||||
|
|
||||||
log_msg(string.format(
|
log_msg(string.format(
|
||||||
"[soundstuff:jukebox] Fading sound: minetest.sound_fade(<handle>, %s, %s)",
|
"[soundstuff:jukebox] Fading sound: core.sound_fade(<handle>, %s, %s)",
|
||||||
step, gain))
|
step, gain))
|
||||||
|
|
||||||
try_call(minetest.sound_fade, sound_handle, step, gain)
|
try_call(core.sound_fade, sound_handle, step, gain)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
local drive_speed = 20
|
local drive_speed = 20
|
||||||
local drive_distance = 30
|
local drive_distance = 30
|
||||||
|
|
||||||
minetest.register_entity("soundstuff:racecar", {
|
core.register_entity("soundstuff:racecar", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
physical = false,
|
physical = false,
|
||||||
collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
@ -7,7 +7,7 @@ local simple_nodes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k,v in pairs(simple_nodes) do
|
for k,v in pairs(simple_nodes) do
|
||||||
minetest.register_node("soundstuff:"..k, {
|
core.register_node("soundstuff:"..k, {
|
||||||
description = v[1].."\n"..v[3],
|
description = v[1].."\n"..v[3],
|
||||||
tiles = {"soundstuff_node_sound.png","soundstuff_node_sound.png",v[2]},
|
tiles = {"soundstuff_node_sound.png","soundstuff_node_sound.png",v[2]},
|
||||||
groups = {dig_immediate=2},
|
groups = {dig_immediate=2},
|
||||||
@ -17,7 +17,7 @@ for k,v in pairs(simple_nodes) do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("soundstuff:place_failed_attached", {
|
core.register_node("soundstuff:place_failed_attached", {
|
||||||
description = "Attached Place Failed Sound Node".."\n"..
|
description = "Attached Place Failed Sound Node".."\n"..
|
||||||
"Attached to the floor; plays a sound when you try to place it but failed",
|
"Attached to the floor; plays a sound when you try to place it but failed",
|
||||||
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_place_failed.png"},
|
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_place_failed.png"},
|
||||||
@ -33,7 +33,7 @@ minetest.register_node("soundstuff:place_failed_attached", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("soundstuff:fall", {
|
core.register_node("soundstuff:fall", {
|
||||||
description = "Fall Sound Node".."\n"..
|
description = "Fall Sound Node".."\n"..
|
||||||
"Falls and plays sound if node below is gone",
|
"Falls and plays sound if node below is gone",
|
||||||
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_fall.png"},
|
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_fall.png"},
|
||||||
@ -43,7 +43,7 @@ minetest.register_node("soundstuff:fall", {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("soundstuff:fall_attached", {
|
core.register_node("soundstuff:fall_attached", {
|
||||||
description = "Attached Fall Sound Node".."\n"..
|
description = "Attached Fall Sound Node".."\n"..
|
||||||
"Drops as item and plays sound if node below is gone",
|
"Drops as item and plays sound if node below is gone",
|
||||||
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_fall.png"},
|
tiles = {"soundstuff_node_sound.png", "soundstuff_node_sound.png", "soundstuff_node_fall.png"},
|
||||||
@ -59,7 +59,7 @@ minetest.register_node("soundstuff:fall_attached", {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("soundstuff:footstep_liquid", {
|
core.register_node("soundstuff:footstep_liquid", {
|
||||||
description = "Liquid Footstep Sound Node".."\n"..
|
description = "Liquid Footstep Sound Node".."\n"..
|
||||||
"Plays sound when moving inside it; swimmable",
|
"Plays sound when moving inside it; swimmable",
|
||||||
drawtype = "liquid",
|
drawtype = "liquid",
|
||||||
@ -92,7 +92,7 @@ minetest.register_node("soundstuff:footstep_liquid", {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("soundstuff:footstep_climbable", {
|
core.register_node("soundstuff:footstep_climbable", {
|
||||||
description = "Climbable Footstep Sound Node".."\n"..
|
description = "Climbable Footstep Sound Node".."\n"..
|
||||||
"Plays sound when moving inside it; can climb up and down here",
|
"Plays sound when moving inside it; can climb up and down here",
|
||||||
drawtype = "allfaces",
|
drawtype = "allfaces",
|
||||||
@ -112,17 +112,17 @@ minetest.register_node("soundstuff:footstep_climbable", {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craftitem("soundstuff:eat", {
|
core.register_craftitem("soundstuff:eat", {
|
||||||
description = "Eat Sound Item".."\n"..
|
description = "Eat Sound Item".."\n"..
|
||||||
"Makes a sound when 'eaten' (with punch key)",
|
"Makes a sound when 'eaten' (with punch key)",
|
||||||
inventory_image = "soundstuff_eat.png",
|
inventory_image = "soundstuff_eat.png",
|
||||||
on_use = minetest.item_eat(0),
|
on_use = core.item_eat(0),
|
||||||
sound = {
|
sound = {
|
||||||
eat = { name = "soundstuff_mono", gain = 1.0 },
|
eat = { name = "soundstuff_mono", gain = 1.0 },
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("soundstuff:breaks", {
|
core.register_tool("soundstuff:breaks", {
|
||||||
description = "Break Sound Tool".."\n"..
|
description = "Break Sound Tool".."\n"..
|
||||||
"Digs cracky=3 and more".."\n"..
|
"Digs cracky=3 and more".."\n"..
|
||||||
"Makes a sound when it breaks",
|
"Makes a sound when it breaks",
|
||||||
@ -142,7 +142,7 @@ minetest.register_tool("soundstuff:breaks", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_tool("soundstuff:punch_use", {
|
core.register_tool("soundstuff:punch_use", {
|
||||||
description = "Punch Use Sound Tool\n"..
|
description = "Punch Use Sound Tool\n"..
|
||||||
"Digs cracky=3 and more\n"..
|
"Digs cracky=3 and more\n"..
|
||||||
"Makes a sound when used on node or entity",
|
"Makes a sound when used on node or entity",
|
||||||
@ -161,7 +161,7 @@ minetest.register_tool("soundstuff:punch_use", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("soundstuff:punch_use_air", {
|
core.register_tool("soundstuff:punch_use_air", {
|
||||||
description = "Punch Use (Air) Sound Tool\n"..
|
description = "Punch Use (Air) Sound Tool\n"..
|
||||||
"Makes a sound when used pointing at nothing",
|
"Makes a sound when used pointing at nothing",
|
||||||
inventory_image = "soundstuff_node_dig.png",
|
inventory_image = "soundstuff_node_dig.png",
|
||||||
@ -171,26 +171,26 @@ minetest.register_tool("soundstuff:punch_use_air", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Plays sound repeatedly
|
-- Plays sound repeatedly
|
||||||
minetest.register_node("soundstuff:positional", {
|
core.register_node("soundstuff:positional", {
|
||||||
description = "Positional Sound Node".."\n"..
|
description = "Positional Sound Node".."\n"..
|
||||||
"Repeatedly plays a sound at the node location",
|
"Repeatedly plays a sound at the node location",
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = core.get_node_timer(pos)
|
||||||
timer:start(0)
|
timer:start(0)
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
local dist = node.param2
|
local dist = node.param2
|
||||||
if dist == 0 then
|
if dist == 0 then
|
||||||
dist = nil
|
dist = nil
|
||||||
end
|
end
|
||||||
minetest.sound_play("soundstuff_mono", { pos = pos, max_hear_distance = dist })
|
core.sound_play("soundstuff_mono", { pos = pos, max_hear_distance = dist })
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = core.get_node_timer(pos)
|
||||||
timer:start(0.7)
|
timer:start(0.7)
|
||||||
end,
|
end,
|
||||||
on_rightclick = function(pos, node, clicker)
|
on_rightclick = function(pos, node, clicker)
|
||||||
node.param2 = (node.param2 + 1) % 64
|
node.param2 = (node.param2 + 1) % 64
|
||||||
minetest.set_node(pos, node)
|
core.set_node(pos, node)
|
||||||
if clicker and clicker:is_player() then
|
if clicker and clicker:is_player() then
|
||||||
local dist = node.param2
|
local dist = node.param2
|
||||||
local diststr
|
local diststr
|
||||||
@ -199,7 +199,7 @@ minetest.register_node("soundstuff:positional", {
|
|||||||
else
|
else
|
||||||
diststr = tostring(dist)
|
diststr = tostring(dist)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(clicker:get_player_name(), "max_hear_distance = " .. diststr)
|
core.chat_send_player(clicker:get_player_name(), "max_hear_distance = " .. diststr)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ stairs = {}
|
|||||||
|
|
||||||
-- Node will be called stairs:stair_<subname>
|
-- Node will be called stairs:stair_<subname>
|
||||||
function stairs.register_stair(subname, recipeitem, groups, images, description)
|
function stairs.register_stair(subname, recipeitem, groups, images, description)
|
||||||
minetest.register_node(":stairs:stair_" .. subname, {
|
core.register_node(":stairs:stair_" .. subname, {
|
||||||
description = description.."\n"..
|
description = description.."\n"..
|
||||||
"param2 = facedir rotation (0..23)",
|
"param2 = facedir rotation (0..23)",
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@ -23,7 +23,7 @@ end
|
|||||||
|
|
||||||
-- Node will be called stairs:slab_<subname>
|
-- Node will be called stairs:slab_<subname>
|
||||||
function stairs.register_slab(subname, recipeitem, groups, images, description)
|
function stairs.register_slab(subname, recipeitem, groups, images, description)
|
||||||
minetest.register_node(":stairs:slab_" .. subname, {
|
core.register_node(":stairs:slab_" .. subname, {
|
||||||
description = description,
|
description = description,
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
tiles = images,
|
tiles = images,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- After ABM node
|
-- After ABM node
|
||||||
minetest.register_node("testabms:after_abm", {
|
core.register_node("testabms:after_abm", {
|
||||||
description = S("After ABM processed node."),
|
description = S("After ABM processed node."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_after_node.png" },
|
tiles = { "testabms_after_node.png" },
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- test ABMs with different chances
|
-- test ABMs with different chances
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- ABM chance 5 node
|
-- ABM chance 5 node
|
||||||
minetest.register_node("testabms:chance_5", {
|
core.register_node("testabms:chance_5", {
|
||||||
description = S("Node for test ABM chance_5"),
|
description = S("Node for test ABM chance_5"),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -11,25 +11,25 @@ minetest.register_node("testabms:chance_5", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:chance_5")
|
meta:set_string("infotext", "Waiting for ABM testabms:chance_5")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:chance_5",
|
label = "testabms:chance_5",
|
||||||
nodenames = "testabms:chance_5",
|
nodenames = "testabms:chance_5",
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 5,
|
chance = 5,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:chance_5 changed this node.")
|
meta:set_string("infotext", "ABM testabsm:chance_5 changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ABM chance 20 node
|
-- ABM chance 20 node
|
||||||
minetest.register_node("testabms:chance_20", {
|
core.register_node("testabms:chance_20", {
|
||||||
description = S("Node for test ABM chance_20"),
|
description = S("Node for test ABM chance_20"),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -37,19 +37,19 @@ minetest.register_node("testabms:chance_20", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:chance_20")
|
meta:set_string("infotext", "Waiting for ABM testabms:chance_20")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:chance_20",
|
label = "testabms:chance_20",
|
||||||
nodenames = "testabms:chance_20",
|
nodenames = "testabms:chance_20",
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:chance_20 changed this node.")
|
meta:set_string("infotext", "ABM testabsm:chance_20 changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local path = minetest.get_modpath(minetest.get_current_modname())
|
local path = core.get_modpath(core.get_current_modname())
|
||||||
|
|
||||||
dofile(path.."/after_node.lua")
|
dofile(path.."/after_node.lua")
|
||||||
dofile(path.."/chances.lua")
|
dofile(path.."/chances.lua")
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- test ABMs with different interval
|
-- test ABMs with different interval
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- ABM inteval 1 node
|
-- ABM inteval 1 node
|
||||||
minetest.register_node("testabms:interval_1", {
|
core.register_node("testabms:interval_1", {
|
||||||
description = S("Node for test ABM interval_1"),
|
description = S("Node for test ABM interval_1"),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -11,25 +11,25 @@ minetest.register_node("testabms:interval_1", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:interval_1")
|
meta:set_string("infotext", "Waiting for ABM testabms:interval_1")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:interval_1",
|
label = "testabms:interval_1",
|
||||||
nodenames = "testabms:interval_1",
|
nodenames = "testabms:interval_1",
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:interval_1 changed this node.")
|
meta:set_string("infotext", "ABM testabsm:interval_1 changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ABM interval 60 node
|
-- ABM interval 60 node
|
||||||
minetest.register_node("testabms:interval_60", {
|
core.register_node("testabms:interval_60", {
|
||||||
description = S("Node for test ABM interval_60"),
|
description = S("Node for test ABM interval_60"),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -37,19 +37,19 @@ minetest.register_node("testabms:interval_60", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:interval_60")
|
meta:set_string("infotext", "Waiting for ABM testabms:interval_60")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:interval_60",
|
label = "testabms:interval_60",
|
||||||
nodenames = "testabms:interval_60",
|
nodenames = "testabms:interval_60",
|
||||||
interval = 60,
|
interval = 60,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:interval_60 changed this node.")
|
meta:set_string("infotext", "ABM testabsm:interval_60 changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- test ABMs with min_y and max_y
|
-- test ABMs with min_y and max_y
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- ABM min_y node
|
-- ABM min_y node
|
||||||
minetest.register_node("testabms:min_y", {
|
core.register_node("testabms:min_y", {
|
||||||
description = S("Node for test ABM min_y."),
|
description = S("Node for test ABM min_y."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -11,26 +11,26 @@ minetest.register_node("testabms:min_y", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:min_y at y "..pos.y.." with min_y = 0")
|
meta:set_string("infotext", "Waiting for ABM testabms:min_y at y "..pos.y.." with min_y = 0")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:min_y",
|
label = "testabms:min_y",
|
||||||
nodenames = "testabms:min_y",
|
nodenames = "testabms:min_y",
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min_y = 0,
|
min_y = 0,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:min_y changed this node.")
|
meta:set_string("infotext", "ABM testabsm:min_y changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ABM max_y node
|
-- ABM max_y node
|
||||||
minetest.register_node("testabms:max_y", {
|
core.register_node("testabms:max_y", {
|
||||||
description = S("Node for test ABM max_y."),
|
description = S("Node for test ABM max_y."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles = { "testabms_wait_node.png" },
|
tiles = { "testabms_wait_node.png" },
|
||||||
@ -38,20 +38,20 @@ minetest.register_node("testabms:max_y", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "Waiting for ABM testabms:max_y at y "..pos.y.." with max_y = 0")
|
meta:set_string("infotext", "Waiting for ABM testabms:max_y at y "..pos.y.." with max_y = 0")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:max_y",
|
label = "testabms:max_y",
|
||||||
nodenames = "testabms:max_y",
|
nodenames = "testabms:max_y",
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
max_y = 0,
|
max_y = 0,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext", "ABM testabsm:max_y changed this node.")
|
meta:set_string("infotext", "ABM testabsm:max_y changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- test ABMs with neighbor and without_neighbor
|
-- test ABMs with neighbor and without_neighbor
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- ABM required neighbor
|
-- ABM required neighbor
|
||||||
minetest.register_node("testabms:required_neighbor", {
|
core.register_node("testabms:required_neighbor", {
|
||||||
description = S("Node for test ABM required_neighbor.") .. "\n"
|
description = S("Node for test ABM required_neighbor.") .. "\n"
|
||||||
.. S("Sensitive neighbor node is testnodes:normal."),
|
.. S("Sensitive neighbor node is testnodes:normal."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
@ -12,29 +12,29 @@ minetest.register_node("testabms:required_neighbor", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"Waiting for ABM testabms:required_neighbor "
|
"Waiting for ABM testabms:required_neighbor "
|
||||||
.. "(normal drawtype testnode sensitive)")
|
.. "(normal drawtype testnode sensitive)")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:required_neighbor",
|
label = "testabms:required_neighbor",
|
||||||
nodenames = "testabms:required_neighbor",
|
nodenames = "testabms:required_neighbor",
|
||||||
neighbors = {"testnodes:normal"},
|
neighbors = {"testnodes:normal"},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"ABM testabsm:required_neighbor changed this node.")
|
"ABM testabsm:required_neighbor changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ABM missing neighbor node
|
-- ABM missing neighbor node
|
||||||
minetest.register_node("testabms:missing_neighbor", {
|
core.register_node("testabms:missing_neighbor", {
|
||||||
description = S("Node for test ABM missing_neighbor.") .. "\n"
|
description = S("Node for test ABM missing_neighbor.") .. "\n"
|
||||||
.. S("Sensitive neighbor node is testnodes:normal."),
|
.. S("Sensitive neighbor node is testnodes:normal."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
@ -43,29 +43,29 @@ minetest.register_node("testabms:missing_neighbor", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"Waiting for ABM testabms:missing_neighbor"
|
"Waiting for ABM testabms:missing_neighbor"
|
||||||
.. " (normal drawtype testnode sensitive)")
|
.. " (normal drawtype testnode sensitive)")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:missing_neighbor",
|
label = "testabms:missing_neighbor",
|
||||||
nodenames = "testabms:missing_neighbor",
|
nodenames = "testabms:missing_neighbor",
|
||||||
without_neighbors = {"testnodes:normal"},
|
without_neighbors = {"testnodes:normal"},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"ABM testabsm:missing_neighbor changed this node.")
|
"ABM testabsm:missing_neighbor changed this node.")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ABM required and missing neighbor node
|
-- ABM required and missing neighbor node
|
||||||
minetest.register_node("testabms:required_missing_neighbor", {
|
core.register_node("testabms:required_missing_neighbor", {
|
||||||
description = S("Node for test ABM required_missing_neighbor.") .. "\n"
|
description = S("Node for test ABM required_missing_neighbor.") .. "\n"
|
||||||
.. S("Sensitive neighbor nodes are testnodes:normal and testnodes:glasslike."),
|
.. S("Sensitive neighbor nodes are testnodes:normal and testnodes:glasslike."),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
@ -74,7 +74,7 @@ minetest.register_node("testabms:required_missing_neighbor", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
|
|
||||||
on_construct = function (pos)
|
on_construct = function (pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"Waiting for ABM testabms:required_missing_neighbor"
|
"Waiting for ABM testabms:required_missing_neighbor"
|
||||||
.. " (wint normal drawtype testnode and no glasslike"
|
.. " (wint normal drawtype testnode and no glasslike"
|
||||||
@ -82,7 +82,7 @@ minetest.register_node("testabms:required_missing_neighbor", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
core.register_abm({
|
||||||
label = "testabms:required_missing_neighbor",
|
label = "testabms:required_missing_neighbor",
|
||||||
nodenames = "testabms:required_missing_neighbor",
|
nodenames = "testabms:required_missing_neighbor",
|
||||||
neighbors = {"testnodes:normal"},
|
neighbors = {"testnodes:normal"},
|
||||||
@ -90,8 +90,8 @@ minetest.register_abm({
|
|||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function (pos)
|
action = function (pos)
|
||||||
minetest.swap_node(pos, {name="testabms:after_abm"})
|
core.swap_node(pos, {name="testabms:after_abm"})
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
meta:set_string("infotext",
|
meta:set_string("infotext",
|
||||||
"ABM testabsm:required_missing_neighbor changed this node.")
|
"ABM testabsm:required_missing_neighbor changed this node.")
|
||||||
end
|
end
|
||||||
|
@ -18,7 +18,7 @@ local phasearmor = {
|
|||||||
}
|
}
|
||||||
local max_phase = 12
|
local max_phase = 12
|
||||||
|
|
||||||
minetest.register_entity("testentities:armorball", {
|
core.register_entity("testentities:armorball", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
hp_max = 20,
|
hp_max = 20,
|
||||||
physical = false,
|
physical = false,
|
||||||
@ -33,7 +33,7 @@ minetest.register_entity("testentities:armorball", {
|
|||||||
_phase = 7,
|
_phase = 7,
|
||||||
|
|
||||||
on_activate = function(self, staticdata)
|
on_activate = function(self, staticdata)
|
||||||
minetest.log("action", "[testentities] armorball.on_activate")
|
core.log("action", "[testentities] armorball.on_activate")
|
||||||
self.object:set_armor_groups(phasearmor[self._phase])
|
self.object:set_armor_groups(phasearmor[self._phase])
|
||||||
self.object:set_sprite({x=0, y=self._phase})
|
self.object:set_sprite({x=0, y=self._phase})
|
||||||
end,
|
end,
|
||||||
@ -56,6 +56,6 @@ minetest.register_entity("testentities:armorball", {
|
|||||||
if not name then
|
if not name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, "time_from_last_punch="..string.format("%.3f", time_from_last_punch).."; damage="..tostring(damage))
|
core.chat_send_player(name, "time_from_last_punch="..string.format("%.3f", time_from_last_punch).."; damage="..tostring(damage))
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
dofile(minetest.get_modpath("testentities").."/visuals.lua")
|
dofile(core.get_modpath("testentities").."/visuals.lua")
|
||||||
dofile(minetest.get_modpath("testentities").."/observers.lua")
|
dofile(core.get_modpath("testentities").."/observers.lua")
|
||||||
dofile(minetest.get_modpath("testentities").."/selectionbox.lua")
|
dofile(core.get_modpath("testentities").."/selectionbox.lua")
|
||||||
dofile(minetest.get_modpath("testentities").."/armor.lua")
|
dofile(core.get_modpath("testentities").."/armor.lua")
|
||||||
dofile(minetest.get_modpath("testentities").."/pointable.lua")
|
dofile(core.get_modpath("testentities").."/pointable.lua")
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
local function player_names_excluding(exclude_player_name)
|
local function player_names_excluding(exclude_player_name)
|
||||||
local player_names = {}
|
local player_names = {}
|
||||||
for _, player in ipairs(minetest.get_connected_players()) do
|
for _, player in ipairs(core.get_connected_players()) do
|
||||||
player_names[player:get_player_name()] = true
|
player_names[player:get_player_name()] = true
|
||||||
end
|
end
|
||||||
player_names[exclude_player_name] = nil
|
player_names[exclude_player_name] = nil
|
||||||
return player_names
|
return player_names
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_entity("testentities:observable", {
|
core.register_entity("testentities:observable", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "sprite",
|
visual = "sprite",
|
||||||
textures = { "testentities_sprite.png" },
|
textures = { "testentities_sprite.png" },
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
-- Register wrapper for compactness
|
-- Register wrapper for compactness
|
||||||
local function register_pointable_testentity(name, pointable)
|
local function register_pointable_testentity(name, pointable)
|
||||||
local texture = "testnodes_"..name..".png"
|
local texture = "testnodes_"..name..".png"
|
||||||
minetest.register_entity("testentities:"..name, {
|
core.register_entity("testentities:"..name, {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "cube",
|
visual = "cube",
|
||||||
visual_size = {x = 0.6, y = 0.6, z = 0.6},
|
visual_size = {x = 0.6, y = 0.6, z = 0.6},
|
||||||
|
@ -12,7 +12,7 @@ end
|
|||||||
|
|
||||||
local active_selectionbox_entities = 0 -- count active entities
|
local active_selectionbox_entities = 0 -- count active entities
|
||||||
|
|
||||||
minetest.register_entity("testentities:selectionbox", {
|
core.register_entity("testentities:selectionbox", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "cube",
|
visual = "cube",
|
||||||
infotext = "Punch to randomize rotation, rightclick to toggle rotation"
|
infotext = "Punch to randomize rotation, rightclick to toggle rotation"
|
||||||
@ -45,16 +45,16 @@ minetest.register_entity("testentities:selectionbox", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
local hud_ids = {}
|
local hud_ids = {}
|
||||||
minetest.register_globalstep(function()
|
core.register_globalstep(function()
|
||||||
if active_selectionbox_entities == 0 then
|
if active_selectionbox_entities == 0 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, player in pairs(minetest.get_connected_players()) do
|
for _, player in pairs(core.get_connected_players()) do
|
||||||
local offset = player:get_eye_offset()
|
local offset = player:get_eye_offset()
|
||||||
offset.y = offset.y + player:get_properties().eye_height
|
offset.y = offset.y + player:get_properties().eye_height
|
||||||
local pos1 = vector.add(player:get_pos(), offset)
|
local pos1 = vector.add(player:get_pos(), offset)
|
||||||
local raycast = minetest.raycast(pos1, vector.add(pos1, vector.multiply(player:get_look_dir(), 10)), true, false)
|
local raycast = core.raycast(pos1, vector.add(pos1, vector.multiply(player:get_look_dir(), 10)), true, false)
|
||||||
local pointed_thing = raycast()
|
local pointed_thing = raycast()
|
||||||
if pointed_thing.ref == player then
|
if pointed_thing.ref == player then
|
||||||
pointed_thing = raycast()
|
pointed_thing = raycast()
|
||||||
@ -73,13 +73,13 @@ minetest.register_globalstep(function()
|
|||||||
alignment = {x=0, y=0},
|
alignment = {x=0, y=0},
|
||||||
})
|
})
|
||||||
local shade = math.random(0, 0xFF)
|
local shade = math.random(0, 0xFF)
|
||||||
minetest.add_particle({
|
core.add_particle({
|
||||||
-- Random shade of red for the intersection point
|
-- Random shade of red for the intersection point
|
||||||
texture = color(0x10000 * shade),
|
texture = color(0x10000 * shade),
|
||||||
pos = pointed_thing.intersection_point,
|
pos = pointed_thing.intersection_point,
|
||||||
size = 0.1
|
size = 0.1
|
||||||
})
|
})
|
||||||
minetest.add_particle({
|
core.add_particle({
|
||||||
-- Same shade of green for the corresponding intersection normal
|
-- Same shade of green for the corresponding intersection normal
|
||||||
texture = color(0x100 * shade),
|
texture = color(0x100 * shade),
|
||||||
pos = vector.add(pointed_thing.intersection_point, pointed_thing.intersection_normal * 0.1),
|
pos = vector.add(pointed_thing.intersection_point, pointed_thing.intersection_normal * 0.1),
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
-- Minimal test entities to test visuals
|
-- Minimal test entities to test visuals
|
||||||
|
|
||||||
minetest.register_entity("testentities:sprite", {
|
core.register_entity("testentities:sprite", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "sprite",
|
visual = "sprite",
|
||||||
textures = { "testentities_sprite.png" },
|
textures = { "testentities_sprite.png" },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:upright_sprite", {
|
core.register_entity("testentities:upright_sprite", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "upright_sprite",
|
visual = "upright_sprite",
|
||||||
textures = {
|
textures = {
|
||||||
@ -17,7 +17,7 @@ minetest.register_entity("testentities:upright_sprite", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:cube", {
|
core.register_entity("testentities:cube", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "cube",
|
visual = "cube",
|
||||||
textures = {
|
textures = {
|
||||||
@ -31,21 +31,21 @@ minetest.register_entity("testentities:cube", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:item", {
|
core.register_entity("testentities:item", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "item",
|
visual = "item",
|
||||||
wield_item = "testnodes:normal",
|
wield_item = "testnodes:normal",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:wielditem", {
|
core.register_entity("testentities:wielditem", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "wielditem",
|
visual = "wielditem",
|
||||||
wield_item = "testnodes:normal",
|
wield_item = "testnodes:normal",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:mesh", {
|
core.register_entity("testentities:mesh", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_pyramid.obj",
|
||||||
@ -55,7 +55,7 @@ minetest.register_entity("testentities:mesh", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:mesh_unshaded", {
|
core.register_entity("testentities:mesh_unshaded", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_pyramid.obj",
|
||||||
@ -66,7 +66,7 @@ minetest.register_entity("testentities:mesh_unshaded", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:sam", {
|
core.register_entity("testentities:sam", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "testentities_sam.b3d",
|
mesh = "testentities_sam.b3d",
|
||||||
@ -82,7 +82,7 @@ minetest.register_entity("testentities:sam", {
|
|||||||
-- Advanced visual tests
|
-- Advanced visual tests
|
||||||
|
|
||||||
-- An entity for testing animated and yaw-modulated sprites
|
-- An entity for testing animated and yaw-modulated sprites
|
||||||
minetest.register_entity("testentities:yawsprite", {
|
core.register_entity("testentities:yawsprite", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
selectionbox = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3},
|
selectionbox = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3},
|
||||||
visual = "sprite",
|
visual = "sprite",
|
||||||
@ -97,7 +97,7 @@ minetest.register_entity("testentities:yawsprite", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- An entity for testing animated upright sprites
|
-- An entity for testing animated upright sprites
|
||||||
minetest.register_entity("testentities:upright_animated", {
|
core.register_entity("testentities:upright_animated", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "upright_sprite",
|
visual = "upright_sprite",
|
||||||
textures = {"testnodes_anim.png"},
|
textures = {"testnodes_anim.png"},
|
||||||
@ -108,7 +108,7 @@ minetest.register_entity("testentities:upright_animated", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("testentities:nametag", {
|
core.register_entity("testentities:nametag", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "sprite",
|
visual = "sprite",
|
||||||
textures = { "testentities_sprite.png" },
|
textures = { "testentities_sprite.png" },
|
||||||
@ -116,7 +116,7 @@ minetest.register_entity("testentities:nametag", {
|
|||||||
|
|
||||||
on_activate = function(self, staticdata)
|
on_activate = function(self, staticdata)
|
||||||
if staticdata ~= "" then
|
if staticdata ~= "" then
|
||||||
local data = minetest.deserialize(staticdata)
|
local data = core.deserialize(staticdata)
|
||||||
self.color = data.color
|
self.color = data.color
|
||||||
self.bgcolor = data.bgcolor
|
self.bgcolor = data.bgcolor
|
||||||
else
|
else
|
||||||
@ -145,6 +145,6 @@ minetest.register_entity("testentities:nametag", {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
get_staticdata = function(self)
|
get_staticdata = function(self)
|
||||||
return minetest.serialize({ color = self.color, bgcolor = self.bgcolor })
|
return core.serialize({ color = self.color, bgcolor = self.bgcolor })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -1,35 +1,35 @@
|
|||||||
local S = minetest.get_translator("testfood")
|
local S = core.get_translator("testfood")
|
||||||
|
|
||||||
minetest.register_craftitem("testfood:good1", {
|
core.register_craftitem("testfood:good1", {
|
||||||
description = S("Good Food (+1)").."\n"..
|
description = S("Good Food (+1)").."\n"..
|
||||||
S("Punch: Eat"),
|
S("Punch: Eat"),
|
||||||
inventory_image = "testfood_good.png",
|
inventory_image = "testfood_good.png",
|
||||||
on_use = minetest.item_eat(1),
|
on_use = core.item_eat(1),
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("testfood:good5", {
|
core.register_craftitem("testfood:good5", {
|
||||||
description = S("Good Food (+5)").."\n"..
|
description = S("Good Food (+5)").."\n"..
|
||||||
S("Punch: Eat"),
|
S("Punch: Eat"),
|
||||||
inventory_image = "testfood_good2.png",
|
inventory_image = "testfood_good2.png",
|
||||||
on_use = minetest.item_eat(5),
|
on_use = core.item_eat(5),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testfood:bad1", {
|
core.register_craftitem("testfood:bad1", {
|
||||||
description = S("Bad Food (-1)").."\n"..
|
description = S("Bad Food (-1)").."\n"..
|
||||||
S("Punch: Eat"),
|
S("Punch: Eat"),
|
||||||
inventory_image = "testfood_bad.png",
|
inventory_image = "testfood_bad.png",
|
||||||
on_use = minetest.item_eat(-1),
|
on_use = core.item_eat(-1),
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("testfood:bad5", {
|
core.register_craftitem("testfood:bad5", {
|
||||||
description = S("Bad Food (-5)").."\n"..
|
description = S("Bad Food (-5)").."\n"..
|
||||||
S("Punch: Eat"),
|
S("Punch: Eat"),
|
||||||
inventory_image = "testfood_bad2.png",
|
inventory_image = "testfood_bad2.png",
|
||||||
on_use = minetest.item_eat(-5),
|
on_use = core.item_eat(-5),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testfood:replace1", {
|
core.register_craftitem("testfood:replace1", {
|
||||||
description = S("Replacing Food (+1)").."\n"..
|
description = S("Replacing Food (+1)").."\n"..
|
||||||
S("Punch: Eat and replace with 'Good Food (+1)'"),
|
S("Punch: Eat and replace with 'Good Food (+1)'"),
|
||||||
inventory_image = "testfood_replace.png",
|
inventory_image = "testfood_replace.png",
|
||||||
on_use = minetest.item_eat(1, "testfood:good1"),
|
on_use = core.item_eat(1, "testfood:good1"),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -6,30 +6,30 @@ local out = function(player, formname, fields, number)
|
|||||||
snum = " "..number
|
snum = " "..number
|
||||||
end
|
end
|
||||||
local msg = "Formspec callback"..snum..": player="..player:get_player_name()..", formname=\""..tostring(formname).."\", fields="..dump(fields)
|
local msg = "Formspec callback"..snum..": player="..player:get_player_name()..", formname=\""..tostring(formname).."\", fields="..dump(fields)
|
||||||
minetest.chat_send_player(player:get_player_name(), msg)
|
core.chat_send_player(player:get_player_name(), msg)
|
||||||
minetest.log("action", msg)
|
core.log("action", msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if callback_test == 1 then
|
if callback_test == 1 then
|
||||||
out(player, formname, fields)
|
out(player, formname, fields)
|
||||||
elseif callback_test == 2 then
|
elseif callback_test == 2 then
|
||||||
out(player, formname, fields, 1)
|
out(player, formname, fields, 1)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if callback_test == 2 then
|
if callback_test == 2 then
|
||||||
out(player, formname, fields, 2)
|
out(player, formname, fields, 2)
|
||||||
return true -- Disable the first callback
|
return true -- Disable the first callback
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if callback_test == 2 then
|
if callback_test == 2 then
|
||||||
out(player, formname, fields, 3)
|
out(player, formname, fields, 3)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("test_formspec_callbacks", {
|
core.register_chatcommand("test_formspec_callbacks", {
|
||||||
params = "[ 0 | 1 | 2 ]",
|
params = "[ 0 | 1 | 2 ]",
|
||||||
description = "Test: Change formspec callbacks testing mode",
|
description = "Test: Change formspec callbacks testing mode",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
@ -40,12 +40,12 @@ minetest.register_chatcommand("test_formspec_callbacks", {
|
|||||||
callback_test = mode
|
callback_test = mode
|
||||||
end
|
end
|
||||||
if callback_test == 1 then
|
if callback_test == 1 then
|
||||||
minetest.chat_send_player(name, "Formspec callback test mode 1 enabled: Logging only")
|
core.chat_send_player(name, "Formspec callback test mode 1 enabled: Logging only")
|
||||||
elseif callback_test == 2 then
|
elseif callback_test == 2 then
|
||||||
minetest.chat_send_player(name, "Formspec callback test mode 2 enabled: Three callbacks, disable pre-registered callbacks")
|
core.chat_send_player(name, "Formspec callback test mode 2 enabled: Three callbacks, disable pre-registered callbacks")
|
||||||
else
|
else
|
||||||
callback_test = 0
|
callback_test = 0
|
||||||
minetest.chat_send_player(name, "Formspec callback test disabled!")
|
core.chat_send_player(name, "Formspec callback test disabled!")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
-- This code adds dummy items that are supposed to be used in formspecs
|
-- This code adds dummy items that are supposed to be used in formspecs
|
||||||
-- for testing item_image formspec elements.
|
-- for testing item_image formspec elements.
|
||||||
|
|
||||||
minetest.register_node("testformspec:node", {
|
core.register_node("testformspec:node", {
|
||||||
description = "Formspec Test Node",
|
description = "Formspec Test Node",
|
||||||
tiles = { "testformspec_node.png" },
|
tiles = { "testformspec_node.png" },
|
||||||
groups = { dig_immediate = 3, dummy = 1 },
|
groups = { dig_immediate = 3, dummy = 1 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testformspec:item", {
|
core.register_craftitem("testformspec:item", {
|
||||||
description = "Formspec Test Item",
|
description = "Formspec Test Item",
|
||||||
inventory_image = "testformspec_item.png",
|
inventory_image = "testformspec_item.png",
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
local color = minetest.colorize
|
local color = core.colorize
|
||||||
|
|
||||||
-- \208\176 is a cyrillic small a
|
-- \208\176 is a cyrillic small a
|
||||||
local unsafe_url = minetest.formspec_escape("https://u:p@wikipedi\208\176.org:1233/heIIoll?a=b#c")
|
local unsafe_url = core.formspec_escape("https://u:p@wikipedi\208\176.org:1233/heIIoll?a=b#c")
|
||||||
|
|
||||||
local clip_fs = [[
|
local clip_fs = [[
|
||||||
style_type[label,button,image_button,item_image_button,
|
style_type[label,button,image_button,item_image_button,
|
||||||
@ -178,8 +178,8 @@ This is a test of the global tag. The parameters are:
|
|||||||
background=gray margin=20 valign=bottom halign=right color=pink hovercolor=purple size=12 font=mono
|
background=gray margin=20 valign=bottom halign=right color=pink hovercolor=purple size=12 font=mono
|
||||||
<action name=global>action</action>]]
|
<action name=global>action</action>]]
|
||||||
|
|
||||||
local hypertext_fs = "hypertext[0,0;11,9;hypertext;"..minetest.formspec_escape(hypertext_basic).."]"..
|
local hypertext_fs = "hypertext[0,0;11,9;hypertext;"..core.formspec_escape(hypertext_basic).."]"..
|
||||||
"hypertext[0,9.5;11,2.5;hypertext;"..minetest.formspec_escape(hypertext_global).."]"
|
"hypertext[0,9.5;11,2.5;hypertext;"..core.formspec_escape(hypertext_global).."]"
|
||||||
|
|
||||||
local style_fs = [[
|
local style_fs = [[
|
||||||
style[one_btn1;bgcolor=red;textcolor=yellow;bgcolor_hovered=orange;
|
style[one_btn1;bgcolor=red;textcolor=yellow;bgcolor_hovered=orange;
|
||||||
@ -255,11 +255,11 @@ local style_fs = [[
|
|||||||
|
|
||||||
style[one_f3;textcolor=yellow]
|
style[one_f3;textcolor=yellow]
|
||||||
textarea[0,7.025;2.5,0.8;one_f3;Label;]] ..
|
textarea[0,7.025;2.5,0.8;one_f3;Label;]] ..
|
||||||
minetest.formspec_escape("Yellow Text\nLine two") .. [[ ]
|
core.formspec_escape("Yellow Text\nLine two") .. [[ ]
|
||||||
|
|
||||||
style[one_f4;border=false;textcolor=cyan]
|
style[one_f4;border=false;textcolor=cyan]
|
||||||
textarea[0,8.324999999999999;2.5,0.8;one_f4;Label;]] ..
|
textarea[0,8.324999999999999;2.5,0.8;one_f4;Label;]] ..
|
||||||
minetest.formspec_escape("Borderless Cyan Text\nLine two") .. [[ ]
|
core.formspec_escape("Borderless Cyan Text\nLine two") .. [[ ]
|
||||||
|
|
||||||
container_end[]
|
container_end[]
|
||||||
]]
|
]]
|
||||||
@ -529,10 +529,10 @@ local function show_test_formspec(pname)
|
|||||||
|
|
||||||
local fs = page .. "tabheader[0,0;11,0.65;maintabs;Real Coord,Styles,Noclip,Table,Hypertext,Tabs,Invs,Window,Anim,Model,ScrollC,Sound,Background,Unsized;" .. page_id .. ";false;false]"
|
local fs = page .. "tabheader[0,0;11,0.65;maintabs;Real Coord,Styles,Noclip,Table,Hypertext,Tabs,Invs,Window,Anim,Model,ScrollC,Sound,Background,Unsized;" .. page_id .. ";false;false]"
|
||||||
|
|
||||||
minetest.show_formspec(pname, "testformspec:formspec", fs)
|
core.show_formspec(pname, "testformspec:formspec", fs)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname ~= "testformspec:formspec" then
|
if formname ~= "testformspec:formspec" then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@ -544,15 +544,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if fields.ani_img_1 and fields.ani_btn_1 then
|
if fields.ani_img_1 and fields.ani_btn_1 then
|
||||||
minetest.chat_send_player(player:get_player_name(), "ani_img_1 = " .. tostring(fields.ani_img_1))
|
core.chat_send_player(player:get_player_name(), "ani_img_1 = " .. tostring(fields.ani_img_1))
|
||||||
return true
|
return true
|
||||||
elseif fields.ani_img_2 and fields.ani_btn_2 then
|
elseif fields.ani_img_2 and fields.ani_btn_2 then
|
||||||
minetest.chat_send_player(player:get_player_name(), "ani_img_2 = " .. tostring(fields.ani_img_2))
|
core.chat_send_player(player:get_player_name(), "ani_img_2 = " .. tostring(fields.ani_img_2))
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
if fields.hypertext then
|
if fields.hypertext then
|
||||||
minetest.chat_send_player(player:get_player_name(), "Hypertext action received: " .. tostring(fields.hypertext))
|
core.chat_send_player(player:get_player_name(), "Hypertext action received: " .. tostring(fields.hypertext))
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -577,11 +577,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("test_formspec", {
|
core.register_chatcommand("test_formspec", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Open the test formspec",
|
description = "Open the test formspec",
|
||||||
func = function(name)
|
func = function(name)
|
||||||
if not minetest.get_player_by_name(name) then
|
if not core.get_player_by_name(name) then
|
||||||
return false, "You need to be online!"
|
return false, "You need to be online!"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dofile(minetest.get_modpath("testformspec").."/dummy_items.lua")
|
dofile(core.get_modpath("testformspec").."/dummy_items.lua")
|
||||||
dofile(minetest.get_modpath("testformspec").."/formspec.lua")
|
dofile(core.get_modpath("testformspec").."/formspec.lua")
|
||||||
dofile(minetest.get_modpath("testformspec").."/callbacks.lua")
|
dofile(core.get_modpath("testformspec").."/callbacks.lua")
|
||||||
|
@ -34,14 +34,14 @@ local function show_fullscreen_fs(name, window)
|
|||||||
("label[%f,%f;%s]"):format(size.x / 2, size.y / 2 + 1, touch_text),
|
("label[%f,%f;%s]"):format(size.x / 2, size.y / 2 + 1, touch_text),
|
||||||
}
|
}
|
||||||
|
|
||||||
minetest.show_formspec(name, "testfullscreenfs:fs", table.concat(fs))
|
core.show_formspec(name, "testfullscreenfs:fs", table.concat(fs))
|
||||||
minetest.chat_send_player(name, ("Calculated size of %f, %f"):format(size.x, size.y))
|
core.chat_send_player(name, ("Calculated size of %f, %f"):format(size.x, size.y))
|
||||||
last_window_info[name] = window
|
last_window_info[name] = window
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("testfullscreenfs", {
|
core.register_chatcommand("testfullscreenfs", {
|
||||||
func = function(name)
|
func = function(name)
|
||||||
local window = minetest.get_player_window_information(name)
|
local window = core.get_player_window_information(name)
|
||||||
if not window then
|
if not window then
|
||||||
return false, "Unable to get window info"
|
return false, "Unable to get window info"
|
||||||
end
|
end
|
||||||
@ -51,21 +51,21 @@ minetest.register_chatcommand("testfullscreenfs", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_globalstep(function()
|
core.register_globalstep(function()
|
||||||
for name, last_window in pairs(last_window_info) do
|
for name, last_window in pairs(last_window_info) do
|
||||||
local window = minetest.get_player_window_information(name)
|
local window = core.get_player_window_information(name)
|
||||||
if window and not window_info_equal(last_window, window) then
|
if window and not window_info_equal(last_window, window) then
|
||||||
show_fullscreen_fs(name, window)
|
show_fullscreen_fs(name, window)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname == "testfullscreenfs:fs" and fields.quit then
|
if formname == "testfullscreenfs:fs" and fields.quit then
|
||||||
last_window_info[player:get_player_name()] = nil
|
last_window_info[player:get_player_name()] = nil
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
core.register_on_leaveplayer(function(player)
|
||||||
last_window_info[player:get_player_name()] = nil
|
last_window_info[player:get_player_name()] = nil
|
||||||
end)
|
end)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
name = testfullscreenfs
|
name = testfullscreenfs
|
||||||
description = Test mod to use minetest.get_player_window_information()
|
description = Test mod to use core.get_player_window_information()
|
||||||
|
@ -8,8 +8,8 @@ local font_states = {
|
|||||||
{4, "Monospace font"},
|
{4, "Monospace font"},
|
||||||
{5, "Bold and monospace font"},
|
{5, "Bold and monospace font"},
|
||||||
{7, "ZOMG all the font styles"},
|
{7, "ZOMG all the font styles"},
|
||||||
{7, "Colors test! " .. minetest.colorize("green", "Green") ..
|
{7, "Colors test! " .. core.colorize("green", "Green") ..
|
||||||
minetest.colorize("red", "\nRed") .. " END"},
|
core.colorize("red", "\nRed") .. " END"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -33,13 +33,13 @@ end
|
|||||||
local font_etime = 0
|
local font_etime = 0
|
||||||
local font_state = 0
|
local font_state = 0
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
core.register_globalstep(function(dtime)
|
||||||
font_etime = font_etime + dtime
|
font_etime = font_etime + dtime
|
||||||
if font_etime < 1 then
|
if font_etime < 1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
font_etime = 0
|
font_etime = 0
|
||||||
for _, player in ipairs(minetest.get_connected_players()) do
|
for _, player in ipairs(core.get_connected_players()) do
|
||||||
local huds = player_font_huds[player:get_player_name()]
|
local huds = player_font_huds[player:get_player_name()]
|
||||||
if huds then
|
if huds then
|
||||||
for i, hud_id in ipairs(huds) do
|
for i, hud_id in ipairs(huds) do
|
||||||
@ -52,11 +52,11 @@ minetest.register_globalstep(function(dtime)
|
|||||||
font_state = font_state + 1
|
font_state = font_state + 1
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("hudfonts", {
|
core.register_chatcommand("hudfonts", {
|
||||||
params = "[<HUD elements>]",
|
params = "[<HUD elements>]",
|
||||||
description = "Show/Hide some text on the HUD with various font options",
|
description = "Show/Hide some text on the HUD with various font options",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local param = tonumber(param) or 0
|
local param = tonumber(param) or 0
|
||||||
param = math.min(math.max(param, 1), #font_states)
|
param = math.min(math.max(param, 1), #font_states)
|
||||||
if player_font_huds[name] == nil then
|
if player_font_huds[name] == nil then
|
||||||
@ -64,14 +64,14 @@ minetest.register_chatcommand("hudfonts", {
|
|||||||
for i = 1, param do
|
for i = 1, param do
|
||||||
table.insert(player_font_huds[name], add_font_hud(player, i))
|
table.insert(player_font_huds[name], add_font_hud(player, i))
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, ("%d text HUD element(s) added."):format(param))
|
core.chat_send_player(name, ("%d text HUD element(s) added."):format(param))
|
||||||
else
|
else
|
||||||
local huds = player_font_huds[name]
|
local huds = player_font_huds[name]
|
||||||
if huds then
|
if huds then
|
||||||
for _, hud_id in ipairs(huds) do
|
for _, hud_id in ipairs(huds) do
|
||||||
player:hud_remove(hud_id)
|
player:hud_remove(hud_id)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, "All text HUD elements removed.")
|
core.chat_send_player(name, "All text HUD elements removed.")
|
||||||
end
|
end
|
||||||
player_font_huds[name] = nil
|
player_font_huds[name] = nil
|
||||||
end
|
end
|
||||||
@ -82,11 +82,11 @@ minetest.register_chatcommand("hudfonts", {
|
|||||||
-- Testing waypoint capabilities
|
-- Testing waypoint capabilities
|
||||||
|
|
||||||
local player_waypoints = {}
|
local player_waypoints = {}
|
||||||
minetest.register_chatcommand("hudwaypoints", {
|
core.register_chatcommand("hudwaypoints", {
|
||||||
params = "[ add | add_change | remove ]",
|
params = "[ add | add_change | remove ]",
|
||||||
description = "Create HUD waypoints at your position for testing (add: Add waypoints and change them after 0.5s (default). add_change: Add waypoints and change immediately. remove: Remove all waypoints)",
|
description = "Create HUD waypoints at your position for testing (add: Add waypoints and change them after 0.5s (default). add_change: Add waypoints and change immediately. remove: Remove all waypoints)",
|
||||||
func = function(name, params)
|
func = function(name, params)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -142,13 +142,13 @@ minetest.register_chatcommand("hudwaypoints", {
|
|||||||
if hidden_distance then
|
if hidden_distance then
|
||||||
chplayer:hud_change(hidden_distance, "number", 0x0000FF)
|
chplayer:hud_change(hidden_distance, "number", 0x0000FF)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(chplayer:get_player_name(), "Waypoints changed.")
|
core.chat_send_player(chplayer:get_player_name(), "Waypoints changed.")
|
||||||
end
|
end
|
||||||
if params == "add_change" then
|
if params == "add_change" then
|
||||||
-- change immediate
|
-- change immediate
|
||||||
change(player)
|
change(player)
|
||||||
else
|
else
|
||||||
minetest.after(0.5, change, player)
|
core.after(0.5, change, player)
|
||||||
end
|
end
|
||||||
local image_waypoint = player:hud_add {
|
local image_waypoint = player:hud_add {
|
||||||
type = "image_waypoint",
|
type = "image_waypoint",
|
||||||
@ -182,15 +182,15 @@ minetest.register_chatcommand("hudwaypoints", {
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
core.register_on_joinplayer(function(player)
|
||||||
player:set_properties({zoom_fov = 15})
|
player:set_properties({zoom_fov = 15})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("zoomfov", {
|
core.register_chatcommand("zoomfov", {
|
||||||
params = "[<FOV>]",
|
params = "[<FOV>]",
|
||||||
description = "Set or display your zoom_fov",
|
description = "Set or display your zoom_fov",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -241,12 +241,12 @@ local hud_hotbar_defs = {
|
|||||||
|
|
||||||
|
|
||||||
local player_hud_hotbars= {}
|
local player_hud_hotbars= {}
|
||||||
minetest.register_chatcommand("hudhotbars", {
|
core.register_chatcommand("hudhotbars", {
|
||||||
description = "Shows some test Lua HUD elements of type hotbar. " ..
|
description = "Shows some test Lua HUD elements of type hotbar. " ..
|
||||||
"(add: Adds elements (default). remove: Removes elements)",
|
"(add: Adds elements (default). remove: Removes elements)",
|
||||||
params = "[ add | remove ]",
|
params = "[ add | remove ]",
|
||||||
func = function(name, params)
|
func = function(name, params)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -310,11 +310,11 @@ local hud_inventory_defs = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local player_hud_inventories= {}
|
local player_hud_inventories= {}
|
||||||
minetest.register_chatcommand("hudinventories", {
|
core.register_chatcommand("hudinventories", {
|
||||||
description = "Shows some test Lua HUD elements of type inventory. (add: Adds elements (default). remove: Removes elements)",
|
description = "Shows some test Lua HUD elements of type inventory. (add: Adds elements (default). remove: Removes elements)",
|
||||||
params = "[ add | remove ]",
|
params = "[ add | remove ]",
|
||||||
func = function(name, params)
|
func = function(name, params)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -341,7 +341,7 @@ minetest.register_chatcommand("hudinventories", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
core.register_on_leaveplayer(function(player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
player_font_huds[playername] = nil
|
player_font_huds[playername] = nil
|
||||||
player_waypoints[playername] = nil
|
player_waypoints[playername] = nil
|
||||||
@ -349,10 +349,10 @@ minetest.register_on_leaveplayer(function(player)
|
|||||||
player_hud_inventories[playername] = nil
|
player_hud_inventories[playername] = nil
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_chatcommand("hudprint", {
|
core.register_chatcommand("hudprint", {
|
||||||
description = "Writes all used Lua HUD elements into chat.",
|
description = "Writes all used Lua HUD elements into chat.",
|
||||||
func = function(name, params)
|
func = function(name, params)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -372,11 +372,11 @@ minetest.register_chatcommand("hudprint", {
|
|||||||
local hud_flags = {"hotbar", "healthbar", "crosshair", "wielditem", "breathbar",
|
local hud_flags = {"hotbar", "healthbar", "crosshair", "wielditem", "breathbar",
|
||||||
"minimap", "minimap_radar", "basic_debug", "chat"}
|
"minimap", "minimap_radar", "basic_debug", "chat"}
|
||||||
|
|
||||||
minetest.register_chatcommand("hudtoggleflag", {
|
core.register_chatcommand("hudtoggleflag", {
|
||||||
description = "Toggles a hud flag.",
|
description = "Toggles a hud flag.",
|
||||||
params = "[ ".. table.concat(hud_flags, " | ") .." ]",
|
params = "[ ".. table.concat(hud_flags, " | ") .." ]",
|
||||||
func = function(name, params)
|
func = function(name, params)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local S = minetest.get_translator("testitems")
|
local S = core.get_translator("testitems")
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Texture overlays for items
|
-- Texture overlays for items
|
||||||
@ -13,7 +13,7 @@ local overlay_on_use = function(itemstack, user, pointed_thing)
|
|||||||
local color = math.random(0x0, 0xFFFFFF)
|
local color = math.random(0x0, 0xFFFFFF)
|
||||||
local colorstr = string.format("#%06x", color)
|
local colorstr = string.format("#%06x", color)
|
||||||
meta:set_string("color", colorstr)
|
meta:set_string("color", colorstr)
|
||||||
minetest.log("action", "[testitems] Color of "..itemstack:get_name().." changed to "..colorstr)
|
core.log("action", "[testitems] Color of "..itemstack:get_name().." changed to "..colorstr)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
-- Place handler to clear item metadata color
|
-- Place handler to clear item metadata color
|
||||||
@ -23,7 +23,7 @@ local overlay_on_place = function(itemstack, user, pointed_thing)
|
|||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_craftitem("testitems:overlay_meta", {
|
core.register_craftitem("testitems:overlay_meta", {
|
||||||
description = S("Texture Overlay Test Item, Meta Color") .. "\n" ..
|
description = S("Texture Overlay Test Item, Meta Color") .. "\n" ..
|
||||||
S("Image must be a square with rainbow cross (inventory and wield)") .. "\n" ..
|
S("Image must be a square with rainbow cross (inventory and wield)") .. "\n" ..
|
||||||
S("Item meta color must only change square color") .. "\n" ..
|
S("Item meta color must only change square color") .. "\n" ..
|
||||||
@ -41,7 +41,7 @@ minetest.register_craftitem("testitems:overlay_meta", {
|
|||||||
on_secondary_use = overlay_on_place,
|
on_secondary_use = overlay_on_place,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testitems:overlay_global", {
|
core.register_craftitem("testitems:overlay_global", {
|
||||||
description = S("Texture Overlay Test Item, Global Color") .. "\n" ..
|
description = S("Texture Overlay Test Item, Global Color") .. "\n" ..
|
||||||
S("Image must be an orange square with rainbow cross (inventory and wield)"),
|
S("Image must be an orange square with rainbow cross (inventory and wield)"),
|
||||||
-- Base texture: A grayscale square (to be colorized)
|
-- Base texture: A grayscale square (to be colorized)
|
||||||
@ -53,7 +53,7 @@ minetest.register_craftitem("testitems:overlay_global", {
|
|||||||
color = GLOBAL_COLOR_ARG,
|
color = GLOBAL_COLOR_ARG,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testitems:image_meta", {
|
core.register_craftitem("testitems:image_meta", {
|
||||||
description = S("Image Override Meta Test Item"),
|
description = S("Image Override Meta Test Item"),
|
||||||
inventory_image = "default_apple.png",
|
inventory_image = "default_apple.png",
|
||||||
wield_image = "basetools_icesword.png",
|
wield_image = "basetools_icesword.png",
|
||||||
@ -63,7 +63,7 @@ minetest.register_craftitem("testitems:image_meta", {
|
|||||||
local state = meta:get_int("state")
|
local state = meta:get_int("state")
|
||||||
state = (state + 1) % 5
|
state = (state + 1) % 5
|
||||||
meta:set_int("state", state)
|
meta:set_int("state", state)
|
||||||
minetest.chat_send_player(player:get_player_name(), "State " .. state)
|
core.chat_send_player(player:get_player_name(), "State " .. state)
|
||||||
|
|
||||||
if state == 0 then
|
if state == 0 then
|
||||||
meta:set_string("inventory_image", "")
|
meta:set_string("inventory_image", "")
|
||||||
@ -91,7 +91,7 @@ minetest.register_craftitem("testitems:image_meta", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("testitems:telescope_stick", {
|
core.register_craftitem("testitems:telescope_stick", {
|
||||||
description = S("Telescope Stick (Increases range on use.)"),
|
description = S("Telescope Stick (Increases range on use.)"),
|
||||||
inventory_image = "testitems_telescope_stick.png",
|
inventory_image = "testitems_telescope_stick.png",
|
||||||
on_use = function(itemstack, player)
|
on_use = function(itemstack, player)
|
||||||
@ -101,7 +101,7 @@ minetest.register_craftitem("testitems:telescope_stick", {
|
|||||||
range = 0
|
range = 0
|
||||||
end
|
end
|
||||||
meta:set_float("range", range)
|
meta:set_float("range", range)
|
||||||
minetest.chat_send_player(player:get_player_name(), "Telescope Stick range set to "..range)
|
core.chat_send_player(player:get_player_name(), "Telescope Stick range set to "..range)
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -25,12 +25,12 @@ local function place_nodes(param)
|
|||||||
local pos = param.pos
|
local pos = param.pos
|
||||||
local start_pos = param.start_pos
|
local start_pos = param.start_pos
|
||||||
table.sort(nodes)
|
table.sort(nodes)
|
||||||
minetest.chat_send_player(name, "Placing nodes …")
|
core.chat_send_player(name, "Placing nodes …")
|
||||||
local nodes_placed = 0
|
local nodes_placed = 0
|
||||||
local aborted = false
|
local aborted = false
|
||||||
for n=1, #nodes do
|
for n=1, #nodes do
|
||||||
local itemstring = nodes[n]
|
local itemstring = nodes[n]
|
||||||
local def = minetest.registered_nodes[itemstring]
|
local def = core.registered_nodes[itemstring]
|
||||||
local p2_max = 0
|
local p2_max = 0
|
||||||
if param.param ~= "no_param2" then
|
if param.param ~= "no_param2" then
|
||||||
-- Also test the param2 values of the nodes
|
-- Also test the param2 values of the nodes
|
||||||
@ -64,7 +64,7 @@ local function place_nodes(param)
|
|||||||
((def.paramtype2 == "colorfacedir" or def.paramtype2 == "colordegrotate")
|
((def.paramtype2 == "colorfacedir" or def.paramtype2 == "colordegrotate")
|
||||||
and p2 % 32 > 23)) then
|
and p2 % 32 > 23)) then
|
||||||
|
|
||||||
minetest.set_node(pos, { name = itemstring, param2 = p2 })
|
core.set_node(pos, { name = itemstring, param2 = p2 })
|
||||||
nodes_placed = nodes_placed + 1
|
nodes_placed = nodes_placed + 1
|
||||||
pos = advance_pos(pos, start_pos)
|
pos = advance_pos(pos, start_pos)
|
||||||
if not pos then
|
if not pos then
|
||||||
@ -78,9 +78,9 @@ local function place_nodes(param)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if aborted then
|
if aborted then
|
||||||
minetest.chat_send_player(name, "Not all nodes could be placed, please move further away from the world boundary. Nodes placed: "..nodes_placed)
|
core.chat_send_player(name, "Not all nodes could be placed, please move further away from the world boundary. Nodes placed: "..nodes_placed)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, "Nodes placed: "..nodes_placed..".")
|
core.chat_send_player(name, "Nodes placed: "..nodes_placed..".")
|
||||||
end
|
end
|
||||||
|
|
||||||
local function after_emerge(blockpos, action, calls_remaining, param)
|
local function after_emerge(blockpos, action, calls_remaining, param)
|
||||||
@ -89,11 +89,11 @@ local function after_emerge(blockpos, action, calls_remaining, param)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("test_place_nodes", {
|
core.register_chatcommand("test_place_nodes", {
|
||||||
params = "[ no_param2 ]",
|
params = "[ no_param2 ]",
|
||||||
description = "Test: Place all nodes (except dummy and callback nodes) and optionally their permissible param2 variants",
|
description = "Test: Place all nodes (except dummy and callback nodes) and optionally their permissible param2 variants",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -112,12 +112,12 @@ minetest.register_chatcommand("test_place_nodes", {
|
|||||||
local aborted = false
|
local aborted = false
|
||||||
local nodes = {}
|
local nodes = {}
|
||||||
local emerge_estimate = 0
|
local emerge_estimate = 0
|
||||||
for itemstring, def in pairs(minetest.registered_nodes) do
|
for itemstring, def in pairs(core.registered_nodes) do
|
||||||
if itemstring ~= "ignore" and
|
if itemstring ~= "ignore" and
|
||||||
-- Skip callback test and dummy nodes
|
-- Skip callback test and dummy nodes
|
||||||
-- to avoid clutter and chat spam
|
-- to avoid clutter and chat spam
|
||||||
minetest.get_item_group(itemstring, "callback_test") == 0 and
|
core.get_item_group(itemstring, "callback_test") == 0 and
|
||||||
minetest.get_item_group(itemstring, "dummy") == 0 then
|
core.get_item_group(itemstring, "dummy") == 0 then
|
||||||
table.insert(nodes, itemstring)
|
table.insert(nodes, itemstring)
|
||||||
if def.paramtype2 == 0 then
|
if def.paramtype2 == 0 then
|
||||||
emerge_estimate = emerge_estimate + 1
|
emerge_estimate = emerge_estimate + 1
|
||||||
@ -130,7 +130,7 @@ minetest.register_chatcommand("test_place_nodes", {
|
|||||||
-- Note we will emerge much more than we need to (overestimation),
|
-- Note we will emerge much more than we need to (overestimation),
|
||||||
-- the estimation code could be improved performance-wise …
|
-- the estimation code could be improved performance-wise …
|
||||||
local length = 16 + math.ceil(emerge_estimate / 24) * 2
|
local length = 16 + math.ceil(emerge_estimate / 24) * 2
|
||||||
minetest.emerge_area(start_pos,
|
core.emerge_area(start_pos,
|
||||||
{ x = start_pos.x + 46, y = start_pos.y, z = start_pos.z + length },
|
{ x = start_pos.x + 46, y = start_pos.y, z = start_pos.z + length },
|
||||||
after_emerge, { nodes = nodes, name = name, pos = pos, start_pos = start_pos, param = param })
|
after_emerge, { nodes = nodes, name = name, pos = pos, start_pos = start_pos, param = param })
|
||||||
return true, "Emerging area …"
|
return true, "Emerging area …"
|
||||||
|
@ -13,10 +13,10 @@ unrelated to the drawtype, stuff that is mostly there to make
|
|||||||
testing this node easier and more convenient.
|
testing this node easier and more convenient.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- A regular cube
|
-- A regular cube
|
||||||
minetest.register_node("testnodes:normal", {
|
core.register_node("testnodes:normal", {
|
||||||
description = S("\"normal\" Drawtype Test Node").."\n"..
|
description = S("\"normal\" Drawtype Test Node").."\n"..
|
||||||
S("Opaque texture"),
|
S("Opaque texture"),
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
@ -26,7 +26,7 @@ minetest.register_node("testnodes:normal", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Standard glasslike node
|
-- Standard glasslike node
|
||||||
minetest.register_node("testnodes:glasslike", {
|
core.register_node("testnodes:glasslike", {
|
||||||
description = S("\"glasslike\" Drawtype Test Node").."\n"..
|
description = S("\"glasslike\" Drawtype Test Node").."\n"..
|
||||||
S("Transparent node with hidden backfaces"),
|
S("Transparent node with hidden backfaces"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
@ -37,7 +37,7 @@ minetest.register_node("testnodes:glasslike", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Glasslike framed with the two textures (normal and "detail")
|
-- Glasslike framed with the two textures (normal and "detail")
|
||||||
minetest.register_node("testnodes:glasslike_framed", {
|
core.register_node("testnodes:glasslike_framed", {
|
||||||
description = S("\"glasslike_framed\" Drawtype Test Node").."\n"..
|
description = S("\"glasslike_framed\" Drawtype Test Node").."\n"..
|
||||||
S("Transparent node with hidden backfaces").."\n"..
|
S("Transparent node with hidden backfaces").."\n"..
|
||||||
S("Frame connects to neighbors"),
|
S("Frame connects to neighbors"),
|
||||||
@ -56,7 +56,7 @@ minetest.register_node("testnodes:glasslike_framed", {
|
|||||||
-- Like the one above, but without the "detail" texture (texture 2).
|
-- Like the one above, but without the "detail" texture (texture 2).
|
||||||
-- This node was added to see how the engine behaves when the "detail" texture
|
-- This node was added to see how the engine behaves when the "detail" texture
|
||||||
-- is missing.
|
-- is missing.
|
||||||
minetest.register_node("testnodes:glasslike_framed_no_detail", {
|
core.register_node("testnodes:glasslike_framed_no_detail", {
|
||||||
description = S("\"glasslike_framed\" Drawtype without Detail Test Node").."\n"..
|
description = S("\"glasslike_framed\" Drawtype without Detail Test Node").."\n"..
|
||||||
S("Transparent node with hidden backfaces").."\n"..
|
S("Transparent node with hidden backfaces").."\n"..
|
||||||
S("Frame connects to neighbors, but the 'detail' tile is not used"),
|
S("Frame connects to neighbors, but the 'detail' tile is not used"),
|
||||||
@ -70,7 +70,7 @@ minetest.register_node("testnodes:glasslike_framed_no_detail", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:glasslike_framed_optional", {
|
core.register_node("testnodes:glasslike_framed_optional", {
|
||||||
description = S("\"glasslike_framed_optional\" Drawtype Test Node").."\n"..
|
description = S("\"glasslike_framed_optional\" Drawtype Test Node").."\n"..
|
||||||
S("Transparent node with hidden backfaces").."\n"..
|
S("Transparent node with hidden backfaces").."\n"..
|
||||||
S("Frame connects if 'connected_glass' setting is true"),
|
S("Frame connects if 'connected_glass' setting is true"),
|
||||||
@ -88,7 +88,7 @@ minetest.register_node("testnodes:glasslike_framed_optional", {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:allfaces", {
|
core.register_node("testnodes:allfaces", {
|
||||||
description = S("\"allfaces\" Drawtype Test Node").."\n"..
|
description = S("\"allfaces\" Drawtype Test Node").."\n"..
|
||||||
S("Transparent node with visible internal backfaces"),
|
S("Transparent node with visible internal backfaces"),
|
||||||
drawtype = "allfaces",
|
drawtype = "allfaces",
|
||||||
@ -98,7 +98,7 @@ minetest.register_node("testnodes:allfaces", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:allfaces_6", {
|
core.register_node("testnodes:allfaces_6", {
|
||||||
description = S("\"allfaces 6 Textures\" Drawtype Test Node").."\n"..
|
description = S("\"allfaces 6 Textures\" Drawtype Test Node").."\n"..
|
||||||
S("Transparent node with visible internal backfaces"),
|
S("Transparent node with visible internal backfaces"),
|
||||||
drawtype = "allfaces",
|
drawtype = "allfaces",
|
||||||
@ -121,7 +121,7 @@ local allfaces_optional_tooltip = ""..
|
|||||||
S("* 'simple': transparent with hidden backfaces").."\n"..
|
S("* 'simple': transparent with hidden backfaces").."\n"..
|
||||||
S("* 'opaque': opaque")
|
S("* 'opaque': opaque")
|
||||||
|
|
||||||
minetest.register_node("testnodes:allfaces_optional", {
|
core.register_node("testnodes:allfaces_optional", {
|
||||||
description = S("\"allfaces_optional\" Drawtype Test Node").."\n"..
|
description = S("\"allfaces_optional\" Drawtype Test Node").."\n"..
|
||||||
allfaces_optional_tooltip,
|
allfaces_optional_tooltip,
|
||||||
drawtype = "allfaces_optional",
|
drawtype = "allfaces_optional",
|
||||||
@ -131,7 +131,7 @@ minetest.register_node("testnodes:allfaces_optional", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:allfaces_optional_waving", {
|
core.register_node("testnodes:allfaces_optional_waving", {
|
||||||
description = S("Waving \"allfaces_optional\" Drawtype Test Node").."\n"..
|
description = S("Waving \"allfaces_optional\" Drawtype Test Node").."\n"..
|
||||||
allfaces_optional_tooltip.."\n"..
|
allfaces_optional_tooltip.."\n"..
|
||||||
S("Waves if waving leaves are enabled by client"),
|
S("Waves if waving leaves are enabled by client"),
|
||||||
@ -143,7 +143,7 @@ minetest.register_node("testnodes:allfaces_optional_waving", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:firelike", {
|
core.register_node("testnodes:firelike", {
|
||||||
description = S("\"firelike\" Drawtype Test Node").."\n"..
|
description = S("\"firelike\" Drawtype Test Node").."\n"..
|
||||||
S("Changes shape based on neighbors"),
|
S("Changes shape based on neighbors"),
|
||||||
drawtype = "firelike",
|
drawtype = "firelike",
|
||||||
@ -155,7 +155,7 @@ minetest.register_node("testnodes:firelike", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:fencelike", {
|
core.register_node("testnodes:fencelike", {
|
||||||
description = S("\"fencelike\" Drawtype Test Node").."\n"..
|
description = S("\"fencelike\" Drawtype Test Node").."\n"..
|
||||||
S("Connects to neighbors"),
|
S("Connects to neighbors"),
|
||||||
drawtype = "fencelike",
|
drawtype = "fencelike",
|
||||||
@ -165,7 +165,7 @@ minetest.register_node("testnodes:fencelike", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:torchlike", {
|
core.register_node("testnodes:torchlike", {
|
||||||
description = S("Floor \"torchlike\" Drawtype Test Node").."\n"..
|
description = S("Floor \"torchlike\" Drawtype Test Node").."\n"..
|
||||||
S("Always on floor"),
|
S("Always on floor"),
|
||||||
drawtype = "torchlike",
|
drawtype = "torchlike",
|
||||||
@ -178,7 +178,7 @@ minetest.register_node("testnodes:torchlike", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:torchlike_wallmounted", {
|
core.register_node("testnodes:torchlike_wallmounted", {
|
||||||
description = S("Wallmounted \"torchlike\" Drawtype Test Node").."\n"..
|
description = S("Wallmounted \"torchlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
drawtype = "torchlike",
|
drawtype = "torchlike",
|
||||||
@ -196,7 +196,7 @@ minetest.register_node("testnodes:torchlike_wallmounted", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:torchlike_wallmounted_rot", {
|
core.register_node("testnodes:torchlike_wallmounted_rot", {
|
||||||
description = S("Wallmounted Rotatable Torchlike Drawtype Test Node"),
|
description = S("Wallmounted Rotatable Torchlike Drawtype Test Node"),
|
||||||
drawtype = "torchlike",
|
drawtype = "torchlike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -214,7 +214,7 @@ minetest.register_node("testnodes:torchlike_wallmounted_rot", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:signlike", {
|
core.register_node("testnodes:signlike", {
|
||||||
description = S("Floor \"signlike\" Drawtype Test Node").."\n"..
|
description = S("Floor \"signlike\" Drawtype Test Node").."\n"..
|
||||||
S("Always on floor"),
|
S("Always on floor"),
|
||||||
drawtype = "signlike",
|
drawtype = "signlike",
|
||||||
@ -226,7 +226,7 @@ minetest.register_node("testnodes:signlike", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:signlike_wallmounted", {
|
core.register_node("testnodes:signlike_wallmounted", {
|
||||||
description = S("Wallmounted \"signlike\" Drawtype Test Node").."\n"..
|
description = S("Wallmounted \"signlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
drawtype = "signlike",
|
drawtype = "signlike",
|
||||||
@ -240,7 +240,7 @@ minetest.register_node("testnodes:signlike_wallmounted", {
|
|||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:signlike_rot", {
|
core.register_node("testnodes:signlike_rot", {
|
||||||
description = S("Wallmounted Rotatable Signlike Drawtype Test Node"),
|
description = S("Wallmounted Rotatable Signlike Drawtype Test Node"),
|
||||||
drawtype = "signlike",
|
drawtype = "signlike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -256,7 +256,7 @@ minetest.register_node("testnodes:signlike_rot", {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike", {
|
core.register_node("testnodes:plantlike", {
|
||||||
description = S("\"plantlike\" Drawtype Test Node"),
|
description = S("\"plantlike\" Drawtype Test Node"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -268,7 +268,7 @@ minetest.register_node("testnodes:plantlike", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_waving", {
|
core.register_node("testnodes:plantlike_waving", {
|
||||||
description = S("Waving \"plantlike\" Drawtype Test Node").."\n"..
|
description = S("Waving \"plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("Waves if waving plants are enabled by client"),
|
S("Waves if waving plants are enabled by client"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -282,7 +282,7 @@ minetest.register_node("testnodes:plantlike_waving", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_wallmounted", {
|
core.register_node("testnodes:plantlike_wallmounted", {
|
||||||
description = S("Wallmounted \"plantlike\" Drawtype Test Node").."\n"..
|
description = S("Wallmounted \"plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -300,7 +300,7 @@ minetest.register_node("testnodes:plantlike_wallmounted", {
|
|||||||
|
|
||||||
-- param2 will rotate
|
-- param2 will rotate
|
||||||
local function rotate_on_rightclick(pos, node, clicker)
|
local function rotate_on_rightclick(pos, node, clicker)
|
||||||
local def = minetest.registered_nodes[node.name]
|
local def = core.registered_nodes[node.name]
|
||||||
local aux1 = clicker:get_player_control().aux1
|
local aux1 = clicker:get_player_control().aux1
|
||||||
|
|
||||||
local deg, deg_max
|
local deg, deg_max
|
||||||
@ -318,12 +318,12 @@ local function rotate_on_rightclick(pos, node, clicker)
|
|||||||
|
|
||||||
deg = (deg + (aux1 and 10 or 1)) % deg_max
|
deg = (deg + (aux1 and 10 or 1)) % deg_max
|
||||||
node.param2 = color * color_mult + deg
|
node.param2 = color * color_mult + deg
|
||||||
minetest.swap_node(pos, node)
|
core.swap_node(pos, node)
|
||||||
minetest.chat_send_player(clicker:get_player_name(),
|
core.chat_send_player(clicker:get_player_name(),
|
||||||
"Rotation is now " .. deg .. " / " .. deg_max)
|
"Rotation is now " .. deg .. " / " .. deg_max)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_degrotate", {
|
core.register_node("testnodes:plantlike_degrotate", {
|
||||||
description = S("Degrotate \"plantlike\" Drawtype Test Node").."\n"..
|
description = S("Degrotate \"plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = horizontal rotation (0..239)"),
|
S("param2 = horizontal rotation (0..239)"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -338,7 +338,7 @@ minetest.register_node("testnodes:plantlike_degrotate", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_degrotate", {
|
core.register_node("testnodes:mesh_degrotate", {
|
||||||
description = S("Degrotate \"mesh\" Drawtype Test Node").."\n"..
|
description = S("Degrotate \"mesh\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = horizontal rotation (0..239)"),
|
S("param2 = horizontal rotation (0..239)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -353,7 +353,7 @@ minetest.register_node("testnodes:mesh_degrotate", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_colordegrotate", {
|
core.register_node("testnodes:mesh_colordegrotate", {
|
||||||
description = S("Colordegrotate \"mesh\" Drawtype Test Node").."\n"..
|
description = S("Colordegrotate \"mesh\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = color + horizontal rotation (0..23, 32..55, ...)"),
|
S("param2 = color + horizontal rotation (0..23, 32..55, ...)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -371,7 +371,7 @@ minetest.register_node("testnodes:mesh_colordegrotate", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 will change height
|
-- param2 will change height
|
||||||
minetest.register_node("testnodes:plantlike_leveled", {
|
core.register_node("testnodes:plantlike_leveled", {
|
||||||
description = S("Leveled \"plantlike\" Drawtype Test Node").."\n"..
|
description = S("Leveled \"plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = height (0..255)"),
|
S("param2 = height (0..255)"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -390,7 +390,7 @@ minetest.register_node("testnodes:plantlike_leveled", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 changes shape
|
-- param2 changes shape
|
||||||
minetest.register_node("testnodes:plantlike_meshoptions", {
|
core.register_node("testnodes:plantlike_meshoptions", {
|
||||||
description = S("Meshoptions \"plantlike\" Drawtype Test Node").."\n"..
|
description = S("Meshoptions \"plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = plant shape"),
|
S("param2 = plant shape"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -403,7 +403,7 @@ minetest.register_node("testnodes:plantlike_meshoptions", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_rooted", {
|
core.register_node("testnodes:plantlike_rooted", {
|
||||||
description = S("\"rooted_plantlike\" Drawtype Test Node"),
|
description = S("\"rooted_plantlike\" Drawtype Test Node"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -413,7 +413,7 @@ minetest.register_node("testnodes:plantlike_rooted", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_rooted_wallmounted", {
|
core.register_node("testnodes:plantlike_rooted_wallmounted", {
|
||||||
description = S("Wallmounted \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
description = S("Wallmounted \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
@ -428,7 +428,7 @@ minetest.register_node("testnodes:plantlike_rooted_wallmounted", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:plantlike_rooted_waving", {
|
core.register_node("testnodes:plantlike_rooted_waving", {
|
||||||
description = S("Waving \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
description = S("Waving \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("Waves if waving plants are enabled by client"),
|
S("Waves if waving plants are enabled by client"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
@ -445,7 +445,7 @@ minetest.register_node("testnodes:plantlike_rooted_waving", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 changes height
|
-- param2 changes height
|
||||||
minetest.register_node("testnodes:plantlike_rooted_leveled", {
|
core.register_node("testnodes:plantlike_rooted_leveled", {
|
||||||
description = S("Leveled \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
description = S("Leveled \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = height (0..255)"),
|
S("param2 = height (0..255)"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
@ -467,7 +467,7 @@ minetest.register_node("testnodes:plantlike_rooted_leveled", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 changes shape
|
-- param2 changes shape
|
||||||
minetest.register_node("testnodes:plantlike_rooted_meshoptions", {
|
core.register_node("testnodes:plantlike_rooted_meshoptions", {
|
||||||
description = S("Meshoptions \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
description = S("Meshoptions \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = plant shape"),
|
S("param2 = plant shape"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
@ -486,7 +486,7 @@ minetest.register_node("testnodes:plantlike_rooted_meshoptions", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 changes rotation
|
-- param2 changes rotation
|
||||||
minetest.register_node("testnodes:plantlike_rooted_degrotate", {
|
core.register_node("testnodes:plantlike_rooted_degrotate", {
|
||||||
description = S("Degrotate \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
description = S("Degrotate \"rooted_plantlike\" Drawtype Test Node").."\n"..
|
||||||
S("param2 = horizontal rotation (0..239)"),
|
S("param2 = horizontal rotation (0..239)"),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
@ -508,7 +508,7 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", {
|
|||||||
-- DRAWTYPE ONLY, NO LIQUID PHYSICS!
|
-- DRAWTYPE ONLY, NO LIQUID PHYSICS!
|
||||||
-- Liquid ranges 0 to 8
|
-- Liquid ranges 0 to 8
|
||||||
for r = 0, 8 do
|
for r = 0, 8 do
|
||||||
minetest.register_node("testnodes:liquid_"..r, {
|
core.register_node("testnodes:liquid_"..r, {
|
||||||
description = S("\"liquid\" Drawtype Test Node, Range @1", r).."\n"..
|
description = S("\"liquid\" Drawtype Test Node, Range @1", r).."\n"..
|
||||||
S("Drawtype only; all liquid physics are disabled"),
|
S("Drawtype only; all liquid physics are disabled"),
|
||||||
drawtype = "liquid",
|
drawtype = "liquid",
|
||||||
@ -530,7 +530,7 @@ for r = 0, 8 do
|
|||||||
liquid_alternative_source = "testnodes:liquid_"..r,
|
liquid_alternative_source = "testnodes:liquid_"..r,
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:liquid_flowing_"..r, {
|
core.register_node("testnodes:liquid_flowing_"..r, {
|
||||||
description = S("\"flowingliquid\" Drawtype Test Node, Range @1", r).."\n"..
|
description = S("\"flowingliquid\" Drawtype Test Node, Range @1", r).."\n"..
|
||||||
S("Drawtype only; all liquid physics are disabled").."\n"..
|
S("Drawtype only; all liquid physics are disabled").."\n"..
|
||||||
S("param2 = flowing liquid level"),
|
S("param2 = flowing liquid level"),
|
||||||
@ -558,7 +558,7 @@ for r = 0, 8 do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Waving liquid test (drawtype only)
|
-- Waving liquid test (drawtype only)
|
||||||
minetest.register_node("testnodes:liquid_waving", {
|
core.register_node("testnodes:liquid_waving", {
|
||||||
description = S("Waving \"liquid\" Drawtype Test Node").."\n"..
|
description = S("Waving \"liquid\" Drawtype Test Node").."\n"..
|
||||||
S("Drawtype only; all liquid physics are disabled").."\n"..
|
S("Drawtype only; all liquid physics are disabled").."\n"..
|
||||||
S("Waves if waving liquids are enabled by client"),
|
S("Waves if waving liquids are enabled by client"),
|
||||||
@ -582,7 +582,7 @@ minetest.register_node("testnodes:liquid_waving", {
|
|||||||
liquid_alternative_source = "testnodes:liquid_waving",
|
liquid_alternative_source = "testnodes:liquid_waving",
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:liquid_flowing_waving", {
|
core.register_node("testnodes:liquid_flowing_waving", {
|
||||||
description = S("Waving \"flowingliquid\" Drawtype Test Node").."\n"..
|
description = S("Waving \"flowingliquid\" Drawtype Test Node").."\n"..
|
||||||
S("Drawtype only; all liquid physics are disabled").."\n"..
|
S("Drawtype only; all liquid physics are disabled").."\n"..
|
||||||
S("param2 = flowing liquid level").."\n"..
|
S("param2 = flowing liquid level").."\n"..
|
||||||
@ -610,7 +610,7 @@ minetest.register_node("testnodes:liquid_flowing_waving", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Invisible node
|
-- Invisible node
|
||||||
minetest.register_node("testnodes:airlike", {
|
core.register_node("testnodes:airlike", {
|
||||||
description = S("\"airlike\" Drawtype Test Node").."\n"..
|
description = S("\"airlike\" Drawtype Test Node").."\n"..
|
||||||
S("Invisible node").."\n"..
|
S("Invisible node").."\n"..
|
||||||
S("Inventory/wield image = no_texture_airlike.png"),
|
S("Inventory/wield image = no_texture_airlike.png"),
|
||||||
@ -626,7 +626,7 @@ minetest.register_node("testnodes:airlike", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- param2 changes liquid height
|
-- param2 changes liquid height
|
||||||
minetest.register_node("testnodes:glassliquid", {
|
core.register_node("testnodes:glassliquid", {
|
||||||
description = S("\"glasslike_framed\" Drawtype with Liquid Test Node").."\n"..
|
description = S("\"glasslike_framed\" Drawtype with Liquid Test Node").."\n"..
|
||||||
S("param2 = liquid level (0..63)"),
|
S("param2 = liquid level (0..63)"),
|
||||||
drawtype = "glasslike_framed",
|
drawtype = "glasslike_framed",
|
||||||
@ -661,14 +661,14 @@ for r=1, #rails do
|
|||||||
local tt = rails[r][3]
|
local tt = rails[r][3]
|
||||||
local raillike_group
|
local raillike_group
|
||||||
if id ~= "groupless" then
|
if id ~= "groupless" then
|
||||||
raillike_group = minetest.raillike_group(id)
|
raillike_group = core.raillike_group(id)
|
||||||
end
|
end
|
||||||
for c=1, #colors do
|
for c=1, #colors do
|
||||||
local color
|
local color
|
||||||
if colors[c] ~= "" then
|
if colors[c] ~= "" then
|
||||||
color = colors[c]
|
color = colors[c]
|
||||||
end
|
end
|
||||||
minetest.register_node("testnodes:raillike_"..id..c, {
|
core.register_node("testnodes:raillike_"..id..c, {
|
||||||
description = S("\"raillike\" Drawtype Test Node: @1 @2", id, c).."\n"..
|
description = S("\"raillike\" Drawtype Test Node: @1 @2", id, c).."\n"..
|
||||||
tt,
|
tt,
|
||||||
drawtype = "raillike",
|
drawtype = "raillike",
|
||||||
@ -693,7 +693,7 @@ end
|
|||||||
-- Add visual_scale variants of previous nodes for half and double size
|
-- Add visual_scale variants of previous nodes for half and double size
|
||||||
local scale = function(subname, append)
|
local scale = function(subname, append)
|
||||||
local original = "testnodes:"..subname
|
local original = "testnodes:"..subname
|
||||||
local def = table.copy(minetest.registered_items[original])
|
local def = table.copy(core.registered_items[original])
|
||||||
local orig_desc
|
local orig_desc
|
||||||
if append and type(append) == "string" then
|
if append and type(append) == "string" then
|
||||||
orig_desc = ItemStack(original):get_short_description()
|
orig_desc = ItemStack(original):get_short_description()
|
||||||
@ -705,11 +705,11 @@ local scale = function(subname, append)
|
|||||||
end
|
end
|
||||||
def.visual_scale = 2.0
|
def.visual_scale = 2.0
|
||||||
def.description = S("Double-sized @1", orig_desc)
|
def.description = S("Double-sized @1", orig_desc)
|
||||||
minetest.register_node("testnodes:"..subname.."_double", def)
|
core.register_node("testnodes:"..subname.."_double", def)
|
||||||
def = table.copy(minetest.registered_items[original])
|
def = table.copy(core.registered_items[original])
|
||||||
def.visual_scale = 0.5
|
def.visual_scale = 0.5
|
||||||
def.description = S("Half-sized @1", orig_desc)
|
def.description = S("Half-sized @1", orig_desc)
|
||||||
minetest.register_node("testnodes:"..subname.."_half", def)
|
core.register_node("testnodes:"..subname.."_half", def)
|
||||||
end
|
end
|
||||||
|
|
||||||
local allfaces_newsize_tt = ""..
|
local allfaces_newsize_tt = ""..
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local path = minetest.get_modpath(minetest.get_current_modname())
|
local path = core.get_modpath(core.get_current_modname())
|
||||||
|
|
||||||
dofile(path.."/drawtypes.lua")
|
dofile(path.."/drawtypes.lua")
|
||||||
dofile(path.."/meshes.lua")
|
dofile(path.."/meshes.lua")
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
-- Test Nodes: Light test
|
-- Test Nodes: Light test
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- All possible light levels
|
-- All possible light levels
|
||||||
for i=1, minetest.LIGHT_MAX do
|
for i=1, core.LIGHT_MAX do
|
||||||
minetest.register_node("testnodes:light"..string.format("%02d", i), {
|
core.register_node("testnodes:light"..string.format("%02d", i), {
|
||||||
description = S("Light Source (@1)", i),
|
description = S("Light Source (@1)", i),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
light_source = i,
|
light_source = i,
|
||||||
@ -21,7 +21,7 @@ end
|
|||||||
|
|
||||||
-- Lets light through, but not sunlight, leading to a
|
-- Lets light through, but not sunlight, leading to a
|
||||||
-- reduction in light level when light passes through
|
-- reduction in light level when light passes through
|
||||||
minetest.register_node("testnodes:sunlight_filter", {
|
core.register_node("testnodes:sunlight_filter", {
|
||||||
description = S("Sunlight Filter") .."\n"..
|
description = S("Sunlight Filter") .."\n"..
|
||||||
S("Lets light through, but weakens sunlight"),
|
S("Lets light through, but weakens sunlight"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -35,7 +35,7 @@ minetest.register_node("testnodes:sunlight_filter", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Lets light and sunlight through without obstruction
|
-- Lets light and sunlight through without obstruction
|
||||||
minetest.register_node("testnodes:sunlight_propagator", {
|
core.register_node("testnodes:sunlight_propagator", {
|
||||||
description = S("Sunlight Propagator") .."\n"..
|
description = S("Sunlight Propagator") .."\n"..
|
||||||
S("Lets all light through"),
|
S("Lets all light through"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -7,7 +7,7 @@ for d=0, 8 do
|
|||||||
else
|
else
|
||||||
tt_normal = "\n".."Swimmable, spreading, renewable liquid"
|
tt_normal = "\n".."Swimmable, spreading, renewable liquid"
|
||||||
end
|
end
|
||||||
minetest.register_node("testnodes:rliquid_"..d, {
|
core.register_node("testnodes:rliquid_"..d, {
|
||||||
description = "Test Liquid Source, Range "..d..
|
description = "Test Liquid Source, Range "..d..
|
||||||
tt_normal .. "\n" .. "(falling & floating node)",
|
tt_normal .. "\n" .. "(falling & floating node)",
|
||||||
drawtype = "liquid",
|
drawtype = "liquid",
|
||||||
@ -29,7 +29,7 @@ for d=0, 8 do
|
|||||||
groups = {float = 1, falling_node = 1},
|
groups = {float = 1, falling_node = 1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:rliquid_flowing_"..d, {
|
core.register_node("testnodes:rliquid_flowing_"..d, {
|
||||||
description = "Flowing Test Liquid, Range "..d..
|
description = "Flowing Test Liquid, Range "..d..
|
||||||
tt_normal,
|
tt_normal,
|
||||||
drawtype = "flowingliquid",
|
drawtype = "flowingliquid",
|
||||||
@ -58,7 +58,7 @@ for d=0, 8 do
|
|||||||
end
|
end
|
||||||
|
|
||||||
local mod = "^[colorize:#000000:127"
|
local mod = "^[colorize:#000000:127"
|
||||||
minetest.register_node("testnodes:vliquid_"..d, {
|
core.register_node("testnodes:vliquid_"..d, {
|
||||||
description = "Test Liquid Source, Viscosity/Resistance "..d.."\n"..
|
description = "Test Liquid Source, Viscosity/Resistance "..d.."\n"..
|
||||||
"Swimmable, spreading, renewable liquid"..
|
"Swimmable, spreading, renewable liquid"..
|
||||||
tt_reduced,
|
tt_reduced,
|
||||||
@ -79,7 +79,7 @@ for d=0, 8 do
|
|||||||
liquid_viscosity = d,
|
liquid_viscosity = d,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:vliquid_flowing_"..d, {
|
core.register_node("testnodes:vliquid_flowing_"..d, {
|
||||||
description = "Flowing Test Liquid, Viscosity/Resistance "..d.."\n"..
|
description = "Flowing Test Liquid, Viscosity/Resistance "..d.."\n"..
|
||||||
"Swimmable, spreading, renewable liquid"..
|
"Swimmable, spreading, renewable liquid"..
|
||||||
tt_reduced,
|
tt_reduced,
|
||||||
@ -103,7 +103,7 @@ for d=0, 8 do
|
|||||||
|
|
||||||
mod = "^[colorize:#000000:192"
|
mod = "^[colorize:#000000:192"
|
||||||
local v = 4
|
local v = 4
|
||||||
minetest.register_node("testnodes:vrliquid_"..d, {
|
core.register_node("testnodes:vrliquid_"..d, {
|
||||||
description = "Test Liquid Source, Viscosity "..v..", Resistance "..d.."\n"..
|
description = "Test Liquid Source, Viscosity "..v..", Resistance "..d.."\n"..
|
||||||
"Swimmable, spreading, renewable liquid"..
|
"Swimmable, spreading, renewable liquid"..
|
||||||
tt_reduced,
|
tt_reduced,
|
||||||
@ -127,7 +127,7 @@ for d=0, 8 do
|
|||||||
move_resistance = d,
|
move_resistance = d,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:vrliquid_flowing_"..d, {
|
core.register_node("testnodes:vrliquid_flowing_"..d, {
|
||||||
description = "Flowing Test Liquid, Viscosity "..v..", Resistance "..d.."\n"..
|
description = "Flowing Test Liquid, Viscosity "..v..", Resistance "..d.."\n"..
|
||||||
"Swimmable, spreading, renewable liquid"..
|
"Swimmable, spreading, renewable liquid"..
|
||||||
tt_reduced,
|
tt_reduced,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
-- Meshes
|
-- Meshes
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
local ocorner_cbox = {
|
local ocorner_cbox = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
@ -23,7 +23,7 @@ local tall_pyr_cbox = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Normal mesh
|
-- Normal mesh
|
||||||
minetest.register_node("testnodes:mesh", {
|
core.register_node("testnodes:mesh", {
|
||||||
description = S("Mesh Test Node"),
|
description = S("Mesh Test Node"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_pyramid.obj",
|
||||||
@ -35,7 +35,7 @@ minetest.register_node("testnodes:mesh", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Facedir mesh: outer corner slope
|
-- Facedir mesh: outer corner slope
|
||||||
minetest.register_node("testnodes:mesh_facedir", {
|
core.register_node("testnodes:mesh_facedir", {
|
||||||
description = S("Facedir Mesh Test Node").."\n"..
|
description = S("Facedir Mesh Test Node").."\n"..
|
||||||
S("param2 = facedir rotation (0..23)"),
|
S("param2 = facedir rotation (0..23)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -48,7 +48,7 @@ minetest.register_node("testnodes:mesh_facedir", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_colorfacedir", {
|
core.register_node("testnodes:mesh_colorfacedir", {
|
||||||
description = S("Color Facedir Mesh Test Node").."\n"..
|
description = S("Color Facedir Mesh Test Node").."\n"..
|
||||||
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -62,7 +62,7 @@ minetest.register_node("testnodes:mesh_colorfacedir", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_4dir", {
|
core.register_node("testnodes:mesh_4dir", {
|
||||||
description = S("4dir Mesh Test Node").."\n"..
|
description = S("4dir Mesh Test Node").."\n"..
|
||||||
S("param2 = 4dir rotation (0..3)"),
|
S("param2 = 4dir rotation (0..3)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -75,7 +75,7 @@ minetest.register_node("testnodes:mesh_4dir", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_color4dir", {
|
core.register_node("testnodes:mesh_color4dir", {
|
||||||
description = S("Color 4dir Mesh Test Node").."\n"..
|
description = S("Color 4dir Mesh Test Node").."\n"..
|
||||||
S("param2 = color + 4dir rotation (0..255)"),
|
S("param2 = color + 4dir rotation (0..255)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -90,7 +90,7 @@ minetest.register_node("testnodes:mesh_color4dir", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Wallmounted mesh: pyramid
|
-- Wallmounted mesh: pyramid
|
||||||
minetest.register_node("testnodes:mesh_wallmounted", {
|
core.register_node("testnodes:mesh_wallmounted", {
|
||||||
description = S("Wallmounted Mesh Test Node").."\n"..
|
description = S("Wallmounted Mesh Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -103,7 +103,7 @@ minetest.register_node("testnodes:mesh_wallmounted", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_colorwallmounted", {
|
core.register_node("testnodes:mesh_colorwallmounted", {
|
||||||
description = S("Color Wallmounted Mesh Test Node").."\n"..
|
description = S("Color Wallmounted Mesh Test Node").."\n"..
|
||||||
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -118,7 +118,7 @@ minetest.register_node("testnodes:mesh_colorwallmounted", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_double", {
|
core.register_node("testnodes:mesh_double", {
|
||||||
description = S("Double-sized Mesh Test Node"),
|
description = S("Double-sized Mesh Test Node"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_pyramid.obj",
|
||||||
@ -129,7 +129,7 @@ minetest.register_node("testnodes:mesh_double", {
|
|||||||
|
|
||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:mesh_half", {
|
core.register_node("testnodes:mesh_half", {
|
||||||
description = S("Half-sized Mesh Test Node"),
|
description = S("Half-sized Mesh Test Node"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_pyramid.obj",
|
||||||
@ -141,7 +141,7 @@ minetest.register_node("testnodes:mesh_half", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:mesh_waving1", {
|
core.register_node("testnodes:mesh_waving1", {
|
||||||
description = S("Plantlike-waving Mesh Test Node").."\n"..
|
description = S("Plantlike-waving Mesh Test Node").."\n"..
|
||||||
S("Waves if waving plants are enabled by client"),
|
S("Waves if waving plants are enabled by client"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -153,7 +153,7 @@ minetest.register_node("testnodes:mesh_waving1", {
|
|||||||
|
|
||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:mesh_waving2", {
|
core.register_node("testnodes:mesh_waving2", {
|
||||||
description = S("Leaflike-waving Mesh Test Node").."\n"..
|
description = S("Leaflike-waving Mesh Test Node").."\n"..
|
||||||
S("Waves if waving leaves are enabled by client"),
|
S("Waves if waving leaves are enabled by client"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
@ -165,7 +165,7 @@ minetest.register_node("testnodes:mesh_waving2", {
|
|||||||
|
|
||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:mesh_waving3", {
|
core.register_node("testnodes:mesh_waving3", {
|
||||||
description = S("Liquidlike-waving Mesh Test Node").."\n"..
|
description = S("Liquidlike-waving Mesh Test Node").."\n"..
|
||||||
S("Waves if waving liquids are enabled by client"),
|
S("Waves if waving liquids are enabled by client"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- Nodebox examples and tests.
|
-- Nodebox examples and tests.
|
||||||
|
|
||||||
-- An simple example nodebox with one centered box
|
-- An simple example nodebox with one centered box
|
||||||
minetest.register_node("testnodes:nodebox_fixed", {
|
core.register_node("testnodes:nodebox_fixed", {
|
||||||
description = S("Fixed Nodebox Test Node").."\n"..
|
description = S("Fixed Nodebox Test Node").."\n"..
|
||||||
S("Nodebox is always the same"),
|
S("Nodebox is always the same"),
|
||||||
tiles = {"testnodes_nodebox.png"},
|
tiles = {"testnodes_nodebox.png"},
|
||||||
@ -18,7 +18,7 @@ minetest.register_node("testnodes:nodebox_fixed", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- 50% higher than a regular node
|
-- 50% higher than a regular node
|
||||||
minetest.register_node("testnodes:nodebox_overhigh", {
|
core.register_node("testnodes:nodebox_overhigh", {
|
||||||
description = S("+50% high Nodebox Test Node"),
|
description = S("+50% high Nodebox Test Node"),
|
||||||
tiles = {"testnodes_nodebox.png"},
|
tiles = {"testnodes_nodebox.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@ -32,7 +32,7 @@ minetest.register_node("testnodes:nodebox_overhigh", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- 95% higher than a regular node
|
-- 95% higher than a regular node
|
||||||
minetest.register_node("testnodes:nodebox_overhigh2", {
|
core.register_node("testnodes:nodebox_overhigh2", {
|
||||||
description = S("+95% high Nodebox Test Node"),
|
description = S("+95% high Nodebox Test Node"),
|
||||||
tiles = {"testnodes_nodebox.png"},
|
tiles = {"testnodes_nodebox.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@ -47,7 +47,7 @@ minetest.register_node("testnodes:nodebox_overhigh2", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Height of nodebox changes with its param2 value
|
-- Height of nodebox changes with its param2 value
|
||||||
minetest.register_node("testnodes:nodebox_leveled", {
|
core.register_node("testnodes:nodebox_leveled", {
|
||||||
description = S("Leveled Nodebox Test Node").."\n"..
|
description = S("Leveled Nodebox Test Node").."\n"..
|
||||||
S("param2 = height (0..127)"),
|
S("param2 = height (0..127)"),
|
||||||
tiles = {"testnodes_nodebox.png^[colorize:#0F0:32"},
|
tiles = {"testnodes_nodebox.png^[colorize:#0F0:32"},
|
||||||
@ -93,7 +93,7 @@ local nodebox_wall_thick = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Wall-like nodebox that connects to 4 neighbors
|
-- Wall-like nodebox that connects to 4 neighbors
|
||||||
minetest.register_node("testnodes:nodebox_connected", {
|
core.register_node("testnodes:nodebox_connected", {
|
||||||
description = S("Connected Nodebox Test Node (4 Side Wall)").."\n"..
|
description = S("Connected Nodebox Test Node (4 Side Wall)").."\n"..
|
||||||
S("Connects to 4 neighbors sideways"),
|
S("Connects to 4 neighbors sideways"),
|
||||||
tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
|
tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
|
||||||
@ -106,7 +106,7 @@ minetest.register_node("testnodes:nodebox_connected", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Cable-like nodebox that connects to 6 neighbors
|
-- Cable-like nodebox that connects to 6 neighbors
|
||||||
minetest.register_node("testnodes:nodebox_connected_6side", {
|
core.register_node("testnodes:nodebox_connected_6side", {
|
||||||
description = S("Connected Nodebox Test Node (6 Side Cable)").."\n"..
|
description = S("Connected Nodebox Test Node (6 Side Cable)").."\n"..
|
||||||
S("Connects to 6 neighbors"),
|
S("Connects to 6 neighbors"),
|
||||||
tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
|
tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
|
||||||
@ -119,7 +119,7 @@ minetest.register_node("testnodes:nodebox_connected_6side", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- More walls
|
-- More walls
|
||||||
minetest.register_node("testnodes:nodebox_connected_facedir", {
|
core.register_node("testnodes:nodebox_connected_facedir", {
|
||||||
description = S("Facedir Connected Nodebox Test Node (4 Side Wall)").."\n"..
|
description = S("Facedir Connected Nodebox Test Node (4 Side Wall)").."\n"..
|
||||||
S("Connects to neighbors").."\n"..
|
S("Connects to neighbors").."\n"..
|
||||||
S("param2 = facedir rotation of textures (not of the nodebox!)"),
|
S("param2 = facedir rotation of textures (not of the nodebox!)"),
|
||||||
@ -140,7 +140,7 @@ minetest.register_node("testnodes:nodebox_connected_facedir", {
|
|||||||
node_box = nodebox_wall_thick,
|
node_box = nodebox_wall_thick,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:nodebox_connected_4dir", {
|
core.register_node("testnodes:nodebox_connected_4dir", {
|
||||||
description = S("4Dir Connected Nodebox Test Node").."\n"..
|
description = S("4Dir Connected Nodebox Test Node").."\n"..
|
||||||
S("Connects to neighbors").."\n"..
|
S("Connects to neighbors").."\n"..
|
||||||
S("param2 = 4dir rotation of textures (not of the nodebox!)"),
|
S("param2 = 4dir rotation of textures (not of the nodebox!)"),
|
||||||
@ -162,7 +162,7 @@ minetest.register_node("testnodes:nodebox_connected_4dir", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Doesn't connect, but lets other nodes connect
|
-- Doesn't connect, but lets other nodes connect
|
||||||
minetest.register_node("testnodes:facedir_to_connect_to", {
|
core.register_node("testnodes:facedir_to_connect_to", {
|
||||||
description = S("Facedir Node that connected Nodeboxes connect to").."\n"..
|
description = S("Facedir Node that connected Nodeboxes connect to").."\n"..
|
||||||
S("Neighbors connect only to left (blue 4) and top (yellow 1) face").."\n"..
|
S("Neighbors connect only to left (blue 4) and top (yellow 1) face").."\n"..
|
||||||
S("(Currently broken for param2 >= 4, see FIXME in nodedef.cpp)").."\n"..
|
S("(Currently broken for param2 >= 4, see FIXME in nodedef.cpp)").."\n"..
|
||||||
@ -184,7 +184,7 @@ minetest.register_node("testnodes:facedir_to_connect_to", {
|
|||||||
-- 3D sign and button:
|
-- 3D sign and button:
|
||||||
-- These are example nodes for more realistic example uses
|
-- These are example nodes for more realistic example uses
|
||||||
-- of wallmounted_rotate_vertical
|
-- of wallmounted_rotate_vertical
|
||||||
minetest.register_node("testnodes:sign3d", {
|
core.register_node("testnodes:sign3d", {
|
||||||
description = S("Nodebox Sign, Nodebox Type \"fixed\""),
|
description = S("Nodebox Sign, Nodebox Type \"fixed\""),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -202,7 +202,7 @@ minetest.register_node("testnodes:sign3d", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:sign3d_wallmounted", {
|
core.register_node("testnodes:sign3d_wallmounted", {
|
||||||
description = S("Nodebox Sign, Nodebox Type \"wallmounted\""),
|
description = S("Nodebox Sign, Nodebox Type \"wallmounted\""),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -222,7 +222,7 @@ minetest.register_node("testnodes:sign3d_wallmounted", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:button", {
|
core.register_node("testnodes:button", {
|
||||||
description = S("Button Nodebox Test Node"),
|
description = S("Button Nodebox Test Node"),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
minetest.register_node("testnodes:overlay", {
|
core.register_node("testnodes:overlay", {
|
||||||
description = S("Texture Overlay Test Node") .. "\n" ..
|
description = S("Texture Overlay Test Node") .. "\n" ..
|
||||||
S("Uncolorized"),
|
S("Uncolorized"),
|
||||||
tiles = {{name = "testnodes_overlayable.png"}},
|
tiles = {{name = "testnodes_overlayable.png"}},
|
||||||
overlay_tiles = {{name = "testnodes_overlay.png"}},
|
overlay_tiles = {{name = "testnodes_overlay.png"}},
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_color_all", {
|
core.register_node("testnodes:overlay_color_all", {
|
||||||
description = S("Texture Overlay Test Node, Colorized") .. "\n" ..
|
description = S("Texture Overlay Test Node, Colorized") .. "\n" ..
|
||||||
S("param2 changes color"),
|
S("param2 changes color"),
|
||||||
tiles = {{name = "testnodes_overlayable.png"}},
|
tiles = {{name = "testnodes_overlayable.png"}},
|
||||||
@ -18,7 +18,7 @@ minetest.register_node("testnodes:overlay_color_all", {
|
|||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_color_overlay", {
|
core.register_node("testnodes:overlay_color_overlay", {
|
||||||
description = S("Texture Overlay Test Node, Colorized Overlay") .. "\n" ..
|
description = S("Texture Overlay Test Node, Colorized Overlay") .. "\n" ..
|
||||||
S("param2 changes color of overlay"),
|
S("param2 changes color of overlay"),
|
||||||
tiles = {{name = "testnodes_overlayable.png", color="white"}},
|
tiles = {{name = "testnodes_overlayable.png", color="white"}},
|
||||||
@ -29,7 +29,7 @@ minetest.register_node("testnodes:overlay_color_overlay", {
|
|||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_color_overlayed", {
|
core.register_node("testnodes:overlay_color_overlayed", {
|
||||||
description = S("Texture Overlay Test Node, Colorized Base") .. "\n" ..
|
description = S("Texture Overlay Test Node, Colorized Base") .. "\n" ..
|
||||||
S("param2 changes color of base texture"),
|
S("param2 changes color of base texture"),
|
||||||
tiles = {{name = "testnodes_overlayable.png"}},
|
tiles = {{name = "testnodes_overlayable.png"}},
|
||||||
@ -42,7 +42,7 @@ minetest.register_node("testnodes:overlay_color_overlayed", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
local global_overlay_color = "#FF2000"
|
local global_overlay_color = "#FF2000"
|
||||||
minetest.register_node("testnodes:overlay_global", {
|
core.register_node("testnodes:overlay_global", {
|
||||||
description = S("Texture Overlay Test Node, Global Color") .. "\n" ..
|
description = S("Texture Overlay Test Node, Global Color") .. "\n" ..
|
||||||
S("Global color = @1", global_overlay_color),
|
S("Global color = @1", global_overlay_color),
|
||||||
tiles = {{name = "testnodes_overlayable.png"}},
|
tiles = {{name = "testnodes_overlayable.png"}},
|
||||||
@ -52,7 +52,7 @@ minetest.register_node("testnodes:overlay_global", {
|
|||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_global_color_all", {
|
core.register_node("testnodes:overlay_global_color_all", {
|
||||||
description = S("Texture Overlay Test Node, Global Color + Colorized") .. "\n" ..
|
description = S("Texture Overlay Test Node, Global Color + Colorized") .. "\n" ..
|
||||||
S("Global color = @1", global_overlay_color) .. "\n" ..
|
S("Global color = @1", global_overlay_color) .. "\n" ..
|
||||||
S("param2 changes color"),
|
S("param2 changes color"),
|
||||||
@ -65,7 +65,7 @@ minetest.register_node("testnodes:overlay_global_color_all", {
|
|||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_global_color_overlay", {
|
core.register_node("testnodes:overlay_global_color_overlay", {
|
||||||
description = S("Texture Overlay Test Node, Global Color + Colorized Overlay") .. "\n" ..
|
description = S("Texture Overlay Test Node, Global Color + Colorized Overlay") .. "\n" ..
|
||||||
S("Global color = @1", global_overlay_color) .. "\n" ..
|
S("Global color = @1", global_overlay_color) .. "\n" ..
|
||||||
S("param2 changes color of overlay"),
|
S("param2 changes color of overlay"),
|
||||||
@ -78,7 +78,7 @@ minetest.register_node("testnodes:overlay_global_color_overlay", {
|
|||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:overlay_global_color_overlayed", {
|
core.register_node("testnodes:overlay_global_color_overlayed", {
|
||||||
description = S("Texture Overlay Test Node, Global Color + Colorized Base") .. "\n" ..
|
description = S("Texture Overlay Test Node, Global Color + Colorized Base") .. "\n" ..
|
||||||
S("Global color = @1", global_overlay_color) .. "\n" ..
|
S("Global color = @1", global_overlay_color) .. "\n" ..
|
||||||
S("param2 changes color of base texture"),
|
S("param2 changes color of base texture"),
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
-- This file is for misc. param2 tests that aren't covered in drawtypes.lua already.
|
-- This file is for misc. param2 tests that aren't covered in drawtypes.lua already.
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
minetest.register_node("testnodes:facedir", {
|
core.register_node("testnodes:facedir", {
|
||||||
description = S("Facedir Test Node").."\n"..
|
description = S("Facedir Test Node").."\n"..
|
||||||
S("param2 = facedir rotation (0..23)"),
|
S("param2 = facedir rotation (0..23)"),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
@ -18,7 +18,7 @@ minetest.register_node("testnodes:facedir", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:4dir", {
|
core.register_node("testnodes:4dir", {
|
||||||
description = S("4dir Test Node").."\n"..
|
description = S("4dir Test Node").."\n"..
|
||||||
S("param2 = 4dir rotation (0..3)"),
|
S("param2 = 4dir rotation (0..3)"),
|
||||||
paramtype2 = "4dir",
|
paramtype2 = "4dir",
|
||||||
@ -34,7 +34,7 @@ minetest.register_node("testnodes:4dir", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:facedir_nodebox", {
|
core.register_node("testnodes:facedir_nodebox", {
|
||||||
description = S("Facedir Nodebox Test Node").."\n"..
|
description = S("Facedir Nodebox Test Node").."\n"..
|
||||||
S("param2 = facedir rotation (0..23)"),
|
S("param2 = facedir rotation (0..23)"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -56,7 +56,7 @@ minetest.register_node("testnodes:facedir_nodebox", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:4dir_nodebox", {
|
core.register_node("testnodes:4dir_nodebox", {
|
||||||
description = S("4dir Nodebox Test Node").."\n"..
|
description = S("4dir Nodebox Test Node").."\n"..
|
||||||
S("param2 = 4dir rotation (0..3)"),
|
S("param2 = 4dir rotation (0..3)"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -78,7 +78,7 @@ minetest.register_node("testnodes:4dir_nodebox", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:4dir_nodebox_stair", {
|
core.register_node("testnodes:4dir_nodebox_stair", {
|
||||||
description = S("4dir Nodebox Stair Test Node").."\n"..
|
description = S("4dir Nodebox Stair Test Node").."\n"..
|
||||||
S("param2 = 4dir rotation (0..3)"),
|
S("param2 = 4dir rotation (0..3)"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -104,7 +104,7 @@ minetest.register_node("testnodes:4dir_nodebox_stair", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:wallmounted", {
|
core.register_node("testnodes:wallmounted", {
|
||||||
description = S("Wallmounted Test Node").."\n"..
|
description = S("Wallmounted Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
@ -120,7 +120,7 @@ minetest.register_node("testnodes:wallmounted", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:wallmounted_rot", {
|
core.register_node("testnodes:wallmounted_rot", {
|
||||||
description = S("Wallmounted Rotatable Test Node"),
|
description = S("Wallmounted Rotatable Test Node"),
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
wallmounted_rotate_vertical = true,
|
wallmounted_rotate_vertical = true,
|
||||||
@ -136,7 +136,7 @@ minetest.register_node("testnodes:wallmounted_rot", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:wallmounted_nodebox", {
|
core.register_node("testnodes:wallmounted_nodebox", {
|
||||||
description = S("Wallmounted Nodebox Test Node").."\n"..
|
description = S("Wallmounted Nodebox Test Node").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
@ -160,7 +160,7 @@ minetest.register_node("testnodes:wallmounted_nodebox", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:wallmounted_nodebox_rot", {
|
core.register_node("testnodes:wallmounted_nodebox_rot", {
|
||||||
description = S("Wallmounted Rotatable Nodebox Test Node"),
|
description = S("Wallmounted Rotatable Nodebox Test Node"),
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
wallmounted_rotate_vertical = true,
|
wallmounted_rotate_vertical = true,
|
||||||
@ -184,7 +184,7 @@ minetest.register_node("testnodes:wallmounted_nodebox_rot", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:color", {
|
core.register_node("testnodes:color", {
|
||||||
description = S("Color Test Node").."\n"..
|
description = S("Color Test Node").."\n"..
|
||||||
S("param2 = color (0..255)"),
|
S("param2 = color (0..255)"),
|
||||||
paramtype2 = "color",
|
paramtype2 = "color",
|
||||||
@ -196,7 +196,7 @@ minetest.register_node("testnodes:color", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:colorfacedir", {
|
core.register_node("testnodes:colorfacedir", {
|
||||||
description = S("Color Facedir Test Node").."\n"..
|
description = S("Color Facedir Test Node").."\n"..
|
||||||
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
||||||
paramtype2 = "colorfacedir",
|
paramtype2 = "colorfacedir",
|
||||||
@ -213,7 +213,7 @@ minetest.register_node("testnodes:colorfacedir", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:colorfacedir_nodebox", {
|
core.register_node("testnodes:colorfacedir_nodebox", {
|
||||||
description = S("Color Facedir Nodebox Test Node").."\n"..
|
description = S("Color Facedir Nodebox Test Node").."\n"..
|
||||||
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
S("param2 = color + facedir rotation (0..23, 32..55, ...)"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -236,7 +236,7 @@ minetest.register_node("testnodes:colorfacedir_nodebox", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:color4dir", {
|
core.register_node("testnodes:color4dir", {
|
||||||
description = S("Color 4dir Test Node").."\n"..
|
description = S("Color 4dir Test Node").."\n"..
|
||||||
S("param2 = color + 4dir rotation (0..255)"),
|
S("param2 = color + 4dir rotation (0..255)"),
|
||||||
paramtype2 = "color4dir",
|
paramtype2 = "color4dir",
|
||||||
@ -253,7 +253,7 @@ minetest.register_node("testnodes:color4dir", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:color4dir_nodebox", {
|
core.register_node("testnodes:color4dir_nodebox", {
|
||||||
description = S("Color 4dir Nodebox Test Node").."\n"..
|
description = S("Color 4dir Nodebox Test Node").."\n"..
|
||||||
S("param2 = color + 4dir rotation (0..255)"),
|
S("param2 = color + 4dir rotation (0..255)"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -276,7 +276,7 @@ minetest.register_node("testnodes:color4dir_nodebox", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:colorwallmounted", {
|
core.register_node("testnodes:colorwallmounted", {
|
||||||
description = S("Color Wallmounted Test Node").."\n"..
|
description = S("Color Wallmounted Test Node").."\n"..
|
||||||
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
||||||
paramtype2 = "colorwallmounted",
|
paramtype2 = "colorwallmounted",
|
||||||
@ -294,7 +294,7 @@ minetest.register_node("testnodes:colorwallmounted", {
|
|||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:colorwallmounted_nodebox", {
|
core.register_node("testnodes:colorwallmounted_nodebox", {
|
||||||
description = S("Color Wallmounted Nodebox Test Node").."\n"..
|
description = S("Color Wallmounted Nodebox Test Node").."\n"..
|
||||||
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
S("param2 = color + wallmounted rotation (0..7, 8..15, ...)"),
|
||||||
paramtype2 = "colorwallmounted",
|
paramtype2 = "colorwallmounted",
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- Performance test mesh nodes
|
-- Performance test mesh nodes
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- Complex mesh
|
-- Complex mesh
|
||||||
minetest.register_node("testnodes:performance_mesh_clip", {
|
core.register_node("testnodes:performance_mesh_clip", {
|
||||||
description = S("Performance Test Node") .. "\n" .. S("Marble with 'clip' transparency"),
|
description = S("Performance Test Node") .. "\n" .. S("Marble with 'clip' transparency"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_marble_glass.obj",
|
mesh = "testnodes_marble_glass.obj",
|
||||||
@ -15,7 +15,7 @@ minetest.register_node("testnodes:performance_mesh_clip", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Complex mesh, alpha blending
|
-- Complex mesh, alpha blending
|
||||||
minetest.register_node("testnodes:performance_mesh_blend", {
|
core.register_node("testnodes:performance_mesh_blend", {
|
||||||
description = S("Performance Test Node") .. "\n" .. S("Marble with 'blend' transparency"),
|
description = S("Performance Test Node") .. "\n" .. S("Marble with 'blend' transparency"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_marble_glass.obj",
|
mesh = "testnodes_marble_glass.obj",
|
||||||
@ -27,7 +27,7 @@ minetest.register_node("testnodes:performance_mesh_blend", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Overlay
|
-- Overlay
|
||||||
minetest.register_node("testnodes:performance_overlay_clip", {
|
core.register_node("testnodes:performance_overlay_clip", {
|
||||||
description = S("Performance Test Node") .. "\n" .. S("Marble with overlay with 'clip' transparency") .. "\n" .. S("Palette for demonstration"),
|
description = S("Performance Test Node") .. "\n" .. S("Marble with overlay with 'clip' transparency") .. "\n" .. S("Palette for demonstration"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_marble_metal.obj",
|
mesh = "testnodes_marble_metal.obj",
|
||||||
@ -43,7 +43,7 @@ minetest.register_node("testnodes:performance_overlay_clip", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Overlay
|
-- Overlay
|
||||||
minetest.register_node("testnodes:performance_overlay_blend", {
|
core.register_node("testnodes:performance_overlay_blend", {
|
||||||
description = S("Performance Test Node") .. "\n" .. S("Marble with overlay with 'blend' transparency") .. "\n" .. S("Palette for demonstration"),
|
description = S("Performance Test Node") .. "\n" .. S("Marble with overlay with 'blend' transparency") .. "\n" .. S("Palette for demonstration"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "testnodes_marble_metal.obj",
|
mesh = "testnodes_marble_metal.obj",
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
-- Test Nodes: Node property tests
|
-- Test Nodes: Node property tests
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
-- Is supposed to fall when it doesn't rest on solid ground
|
-- Is supposed to fall when it doesn't rest on solid ground
|
||||||
minetest.register_node("testnodes:falling", {
|
core.register_node("testnodes:falling", {
|
||||||
description = S("Falling Node").."\n"..
|
description = S("Falling Node").."\n"..
|
||||||
S("Falls down if no node below"),
|
S("Falls down if no node below"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -14,7 +14,7 @@ minetest.register_node("testnodes:falling", {
|
|||||||
groups = { falling_node = 1, dig_immediate = 3 },
|
groups = { falling_node = 1, dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:falling_facedir", {
|
core.register_node("testnodes:falling_facedir", {
|
||||||
description = S("Falling Facedir Node").."\n"..
|
description = S("Falling Facedir Node").."\n"..
|
||||||
S("Falls down if no node below").."\n"..
|
S("Falls down if no node below").."\n"..
|
||||||
S("param2 = facedir rotation"),
|
S("param2 = facedir rotation"),
|
||||||
@ -31,7 +31,7 @@ minetest.register_node("testnodes:falling_facedir", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Same as falling node, but will stop falling on top of liquids
|
-- Same as falling node, but will stop falling on top of liquids
|
||||||
minetest.register_node("testnodes:falling_float", {
|
core.register_node("testnodes:falling_float", {
|
||||||
description = S("Falling+Floating Node").."\n"..
|
description = S("Falling+Floating Node").."\n"..
|
||||||
S("Falls down if no node below, floats on liquids (liquidtype ~= \"none\")"),
|
S("Falls down if no node below, floats on liquids (liquidtype ~= \"none\")"),
|
||||||
groups = { falling_node = 1, float = 1, dig_immediate = 3 },
|
groups = { falling_node = 1, float = 1, dig_immediate = 3 },
|
||||||
@ -47,7 +47,7 @@ minetest.register_node("testnodes:falling_float", {
|
|||||||
|
|
||||||
-- This node attaches to the floor and drops as item
|
-- This node attaches to the floor and drops as item
|
||||||
-- when the floor is gone.
|
-- when the floor is gone.
|
||||||
minetest.register_node("testnodes:attached", {
|
core.register_node("testnodes:attached", {
|
||||||
description = S("Floor-Attached Node").."\n"..
|
description = S("Floor-Attached Node").."\n"..
|
||||||
S("Drops as item if no solid node below"),
|
S("Drops as item if no solid node below"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -59,7 +59,7 @@ minetest.register_node("testnodes:attached", {
|
|||||||
})
|
})
|
||||||
-- This node attaches to the side of a node and drops as item
|
-- This node attaches to the side of a node and drops as item
|
||||||
-- when the node it attaches to is gone.
|
-- when the node it attaches to is gone.
|
||||||
minetest.register_node("testnodes:attached_wallmounted", {
|
core.register_node("testnodes:attached_wallmounted", {
|
||||||
description = S("Wallmounted Attached Node").."\n"..
|
description = S("Wallmounted Attached Node").."\n"..
|
||||||
S("Attaches to solid node it was placed on; drops as item if neighbor node is gone").."\n"..
|
S("Attaches to solid node it was placed on; drops as item if neighbor node is gone").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)"),
|
S("param2 = wallmounted rotation (0..7)"),
|
||||||
@ -75,7 +75,7 @@ minetest.register_node("testnodes:attached_wallmounted", {
|
|||||||
-- This node attaches to the side of a node and drops as item
|
-- This node attaches to the side of a node and drops as item
|
||||||
-- when the node it attaches to is gone.
|
-- when the node it attaches to is gone.
|
||||||
-- Also adds vertical 90° rotation variants.
|
-- Also adds vertical 90° rotation variants.
|
||||||
minetest.register_node("testnodes:attached_wallmounted_rot", {
|
core.register_node("testnodes:attached_wallmounted_rot", {
|
||||||
description = S("Rotatable Wallmounted Attached Node").."\n"..
|
description = S("Rotatable Wallmounted Attached Node").."\n"..
|
||||||
S("Attaches to solid node it was placed on; drops as item if neighbor node is gone").."\n"..
|
S("Attaches to solid node it was placed on; drops as item if neighbor node is gone").."\n"..
|
||||||
S("param2 = wallmounted rotation (0..7)").."\n"..
|
S("param2 = wallmounted rotation (0..7)").."\n"..
|
||||||
@ -91,7 +91,7 @@ minetest.register_node("testnodes:attached_wallmounted_rot", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Wallmounted node that always attaches to the floor
|
-- Wallmounted node that always attaches to the floor
|
||||||
minetest.register_node("testnodes:attached_wallmounted_floor", {
|
core.register_node("testnodes:attached_wallmounted_floor", {
|
||||||
description = S("Floor-Attached Wallmounted Node").."\n"..
|
description = S("Floor-Attached Wallmounted Node").."\n"..
|
||||||
S("Drops as item if no solid node below (regardless of rotation)").."\n"..
|
S("Drops as item if no solid node below (regardless of rotation)").."\n"..
|
||||||
S("param2 = wallmounted rotation (visual only) (0..7)"),
|
S("param2 = wallmounted rotation (visual only) (0..7)"),
|
||||||
@ -107,7 +107,7 @@ minetest.register_node("testnodes:attached_wallmounted_floor", {
|
|||||||
|
|
||||||
-- Wallmounted node that always attaches to the floor.
|
-- Wallmounted node that always attaches to the floor.
|
||||||
-- Also adds 90° rotation variants.
|
-- Also adds 90° rotation variants.
|
||||||
minetest.register_node("testnodes:attached_wallmounted_floor_rot", {
|
core.register_node("testnodes:attached_wallmounted_floor_rot", {
|
||||||
description = S("Rotatable Floor-Attached Wallmounted Node").."\n"..
|
description = S("Rotatable Floor-Attached Wallmounted Node").."\n"..
|
||||||
S("Drops as item if no solid node below (regardless of rotation)").."\n"..
|
S("Drops as item if no solid node below (regardless of rotation)").."\n"..
|
||||||
S("param2 = wallmounted rotation (visual only) (0..7)").."\n"..
|
S("param2 = wallmounted rotation (visual only) (0..7)").."\n"..
|
||||||
@ -124,7 +124,7 @@ minetest.register_node("testnodes:attached_wallmounted_floor_rot", {
|
|||||||
|
|
||||||
-- This node attaches to the ceiling and drops as item
|
-- This node attaches to the ceiling and drops as item
|
||||||
-- when the ceiling is gone.
|
-- when the ceiling is gone.
|
||||||
minetest.register_node("testnodes:attached_top", {
|
core.register_node("testnodes:attached_top", {
|
||||||
description = S("Ceiling-Attached Node").."\n"..
|
description = S("Ceiling-Attached Node").."\n"..
|
||||||
S("Drops as item if no solid node above"),
|
S("Drops as item if no solid node above"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -136,7 +136,7 @@ minetest.register_node("testnodes:attached_top", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Same as wallmounted attached, but for facedir
|
-- Same as wallmounted attached, but for facedir
|
||||||
minetest.register_node("testnodes:attached_facedir", {
|
core.register_node("testnodes:attached_facedir", {
|
||||||
description = S("Facedir Attached Node").."\n"..
|
description = S("Facedir Attached Node").."\n"..
|
||||||
S("Attaches to a neighboring solid node; drops as item if that node is gone").."\n"..
|
S("Attaches to a neighboring solid node; drops as item if that node is gone").."\n"..
|
||||||
S("param2 = facedir rotation (0..23)"),
|
S("param2 = facedir rotation (0..23)"),
|
||||||
@ -153,7 +153,7 @@ minetest.register_node("testnodes:attached_facedir", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Same as facedir attached, but for 4dir
|
-- Same as facedir attached, but for 4dir
|
||||||
minetest.register_node("testnodes:attached_4dir", {
|
core.register_node("testnodes:attached_4dir", {
|
||||||
description = S("4dir Attached Node").."\n"..
|
description = S("4dir Attached Node").."\n"..
|
||||||
S("Attaches to the side of a solid node; drops as item if that node is gone").."\n"..
|
S("Attaches to the side of a solid node; drops as item if that node is gone").."\n"..
|
||||||
S("param2 = 4dir rotation (0..3)"),
|
S("param2 = 4dir rotation (0..3)"),
|
||||||
@ -170,7 +170,7 @@ minetest.register_node("testnodes:attached_4dir", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Jump disabled
|
-- Jump disabled
|
||||||
minetest.register_node("testnodes:nojump", {
|
core.register_node("testnodes:nojump", {
|
||||||
description = S("Non-jumping Node").."\n"..
|
description = S("Non-jumping Node").."\n"..
|
||||||
S("You can't jump on it"),
|
S("You can't jump on it"),
|
||||||
groups = {disable_jump=1, dig_immediate=3},
|
groups = {disable_jump=1, dig_immediate=3},
|
||||||
@ -178,7 +178,7 @@ minetest.register_node("testnodes:nojump", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Jump disabled plant
|
-- Jump disabled plant
|
||||||
minetest.register_node("testnodes:nojump_walkable", {
|
core.register_node("testnodes:nojump_walkable", {
|
||||||
description = S("Non-jumping Plant Node").."\n"..
|
description = S("Non-jumping Plant Node").."\n"..
|
||||||
S("You can't jump while your feet are in it"),
|
S("You can't jump while your feet are in it"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -192,7 +192,7 @@ local climbable_nodebox = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Climbable up and down with jump and sneak keys
|
-- Climbable up and down with jump and sneak keys
|
||||||
minetest.register_node("testnodes:climbable", {
|
core.register_node("testnodes:climbable", {
|
||||||
description = S("Climbable Node").."\n"..
|
description = S("Climbable Node").."\n"..
|
||||||
S("You can climb up and down"),
|
S("You can climb up and down"),
|
||||||
climbable = true,
|
climbable = true,
|
||||||
@ -210,7 +210,7 @@ minetest.register_node("testnodes:climbable", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Climbable only downwards with sneak key
|
-- Climbable only downwards with sneak key
|
||||||
minetest.register_node("testnodes:climbable_nojump", {
|
core.register_node("testnodes:climbable_nojump", {
|
||||||
description = S("Downwards-climbable Node").."\n"..
|
description = S("Downwards-climbable Node").."\n"..
|
||||||
S("You can climb only downwards"),
|
S("You can climb only downwards"),
|
||||||
climbable = true,
|
climbable = true,
|
||||||
@ -226,7 +226,7 @@ minetest.register_node("testnodes:climbable_nojump", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:climbable_nodescend", {
|
core.register_node("testnodes:climbable_nodescend", {
|
||||||
description = S("Upwards-climbable Node"),
|
description = S("Upwards-climbable Node"),
|
||||||
climbable = true,
|
climbable = true,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
@ -240,7 +240,7 @@ minetest.register_node("testnodes:climbable_nodescend", {
|
|||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:climbable_nodescend_nojump", {
|
core.register_node("testnodes:climbable_nodescend_nojump", {
|
||||||
description = S("Horizontal-only Climbable Node"),
|
description = S("Horizontal-only Climbable Node"),
|
||||||
climbable = true,
|
climbable = true,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
@ -255,7 +255,7 @@ minetest.register_node("testnodes:climbable_nodescend_nojump", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- A liquid in which you can't rise
|
-- A liquid in which you can't rise
|
||||||
minetest.register_node("testnodes:liquid_nojump", {
|
core.register_node("testnodes:liquid_nojump", {
|
||||||
description = S("Non-jumping Liquid Source Node").."\n"..
|
description = S("Non-jumping Liquid Source Node").."\n"..
|
||||||
S("Swimmable liquid, but you can't swim upwards"),
|
S("Swimmable liquid, but you can't swim upwards"),
|
||||||
liquidtype = "source",
|
liquidtype = "source",
|
||||||
@ -282,7 +282,7 @@ minetest.register_node("testnodes:liquid_nojump", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- A liquid in which you can't rise (flowing variant)
|
-- A liquid in which you can't rise (flowing variant)
|
||||||
minetest.register_node("testnodes:liquidflowing_nojump", {
|
core.register_node("testnodes:liquidflowing_nojump", {
|
||||||
description = S("Non-jumping Flowing Liquid Node").."\n"..
|
description = S("Non-jumping Flowing Liquid Node").."\n"..
|
||||||
S("Swimmable liquid, but you can't swim upwards"),
|
S("Swimmable liquid, but you can't swim upwards"),
|
||||||
liquidtype = "flowing",
|
liquidtype = "flowing",
|
||||||
@ -311,7 +311,7 @@ minetest.register_node("testnodes:liquidflowing_nojump", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- A liquid which doesn't have liquid movement physics (source variant)
|
-- A liquid which doesn't have liquid movement physics (source variant)
|
||||||
minetest.register_node("testnodes:liquid_noswim", {
|
core.register_node("testnodes:liquid_noswim", {
|
||||||
description = S("No-swim Liquid Source Node").."\n"..
|
description = S("No-swim Liquid Source Node").."\n"..
|
||||||
S("Liquid node, but swimming is disabled"),
|
S("Liquid node, but swimming is disabled"),
|
||||||
liquidtype = "source",
|
liquidtype = "source",
|
||||||
@ -340,7 +340,7 @@ minetest.register_node("testnodes:liquid_noswim", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- A liquid which doen't have liquid movement physics (flowing variant)
|
-- A liquid which doen't have liquid movement physics (flowing variant)
|
||||||
minetest.register_node("testnodes:liquidflowing_noswim", {
|
core.register_node("testnodes:liquidflowing_noswim", {
|
||||||
description = S("No-swim Flowing Liquid Node").."\n"..
|
description = S("No-swim Flowing Liquid Node").."\n"..
|
||||||
S("Liquid node, but swimming is disabled"),
|
S("Liquid node, but swimming is disabled"),
|
||||||
liquidtype = "flowing",
|
liquidtype = "flowing",
|
||||||
@ -372,7 +372,7 @@ minetest.register_node("testnodes:liquidflowing_noswim", {
|
|||||||
|
|
||||||
-- A liquid in which you can't actively descend.
|
-- A liquid in which you can't actively descend.
|
||||||
-- Note: You'll still descend slowly by doing nothing.
|
-- Note: You'll still descend slowly by doing nothing.
|
||||||
minetest.register_node("testnodes:liquid_nodescend", {
|
core.register_node("testnodes:liquid_nodescend", {
|
||||||
description = S("No-descending Liquid Source Node"),
|
description = S("No-descending Liquid Source Node"),
|
||||||
liquidtype = "source",
|
liquidtype = "source",
|
||||||
liquid_range = 0,
|
liquid_range = 0,
|
||||||
@ -398,7 +398,7 @@ minetest.register_node("testnodes:liquid_nodescend", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- A liquid in which you can't actively descend (flowing variant)
|
-- A liquid in which you can't actively descend (flowing variant)
|
||||||
minetest.register_node("testnodes:liquidflowing_nodescend", {
|
core.register_node("testnodes:liquidflowing_nodescend", {
|
||||||
description = S("No-descending Flowing Liquid Node"),
|
description = S("No-descending Flowing Liquid Node"),
|
||||||
liquidtype = "flowing",
|
liquidtype = "flowing",
|
||||||
liquid_range = 1,
|
liquid_range = 1,
|
||||||
@ -452,7 +452,7 @@ for i=-100, 100, 25 do
|
|||||||
end
|
end
|
||||||
desc = S("Fall Damage Node (-@1%)", math.abs(i))
|
desc = S("Fall Damage Node (-@1%)", math.abs(i))
|
||||||
end
|
end
|
||||||
minetest.register_node("testnodes:damage"..subname, {
|
core.register_node("testnodes:damage"..subname, {
|
||||||
description = desc,
|
description = desc,
|
||||||
groups = {fall_damage_add_percent=i, dig_immediate=3},
|
groups = {fall_damage_add_percent=i, dig_immediate=3},
|
||||||
|
|
||||||
@ -483,7 +483,7 @@ for i=-MAX_BOUNCE_NONJUMPY, MAX_BOUNCE_JUMPY, 20 do
|
|||||||
color = { r=val2, g=255, b=val2, a=255 }
|
color = { r=val2, g=255, b=val2, a=255 }
|
||||||
num = "NEG"..num
|
num = "NEG"..num
|
||||||
end
|
end
|
||||||
minetest.register_node("testnodes:bouncy"..num, {
|
core.register_node("testnodes:bouncy"..num, {
|
||||||
description = desc,
|
description = desc,
|
||||||
groups = {bouncy=i, dig_immediate=3},
|
groups = {bouncy=i, dig_immediate=3},
|
||||||
|
|
||||||
@ -497,7 +497,7 @@ end
|
|||||||
|
|
||||||
-- Slippery nodes (various slippery levels)
|
-- Slippery nodes (various slippery levels)
|
||||||
for i=1, 5 do
|
for i=1, 5 do
|
||||||
minetest.register_node("testnodes:slippery"..i, {
|
core.register_node("testnodes:slippery"..i, {
|
||||||
description = S("Slippery Node (@1)", i),
|
description = S("Slippery Node (@1)", i),
|
||||||
tiles ={"testnodes_slippery.png"},
|
tiles ={"testnodes_slippery.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
@ -509,7 +509,7 @@ end
|
|||||||
-- Move resistance nodes (various resistance levels)
|
-- Move resistance nodes (various resistance levels)
|
||||||
for r=0, 7 do
|
for r=0, 7 do
|
||||||
if r > 0 then
|
if r > 0 then
|
||||||
minetest.register_node("testnodes:move_resistance"..r, {
|
core.register_node("testnodes:move_resistance"..r, {
|
||||||
description = S("Move-resistant Node (@1)", r).."\n"..
|
description = S("Move-resistant Node (@1)", r).."\n"..
|
||||||
S("Reduces movement speed"),
|
S("Reduces movement speed"),
|
||||||
walkable = false,
|
walkable = false,
|
||||||
@ -537,7 +537,7 @@ for r=0, 7 do
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:move_resistance_liquidlike"..r, {
|
core.register_node("testnodes:move_resistance_liquidlike"..r, {
|
||||||
description = mdesc,
|
description = mdesc,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
move_resistance = r,
|
move_resistance = r,
|
||||||
@ -553,7 +553,7 @@ for r=0, 7 do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("testnodes:climbable_move_resistance_4", {
|
core.register_node("testnodes:climbable_move_resistance_4", {
|
||||||
description = S("Climbable Move-resistant Node (4)").."\n"..
|
description = S("Climbable Move-resistant Node (4)").."\n"..
|
||||||
S("You can climb up and down; reduced movement speed"),
|
S("You can climb up and down; reduced movement speed"),
|
||||||
walkable = false,
|
walkable = false,
|
||||||
@ -570,7 +570,7 @@ minetest.register_node("testnodes:climbable_move_resistance_4", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- By placing something on the node, the node itself will be replaced
|
-- By placing something on the node, the node itself will be replaced
|
||||||
minetest.register_node("testnodes:buildable_to", {
|
core.register_node("testnodes:buildable_to", {
|
||||||
description = S("\"buildable_to\" Node").."\n"..
|
description = S("\"buildable_to\" Node").."\n"..
|
||||||
S("Placing a node on it will replace it"),
|
S("Placing a node on it will replace it"),
|
||||||
buildable_to = true,
|
buildable_to = true,
|
||||||
@ -598,7 +598,7 @@ for d=-3,3 do
|
|||||||
elseif math.abs(d) == 3 then
|
elseif math.abs(d) == 3 then
|
||||||
tile = tile .. "^[colorize:#000000:140"
|
tile = tile .. "^[colorize:#000000:140"
|
||||||
end
|
end
|
||||||
minetest.register_node("testnodes:damage_"..sub, {
|
core.register_node("testnodes:damage_"..sub, {
|
||||||
description = desc,
|
description = desc,
|
||||||
damage_per_second = d,
|
damage_per_second = d,
|
||||||
|
|
||||||
@ -615,7 +615,7 @@ for d=-3,3 do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Causes drowning damage
|
-- Causes drowning damage
|
||||||
minetest.register_node("testnodes:drowning_1", {
|
core.register_node("testnodes:drowning_1", {
|
||||||
description = S("Drowning Node (@1 damage)", 1).."\n"..
|
description = S("Drowning Node (@1 damage)", 1).."\n"..
|
||||||
S("You'll drown inside it"),
|
S("You'll drown inside it"),
|
||||||
drowning = 1,
|
drowning = 1,
|
||||||
@ -632,7 +632,7 @@ minetest.register_node("testnodes:drowning_1", {
|
|||||||
|
|
||||||
-- post_effect_color_shaded
|
-- post_effect_color_shaded
|
||||||
|
|
||||||
minetest.register_node("testnodes:post_effect_color_shaded_false", {
|
core.register_node("testnodes:post_effect_color_shaded_false", {
|
||||||
description = S("\"post_effect_color_shaded = false\" Node"),
|
description = S("\"post_effect_color_shaded = false\" Node"),
|
||||||
|
|
||||||
drawtype = "allfaces",
|
drawtype = "allfaces",
|
||||||
@ -648,7 +648,7 @@ minetest.register_node("testnodes:post_effect_color_shaded_false", {
|
|||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:post_effect_color_shaded_true", {
|
core.register_node("testnodes:post_effect_color_shaded_true", {
|
||||||
description = S("\"post_effect_color_shaded = true\" Node"),
|
description = S("\"post_effect_color_shaded = true\" Node"),
|
||||||
|
|
||||||
drawtype = "allfaces",
|
drawtype = "allfaces",
|
||||||
@ -669,7 +669,7 @@ minetest.register_node("testnodes:post_effect_color_shaded_true", {
|
|||||||
-- Register wrapper for compactness
|
-- Register wrapper for compactness
|
||||||
local function register_pointable_test_node(name, description, pointable)
|
local function register_pointable_test_node(name, description, pointable)
|
||||||
local texture = "testnodes_"..name..".png"
|
local texture = "testnodes_"..name..".png"
|
||||||
minetest.register_node("testnodes:"..name, {
|
core.register_node("testnodes:"..name, {
|
||||||
description = S(description),
|
description = S(description),
|
||||||
tiles = {texture},
|
tiles = {texture},
|
||||||
drawtype = "glasslike_framed",
|
drawtype = "glasslike_framed",
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
-- Node texture tests
|
-- Node texture tests
|
||||||
|
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = core.get_translator("testnodes")
|
||||||
|
|
||||||
minetest.register_node("testnodes:6sides", {
|
core.register_node("testnodes:6sides", {
|
||||||
description = S("Six Textures Test Node").."\n"..
|
description = S("Six Textures Test Node").."\n"..
|
||||||
S("Has 1 texture per face"),
|
S("Has 1 texture per face"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -17,7 +17,7 @@ minetest.register_node("testnodes:6sides", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:anim", {
|
core.register_node("testnodes:anim", {
|
||||||
description = S("Animated Test Node").."\n"..
|
description = S("Animated Test Node").."\n"..
|
||||||
S("Tiles animate from A to D in 4s cycle"),
|
S("Tiles animate from A to D in 4s cycle"),
|
||||||
tiles = {
|
tiles = {
|
||||||
@ -33,7 +33,7 @@ minetest.register_node("testnodes:anim", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:fill_positioning", {
|
core.register_node("testnodes:fill_positioning", {
|
||||||
description = S("Fill Modifier Test Node") .. "\n" ..
|
description = S("Fill Modifier Test Node") .. "\n" ..
|
||||||
S("The node should have the same look as " ..
|
S("The node should have the same look as " ..
|
||||||
"testnodes:fill_positioning_reference."),
|
"testnodes:fill_positioning_reference."),
|
||||||
@ -44,7 +44,7 @@ minetest.register_node("testnodes:fill_positioning", {
|
|||||||
groups = {dig_immediate = 3},
|
groups = {dig_immediate = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:fill_positioning_reference", {
|
core.register_node("testnodes:fill_positioning_reference", {
|
||||||
description = S("Fill Modifier Test Node Reference"),
|
description = S("Fill Modifier Test Node Reference"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -52,7 +52,7 @@ minetest.register_node("testnodes:fill_positioning_reference", {
|
|||||||
groups = {dig_immediate = 3},
|
groups = {dig_immediate = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:modifier_mask", {
|
core.register_node("testnodes:modifier_mask", {
|
||||||
description = S("[mask Modifier Test Node"),
|
description = S("[mask Modifier Test Node"),
|
||||||
tiles = {"testnodes_128x128_rgb.png^[mask:testnodes_mask_WRGBKW.png"},
|
tiles = {"testnodes_128x128_rgb.png^[mask:testnodes_mask_WRGBKW.png"},
|
||||||
groups = {dig_immediate = 3},
|
groups = {dig_immediate = 3},
|
||||||
@ -66,7 +66,7 @@ for a=1,#alphas do
|
|||||||
local alpha = alphas[a]
|
local alpha = alphas[a]
|
||||||
|
|
||||||
-- Transparency taken from texture
|
-- Transparency taken from texture
|
||||||
minetest.register_node("testnodes:alpha_texture_"..alpha, {
|
core.register_node("testnodes:alpha_texture_"..alpha, {
|
||||||
description = S("Texture Alpha Test Node (@1)", alpha).."\n"..
|
description = S("Texture Alpha Test Node (@1)", alpha).."\n"..
|
||||||
S("Semi-transparent"),
|
S("Semi-transparent"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
@ -80,7 +80,7 @@ for a=1,#alphas do
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Transparency set via texture modifier
|
-- Transparency set via texture modifier
|
||||||
minetest.register_node("testnodes:alpha_"..alpha, {
|
core.register_node("testnodes:alpha_"..alpha, {
|
||||||
description = S("Alpha Test Node (@1)", alpha).."\n"..
|
description = S("Alpha Test Node (@1)", alpha).."\n"..
|
||||||
S("Semi-transparent"),
|
S("Semi-transparent"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
@ -94,7 +94,7 @@ for a=1,#alphas do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("testnodes:alpha_compositing", {
|
core.register_node("testnodes:alpha_compositing", {
|
||||||
description = S("Texture Overlay Test Node") .. "\n" ..
|
description = S("Texture Overlay Test Node") .. "\n" ..
|
||||||
S("A regular grid should be visible where each cell contains two " ..
|
S("A regular grid should be visible where each cell contains two " ..
|
||||||
"texels with the same color.") .. "\n" ..
|
"texels with the same color.") .. "\n" ..
|
||||||
@ -204,23 +204,23 @@ core.dynamic_add_media({
|
|||||||
filedata = png_ck,
|
filedata = png_ck,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:generated_png_mb", {
|
core.register_node("testnodes:generated_png_mb", {
|
||||||
description = S("Generated Mandelbrot PNG Test Node"),
|
description = S("Generated Mandelbrot PNG Test Node"),
|
||||||
tiles = { "testnodes_generated_mb.png" },
|
tiles = { "testnodes_generated_mb.png" },
|
||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:generated_png_ck", {
|
core.register_node("testnodes:generated_png_ck", {
|
||||||
description = S("Generated Checker PNG Test Node"),
|
description = S("Generated Checker PNG Test Node"),
|
||||||
tiles = { "testnodes_generated_ck.png" },
|
tiles = { "testnodes_generated_ck.png" },
|
||||||
|
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
local png_emb = "[png:" .. minetest.encode_base64(
|
local png_emb = "[png:" .. core.encode_base64(
|
||||||
encode_and_check(64, 64, "rgba", data_emb))
|
encode_and_check(64, 64, "rgba", data_emb))
|
||||||
|
|
||||||
minetest.register_node("testnodes:generated_png_emb", {
|
core.register_node("testnodes:generated_png_emb", {
|
||||||
description = S("Generated In-Band Mandelbrot PNG Test Node"),
|
description = S("Generated In-Band Mandelbrot PNG Test Node"),
|
||||||
tiles = { png_emb },
|
tiles = { png_emb },
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ minetest.register_node("testnodes:generated_png_emb", {
|
|||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:generated_png_src_emb", {
|
core.register_node("testnodes:generated_png_src_emb", {
|
||||||
description = S("Generated In-Band Source Blit Mandelbrot PNG Test Node"),
|
description = S("Generated In-Band Source Blit Mandelbrot PNG Test Node"),
|
||||||
tiles = { png_emb .. "^testnodes_damage_neg.png" },
|
tiles = { png_emb .. "^testnodes_damage_neg.png" },
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ minetest.register_node("testnodes:generated_png_src_emb", {
|
|||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
minetest.register_node("testnodes:generated_png_dst_emb", {
|
core.register_node("testnodes:generated_png_dst_emb", {
|
||||||
description = S("Generated In-Band Dest Blit Mandelbrot PNG Test Node"),
|
description = S("Generated In-Band Dest Blit Mandelbrot PNG Test Node"),
|
||||||
tiles = { "testnodes_generated_ck.png^" .. png_emb },
|
tiles = { "testnodes_generated_ck.png^" .. png_emb },
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ then the string “TRUEVISION-XFILE.”, then another null byte.
|
|||||||
|
|
||||||
]]--
|
]]--
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type1_24bpp_bt", {
|
core.register_node("testnodes:tga_type1_24bpp_bt", {
|
||||||
description = S("TGA Type 1 (color-mapped RGB) 24bpp bottom-top Test Node"),
|
description = S("TGA Type 1 (color-mapped RGB) 24bpp bottom-top Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -279,7 +279,7 @@ minetest.register_node("testnodes:tga_type1_24bpp_bt", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type1_24bpp_tb", {
|
core.register_node("testnodes:tga_type1_24bpp_tb", {
|
||||||
description = S("TGA Type 1 (color-mapped RGB) 24bpp top-bottom Test Node"),
|
description = S("TGA Type 1 (color-mapped RGB) 24bpp top-bottom Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -288,7 +288,7 @@ minetest.register_node("testnodes:tga_type1_24bpp_tb", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type2_16bpp_bt", {
|
core.register_node("testnodes:tga_type2_16bpp_bt", {
|
||||||
description = S("TGA Type 2 (uncompressed RGB) 16bpp bottom-top Test Node"),
|
description = S("TGA Type 2 (uncompressed RGB) 16bpp bottom-top Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -298,7 +298,7 @@ minetest.register_node("testnodes:tga_type2_16bpp_bt", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type2_16bpp_tb", {
|
core.register_node("testnodes:tga_type2_16bpp_tb", {
|
||||||
description = S("TGA Type 2 (uncompressed RGB) 16bpp top-bottom Test Node"),
|
description = S("TGA Type 2 (uncompressed RGB) 16bpp top-bottom Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -308,7 +308,7 @@ minetest.register_node("testnodes:tga_type2_16bpp_tb", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type2_32bpp_bt", {
|
core.register_node("testnodes:tga_type2_32bpp_bt", {
|
||||||
description = S("TGA Type 2 (uncompressed RGB) 32bpp bottom-top Test Node"),
|
description = S("TGA Type 2 (uncompressed RGB) 32bpp bottom-top Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -318,7 +318,7 @@ minetest.register_node("testnodes:tga_type2_32bpp_bt", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type2_32bpp_tb", {
|
core.register_node("testnodes:tga_type2_32bpp_tb", {
|
||||||
description = S("TGA Type 2 (uncompressed RGB) 32bpp top-bottom Test Node"),
|
description = S("TGA Type 2 (uncompressed RGB) 32bpp top-bottom Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -328,7 +328,7 @@ minetest.register_node("testnodes:tga_type2_32bpp_tb", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type3_16bpp_bt", {
|
core.register_node("testnodes:tga_type3_16bpp_bt", {
|
||||||
description = S("TGA Type 3 (uncompressed grayscale) 16bpp bottom-top Test Node"),
|
description = S("TGA Type 3 (uncompressed grayscale) 16bpp bottom-top Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -338,7 +338,7 @@ minetest.register_node("testnodes:tga_type3_16bpp_bt", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type3_16bpp_tb", {
|
core.register_node("testnodes:tga_type3_16bpp_tb", {
|
||||||
description = S("TGA Type 3 (uncompressed grayscale) 16bpp top-bottom Test Node"),
|
description = S("TGA Type 3 (uncompressed grayscale) 16bpp top-bottom Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -348,7 +348,7 @@ minetest.register_node("testnodes:tga_type3_16bpp_tb", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type10_32bpp_bt", {
|
core.register_node("testnodes:tga_type10_32bpp_bt", {
|
||||||
description = S("TGA Type 10 (RLE-compressed RGB) 32bpp bottom-top Test Node"),
|
description = S("TGA Type 10 (RLE-compressed RGB) 32bpp bottom-top Test Node"),
|
||||||
tiles = { "testnodes_tga_type10_32bpp_bt.tga" },
|
tiles = { "testnodes_tga_type10_32bpp_bt.tga" },
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
@ -358,7 +358,7 @@ minetest.register_node("testnodes:tga_type10_32bpp_bt", {
|
|||||||
groups = { dig_immediate = 2 },
|
groups = { dig_immediate = 2 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("testnodes:tga_type10_32bpp_tb", {
|
core.register_node("testnodes:tga_type10_32bpp_tb", {
|
||||||
description = S("TGA Type 10 (RLE-compressed RGB) 32bpp top-bottom Test Node"),
|
description = S("TGA Type 10 (RLE-compressed RGB) 32bpp top-bottom Test Node"),
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local S = minetest.get_translator("testpathfinder")
|
local S = core.get_translator("testpathfinder")
|
||||||
|
|
||||||
-- Config parameters
|
-- Config parameters
|
||||||
|
|
||||||
@ -37,26 +37,26 @@ local function find_path_for_player(player, itemstack)
|
|||||||
local pos1 = vector.round(player:get_pos())
|
local pos1 = vector.round(player:get_pos())
|
||||||
-- Don't bother calling pathfinder for high distance to avoid freezing
|
-- Don't bother calling pathfinder for high distance to avoid freezing
|
||||||
if (not IGNORE_MAX_DISTANCE_SAFEGUARD) and (vector.distance(pos1, pos2) > MAX_DIRECT_DISTANCE) then
|
if (not IGNORE_MAX_DISTANCE_SAFEGUARD) and (vector.distance(pos1, pos2) > MAX_DIRECT_DISTANCE) then
|
||||||
minetest.chat_send_player(player:get_player_name(), S("Destination too far away! Set a destination (via placing) within a distance of @1 and try again!", MAX_DIRECT_DISTANCE))
|
core.chat_send_player(player:get_player_name(), S("Destination too far away! Set a destination (via placing) within a distance of @1 and try again!", MAX_DIRECT_DISTANCE))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local str = S("Path from @1 to @2:",
|
local str = S("Path from @1 to @2:",
|
||||||
minetest.pos_to_string(pos1),
|
core.pos_to_string(pos1),
|
||||||
minetest.pos_to_string(pos2))
|
core.pos_to_string(pos2))
|
||||||
|
|
||||||
minetest.chat_send_player(player:get_player_name(), str)
|
core.chat_send_player(player:get_player_name(), str)
|
||||||
local time_start = minetest.get_us_time()
|
local time_start = core.get_us_time()
|
||||||
local path = minetest.find_path(pos1, pos2, MAX_SEARCH_DISTANCE, MAX_JUMP, MAX_DROP, algo)
|
local path = core.find_path(pos1, pos2, MAX_SEARCH_DISTANCE, MAX_JUMP, MAX_DROP, algo)
|
||||||
local time_end = minetest.get_us_time()
|
local time_end = core.get_us_time()
|
||||||
local time_diff = time_end - time_start
|
local time_diff = time_end - time_start
|
||||||
str = ""
|
str = ""
|
||||||
if not path then
|
if not path then
|
||||||
minetest.chat_send_player(player:get_player_name(), S("No path!"))
|
core.chat_send_player(player:get_player_name(), S("No path!"))
|
||||||
minetest.chat_send_player(player:get_player_name(), S("Time: @1 ms", time_diff/1000))
|
core.chat_send_player(player:get_player_name(), S("Time: @1 ms", time_diff/1000))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
for s=1, #path do
|
for s=1, #path do
|
||||||
str = str .. minetest.pos_to_string(path[s]) .. "\n"
|
str = str .. core.pos_to_string(path[s]) .. "\n"
|
||||||
local t
|
local t
|
||||||
if s == #path then
|
if s == #path then
|
||||||
t = "testpathfinder_waypoint_end.png"
|
t = "testpathfinder_waypoint_end.png"
|
||||||
@ -66,18 +66,18 @@ local function find_path_for_player(player, itemstack)
|
|||||||
local c = math.floor(((#path-s)/#path)*255)
|
local c = math.floor(((#path-s)/#path)*255)
|
||||||
t = string.format("testpathfinder_waypoint.png^[multiply:#%02x%02x00", 0xFF-c, c)
|
t = string.format("testpathfinder_waypoint.png^[multiply:#%02x%02x00", 0xFF-c, c)
|
||||||
end
|
end
|
||||||
minetest.add_particle({
|
core.add_particle({
|
||||||
pos = path[s],
|
pos = path[s],
|
||||||
expirationtime = 5 + 0.2 * s,
|
expirationtime = 5 + 0.2 * s,
|
||||||
playername = player:get_player_name(),
|
playername = player:get_player_name(),
|
||||||
glow = minetest.LIGHT_MAX,
|
glow = core.LIGHT_MAX,
|
||||||
texture = t,
|
texture = t,
|
||||||
size = 3,
|
size = 3,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(player:get_player_name(), str)
|
core.chat_send_player(player:get_player_name(), str)
|
||||||
minetest.chat_send_player(player:get_player_name(), S("Path length: @1", #path))
|
core.chat_send_player(player:get_player_name(), S("Path length: @1", #path))
|
||||||
minetest.chat_send_player(player:get_player_name(), S("Time: @1 ms", time_diff/1000))
|
core.chat_send_player(player:get_player_name(), S("Time: @1 ms", time_diff/1000))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ local function set_destination(itemstack, user, pointed_thing)
|
|||||||
meta:set_int("pos_x", pos.x)
|
meta:set_int("pos_x", pos.x)
|
||||||
meta:set_int("pos_y", pos.y)
|
meta:set_int("pos_y", pos.y)
|
||||||
meta:set_int("pos_z", pos.z)
|
meta:set_int("pos_z", pos.z)
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Destination set to @1", minetest.pos_to_string(pos)))
|
core.chat_send_player(user:get_player_name(), S("Destination set to @1", core.pos_to_string(pos)))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -112,7 +112,7 @@ local function find_path_or_set_algorithm(itemstack, user, pointed_thing)
|
|||||||
local algo = meta:get_int("algorithm")
|
local algo = meta:get_int("algorithm")
|
||||||
algo = (algo + 1) % #algorithms
|
algo = (algo + 1) % #algorithms
|
||||||
meta:set_int("algorithm", algo)
|
meta:set_int("algorithm", algo)
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Algorithm: @1", algorithms[algo+1]))
|
core.chat_send_player(user:get_player_name(), S("Algorithm: @1", algorithms[algo+1]))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -120,7 +120,7 @@ end
|
|||||||
-- Punch: Find path
|
-- Punch: Find path
|
||||||
-- Sneak+punch: Select pathfinding algorithm
|
-- Sneak+punch: Select pathfinding algorithm
|
||||||
-- Place: Select destination node
|
-- Place: Select destination node
|
||||||
minetest.register_tool("testpathfinder:testpathfinder", {
|
core.register_tool("testpathfinder:testpathfinder", {
|
||||||
description = S("Pathfinder Tester") .."\n"..
|
description = S("Pathfinder Tester") .."\n"..
|
||||||
S("Finds path between 2 points") .."\n"..
|
S("Finds path between 2 points") .."\n"..
|
||||||
S("Place on node: Select destination") .."\n"..
|
S("Place on node: Select destination") .."\n"..
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
local S = minetest.get_translator("testtools")
|
local S = core.get_translator("testtools")
|
||||||
local F = minetest.formspec_escape
|
local F = core.formspec_escape
|
||||||
|
|
||||||
testtools = {}
|
testtools = {}
|
||||||
|
|
||||||
dofile(minetest.get_modpath("testtools") .. "/light.lua")
|
dofile(core.get_modpath("testtools") .. "/light.lua")
|
||||||
dofile(minetest.get_modpath("testtools") .. "/privatizer.lua")
|
dofile(core.get_modpath("testtools") .. "/privatizer.lua")
|
||||||
dofile(minetest.get_modpath("testtools") .. "/particles.lua")
|
dofile(core.get_modpath("testtools") .. "/particles.lua")
|
||||||
dofile(minetest.get_modpath("testtools") .. "/node_box_visualizer.lua")
|
dofile(core.get_modpath("testtools") .. "/node_box_visualizer.lua")
|
||||||
|
|
||||||
local pointabilities_nodes = {
|
local pointabilities_nodes = {
|
||||||
nodes = {
|
nodes = {
|
||||||
@ -22,7 +22,7 @@ local pointabilities_objects = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
minetest.register_tool("testtools:param2tool", {
|
core.register_tool("testtools:param2tool", {
|
||||||
description = S("Param2 Tool") .."\n"..
|
description = S("Param2 Tool") .."\n"..
|
||||||
S("Modify param2 value of nodes") .."\n"..
|
S("Modify param2 value of nodes") .."\n"..
|
||||||
S("Punch: +1") .."\n"..
|
S("Punch: +1") .."\n"..
|
||||||
@ -33,7 +33,7 @@ minetest.register_tool("testtools:param2tool", {
|
|||||||
groups = { testtool = 1, disable_repair = 1 },
|
groups = { testtool = 1, disable_repair = 1 },
|
||||||
pointabilities = pointabilities_nodes,
|
pointabilities = pointabilities_nodes,
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type ~= "node" or (not pos) then
|
if pointed_thing.type ~= "node" or (not pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -44,12 +44,12 @@ minetest.register_tool("testtools:param2tool", {
|
|||||||
add = 8
|
add = 8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
node.param2 = node.param2 + add
|
node.param2 = node.param2 + add
|
||||||
minetest.swap_node(pos, node)
|
core.swap_node(pos, node)
|
||||||
end,
|
end,
|
||||||
on_place = function(itemstack, user, pointed_thing)
|
on_place = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type ~= "node" or (not pos) then
|
if pointed_thing.type ~= "node" or (not pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -60,13 +60,13 @@ minetest.register_tool("testtools:param2tool", {
|
|||||||
add = -8
|
add = -8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
node.param2 = node.param2 + add
|
node.param2 = node.param2 + add
|
||||||
minetest.swap_node(pos, node)
|
core.swap_node(pos, node)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("testtools:node_setter", {
|
core.register_tool("testtools:node_setter", {
|
||||||
description = S("Node Setter") .."\n"..
|
description = S("Node Setter") .."\n"..
|
||||||
S("Replace pointed node with something else") .."\n"..
|
S("Replace pointed node with something else") .."\n"..
|
||||||
S("Punch: Select pointed node") .."\n"..
|
S("Punch: Select pointed node") .."\n"..
|
||||||
@ -76,24 +76,24 @@ minetest.register_tool("testtools:node_setter", {
|
|||||||
groups = { testtool = 1, disable_repair = 1 },
|
groups = { testtool = 1, disable_repair = 1 },
|
||||||
pointabilities = pointabilities_nodes,
|
pointabilities = pointabilities_nodes,
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type == "nothing" then
|
if pointed_thing.type == "nothing" then
|
||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
meta:set_string("node", "air")
|
meta:set_string("node", "air")
|
||||||
meta:set_int("node_param2", 0)
|
meta:set_int("node_param2", 0)
|
||||||
if user and user:is_player() then
|
if user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Now placing: @1 (param2=@2)", "air", 0))
|
core.chat_send_player(user:get_player_name(), S("Now placing: @1 (param2=@2)", "air", 0))
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
elseif pointed_thing.type ~= "node" or (not pos) then
|
elseif pointed_thing.type ~= "node" or (not pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
meta:set_string("node", node.name)
|
meta:set_string("node", node.name)
|
||||||
meta:set_int("node_param2", node.param2)
|
meta:set_int("node_param2", node.param2)
|
||||||
if user and user:is_player() then
|
if user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Now placing: @1 (param2=@2)", node.name, node.param2))
|
core.chat_send_player(user:get_player_name(), S("Now placing: @1 (param2=@2)", node.name, node.param2))
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end,
|
||||||
@ -102,7 +102,7 @@ minetest.register_tool("testtools:node_setter", {
|
|||||||
local nodename = meta:get_string("node") or ""
|
local nodename = meta:get_string("node") or ""
|
||||||
local param2 = meta:get_int("node_param2") or 0
|
local param2 = meta:get_int("node_param2") or 0
|
||||||
|
|
||||||
minetest.show_formspec(user:get_player_name(), "testtools:node_setter",
|
core.show_formspec(user:get_player_name(), "testtools:node_setter",
|
||||||
"size[4,4]"..
|
"size[4,4]"..
|
||||||
"field[0.5,1;3,1;nodename;"..F(S("Node name (itemstring):"))..";"..F(nodename).."]"..
|
"field[0.5,1;3,1;nodename;"..F(S("Node name (itemstring):"))..";"..F(nodename).."]"..
|
||||||
"field[0.5,2;3,1;param2;"..F(S("param2:"))..";"..F(tostring(param2)).."]"..
|
"field[0.5,2;3,1;param2;"..F(S("param2:"))..";"..F(tostring(param2)).."]"..
|
||||||
@ -110,11 +110,11 @@ minetest.register_tool("testtools:node_setter", {
|
|||||||
)
|
)
|
||||||
end,
|
end,
|
||||||
on_place = function(itemstack, user, pointed_thing)
|
on_place = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
local nodename = meta:get_string("node")
|
local nodename = meta:get_string("node")
|
||||||
if nodename == "" and user and user:is_player() then
|
if nodename == "" and user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Punch a node first!"))
|
core.chat_send_player(user:get_player_name(), S("Punch a node first!"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local param2 = meta:get_int("node_param2")
|
local param2 = meta:get_int("node_param2")
|
||||||
@ -122,15 +122,15 @@ minetest.register_tool("testtools:node_setter", {
|
|||||||
param2 = 0
|
param2 = 0
|
||||||
end
|
end
|
||||||
local node = { name = nodename, param2 = param2 }
|
local node = { name = nodename, param2 = param2 }
|
||||||
if not minetest.registered_nodes[nodename] then
|
if not core.registered_nodes[nodename] then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Cannot set unknown node: @1", nodename))
|
core.chat_send_player(user:get_player_name(), S("Cannot set unknown node: @1", nodename))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
minetest.set_node(pos, node)
|
core.set_node(pos, node)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("testtools:remover", {
|
core.register_tool("testtools:remover", {
|
||||||
description = S("Remover") .."\n"..
|
description = S("Remover") .."\n"..
|
||||||
S("Punch: Remove pointed node or object"),
|
S("Punch: Remove pointed node or object"),
|
||||||
inventory_image = "testtools_remover.png",
|
inventory_image = "testtools_remover.png",
|
||||||
@ -140,21 +140,21 @@ minetest.register_tool("testtools:remover", {
|
|||||||
objects = pointabilities_objects.objects,
|
objects = pointabilities_objects.objects,
|
||||||
},
|
},
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type == "node" and pos ~= nil then
|
if pointed_thing.type == "node" and pos ~= nil then
|
||||||
minetest.remove_node(pos)
|
core.remove_node(pos)
|
||||||
elseif pointed_thing.type == "object" then
|
elseif pointed_thing.type == "object" then
|
||||||
local obj = pointed_thing.ref
|
local obj = pointed_thing.ref
|
||||||
if not obj:is_player() then
|
if not obj:is_player() then
|
||||||
obj:remove()
|
obj:remove()
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Can't remove players!"))
|
core.chat_send_player(user:get_player_name(), S("Can't remove players!"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("testtools:falling_node_tool", {
|
core.register_tool("testtools:falling_node_tool", {
|
||||||
description = S("Falling Node Tool") .."\n"..
|
description = S("Falling Node Tool") .."\n"..
|
||||||
S("Punch: Make pointed node fall") .."\n"..
|
S("Punch: Make pointed node fall") .."\n"..
|
||||||
S("Place: Move pointed node 2 units upwards, then make it fall"),
|
S("Place: Move pointed node 2 units upwards, then make it fall"),
|
||||||
@ -163,7 +163,7 @@ minetest.register_tool("testtools:falling_node_tool", {
|
|||||||
pointabilities = pointabilities_nodes,
|
pointabilities = pointabilities_nodes,
|
||||||
on_place = function(itemstack, user, pointed_thing)
|
on_place = function(itemstack, user, pointed_thing)
|
||||||
-- Teleport node 1-2 units upwards (if possible) and make it fall
|
-- Teleport node 1-2 units upwards (if possible) and make it fall
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type ~= "node" or (not pos) then
|
if pointed_thing.type ~= "node" or (not pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -171,8 +171,8 @@ minetest.register_tool("testtools:falling_node_tool", {
|
|||||||
local highest
|
local highest
|
||||||
for i=1,2 do
|
for i=1,2 do
|
||||||
local above = {x=pos.x,y=pos.y+i,z=pos.z}
|
local above = {x=pos.x,y=pos.y+i,z=pos.z}
|
||||||
local n2 = minetest.get_node(above)
|
local n2 = core.get_node(above)
|
||||||
local def2 = minetest.registered_nodes[n2.name]
|
local def2 = core.registered_nodes[n2.name]
|
||||||
if def2 and (not def2.walkable) then
|
if def2 and (not def2.walkable) then
|
||||||
highest = above
|
highest = above
|
||||||
else
|
else
|
||||||
@ -180,33 +180,33 @@ minetest.register_tool("testtools:falling_node_tool", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if highest then
|
if highest then
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
local metatable = minetest.get_meta(pos):to_table()
|
local metatable = core.get_meta(pos):to_table()
|
||||||
minetest.remove_node(pos)
|
core.remove_node(pos)
|
||||||
minetest.set_node(highest, node)
|
core.set_node(highest, node)
|
||||||
local meta_highest = minetest.get_meta(highest)
|
local meta_highest = core.get_meta(highest)
|
||||||
meta_highest:from_table(metatable)
|
meta_highest:from_table(metatable)
|
||||||
ok = minetest.spawn_falling_node(highest)
|
ok = core.spawn_falling_node(highest)
|
||||||
else
|
else
|
||||||
ok = minetest.spawn_falling_node(pos)
|
ok = core.spawn_falling_node(pos)
|
||||||
end
|
end
|
||||||
if not ok and user and user:is_player() then
|
if not ok and user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Falling node could not be spawned!"))
|
core.chat_send_player(user:get_player_name(), S("Falling node could not be spawned!"))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
local pos = core.get_pointed_thing_position(pointed_thing)
|
||||||
if pointed_thing.type ~= "node" or (not pos) then
|
if pointed_thing.type ~= "node" or (not pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local ok = minetest.spawn_falling_node(pos)
|
local ok = core.spawn_falling_node(pos)
|
||||||
if not ok and user and user:is_player() then
|
if not ok and user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Falling node could not be spawned!"))
|
core.chat_send_player(user:get_player_name(), S("Falling node could not be spawned!"))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("testtools:rotator", {
|
core.register_tool("testtools:rotator", {
|
||||||
description = S("Entity Rotator") .. "\n" ..
|
description = S("Entity Rotator") .. "\n" ..
|
||||||
S("Rotate pointed entity") .."\n"..
|
S("Rotate pointed entity") .."\n"..
|
||||||
S("Punch: Yaw") .."\n"..
|
S("Punch: Yaw") .."\n"..
|
||||||
@ -260,11 +260,11 @@ local mover_config = function(itemstack, user, pointed_thing)
|
|||||||
dist = dist + 1
|
dist = dist + 1
|
||||||
end
|
end
|
||||||
meta:set_int("distance", dist)
|
meta:set_int("distance", dist)
|
||||||
minetest.chat_send_player(user:get_player_name(), S("distance=@1/10", dist*2))
|
core.chat_send_player(user:get_player_name(), S("distance=@1/10", dist*2))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:object_mover", {
|
core.register_tool("testtools:object_mover", {
|
||||||
description = S("Object Mover") .."\n"..
|
description = S("Object Mover") .."\n"..
|
||||||
S("Move pointed object towards or away from you") .."\n"..
|
S("Move pointed object towards or away from you") .."\n"..
|
||||||
S("Punch: Move by distance").."\n"..
|
S("Punch: Move by distance").."\n"..
|
||||||
@ -285,7 +285,7 @@ minetest.register_tool("testtools:object_mover", {
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
local yaw = user:get_look_horizontal()
|
local yaw = user:get_look_horizontal()
|
||||||
local dir = minetest.yaw_to_dir(yaw)
|
local dir = core.yaw_to_dir(yaw)
|
||||||
local pos = obj:get_pos()
|
local pos = obj:get_pos()
|
||||||
local pitch = user:get_look_vertical()
|
local pitch = user:get_look_vertical()
|
||||||
if pitch > 0.25 * math.pi then
|
if pitch > 0.25 * math.pi then
|
||||||
@ -313,7 +313,7 @@ minetest.register_tool("testtools:object_mover", {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_tool("testtools:entity_scaler", {
|
core.register_tool("testtools:entity_scaler", {
|
||||||
description = S("Entity Visual Scaler") .."\n"..
|
description = S("Entity Visual Scaler") .."\n"..
|
||||||
S("Scale visual size of entities") .."\n"..
|
S("Scale visual size of entities") .."\n"..
|
||||||
S("Punch: Increase size") .."\n"..
|
S("Punch: Increase size") .."\n"..
|
||||||
@ -364,14 +364,14 @@ local next_brand_num = 1
|
|||||||
|
|
||||||
function testtools.get_branded_object(name)
|
function testtools.get_branded_object(name)
|
||||||
if name:sub(1, 7) == "player:" then
|
if name:sub(1, 7) == "player:" then
|
||||||
return minetest.get_player_by_name(name:sub(8))
|
return core.get_player_by_name(name:sub(8))
|
||||||
elseif name:sub(1, 4) == "obj:" then
|
elseif name:sub(1, 4) == "obj:" then
|
||||||
return branded_objects[tonumber(name:sub(5)) or 0]
|
return branded_objects[tonumber(name:sub(5)) or 0]
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:branding_iron", {
|
core.register_tool("testtools:branding_iron", {
|
||||||
description = S("Branding Iron") .."\n"..
|
description = S("Branding Iron") .."\n"..
|
||||||
S("Give an object a temporary name.") .."\n"..
|
S("Give an object a temporary name.") .."\n"..
|
||||||
S("Punch object: Brand the object") .."\n"..
|
S("Punch object: Brand the object") .."\n"..
|
||||||
@ -398,7 +398,7 @@ minetest.register_tool("testtools:branding_iron", {
|
|||||||
next_brand_num = next_brand_num + 1
|
next_brand_num = next_brand_num + 1
|
||||||
branded_objects[brand_num] = obj
|
branded_objects[brand_num] = obj
|
||||||
|
|
||||||
minetest.chat_send_player(user:get_player_name(), S(msg, "obj:"..brand_num))
|
core.chat_send_player(user:get_player_name(), S(msg, "obj:"..brand_num))
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -409,7 +409,7 @@ local function get_entity_list()
|
|||||||
if entity_list then
|
if entity_list then
|
||||||
return entity_list
|
return entity_list
|
||||||
end
|
end
|
||||||
local ents = minetest.registered_entities
|
local ents = core.registered_entities
|
||||||
local list = {}
|
local list = {}
|
||||||
for k,_ in pairs(ents) do
|
for k,_ in pairs(ents) do
|
||||||
table.insert(list, k)
|
table.insert(list, k)
|
||||||
@ -418,7 +418,7 @@ local function get_entity_list()
|
|||||||
entity_list = list
|
entity_list = list
|
||||||
return entity_list
|
return entity_list
|
||||||
end
|
end
|
||||||
minetest.register_tool("testtools:entity_spawner", {
|
core.register_tool("testtools:entity_spawner", {
|
||||||
description = S("Entity Spawner") .."\n"..
|
description = S("Entity Spawner") .."\n"..
|
||||||
S("Spawns entities") .."\n"..
|
S("Spawns entities") .."\n"..
|
||||||
S("Punch: Select entity to spawn") .."\n"..
|
S("Punch: Select entity to spawn") .."\n"..
|
||||||
@ -430,9 +430,9 @@ minetest.register_tool("testtools:entity_spawner", {
|
|||||||
if pointed_thing.type == "node" then
|
if pointed_thing.type == "node" then
|
||||||
if selections[name] then
|
if selections[name] then
|
||||||
local pos = pointed_thing.above
|
local pos = pointed_thing.above
|
||||||
minetest.add_entity(pos, get_entity_list()[selections[name]])
|
core.add_entity(pos, get_entity_list()[selections[name]])
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(name, S("Select an entity first (with punch key)!"))
|
core.chat_send_player(name, S("Select an entity first (with punch key)!"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -444,7 +444,7 @@ minetest.register_tool("testtools:entity_spawner", {
|
|||||||
local list = table.concat(get_entity_list(), ",")
|
local list = table.concat(get_entity_list(), ",")
|
||||||
local name = user:get_player_name()
|
local name = user:get_player_name()
|
||||||
local sel = selections[name] or ""
|
local sel = selections[name] or ""
|
||||||
minetest.show_formspec(name, "testtools:entity_list",
|
core.show_formspec(name, "testtools:entity_list",
|
||||||
"size[9,9]"..
|
"size[9,9]"..
|
||||||
"textlist[0,0;9,8;entity_list;"..list..";"..sel..";false]"..
|
"textlist[0,0;9,8;entity_list;"..list..";"..sel..";false]"..
|
||||||
"button[0,8;4,1;spawn;Spawn entity]"
|
"button[0,8;4,1;spawn;Spawn entity]"
|
||||||
@ -508,7 +508,7 @@ local editor_formspec = function(playername, obj, value, sel)
|
|||||||
local ent = obj:get_luaentity()
|
local ent = obj:get_luaentity()
|
||||||
title = S("Object properties of @1", ent.name)
|
title = S("Object properties of @1", ent.name)
|
||||||
end
|
end
|
||||||
minetest.show_formspec(playername, "testtools:object_editor",
|
core.show_formspec(playername, "testtools:object_editor",
|
||||||
"size[9,9]"..
|
"size[9,9]"..
|
||||||
"label[0,0;"..F(title).."]"..
|
"label[0,0;"..F(title).."]"..
|
||||||
"textlist[0,0.5;9,7.5;object_props;"..list..";"..sel..";false]"..
|
"textlist[0,0.5;9,7.5;object_props;"..list..";"..sel..";false]"..
|
||||||
@ -518,7 +518,7 @@ local editor_formspec = function(playername, obj, value, sel)
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:object_editor", {
|
core.register_tool("testtools:object_editor", {
|
||||||
description = S("Object Property Editor") .."\n"..
|
description = S("Object Property Editor") .."\n"..
|
||||||
S("Edit properties of objects") .."\n"..
|
S("Edit properties of objects") .."\n"..
|
||||||
S("Punch object: Edit object") .."\n"..
|
S("Punch object: Edit object") .."\n"..
|
||||||
@ -582,7 +582,7 @@ local attacher_config = function(itemstack, user, pointed_thing)
|
|||||||
elseif rot_x < 0 then
|
elseif rot_x < 0 then
|
||||||
rot_x = math.pi * (15/8)
|
rot_x = math.pi * (15/8)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, S("rotation=@1", minetest.pos_to_string({x=rot_x,y=0,z=0})))
|
core.chat_send_player(name, S("rotation=@1", core.pos_to_string({x=rot_x,y=0,z=0})))
|
||||||
meta:set_float("rot_x", rot_x)
|
meta:set_float("rot_x", rot_x)
|
||||||
else
|
else
|
||||||
local pos_y
|
local pos_y
|
||||||
@ -596,13 +596,13 @@ local attacher_config = function(itemstack, user, pointed_thing)
|
|||||||
else
|
else
|
||||||
pos_y = pos_y + 1
|
pos_y = pos_y + 1
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, S("position=@1", minetest.pos_to_string({x=0,y=pos_y,z=0})))
|
core.chat_send_player(name, S("position=@1", core.pos_to_string({x=0,y=pos_y,z=0})))
|
||||||
meta:set_int("pos_y", pos_y)
|
meta:set_int("pos_y", pos_y)
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:object_attacher", {
|
core.register_tool("testtools:object_attacher", {
|
||||||
description = S("Object Attacher") .."\n"..
|
description = S("Object Attacher") .."\n"..
|
||||||
S("Attach object to another") .."\n"..
|
S("Attach object to another") .."\n"..
|
||||||
S("Punch objects to first select parent object, then the child object to attach") .."\n"..
|
S("Punch objects to first select parent object, then the child object to attach") .."\n"..
|
||||||
@ -631,9 +631,9 @@ minetest.register_tool("testtools:object_attacher", {
|
|||||||
if ctrl.sneak then
|
if ctrl.sneak then
|
||||||
if selected_object:get_attach() then
|
if selected_object:get_attach() then
|
||||||
selected_object:set_detach()
|
selected_object:set_detach()
|
||||||
minetest.chat_send_player(name, S("Object detached!"))
|
core.chat_send_player(name, S("Object detached!"))
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(name, S("Object is not attached!"))
|
core.chat_send_player(name, S("Object is not attached!"))
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -654,13 +654,13 @@ minetest.register_tool("testtools:object_attacher", {
|
|||||||
ename = selected_object:get_player_name()
|
ename = selected_object:get_player_name()
|
||||||
end
|
end
|
||||||
if selected_object == parent then
|
if selected_object == parent then
|
||||||
minetest.chat_send_player(name, S("Parent object selected: @1", ename))
|
core.chat_send_player(name, S("Parent object selected: @1", ename))
|
||||||
elseif selected_object == child then
|
elseif selected_object == child then
|
||||||
minetest.chat_send_player(name, S("Child object selected: @1", ename))
|
core.chat_send_player(name, S("Child object selected: @1", ename))
|
||||||
end
|
end
|
||||||
if parent and child then
|
if parent and child then
|
||||||
if parent == child then
|
if parent == child then
|
||||||
minetest.chat_send_player(name, S("Can't attach an object to itself!"))
|
core.chat_send_player(name, S("Can't attach an object to itself!"))
|
||||||
ent_parent[name] = nil
|
ent_parent[name] = nil
|
||||||
ent_child[name] = nil
|
ent_child[name] = nil
|
||||||
return
|
return
|
||||||
@ -678,10 +678,10 @@ minetest.register_tool("testtools:object_attacher", {
|
|||||||
child:set_attach(parent, "", offset, angle)
|
child:set_attach(parent, "", offset, angle)
|
||||||
local check_parent = child:get_attach()
|
local check_parent = child:get_attach()
|
||||||
if check_parent then
|
if check_parent then
|
||||||
minetest.chat_send_player(name, S("Object attached! position=@1, rotation=@2",
|
core.chat_send_player(name, S("Object attached! position=@1, rotation=@2",
|
||||||
minetest.pos_to_string(offset), minetest.pos_to_string(angle)))
|
core.pos_to_string(offset), core.pos_to_string(angle)))
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(name, S("Attachment failed!"))
|
core.chat_send_player(name, S("Attachment failed!"))
|
||||||
end
|
end
|
||||||
ent_parent[name] = nil
|
ent_parent[name] = nil
|
||||||
ent_child[name] = nil
|
ent_child[name] = nil
|
||||||
@ -700,7 +700,7 @@ local function print_object(obj)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:children_getter", {
|
core.register_tool("testtools:children_getter", {
|
||||||
description = S("Children Getter") .."\n"..
|
description = S("Children Getter") .."\n"..
|
||||||
S("Shows list of objects attached to object") .."\n"..
|
S("Shows list of objects attached to object") .."\n"..
|
||||||
S("Punch object to show its 'children'") .."\n"..
|
S("Punch object to show its 'children'") .."\n"..
|
||||||
@ -734,7 +734,7 @@ minetest.register_tool("testtools:children_getter", {
|
|||||||
else
|
else
|
||||||
ret = S("Children of @1:", self_name) .. "\n" .. ret
|
ret = S("Children of @1:", self_name) .. "\n" .. ret
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(user:get_player_name(), ret)
|
core.chat_send_player(user:get_player_name(), ret)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
@ -743,7 +743,7 @@ minetest.register_tool("testtools:children_getter", {
|
|||||||
local function use_loadstring(param, player)
|
local function use_loadstring(param, player)
|
||||||
-- For security reasons, require 'server' priv, just in case
|
-- For security reasons, require 'server' priv, just in case
|
||||||
-- someone is actually crazy enough to run this on a public server.
|
-- someone is actually crazy enough to run this on a public server.
|
||||||
local privs = minetest.get_player_privs(player:get_player_name())
|
local privs = core.get_player_privs(player:get_player_name())
|
||||||
if not privs.server then
|
if not privs.server then
|
||||||
return false, "You need 'server' privilege to change object properties!"
|
return false, "You need 'server' privilege to change object properties!"
|
||||||
end
|
end
|
||||||
@ -794,14 +794,14 @@ local function show_meta_formspec(user, metatype, pos_or_item, key, value, keyli
|
|||||||
local formname
|
local formname
|
||||||
if metatype == "node" then
|
if metatype == "node" then
|
||||||
formname = "testtools:node_meta_editor"
|
formname = "testtools:node_meta_editor"
|
||||||
extra_label = S("pos = @1", minetest.pos_to_string(pos_or_item))
|
extra_label = S("pos = @1", core.pos_to_string(pos_or_item))
|
||||||
else
|
else
|
||||||
formname = "testtools:item_meta_editor"
|
formname = "testtools:item_meta_editor"
|
||||||
extra_label = S("item = @1", pos_or_item:get_name())
|
extra_label = S("item = @1", pos_or_item:get_name())
|
||||||
end
|
end
|
||||||
form = form .. "label[0,7.2;"..F(extra_label).."]"
|
form = form .. "label[0,7.2;"..F(extra_label).."]"
|
||||||
|
|
||||||
minetest.show_formspec(user:get_player_name(), formname, form)
|
core.show_formspec(user:get_player_name(), formname, form)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_meta_keylist(meta, playername, escaped)
|
local function get_meta_keylist(meta, playername, escaped)
|
||||||
@ -822,7 +822,7 @@ local function get_meta_keylist(meta, playername, escaped)
|
|||||||
return table.concat(ekeys, ",")
|
return table.concat(ekeys, ",")
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:node_meta_editor", {
|
core.register_tool("testtools:node_meta_editor", {
|
||||||
description = S("Node Meta Editor") .. "\n" ..
|
description = S("Node Meta Editor") .. "\n" ..
|
||||||
S("Place: Edit node metadata"),
|
S("Place: Edit node metadata"),
|
||||||
inventory_image = "testtools_node_meta_editor.png",
|
inventory_image = "testtools_node_meta_editor.png",
|
||||||
@ -836,7 +836,7 @@ minetest.register_tool("testtools:node_meta_editor", {
|
|||||||
end
|
end
|
||||||
local pos = pointed_thing.under
|
local pos = pointed_thing.under
|
||||||
node_meta_posses[user:get_player_name()] = pos
|
node_meta_posses[user:get_player_name()] = pos
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = core.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
show_meta_formspec(user, "node", pos, "", "", get_meta_keylist(meta, user:get_player_name(), true))
|
show_meta_formspec(user, "node", pos, "", "", get_meta_keylist(meta, user:get_player_name(), true))
|
||||||
return itemstack
|
return itemstack
|
||||||
@ -861,7 +861,7 @@ local function use_item_meta_editor(itemstack, user, pointed_thing)
|
|||||||
end
|
end
|
||||||
local item_to_edit = get_item_next_to_wielded_item(user)
|
local item_to_edit = get_item_next_to_wielded_item(user)
|
||||||
if item_to_edit:is_empty() then
|
if item_to_edit:is_empty() then
|
||||||
minetest.chat_send_player(user:get_player_name(), S("Place an item next to the Item Meta Editor in your inventory first!"))
|
core.chat_send_player(user:get_player_name(), S("Place an item next to the Item Meta Editor in your inventory first!"))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
local meta = item_to_edit:get_meta()
|
local meta = item_to_edit:get_meta()
|
||||||
@ -869,7 +869,7 @@ local function use_item_meta_editor(itemstack, user, pointed_thing)
|
|||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:item_meta_editor", {
|
core.register_tool("testtools:item_meta_editor", {
|
||||||
description = S("Item Meta Editor") .. "\n" ..
|
description = S("Item Meta Editor") .. "\n" ..
|
||||||
S("Punch/Place: Edit item metadata of item in the next inventory slot"),
|
S("Punch/Place: Edit item metadata of item in the next inventory slot"),
|
||||||
inventory_image = "testtools_item_meta_editor.png",
|
inventory_image = "testtools_item_meta_editor.png",
|
||||||
@ -879,18 +879,18 @@ minetest.register_tool("testtools:item_meta_editor", {
|
|||||||
on_place = use_item_meta_editor,
|
on_place = use_item_meta_editor,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if not (player and player:is_player()) then
|
if not (player and player:is_player()) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if formname == "testtools:entity_list" then
|
if formname == "testtools:entity_list" then
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if fields.entity_list then
|
if fields.entity_list then
|
||||||
local expl = minetest.explode_textlist_event(fields.entity_list)
|
local expl = core.explode_textlist_event(fields.entity_list)
|
||||||
if expl.type == "DCL" then
|
if expl.type == "DCL" then
|
||||||
local pos = vector.add(player:get_pos(), {x=0,y=1,z=0})
|
local pos = vector.add(player:get_pos(), {x=0,y=1,z=0})
|
||||||
selections[name] = expl.index
|
selections[name] = expl.index
|
||||||
minetest.add_entity(pos, get_entity_list()[expl.index])
|
core.add_entity(pos, get_entity_list()[expl.index])
|
||||||
return
|
return
|
||||||
elseif expl.type == "CHG" then
|
elseif expl.type == "CHG" then
|
||||||
selections[name] = expl.index
|
selections[name] = expl.index
|
||||||
@ -898,13 +898,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
elseif fields.spawn and selections[name] then
|
elseif fields.spawn and selections[name] then
|
||||||
local pos = vector.add(player:get_pos(), {x=0,y=1,z=0})
|
local pos = vector.add(player:get_pos(), {x=0,y=1,z=0})
|
||||||
minetest.add_entity(pos, get_entity_list()[selections[name]])
|
core.add_entity(pos, get_entity_list()[selections[name]])
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
elseif formname == "testtools:object_editor" then
|
elseif formname == "testtools:object_editor" then
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if fields.object_props then
|
if fields.object_props then
|
||||||
local expl = minetest.explode_textlist_event(fields.object_props)
|
local expl = core.explode_textlist_event(fields.object_props)
|
||||||
if expl.type == "DCL" or expl.type == "CHG" then
|
if expl.type == "DCL" or expl.type == "CHG" then
|
||||||
property_formspec_index[name] = expl.index
|
property_formspec_index[name] = expl.index
|
||||||
|
|
||||||
@ -933,7 +933,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
if success then
|
if success then
|
||||||
props[key] = str
|
props[key] = str
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(name, str)
|
core.chat_send_player(name, str)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
selected_objects[name]:set_properties(props)
|
selected_objects[name]:set_properties(props)
|
||||||
@ -968,7 +968,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
pos_or_item = get_item_next_to_wielded_item(player)
|
pos_or_item = get_item_next_to_wielded_item(player)
|
||||||
end
|
end
|
||||||
if fields.keylist then
|
if fields.keylist then
|
||||||
local evnt = minetest.explode_textlist_event(fields.keylist)
|
local evnt = core.explode_textlist_event(fields.keylist)
|
||||||
if evnt.type == "DCL" or evnt.type == "CHG" then
|
if evnt.type == "DCL" or evnt.type == "CHG" then
|
||||||
local keylist_table = meta_latest_keylist[name]
|
local keylist_table = meta_latest_keylist[name]
|
||||||
if metatype == "node" and not pos_or_item then
|
if metatype == "node" and not pos_or_item then
|
||||||
@ -976,7 +976,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
local meta
|
local meta
|
||||||
if metatype == "node" then
|
if metatype == "node" then
|
||||||
meta = minetest.get_meta(pos_or_item)
|
meta = core.get_meta(pos_or_item)
|
||||||
else
|
else
|
||||||
meta = pos_or_item:get_meta()
|
meta = pos_or_item:get_meta()
|
||||||
end
|
end
|
||||||
@ -1002,7 +1002,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
local meta
|
local meta
|
||||||
if metatype == "node" then
|
if metatype == "node" then
|
||||||
meta = minetest.get_meta(pos_or_item)
|
meta = core.get_meta(pos_or_item)
|
||||||
elseif metatype == "item" then
|
elseif metatype == "item" then
|
||||||
if pos_or_item:is_empty() then
|
if pos_or_item:is_empty() then
|
||||||
return
|
return
|
||||||
@ -1022,7 +1022,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
core.register_on_leaveplayer(function(player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
meta_latest_keylist[name] = nil
|
meta_latest_keylist[name] = nil
|
||||||
node_meta_posses[name] = nil
|
node_meta_posses[name] = nil
|
||||||
@ -1030,7 +1030,7 @@ end)
|
|||||||
|
|
||||||
-- Pointing Staffs
|
-- Pointing Staffs
|
||||||
|
|
||||||
minetest.register_tool("testtools:blocked_pointing_staff", {
|
core.register_tool("testtools:blocked_pointing_staff", {
|
||||||
description = S("Blocked Pointing Staff").."\n"..
|
description = S("Blocked Pointing Staff").."\n"..
|
||||||
S("Can point the Blocking Pointable Node/Object and "..
|
S("Can point the Blocking Pointable Node/Object and "..
|
||||||
"the Pointable Node/Object is point blocking."),
|
"the Pointable Node/Object is point blocking."),
|
||||||
@ -1047,7 +1047,7 @@ minetest.register_tool("testtools:blocked_pointing_staff", {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("testtools:ultimate_pointing_staff", {
|
core.register_tool("testtools:ultimate_pointing_staff", {
|
||||||
description = S("Ultimate Pointing Staff").."\n"..
|
description = S("Ultimate Pointing Staff").."\n"..
|
||||||
S("Can point all pointable test nodes, objects and liquids."),
|
S("Can point all pointable test nodes, objects and liquids."),
|
||||||
inventory_image = "testtools_ultimate_pointing_staff.png",
|
inventory_image = "testtools_ultimate_pointing_staff.png",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
local S = minetest.get_translator("testtools")
|
local S = core.get_translator("testtools")
|
||||||
|
|
||||||
local function get_func(is_place)
|
local function get_func(is_place)
|
||||||
return function(itemstack, user, pointed_thing)
|
return function(itemstack, user, pointed_thing)
|
||||||
@ -13,19 +13,19 @@ local function get_func(is_place)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
local pstr = minetest.pos_to_string(pos)
|
local pstr = core.pos_to_string(pos)
|
||||||
local time = minetest.get_timeofday()
|
local time = core.get_timeofday()
|
||||||
local sunlight = minetest.get_natural_light(pos)
|
local sunlight = core.get_natural_light(pos)
|
||||||
local artificial = minetest.get_artificial_light(node.param1)
|
local artificial = core.get_artificial_light(node.param1)
|
||||||
local message = ("pos=%s | param1=0x%02x | " ..
|
local message = ("pos=%s | param1=0x%02x | " ..
|
||||||
"sunlight=%d | artificial=%d | timeofday=%.5f" )
|
"sunlight=%d | artificial=%d | timeofday=%.5f" )
|
||||||
:format(pstr, node.param1, sunlight, artificial, time)
|
:format(pstr, node.param1, sunlight, artificial, time)
|
||||||
minetest.chat_send_player(user:get_player_name(), message)
|
core.chat_send_player(user:get_player_name(), message)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:lighttool", {
|
core.register_tool("testtools:lighttool", {
|
||||||
description = S("Light Tool") .. "\n" ..
|
description = S("Light Tool") .. "\n" ..
|
||||||
S("Show light values of node") .. "\n" ..
|
S("Show light values of node") .. "\n" ..
|
||||||
S("Punch: Light of node above touched node") .. "\n" ..
|
S("Punch: Light of node above touched node") .. "\n" ..
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
local S = minetest.get_translator("testtools")
|
local S = core.get_translator("testtools")
|
||||||
|
|
||||||
minetest.register_entity("testtools:visual_box", {
|
core.register_entity("testtools:visual_box", {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
visual = "cube",
|
visual = "cube",
|
||||||
textures = {
|
textures = {
|
||||||
@ -14,11 +14,11 @@ minetest.register_entity("testtools:visual_box", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
on_activate = function(self)
|
on_activate = function(self)
|
||||||
self.timestamp = minetest.get_us_time() + 5000000
|
self.timestamp = core.get_us_time() + 5000000
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_step = function(self)
|
on_step = function(self)
|
||||||
if minetest.get_us_time() >= self.timestamp then
|
if core.get_us_time() >= self.timestamp then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -35,14 +35,14 @@ local function visualizer_on_use(itemstack, user, pointed_thing)
|
|||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
local box_type = meta:get("box_type") or DEFAULT_BOX_TYPE
|
local box_type = meta:get("box_type") or DEFAULT_BOX_TYPE
|
||||||
|
|
||||||
local result = minetest.get_node_boxes(box_type, pointed_thing.under)
|
local result = core.get_node_boxes(box_type, pointed_thing.under)
|
||||||
local t = "testtools_visual_" .. box_type .. ".png"
|
local t = "testtools_visual_" .. box_type .. ".png"
|
||||||
|
|
||||||
for _, box in ipairs(result) do
|
for _, box in ipairs(result) do
|
||||||
local box_min = pointed_thing.under + vector.new(box[1], box[2], box[3])
|
local box_min = pointed_thing.under + vector.new(box[1], box[2], box[3])
|
||||||
local box_max = pointed_thing.under + vector.new(box[4], box[5], box[6])
|
local box_max = pointed_thing.under + vector.new(box[4], box[5], box[6])
|
||||||
local box_center = (box_min + box_max) / 2
|
local box_center = (box_min + box_max) / 2
|
||||||
local obj = minetest.add_entity(box_center, "testtools:visual_box")
|
local obj = core.add_entity(box_center, "testtools:visual_box")
|
||||||
if not obj then
|
if not obj then
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@ -62,12 +62,12 @@ local function visualizer_on_place(itemstack, placer, pointed_thing)
|
|||||||
|
|
||||||
local new_value = BOX_TYPES[(prev_index % #BOX_TYPES) + 1]
|
local new_value = BOX_TYPES[(prev_index % #BOX_TYPES) + 1]
|
||||||
meta:set_string("box_type", new_value)
|
meta:set_string("box_type", new_value)
|
||||||
minetest.chat_send_player(placer:get_player_name(), S("[Node Box Visualizer] box_type = @1", new_value))
|
core.chat_send_player(placer:get_player_name(), S("[Node Box Visualizer] box_type = @1", new_value))
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("testtools:node_box_visualizer", {
|
core.register_tool("testtools:node_box_visualizer", {
|
||||||
description = S("Node Box Visualizer") .. "\n" ..
|
description = S("Node Box Visualizer") .. "\n" ..
|
||||||
S("Punch: Show node/collision/selection boxes of the pointed node") .. "\n" ..
|
S("Punch: Show node/collision/selection boxes of the pointed node") .. "\n" ..
|
||||||
S("Place: Change selected box type (default: selection box)"),
|
S("Place: Change selected box type (default: selection box)"),
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
minetest.register_tool("testtools:particle_spawner", {
|
core.register_tool("testtools:particle_spawner", {
|
||||||
description = "Particle Spawner".."\n"..
|
description = "Particle Spawner".."\n"..
|
||||||
"Punch: Spawn random test particle",
|
"Punch: Spawn random test particle",
|
||||||
inventory_image = "testtools_particle_spawner.png",
|
inventory_image = "testtools_particle_spawner.png",
|
||||||
groups = { testtool = 1, disable_repair = 1 },
|
groups = { testtool = 1, disable_repair = 1 },
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing, true)
|
local pos = core.get_pointed_thing_position(pointed_thing, true)
|
||||||
if pos == nil then
|
if pos == nil then
|
||||||
if user then
|
if user then
|
||||||
pos = user:get_pos()
|
pos = user:get_pos()
|
||||||
@ -20,7 +20,7 @@ minetest.register_tool("testtools:particle_spawner", {
|
|||||||
anim = {type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3}
|
anim = {type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3}
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.add_particle({
|
core.add_particle({
|
||||||
pos = pos,
|
pos = pos,
|
||||||
velocity = {x=0, y=0, z=0},
|
velocity = {x=0, y=0, z=0},
|
||||||
acceleration = {x=0, y=0.04, z=0},
|
acceleration = {x=0, y=0.04, z=0},
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
minetest.register_tool("testtools:privatizer", {
|
core.register_tool("testtools:privatizer", {
|
||||||
description = "Node Meta Privatizer".."\n"..
|
description = "Node Meta Privatizer".."\n"..
|
||||||
"Punch: Marks 'infotext' and 'formspec' meta fields of chest as private",
|
"Punch: Marks 'infotext' and 'formspec' meta fields of chest as private",
|
||||||
inventory_image = "testtools_privatizer.png",
|
inventory_image = "testtools_privatizer.png",
|
||||||
groups = { testtool = 1, disable_repair = 1 },
|
groups = { testtool = 1, disable_repair = 1 },
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
if pointed_thing.type == "node" then
|
if pointed_thing.type == "node" then
|
||||||
local node = minetest.get_node(pointed_thing.under)
|
local node = core.get_node(pointed_thing.under)
|
||||||
if minetest.get_item_group(node.name, "meta_is_privatizable") == 1 then
|
if core.get_item_group(node.name, "meta_is_privatizable") == 1 then
|
||||||
local p = pointed_thing.under
|
local p = pointed_thing.under
|
||||||
minetest.log("action", "[testtools] Privatizer used at "..minetest.pos_to_string(p))
|
core.log("action", "[testtools] Privatizer used at "..core.pos_to_string(p))
|
||||||
minetest.get_meta(p):mark_as_private({"infotext", "formspec"})
|
core.get_meta(p):mark_as_private({"infotext", "formspec"})
|
||||||
if user and user:is_player() then
|
if user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), "Node metadata (infotext, formspec) set private!")
|
core.chat_send_player(user:get_player_name(), "Node metadata (infotext, formspec) set private!")
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
elseif node.name == "chest_of_everything:chest" then
|
elseif node.name == "chest_of_everything:chest" then
|
||||||
if user and user:is_player() then
|
if user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), "Privatizer can't be used on the Chest of Everything. Use it on a normal chest.")
|
core.chat_send_player(user:get_player_name(), "Privatizer can't be used on the Chest of Everything. Use it on a normal chest.")
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if user and user:is_player() then
|
if user and user:is_player() then
|
||||||
minetest.chat_send_player(user:get_player_name(), "Privatizer can only be used on chest!")
|
core.chat_send_player(user:get_player_name(), "Privatizer can only be used on chest!")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
local S, NS = minetest.get_translator("testtranslations")
|
local S, NS = core.get_translator("testtranslations")
|
||||||
|
|
||||||
local function send_compare(name, text)
|
local function send_compare(name, text)
|
||||||
core.chat_send_player(name, ("%s | %s | %s"):format(
|
core.chat_send_player(name, ("%s | %s | %s"):format(
|
||||||
core.get_translated_string("", text), text, core.get_translated_string("fr", text)))
|
core.get_translated_string("", text), text, core.get_translated_string("fr", text)))
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("testtranslations", {
|
core.register_chatcommand("testtranslations", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Test translations",
|
description = "Test translations",
|
||||||
privs = {},
|
privs = {},
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
local align_help = "Texture spans over a space of 8×8 nodes"
|
local align_help = "Texture spans over a space of 8×8 nodes"
|
||||||
local align_help_n = "Tiles looks the same for every node"
|
local align_help_n = "Tiles looks the same for every node"
|
||||||
|
|
||||||
minetest.register_node("tiled:tiled", {
|
core.register_node("tiled:tiled", {
|
||||||
description = "Tiled Node (world-aligned)".."\n"..align_help,
|
description = "Tiled Node (world-aligned)".."\n"..align_help,
|
||||||
tiles = {{
|
tiles = {{
|
||||||
name = "tiled_tiled.png",
|
name = "tiled_tiled.png",
|
||||||
@ -11,7 +11,7 @@ minetest.register_node("tiled:tiled", {
|
|||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("tiled:tiled_rooted", {
|
core.register_node("tiled:tiled_rooted", {
|
||||||
description = "Tiled 'plantlike_rooted' Node (world-aligned)".."\n"..
|
description = "Tiled 'plantlike_rooted' Node (world-aligned)".."\n"..
|
||||||
"Base node texture spans over a space of 8×8 nodes".."\n"..
|
"Base node texture spans over a space of 8×8 nodes".."\n"..
|
||||||
"A plantlike thing grows on top",
|
"A plantlike thing grows on top",
|
||||||
@ -26,7 +26,7 @@ minetest.register_node("tiled:tiled_rooted", {
|
|||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("tiled:tiled_n", {
|
core.register_node("tiled:tiled_n", {
|
||||||
description = "Tiled Node (node-aligned)".."\n"..align_help_n,
|
description = "Tiled Node (node-aligned)".."\n"..align_help_n,
|
||||||
tiles = {{
|
tiles = {{
|
||||||
name = "tiled_tiled_node.png",
|
name = "tiled_tiled_node.png",
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
dofile(core.get_modpath(core.get_current_modname()) .. "/crafting_prepare.lua")
|
dofile(core.get_modpath(core.get_current_modname()) .. "/crafting_prepare.lua")
|
||||||
|
|
||||||
-- Test minetest.clear_craft function
|
-- Test core.clear_craft function
|
||||||
local function test_clear_craft()
|
local function test_clear_craft()
|
||||||
-- Clearing by output
|
-- Clearing by output
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
output = "foo",
|
output = "foo",
|
||||||
recipe = {{"bar"}}
|
recipe = {{"bar"}}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
output = "foo 4",
|
output = "foo 4",
|
||||||
recipe = {{"foo", "bar"}}
|
recipe = {{"foo", "bar"}}
|
||||||
})
|
})
|
||||||
assert(#minetest.get_all_craft_recipes("foo") == 2)
|
assert(#core.get_all_craft_recipes("foo") == 2)
|
||||||
minetest.clear_craft({output="foo"})
|
core.clear_craft({output="foo"})
|
||||||
assert(minetest.get_all_craft_recipes("foo") == nil)
|
assert(core.get_all_craft_recipes("foo") == nil)
|
||||||
-- Clearing by input
|
-- Clearing by input
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
output = "foo 4",
|
output = "foo 4",
|
||||||
recipe = {{"foo", "bar"}}
|
recipe = {{"foo", "bar"}}
|
||||||
})
|
})
|
||||||
assert(#minetest.get_all_craft_recipes("foo") == 1)
|
assert(#core.get_all_craft_recipes("foo") == 1)
|
||||||
minetest.clear_craft({recipe={{"foo", "bar"}}})
|
core.clear_craft({recipe={{"foo", "bar"}}})
|
||||||
assert(minetest.get_all_craft_recipes("foo") == nil)
|
assert(core.get_all_craft_recipes("foo") == nil)
|
||||||
end
|
end
|
||||||
unittests.register("test_clear_craft", test_clear_craft)
|
unittests.register("test_clear_craft", test_clear_craft)
|
||||||
|
|
||||||
-- Test minetest.get_craft_result function
|
-- Test core.get_craft_result function
|
||||||
local function test_get_craft_result()
|
local function test_get_craft_result()
|
||||||
-- normal
|
-- normal
|
||||||
local input = {
|
local input = {
|
||||||
@ -33,12 +33,12 @@ local function test_get_craft_result()
|
|||||||
width = 2,
|
width = 2,
|
||||||
items = {"", "unittests:coal_lump", "", "unittests:stick"}
|
items = {"", "unittests:coal_lump", "", "unittests:stick"}
|
||||||
}
|
}
|
||||||
minetest.log("info", "[unittests] torch crafting input: "..dump(input))
|
core.log("info", "[unittests] torch crafting input: "..dump(input))
|
||||||
local output, decremented_input = minetest.get_craft_result(input)
|
local output, decremented_input = core.get_craft_result(input)
|
||||||
minetest.log("info", "[unittests] torch crafting output: "..dump(output))
|
core.log("info", "[unittests] torch crafting output: "..dump(output))
|
||||||
minetest.log("info", "[unittests] torch crafting decremented input: "..dump(decremented_input))
|
core.log("info", "[unittests] torch crafting decremented input: "..dump(decremented_input))
|
||||||
assert(output.item)
|
assert(output.item)
|
||||||
minetest.log("info", "[unittests] torch crafting output.item:to_table(): "..dump(output.item:to_table()))
|
core.log("info", "[unittests] torch crafting output.item:to_table(): "..dump(output.item:to_table()))
|
||||||
assert(output.item:get_name() == "unittests:torch")
|
assert(output.item:get_name() == "unittests:torch")
|
||||||
assert(output.item:get_count() == 4)
|
assert(output.item:get_count() == 4)
|
||||||
|
|
||||||
@ -48,10 +48,10 @@ local function test_get_craft_result()
|
|||||||
width = 1,
|
width = 1,
|
||||||
items = {"unittests:coal_lump"}
|
items = {"unittests:coal_lump"}
|
||||||
}
|
}
|
||||||
minetest.log("info", "[unittests] coal fuel input: "..dump(input))
|
core.log("info", "[unittests] coal fuel input: "..dump(input))
|
||||||
output, decremented_input = minetest.get_craft_result(input)
|
output, decremented_input = core.get_craft_result(input)
|
||||||
minetest.log("info", "[unittests] coal fuel output: "..dump(output))
|
core.log("info", "[unittests] coal fuel output: "..dump(output))
|
||||||
minetest.log("info", "[unittests] coal fuel decremented input: "..dump(decremented_input))
|
core.log("info", "[unittests] coal fuel decremented input: "..dump(decremented_input))
|
||||||
assert(output.time)
|
assert(output.time)
|
||||||
assert(output.time > 0)
|
assert(output.time > 0)
|
||||||
|
|
||||||
@ -61,14 +61,14 @@ local function test_get_craft_result()
|
|||||||
width = 1,
|
width = 1,
|
||||||
items = {"unittests:iron_lump"}
|
items = {"unittests:iron_lump"}
|
||||||
}
|
}
|
||||||
minetest.log("info", "[unittests] iron lump cooking input: "..dump(output))
|
core.log("info", "[unittests] iron lump cooking input: "..dump(output))
|
||||||
output, decremented_input = minetest.get_craft_result(input)
|
output, decremented_input = core.get_craft_result(input)
|
||||||
minetest.log("info", "[unittests] iron lump cooking output: "..dump(output))
|
core.log("info", "[unittests] iron lump cooking output: "..dump(output))
|
||||||
minetest.log("info", "[unittests] iron lump cooking decremented input: "..dump(decremented_input))
|
core.log("info", "[unittests] iron lump cooking decremented input: "..dump(decremented_input))
|
||||||
assert(output.time)
|
assert(output.time)
|
||||||
assert(output.time > 0)
|
assert(output.time > 0)
|
||||||
assert(output.item)
|
assert(output.item)
|
||||||
minetest.log("info", "[unittests] iron lump cooking output.item:to_table(): "..dump(output.item:to_table()))
|
core.log("info", "[unittests] iron lump cooking output.item:to_table(): "..dump(output.item:to_table()))
|
||||||
assert(output.item:get_name() == "unittests:steel_ingot")
|
assert(output.item:get_name() == "unittests:steel_ingot")
|
||||||
assert(output.item:get_count() == 1)
|
assert(output.item:get_count() == 1)
|
||||||
|
|
||||||
@ -79,12 +79,12 @@ local function test_get_craft_result()
|
|||||||
-- Using a wear of 60000
|
-- Using a wear of 60000
|
||||||
items = {"unittests:repairable_tool 1 60000", "unittests:repairable_tool 1 60000"}
|
items = {"unittests:repairable_tool 1 60000", "unittests:repairable_tool 1 60000"}
|
||||||
}
|
}
|
||||||
minetest.log("info", "[unittests] repairable tool crafting input: "..dump(input))
|
core.log("info", "[unittests] repairable tool crafting input: "..dump(input))
|
||||||
output, decremented_input = minetest.get_craft_result(input)
|
output, decremented_input = core.get_craft_result(input)
|
||||||
minetest.log("info", "[unittests] repairable tool crafting output: "..dump(output))
|
core.log("info", "[unittests] repairable tool crafting output: "..dump(output))
|
||||||
minetest.log("info", "[unittests] repairable tool crafting decremented input: "..dump(decremented_input))
|
core.log("info", "[unittests] repairable tool crafting decremented input: "..dump(decremented_input))
|
||||||
assert(output.item)
|
assert(output.item)
|
||||||
minetest.log("info", "[unittests] repairable tool crafting output.item:to_table(): "..dump(output.item:to_table()))
|
core.log("info", "[unittests] repairable tool crafting output.item:to_table(): "..dump(output.item:to_table()))
|
||||||
assert(output.item:get_name() == "unittests:repairable_tool")
|
assert(output.item:get_name() == "unittests:repairable_tool")
|
||||||
-- Test the wear value.
|
-- Test the wear value.
|
||||||
-- See src/craftdef.cpp in Luanti source code for the formula. The formula to calculate
|
-- See src/craftdef.cpp in Luanti source code for the formula. The formula to calculate
|
||||||
@ -100,12 +100,12 @@ local function test_get_craft_result()
|
|||||||
width = 2,
|
width = 2,
|
||||||
items = {"unittests:unrepairable_tool 1 60000", "unittests:unrepairable_tool 1 60000"}
|
items = {"unittests:unrepairable_tool 1 60000", "unittests:unrepairable_tool 1 60000"}
|
||||||
}
|
}
|
||||||
minetest.log("info", "[unittests] unrepairable tool crafting input: "..dump(input))
|
core.log("info", "[unittests] unrepairable tool crafting input: "..dump(input))
|
||||||
output, decremented_input = minetest.get_craft_result(input)
|
output, decremented_input = core.get_craft_result(input)
|
||||||
minetest.log("info", "[unittests] unrepairable tool crafting output: "..dump(output))
|
core.log("info", "[unittests] unrepairable tool crafting output: "..dump(output))
|
||||||
minetest.log("info", "[unittests] unrepairable tool crafting decremented input: "..dump(decremented_input))
|
core.log("info", "[unittests] unrepairable tool crafting decremented input: "..dump(decremented_input))
|
||||||
assert(output.item)
|
assert(output.item)
|
||||||
minetest.log("info", "[unittests] unrepairable tool crafting output.item:to_table(): "..dump(output.item:to_table()))
|
core.log("info", "[unittests] unrepairable tool crafting output.item:to_table(): "..dump(output.item:to_table()))
|
||||||
-- unrepairable tool must not yield any output
|
-- unrepairable tool must not yield any output
|
||||||
assert(output.item:is_empty())
|
assert(output.item:is_empty())
|
||||||
end
|
end
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
-- Registering some dummy items and recipes for the crafting tests
|
-- Registering some dummy items and recipes for the crafting tests
|
||||||
|
|
||||||
minetest.register_craftitem("unittests:torch", {
|
core.register_craftitem("unittests:torch", {
|
||||||
description = "Crafting Test Item: Torch",
|
description = "Crafting Test Item: Torch",
|
||||||
inventory_image = "unittests_torch.png",
|
inventory_image = "unittests_torch.png",
|
||||||
|
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("unittests:coal_lump", {
|
core.register_craftitem("unittests:coal_lump", {
|
||||||
description = "Crafting Test Item: Coal Lump",
|
description = "Crafting Test Item: Coal Lump",
|
||||||
inventory_image = "unittests_coal_lump.png",
|
inventory_image = "unittests_coal_lump.png",
|
||||||
|
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("unittests:stick", {
|
core.register_craftitem("unittests:stick", {
|
||||||
description = "Crafting Test Item: Stick",
|
description = "Crafting Test Item: Stick",
|
||||||
inventory_image = "unittests_stick.png",
|
inventory_image = "unittests_stick.png",
|
||||||
|
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("unittests:iron_lump", {
|
core.register_craftitem("unittests:iron_lump", {
|
||||||
description = "Crafting Test Item: Iron Lump",
|
description = "Crafting Test Item: Iron Lump",
|
||||||
inventory_image = "unittests_iron_lump.png",
|
inventory_image = "unittests_iron_lump.png",
|
||||||
|
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
})
|
})
|
||||||
minetest.register_craftitem("unittests:steel_ingot", {
|
core.register_craftitem("unittests:steel_ingot", {
|
||||||
description = "Crafting Test Item: Steel Ingot",
|
description = "Crafting Test Item: Steel Ingot",
|
||||||
inventory_image = "unittests_steel_ingot.png",
|
inventory_image = "unittests_steel_ingot.png",
|
||||||
|
|
||||||
@ -33,13 +33,13 @@ minetest.register_craftitem("unittests:steel_ingot", {
|
|||||||
|
|
||||||
-- Use aliases in recipes for more complete testing
|
-- Use aliases in recipes for more complete testing
|
||||||
|
|
||||||
minetest.register_alias("unittests:steel_ingot_alias", "unittests:steel_ingot")
|
core.register_alias("unittests:steel_ingot_alias", "unittests:steel_ingot")
|
||||||
minetest.register_alias("unittests:coal_lump_alias", "unittests:coal_lump")
|
core.register_alias("unittests:coal_lump_alias", "unittests:coal_lump")
|
||||||
minetest.register_alias("unittests:iron_lump_alias", "unittests:iron_lump")
|
core.register_alias("unittests:iron_lump_alias", "unittests:iron_lump")
|
||||||
|
|
||||||
-- Recipes for tests: Normal crafting, cooking and fuel
|
-- Recipes for tests: Normal crafting, cooking and fuel
|
||||||
|
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
output = 'unittests:torch 4',
|
output = 'unittests:torch 4',
|
||||||
recipe = {
|
recipe = {
|
||||||
{'unittests:coal_lump_alias'},
|
{'unittests:coal_lump_alias'},
|
||||||
@ -47,26 +47,26 @@ minetest.register_craft({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
output = "unittests:steel_ingot_alias",
|
output = "unittests:steel_ingot_alias",
|
||||||
recipe = "unittests:iron_lump_alias",
|
recipe = "unittests:iron_lump_alias",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "unittests:coal_lump_alias",
|
recipe = "unittests:coal_lump_alias",
|
||||||
burntime = 40,
|
burntime = 40,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Test tool repair
|
-- Test tool repair
|
||||||
minetest.register_craft({
|
core.register_craft({
|
||||||
type = "toolrepair",
|
type = "toolrepair",
|
||||||
additional_wear = -0.05,
|
additional_wear = -0.05,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Test the disable_repair=1 group
|
-- Test the disable_repair=1 group
|
||||||
minetest.register_tool("unittests:unrepairable_tool", {
|
core.register_tool("unittests:unrepairable_tool", {
|
||||||
description = "Crafting Test Item: Unrepairable Tool",
|
description = "Crafting Test Item: Unrepairable Tool",
|
||||||
inventory_image = "unittests_unrepairable_tool.png",
|
inventory_image = "unittests_unrepairable_tool.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
@ -79,7 +79,7 @@ minetest.register_tool("unittests:unrepairable_tool", {
|
|||||||
groups = { disable_repair = 1, dummy = 1 }
|
groups = { disable_repair = 1, dummy = 1 }
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_tool("unittests:repairable_tool", {
|
core.register_tool("unittests:repairable_tool", {
|
||||||
description = "Crafting Test Item: Repairable Tool",
|
description = "Crafting Test Item: Repairable Tool",
|
||||||
inventory_image = "unittests_repairable_tool.png",
|
inventory_image = "unittests_repairable_tool.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
|
@ -193,7 +193,7 @@ dofile(modpath .. "/color.lua")
|
|||||||
|
|
||||||
local function send_results(name, ok)
|
local function send_results(name, ok)
|
||||||
core.chat_send_player(name,
|
core.chat_send_player(name,
|
||||||
minetest.colorize(ok and "green" or "red",
|
core.colorize(ok and "green" or "red",
|
||||||
(ok and "All devtest unit tests passed." or
|
(ok and "All devtest unit tests passed." or
|
||||||
"There were devtest unit test failures.") ..
|
"There were devtest unit test failures.") ..
|
||||||
" Check the console for detailed output."))
|
" Check the console for detailed output."))
|
||||||
@ -206,7 +206,7 @@ if core.settings:get_bool("devtest_unittests_autostart", false) then
|
|||||||
-- to write status information to the filesystem
|
-- to write status information to the filesystem
|
||||||
local old_on_finished = unittests.on_finished
|
local old_on_finished = unittests.on_finished
|
||||||
unittests.on_finished = function(ok)
|
unittests.on_finished = function(ok)
|
||||||
for _, player in ipairs(minetest.get_connected_players()) do
|
for _, player in ipairs(core.get_connected_players()) do
|
||||||
send_results(player:get_player_name(), ok)
|
send_results(player:get_player_name(), ok)
|
||||||
end
|
end
|
||||||
test_results = ok
|
test_results = ok
|
||||||
@ -214,7 +214,7 @@ if core.settings:get_bool("devtest_unittests_autostart", false) then
|
|||||||
end
|
end
|
||||||
coroutine.wrap(unittests.run_all)()
|
coroutine.wrap(unittests.run_all)()
|
||||||
end)
|
end)
|
||||||
minetest.register_on_joinplayer(function(player)
|
core.register_on_joinplayer(function(player)
|
||||||
if test_results == nil then
|
if test_results == nil then
|
||||||
return -- tests haven't completed yet
|
return -- tests haven't completed yet
|
||||||
end
|
end
|
||||||
|
@ -20,7 +20,7 @@ local function compare_lists(a, b)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function test_inventory()
|
local function test_inventory()
|
||||||
local inv = minetest.create_detached_inventory("test")
|
local inv = core.create_detached_inventory("test")
|
||||||
|
|
||||||
inv:set_lists({test = {""}})
|
inv:set_lists({test = {""}})
|
||||||
assert(inv:get_list("test"))
|
assert(inv:get_list("test"))
|
||||||
@ -66,8 +66,8 @@ local function test_inventory()
|
|||||||
assert(compare_lists(before, after))
|
assert(compare_lists(before, after))
|
||||||
|
|
||||||
local location = inv:get_location()
|
local location = inv:get_location()
|
||||||
assert(minetest.remove_detached_inventory("test"))
|
assert(core.remove_detached_inventory("test"))
|
||||||
assert(not minetest.get_inventory(location))
|
assert(not core.get_inventory(location))
|
||||||
end
|
end
|
||||||
|
|
||||||
unittests.register("test_inventory", test_inventory)
|
unittests.register("test_inventory", test_inventory)
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
local full_description = "Description Test Item\nFor testing item decription"
|
local full_description = "Description Test Item\nFor testing item decription"
|
||||||
minetest.register_tool("unittests:description_test", {
|
core.register_tool("unittests:description_test", {
|
||||||
description = full_description,
|
description = full_description,
|
||||||
inventory_image = "unittests_description_test.png",
|
inventory_image = "unittests_description_test.png",
|
||||||
groups = { dummy = 1 },
|
groups = { dummy = 1 },
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("item_description", {
|
core.register_chatcommand("item_description", {
|
||||||
param = "",
|
param = "",
|
||||||
description = "Show the short and full description of the wielded item.",
|
description = "Show the short and full description of the wielded item.",
|
||||||
func = function(name)
|
func = function(name)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local item = player:get_wielded_item()
|
local item = player:get_wielded_item()
|
||||||
return true, string.format("short_description: %s\ndescription: %s",
|
return true, string.format("short_description: %s\ndescription: %s",
|
||||||
item:get_short_description(), item:get_description())
|
item:get_short_description(), item:get_description())
|
||||||
@ -24,9 +24,9 @@ local function test_short_desc()
|
|||||||
local stack = ItemStack("unittests:description_test")
|
local stack = ItemStack("unittests:description_test")
|
||||||
assert(stack:get_short_description() == "Description Test Item")
|
assert(stack:get_short_description() == "Description Test Item")
|
||||||
assert(get_short_description("unittests:description_test") == "Description Test Item")
|
assert(get_short_description("unittests:description_test") == "Description Test Item")
|
||||||
assert(minetest.registered_items["unittests:description_test"].short_description == nil)
|
assert(core.registered_items["unittests:description_test"].short_description == nil)
|
||||||
assert(stack:get_description() == full_description)
|
assert(stack:get_description() == full_description)
|
||||||
assert(stack:get_description() == minetest.registered_items["unittests:description_test"].description)
|
assert(stack:get_description() == core.registered_items["unittests:description_test"].description)
|
||||||
|
|
||||||
stack:get_meta():set_string("description", "Hello World")
|
stack:get_meta():set_string("description", "Hello World")
|
||||||
assert(stack:get_short_description() == "Hello World")
|
assert(stack:get_short_description() == "Hello World")
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
-- Test item (un)registration and overriding
|
-- Test item (un)registration and overriding
|
||||||
do
|
do
|
||||||
local itemname = "unittests:test_override_item"
|
local itemname = "unittests:test_override_item"
|
||||||
minetest.register_craftitem(":" .. itemname, {description = "foo"})
|
core.register_craftitem(":" .. itemname, {description = "foo"})
|
||||||
assert(assert(minetest.registered_items[itemname]).description == "foo")
|
assert(assert(core.registered_items[itemname]).description == "foo")
|
||||||
minetest.override_item(itemname, {description = "bar"})
|
core.override_item(itemname, {description = "bar"})
|
||||||
assert(assert(minetest.registered_items[itemname]).description == "bar")
|
assert(assert(core.registered_items[itemname]).description == "bar")
|
||||||
minetest.override_item(itemname, {}, {"description"})
|
core.override_item(itemname, {}, {"description"})
|
||||||
-- description has the empty string as a default
|
-- description has the empty string as a default
|
||||||
assert(assert(minetest.registered_items[itemname]).description == "")
|
assert(assert(core.registered_items[itemname]).description == "")
|
||||||
minetest.unregister_item("unittests:test_override_item")
|
core.unregister_item("unittests:test_override_item")
|
||||||
assert(minetest.registered_items["unittests:test_override_item"] == nil)
|
assert(core.registered_items["unittests:test_override_item"] == nil)
|
||||||
end
|
end
|
||||||
|
@ -116,6 +116,6 @@ end
|
|||||||
unittests.register("test_item_metadata", test_item_metadata)
|
unittests.register("test_item_metadata", test_item_metadata)
|
||||||
|
|
||||||
local function test_node_metadata(player, pos)
|
local function test_node_metadata(player, pos)
|
||||||
test_metadata(minetest.get_meta(pos))
|
test_metadata(core.get_meta(pos))
|
||||||
end
|
end
|
||||||
unittests.register("test_node_metadata", test_node_metadata, {map=true})
|
unittests.register("test_node_metadata", test_node_metadata, {map=true})
|
||||||
|
@ -73,8 +73,8 @@ end
|
|||||||
unittests.register("test_v3f_metatable", test_v3f_metatable, {player=true})
|
unittests.register("test_v3f_metatable", test_v3f_metatable, {player=true})
|
||||||
|
|
||||||
local function test_v3s16_metatable(player, pos)
|
local function test_v3s16_metatable(player, pos)
|
||||||
local node = minetest.get_node(pos)
|
local node = core.get_node(pos)
|
||||||
local found_pos = minetest.find_node_near(pos, 0, node.name, true)
|
local found_pos = core.find_node_near(pos, 0, node.name, true)
|
||||||
assert(vector.check(found_pos))
|
assert(vector.check(found_pos))
|
||||||
end
|
end
|
||||||
unittests.register("test_v3s16_metatable", test_v3s16_metatable, {map=true})
|
unittests.register("test_v3s16_metatable", test_v3s16_metatable, {map=true})
|
||||||
@ -181,7 +181,7 @@ local function test_write_json()
|
|||||||
for i = 1, 1000 do
|
for i = 1, 1000 do
|
||||||
data = {data}
|
data = {data}
|
||||||
end
|
end
|
||||||
local roundtripped = minetest.parse_json(minetest.write_json(data))
|
local roundtripped = core.parse_json(core.write_json(data))
|
||||||
for i = 1, 1000 do
|
for i = 1, 1000 do
|
||||||
roundtripped = roundtripped[1]
|
roundtripped = roundtripped[1]
|
||||||
end
|
end
|
||||||
@ -190,7 +190,7 @@ end
|
|||||||
unittests.register("test_write_json", test_write_json)
|
unittests.register("test_write_json", test_write_json)
|
||||||
|
|
||||||
local function test_game_info()
|
local function test_game_info()
|
||||||
local info = minetest.get_game_info()
|
local info = core.get_game_info()
|
||||||
local game_conf = Settings(info.path .. "/game.conf")
|
local game_conf = Settings(info.path .. "/game.conf")
|
||||||
assert(info.id == "devtest")
|
assert(info.id == "devtest")
|
||||||
assert(info.title == game_conf:get("title"))
|
assert(info.title == game_conf:get("title"))
|
||||||
@ -199,27 +199,27 @@ unittests.register("test_game_info", test_game_info)
|
|||||||
|
|
||||||
local function test_mapgen_edges(cb)
|
local function test_mapgen_edges(cb)
|
||||||
-- Test that the map can extend to the expected edges and no further.
|
-- Test that the map can extend to the expected edges and no further.
|
||||||
local min_edge, max_edge = minetest.get_mapgen_edges()
|
local min_edge, max_edge = core.get_mapgen_edges()
|
||||||
local min_finished = {}
|
local min_finished = {}
|
||||||
local max_finished = {}
|
local max_finished = {}
|
||||||
local function finish()
|
local function finish()
|
||||||
if #min_finished ~= 1 then
|
if #min_finished ~= 1 then
|
||||||
return cb("Expected 1 block to emerge around mapgen minimum edge")
|
return cb("Expected 1 block to emerge around mapgen minimum edge")
|
||||||
end
|
end
|
||||||
if min_finished[1] ~= (min_edge / minetest.MAP_BLOCKSIZE):floor() then
|
if min_finished[1] ~= (min_edge / core.MAP_BLOCKSIZE):floor() then
|
||||||
return cb("Expected block within minimum edge to emerge")
|
return cb("Expected block within minimum edge to emerge")
|
||||||
end
|
end
|
||||||
if #max_finished ~= 1 then
|
if #max_finished ~= 1 then
|
||||||
return cb("Expected 1 block to emerge around mapgen maximum edge")
|
return cb("Expected 1 block to emerge around mapgen maximum edge")
|
||||||
end
|
end
|
||||||
if max_finished[1] ~= (max_edge / minetest.MAP_BLOCKSIZE):floor() then
|
if max_finished[1] ~= (max_edge / core.MAP_BLOCKSIZE):floor() then
|
||||||
return cb("Expected block within maximum edge to emerge")
|
return cb("Expected block within maximum edge to emerge")
|
||||||
end
|
end
|
||||||
return cb()
|
return cb()
|
||||||
end
|
end
|
||||||
local emerges_left = 2
|
local emerges_left = 2
|
||||||
local function emerge_block(blockpos, action, blocks_left, finished)
|
local function emerge_block(blockpos, action, blocks_left, finished)
|
||||||
if action ~= minetest.EMERGE_CANCELLED then
|
if action ~= core.EMERGE_CANCELLED then
|
||||||
table.insert(finished, blockpos)
|
table.insert(finished, blockpos)
|
||||||
end
|
end
|
||||||
if blocks_left == 0 then
|
if blocks_left == 0 then
|
||||||
@ -229,34 +229,34 @@ local function test_mapgen_edges(cb)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.emerge_area(min_edge:subtract(1), min_edge, emerge_block, min_finished)
|
core.emerge_area(min_edge:subtract(1), min_edge, emerge_block, min_finished)
|
||||||
minetest.emerge_area(max_edge, max_edge:add(1), emerge_block, max_finished)
|
core.emerge_area(max_edge, max_edge:add(1), emerge_block, max_finished)
|
||||||
end
|
end
|
||||||
unittests.register("test_mapgen_edges", test_mapgen_edges, {map=true, async=true})
|
unittests.register("test_mapgen_edges", test_mapgen_edges, {map=true, async=true})
|
||||||
|
|
||||||
local finish_test_on_mapblocks_changed
|
local finish_test_on_mapblocks_changed
|
||||||
minetest.register_on_mapblocks_changed(function(modified_blocks, modified_block_count)
|
core.register_on_mapblocks_changed(function(modified_blocks, modified_block_count)
|
||||||
if finish_test_on_mapblocks_changed then
|
if finish_test_on_mapblocks_changed then
|
||||||
finish_test_on_mapblocks_changed(modified_blocks, modified_block_count)
|
finish_test_on_mapblocks_changed(modified_blocks, modified_block_count)
|
||||||
finish_test_on_mapblocks_changed = nil
|
finish_test_on_mapblocks_changed = nil
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
local function test_on_mapblocks_changed(cb, player, pos)
|
local function test_on_mapblocks_changed(cb, player, pos)
|
||||||
local bp1 = (pos / minetest.MAP_BLOCKSIZE):floor()
|
local bp1 = (pos / core.MAP_BLOCKSIZE):floor()
|
||||||
local bp2 = bp1:add(1)
|
local bp2 = bp1:add(1)
|
||||||
for _, bp in ipairs({bp1, bp2}) do
|
for _, bp in ipairs({bp1, bp2}) do
|
||||||
-- Make a modification in the block.
|
-- Make a modification in the block.
|
||||||
local p = bp * minetest.MAP_BLOCKSIZE
|
local p = bp * core.MAP_BLOCKSIZE
|
||||||
minetest.load_area(p)
|
core.load_area(p)
|
||||||
local meta = minetest.get_meta(p)
|
local meta = core.get_meta(p)
|
||||||
meta:set_int("test_on_mapblocks_changed", meta:get_int("test_on_mapblocks_changed") + 1)
|
meta:set_int("test_on_mapblocks_changed", meta:get_int("test_on_mapblocks_changed") + 1)
|
||||||
end
|
end
|
||||||
finish_test_on_mapblocks_changed = function(modified_blocks, modified_block_count)
|
finish_test_on_mapblocks_changed = function(modified_blocks, modified_block_count)
|
||||||
if modified_block_count < 2 then
|
if modified_block_count < 2 then
|
||||||
return cb("Expected at least two mapblocks to be recorded as modified")
|
return cb("Expected at least two mapblocks to be recorded as modified")
|
||||||
end
|
end
|
||||||
if not modified_blocks[minetest.hash_node_position(bp1)] or
|
if not modified_blocks[core.hash_node_position(bp1)] or
|
||||||
not modified_blocks[minetest.hash_node_position(bp2)] then
|
not modified_blocks[core.hash_node_position(bp2)] then
|
||||||
return cb("The expected mapblocks were not recorded as modified")
|
return cb("The expected mapblocks were not recorded as modified")
|
||||||
end
|
end
|
||||||
cb()
|
cb()
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
minetest.register_chatcommand("hotbar", {
|
core.register_chatcommand("hotbar", {
|
||||||
params = "<size>",
|
params = "<size>",
|
||||||
description = "Set hotbar size",
|
description = "Set hotbar size",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -19,16 +19,16 @@ minetest.register_chatcommand("hotbar", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("hp", {
|
core.register_chatcommand("hp", {
|
||||||
params = "<hp>",
|
params = "<hp>",
|
||||||
description = "Set your health",
|
description = "Set your health",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local hp = tonumber(param)
|
local hp = tonumber(param)
|
||||||
if not hp or minetest.is_nan(hp) or hp < 0 or hp > 65535 then
|
if not hp or core.is_nan(hp) or hp < 0 or hp > 65535 then
|
||||||
return false, "Missing or incorrect hp parameter!"
|
return false, "Missing or incorrect hp parameter!"
|
||||||
end
|
end
|
||||||
player:set_hp(hp)
|
player:set_hp(hp)
|
||||||
@ -36,32 +36,32 @@ minetest.register_chatcommand("hp", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local s_infplace = minetest.settings:get("devtest_infplace")
|
local s_infplace = core.settings:get("devtest_infplace")
|
||||||
if s_infplace == "true" then
|
if s_infplace == "true" then
|
||||||
infplace = true
|
infplace = true
|
||||||
elseif s_infplace == "false" then
|
elseif s_infplace == "false" then
|
||||||
infplace = false
|
infplace = false
|
||||||
else
|
else
|
||||||
infplace = minetest.is_creative_enabled("")
|
infplace = core.is_creative_enabled("")
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("infplace", {
|
core.register_chatcommand("infplace", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Toggle infinite node placement",
|
description = "Toggle infinite node placement",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
infplace = not infplace
|
infplace = not infplace
|
||||||
if infplace then
|
if infplace then
|
||||||
minetest.chat_send_all("Infinite node placement enabled!")
|
core.chat_send_all("Infinite node placement enabled!")
|
||||||
minetest.log("action", "Infinite node placement enabled")
|
core.log("action", "Infinite node placement enabled")
|
||||||
else
|
else
|
||||||
minetest.chat_send_all("Infinite node placement disabled!")
|
core.chat_send_all("Infinite node placement disabled!")
|
||||||
minetest.log("action", "Infinite node placement disabled")
|
core.log("action", "Infinite node placement disabled")
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("detach", {
|
core.register_chatcommand("detach", {
|
||||||
params = "[<radius>]",
|
params = "[<radius>]",
|
||||||
description = "Detach all objects nearby",
|
description = "Detach all objects nearby",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
@ -72,11 +72,11 @@ minetest.register_chatcommand("detach", {
|
|||||||
if radius < 1 then
|
if radius < 1 then
|
||||||
radius = 1
|
radius = 1
|
||||||
end
|
end
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
local objs = minetest.get_objects_inside_radius(player:get_pos(), radius)
|
local objs = core.get_objects_inside_radius(player:get_pos(), radius)
|
||||||
local num = 0
|
local num = 0
|
||||||
for o=1, #objs do
|
for o=1, #objs do
|
||||||
if objs[o]:get_attach() then
|
if objs[o]:get_attach() then
|
||||||
@ -88,11 +88,11 @@ minetest.register_chatcommand("detach", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("use_tool", {
|
core.register_chatcommand("use_tool", {
|
||||||
params = "(dig <group> <leveldiff>) | (hit <damage_group> <time_from_last_punch>) [<uses>]",
|
params = "(dig <group> <leveldiff>) | (hit <damage_group> <time_from_last_punch>) [<uses>]",
|
||||||
description = "Apply tool wear a number of times, as if it were used for digging",
|
description = "Apply tool wear a number of times, as if it were used for digging",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
if not player then
|
if not player then
|
||||||
return false, "No player."
|
return false, "No player."
|
||||||
end
|
end
|
||||||
@ -117,9 +117,9 @@ minetest.register_chatcommand("use_tool", {
|
|||||||
local wear = tool:get_wear()
|
local wear = tool:get_wear()
|
||||||
local dp
|
local dp
|
||||||
if mode == "dig" then
|
if mode == "dig" then
|
||||||
dp = minetest.get_dig_params({[group]=3, level=level}, caps, wear)
|
dp = core.get_dig_params({[group]=3, level=level}, caps, wear)
|
||||||
else
|
else
|
||||||
dp = minetest.get_hit_params({[group]=100}, caps, level, wear)
|
dp = core.get_hit_params({[group]=100}, caps, level, wear)
|
||||||
end
|
end
|
||||||
tool:add_wear(dp.wear)
|
tool:add_wear(dp.wear)
|
||||||
actual_uses = actual_uses + 1
|
actual_uses = actual_uses + 1
|
||||||
@ -141,15 +141,15 @@ minetest.register_chatcommand("use_tool", {
|
|||||||
|
|
||||||
|
|
||||||
-- Unlimited node placement
|
-- Unlimited node placement
|
||||||
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack)
|
core.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack)
|
||||||
if placer and placer:is_player() then
|
if placer and placer:is_player() then
|
||||||
return infplace
|
return infplace
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Don't pick up if the item is already in the inventory
|
-- Don't pick up if the item is already in the inventory
|
||||||
local old_handle_node_drops = minetest.handle_node_drops
|
local old_handle_node_drops = core.handle_node_drops
|
||||||
function minetest.handle_node_drops(pos, drops, digger)
|
function core.handle_node_drops(pos, drops, digger)
|
||||||
if not digger or not digger:is_player() or not infplace then
|
if not digger or not digger:is_player() or not infplace then
|
||||||
return old_handle_node_drops(pos, drops, digger)
|
return old_handle_node_drops(pos, drops, digger)
|
||||||
end
|
end
|
||||||
@ -163,11 +163,11 @@ function minetest.handle_node_drops(pos, drops, digger)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("set_displayed_itemcount", {
|
core.register_chatcommand("set_displayed_itemcount", {
|
||||||
params = "(-s \"<string>\" [-c <color>]) | -a <alignment_num>",
|
params = "(-s \"<string>\" [-c <color>]) | -a <alignment_num>",
|
||||||
description = "Set the displayed itemcount of the wielded item",
|
description = "Set the displayed itemcount of the wielded item",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local item = player:get_wielded_item()
|
local item = player:get_wielded_item()
|
||||||
local meta = item:get_meta()
|
local meta = item:get_meta()
|
||||||
local flag1 = param:sub(1, 2)
|
local flag1 = param:sub(1, 2)
|
||||||
@ -181,7 +181,7 @@ minetest.register_chatcommand("set_displayed_itemcount", {
|
|||||||
end
|
end
|
||||||
local s = param:sub(5, se - 1)
|
local s = param:sub(5, se - 1)
|
||||||
if param:sub(se + 1, se + 4) == " -c " then
|
if param:sub(se + 1, se + 4) == " -c " then
|
||||||
s = minetest.colorize(param:sub(se + 5), s)
|
s = core.colorize(param:sub(se + 5), s)
|
||||||
end
|
end
|
||||||
meta:set_string("count_meta", s)
|
meta:set_string("count_meta", s)
|
||||||
elseif flag1 == "-a" then
|
elseif flag1 == "-a" then
|
||||||
@ -198,11 +198,11 @@ minetest.register_chatcommand("set_displayed_itemcount", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("dump_item", {
|
core.register_chatcommand("dump_item", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Prints a dump of the wielded item in table form",
|
description = "Prints a dump of the wielded item in table form",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local item = player:get_wielded_item()
|
local item = player:get_wielded_item()
|
||||||
local str = dump(item:to_table())
|
local str = dump(item:to_table())
|
||||||
print(str)
|
print(str)
|
||||||
@ -210,22 +210,22 @@ minetest.register_chatcommand("dump_item", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("dump_itemdef", {
|
core.register_chatcommand("dump_itemdef", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Prints a dump of the wielded item's definition in table form",
|
description = "Prints a dump of the wielded item's definition in table form",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local str = dump(player:get_wielded_item():get_definition())
|
local str = dump(player:get_wielded_item():get_definition())
|
||||||
print(str)
|
print(str)
|
||||||
return true, str
|
return true, str
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("dump_wear_bar", {
|
core.register_chatcommand("dump_wear_bar", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Prints a dump of the wielded item's wear bar parameters in table form",
|
description = "Prints a dump of the wielded item's wear bar parameters in table form",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = core.get_player_by_name(name)
|
||||||
local item = player:get_wielded_item()
|
local item = player:get_wielded_item()
|
||||||
local str = dump(item:get_wear_bar_params())
|
local str = dump(item:get_wear_bar_params())
|
||||||
print(str)
|
print(str)
|
||||||
@ -238,6 +238,6 @@ core.register_chatcommand("set_saturation", {
|
|||||||
description = "Set the saturation for current player.",
|
description = "Set the saturation for current player.",
|
||||||
func = function(player_name, param)
|
func = function(player_name, param)
|
||||||
local saturation = tonumber(param)
|
local saturation = tonumber(param)
|
||||||
minetest.get_player_by_name(player_name):set_lighting({saturation = saturation })
|
core.get_player_by_name(player_name):set_lighting({saturation = saturation })
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user