minetest_dice2/init.lua
2020-04-06 00:33:17 +02:00

83 lines
2.5 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local S = minetest.get_translator("dice2")
local dice2 = {}
dice2.colors = { "white", "red" }
dice2.descriptions = { S("White dice"), S("Red dice") }
--[[ throw dice (randomly change facedir and play sound ]]
function dice2.throw(pos, node, clicker, itemstack, pointed_thing)
local newnode = node
--[[ Why math.random(0,23), you ask?
This includes the facing direction (1 out of 6) and the rotation (1 out of 4).
This is basically the same as
math.random(0,5) + math.random(0,4)*6
.
Dont worry, the probability is still 1/6 for each facing direction. ]]
newnode.param2 = math.random(0,23)
minetest.swap_node(pos,newnode)
minetest.sound_play( {name="dice2_dice_throw", gain=1 }, {pos=pos, loop=false}, true)
return itemstack
end
--[[ place dice and use a random facedir ]]
function dice2.construct(pos) --, placer, itemstack, pointed_thing)
local newnode = minetest.get_node(pos)
newnode.param2 = math.random(0,23)
minetest.swap_node(pos,newnode)
end
for i=1,#dice2.colors do
local c = dice2.colors[i]
minetest.register_node("dice2:dice_"..c,
{
description = dice2.descriptions[i],
_doc_items_longdesc = S("A huge wooden dice with the numbers 1-6, just for fun."),
_doc_items_usagehelp = S("Rightclick on a placed dice to “throw” it, which rotates it randomly."),
tiles = {
"dice2_dice_"..c.."_6.png", "dice2_dice_"..c.."_1.png",
"dice2_dice_"..c.."_5.png", "dice2_dice_"..c.."_2.png",
"dice2_dice_"..c.."_4.png", "dice2_dice_"..c.."_3.png" },
groups = { choppy=2, flammable=1, dig_immediate=2 },
paramtype2 = "facedir",
sounds = {
footstep = { name="dice2_dice_punchstep", gain = 0.75 },
dig = { name="dice2_dice_punchstep", gain = 0.8325 },
dug = { name="dice2_dice_punchstep", gain = 1 },
place = { name="dice2_dice_place", gain = 1 }, },
on_rightclick = dice2.throw,
on_construct = dice2.construct,
is_ground_content = false,
}
)
minetest.register_craft({
type = "fuel",
recipe = "dice2:dice_"..c,
burntime = 5,
})
end
minetest.register_craft({
output = "dice2:dice_white 5",
recipe = {
{ "group:wood", "", "group:wood" },
{ "", "group:wood", ""} ,
{ "group:wood", "", "group:wood" }
}
})
if minetest.get_modpath("dye") ~= nil then
minetest.register_craft({
type = "shapeless",
output = "dice2:dice_white",
recipe = { "dice2:dice_red", "dye:white", "dye:black" }
})
minetest.register_craft({
type = "shapeless",
output = "dice2:dice_red",
recipe = { "dice2:dice_white", "dye:red", "dye:white" }
})
end