Rename minetest.* to core.* in devtest

This commit is contained in:
Lars Müller
2024-10-28 15:57:54 +01:00
committed by GitHub
parent d849d51c2d
commit 88c7a54e08
78 changed files with 914 additions and 914 deletions

View File

@ -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},

View File

@ -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",

View File

@ -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
) )

View File

@ -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", {})

View File

@ -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))

View File

@ -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" },

View File

@ -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")

View File

@ -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()

View File

@ -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)

View File

@ -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)

View File

@ -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,

View File

@ -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]"..

View File

@ -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")

View File

@ -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

View File

@ -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)",

View File

@ -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

View File

@ -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]",

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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",

View File

@ -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

View File

@ -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,
}) })

View File

@ -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")

View File

@ -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

View File

@ -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},

View File

@ -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,

View File

@ -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,

View File

@ -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" },

View File

@ -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
}) })

View File

@ -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")

View File

@ -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
}) })

View File

@ -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
}) })

View File

@ -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

View File

@ -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,
}) })

View File

@ -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")

View File

@ -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" },

View File

@ -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},

View File

@ -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),

View File

@ -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,
}) })

View File

@ -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"),
}) })

View File

@ -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
}) })

View File

@ -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 },

View File

@ -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

View File

@ -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")

View File

@ -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)

View File

@ -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()

View File

@ -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

View File

@ -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,
}) })

View File

@ -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 …"

View File

@ -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 = ""..

View File

@ -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")

View File

@ -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",

View File

@ -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,

View File

@ -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",

View File

@ -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",

View File

@ -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"),

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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"..

View File

@ -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",

View File

@ -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" ..

View File

@ -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)"),

View File

@ -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},

View File

@ -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,
}) })

View File

@ -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 = {},

View File

@ -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",

View File

@ -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

View File

@ -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 = {

View File

@ -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

View File

@ -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)

View File

@ -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")

View File

@ -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

View File

@ -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})

View File

@ -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()

View File

@ -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
}) })