myboardgames/mygomoku/init.lua

162 lines
4.5 KiB
Lua

local board = {
{"cross","Cross"},
{"crossdot","Cross Dot"},
{"bordert","Border T"},
{"borderc","Border C"},
{"blank","Blank"},
}
for i in ipairs(board) do
local itm = board[i][1]
local des = board[i][2]
minetest.register_node("mygomoku:"..itm,{
description = des,
tiles = {
"mygomoku_"..itm..".png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
},
paramtype2 = "facedir",
drop = "",
light_source = 5,
groups = {cracky=3, not_in_creative_inventory = 1},
})
end
minetest.register_node("mygomoku:placer",{
description = "Gomoku",
inventory_image = "mygomoku_inv.png",
wield_image = "mygomoku_inv.png",
tiles = {
"mygomoku_restart.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
},
paramtype2 = "facedir",
groups = {cracky=3},
light_source = 5,
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local schem = minetest.get_modpath("mygomoku").."/schems/mygomoku.mts"
minetest.place_schematic(pos,schem,0, "air", true)
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
if placer and minetest.check_player_privs(placer:get_player_name(), {myboardgames = true}) then
else
minetest.remove_node(pos)
return true
end
end,
})
minetest.register_alias("mygomoku:stone_brown","mygomoku:stone_black")
minetest.register_node("mygomoku:stone_black", {
description = "Black Go Stone",
tiles = {
"default_obsidian.png^[colorize:#000:100",
},
drawtype = "nodebox",
paramtype = "light",
drop = "",
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.45, -0.425, -0.225, 0.45, -0.35, 0.225},
{-0.225, -0.425, -0.45, 0.225,-0.35, 0.45},
{-0.3375, -0.425, -0.3375, 0.3375, -0.35, 0.3375},
{-0.225, -0.5, -0.225, 0.225, -0.275, 0.225},
{-0.1125,-0.5, -0.3375, 0.1125, -0.275, 0.3375},
{-0.3375,-0.5, -0.1125, 0.3375, -0.275, 0.1125},
}
},
buildable_to = true,
light_source = 8,
})
minetest.register_node("mygomoku:stone_white", {
description = "White Go Stone",
tiles = {
"default_obsidian.png^[colorize:#fff:175",
},
drawtype = "nodebox",
paramtype = "light",
drop = "",
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.45, -0.425, -0.225, 0.45, -0.35, 0.225},
{-0.225, -0.425, -0.45, 0.225,-0.35, 0.45},
{-0.3375, -0.425, -0.3375, 0.3375, -0.35, 0.3375},
{-0.225, -0.5, -0.225, 0.225, -0.275, 0.225},
{-0.1125,-0.5, -0.3375, 0.1125, -0.275, 0.3375},
{-0.3375,-0.5, -0.1125, 0.3375, -0.275, 0.1125},
}
},
buildable_to = true,
light_source = 8,
})
minetest.register_alias("mygomoku:stone_brown_rf","mygomoku:stone_black_rf")
minetest.register_node("mygomoku:stone_black_rf", {
description = "Black Go Stone rf",
tiles = {
"default_obsidian.png^[colorize:#000:100",
},
drawtype = "nodebox",
paramtype = "light",
drop = "mygomoku:stone_brown",
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.45, -0.5, -0.225, 0.45, 0, 0.225},
{-0.225, -0.5, -0.45, 0.225,0, 0.45},
{-0.3375, -0.5, -0.3375, 0.3375, 0, 0.3375},
{-0.225, -0.5, -0.225, 0.225, 0.1375, 0.225},
{-0.1125,-0.5, -0.3375, 0.1125, 0.1375, 0.3375},
{-0.3375,-0.5, -0.1125, 0.3375, 0.1375, 0.1125},
}
},
selection_box = {
type = "fixed",
fixed = {-0.45, -0.5, -0.45, 0.45, 0.1375, 0.45},
},
light_source = 5,
after_destruct = function(pos, oldnode)
minetest.set_node(pos,{name="mygomoku:stone_brown_rf",param2=oldnode.param2})
end,
})
minetest.register_node("mygomoku:stone_white_rf", {
description = "White Go Stone rf",
tiles = {
"default_obsidian.png^[colorize:#fff:175",
},
drawtype = "nodebox",
paramtype = "light",
drop = "mygomoku:stone_white",
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.45, -0.5, -0.225, 0.45, 0, 0.225},
{-0.225, -0.5, -0.45, 0.225,0, 0.45},
{-0.3375, -0.5, -0.3375, 0.3375, 0, 0.3375},
{-0.225, -0.5, -0.225, 0.225, 0.1375, 0.225},
{-0.1125,-0.5, -0.3375, 0.1125, 0.1375, 0.3375},
{-0.3375,-0.5, -0.1125, 0.3375, 0.1375, 0.1125},
}
},
selection_box = {
type = "fixed",
fixed = {-0.45, -0.5, -0.45, 0.45, 0.1375, 0.45},
},
light_source = 5,
after_destruct = function(pos, oldnode)
minetest.set_node(pos,{name="mygomoku:stone_white_rf",param2=oldnode.param2})
end,
})