added canadian checkers

added draughts
added gomoku
master
DonBatman 2015-10-24 06:32:46 -07:00
parent f3f372de75
commit acd81f2849
40 changed files with 485 additions and 0 deletions

View File

@ -0,0 +1,165 @@
minetest.register_node("mycanadiancheckers:board", {
description = "Canadian Checkers Board",
inventory_image = "mycheckers_board_inven.png",
wield_image = "mycheckers_board_inven.png",
light_source = 5,
tiles = {"mycheckers_border_cbl.png","mycheckers_border.png","mycheckers_border_side.png","mycheckers_border_side.png","mycheckers_border_side.png","mycheckers_border_side.png"},
drawtype = "normal",
paramtype = "light",
groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(),
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local schem = minetest.get_modpath("mycanadiancheckers").."/schems/mycanadiancheckers.mts"
minetest.place_schematic({x=pos.x,y=pos.y,z=pos.z},schem,0, "air", true)
end,
})
local board = {
{"mycanadiancheckers:border" ,{"mycheckers_border.png"}},
{"mycanadiancheckers:borderb" ,{
"mycheckers_border_bottom.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}},
{"mycanadiancheckers:bordercbl" ,{
"mycheckers_border_cornerbl.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}},
{"mycanadiancheckers:borderocbr",{
"mycheckers_border_cbr.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}}
,
{"mycanadiancheckers:white" ,{"mycheckers_wboard.png"}},
{"mycanadiancheckers:black" ,{"mycheckers_bboard.png"}},
}
for i in ipairs (board) do
local item = board[i][1]
local img = board[i][2]
minetest.register_node(item, {
description = item,
light_source = 5,
tiles = img,
drawtype = "normal",
paramtype = "light",
paramtype2 = "facedir",
groups = {cracky = 1,not_in_creative_inventory=1},
})
end
local regp = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, -0.3125, 0.3125},
{-0.3125, -0.5, -0.1875, 0.3125, -0.3125, 0.1875},
{-0.1875, -0.3125, -0.1875, 0.1875, -0.25, 0.1875},
}
}
local crown = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, -0.3125, 0.3125},
{-0.3125, -0.5, -0.1875, 0.3125, -0.3125, 0.1875},
{-0.3125, -0.25, -0.1875, 0.3125, -0.0625, 0.1875},
{-0.1875, -0.25, -0.3125, 0.1875, -0.0625, 0.3125},
{-0.1875, -0.3125, -0.1875, 0.1875, -0.25, 0.1875},
{-0.1875, -0.0625, -0.1875, 0.1875, 0, 0.1875},
}
}
minetest.register_node("mycanadiancheckers:redp_c", {
description = "Red Crown",
light_source = 5,
tiles = {"default_acacia_wood.png"},
drawtype = "nodebox",
paramtype = "light",
drop = "mycanadiancheckers:redp 2",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = crown,
})
minetest.register_node("mycanadiancheckers:blackp_c", {
description = "Black Crown",
light_source = 5,
tiles = {"default_obsidian.png"},
drawtype = "nodebox",
paramtype = "light",
drop = "mycanadiancheckers:blackp 2",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = crown,
})
minetest.register_node("mycanadiancheckers:blackp", {
description = "Black Piece",
light_source = 5,
tiles = {"default_obsidian.png"},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = regp,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos)
local nodeu = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
if nodeu.name == "mycanadiancheckers:blackp" and
node.name == "mycanadiancheckers:blackp" then
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "mycanadiancheckers:blackp_c"})
minetest.set_node(pos,{name = "air"})
elseif nodeu ~= "mycanadiancheckers:blackp" then
minetest.set_node(pos,{name="mycanadiancheckers:blackp"})
end
end
})
minetest.register_node("mycanadiancheckers:redp", {
description = "Red Piece",
light_source = 5,
tiles = {"default_acacia_wood.png"},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = regp,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos)
local nodeu = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
if nodeu.name == "mycanadiancheckers:redp" and
node.name == "mycanadiancheckers:redp" then
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "mycanadiancheckers:redp_c"})
minetest.set_node(pos,{name = "air"})
elseif nodeu ~= "mycanadiancheckers:redp" then
minetest.set_node(pos,{name="mycanadiancheckers:redp"})
end
end
})

View File

@ -0,0 +1 @@
default

View File

@ -0,0 +1,2 @@
dofile(minetest.get_modpath("mycanadiancheckers").."/board.lua")
print("[mycanadiancheckers] Loaded!")

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

165
mydraughts/board.lua Normal file
View File

@ -0,0 +1,165 @@
minetest.register_node("mydraughts:board", {
description = "Draughts Board",
inventory_image = "mycheckers_board_inven.png",
wield_image = "mycheckers_board_inven.png",
light_source = 5,
tiles = {"mycheckers_border_cbl.png","mycheckers_border.png","mycheckers_border_side.png","mycheckers_border_side.png","mycheckers_border_side.png","mycheckers_border_side.png"},
drawtype = "normal",
paramtype = "light",
groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(),
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local schem = minetest.get_modpath("mydraughts").."/schems/mydraughts.mts"
minetest.place_schematic({x=pos.x,y=pos.y,z=pos.z},schem,0, "air", true)
end,
})
local board = {
{"mydraughts:border" ,{"mycheckers_border.png"}},
{"mydraughts:borderb" ,{
"mycheckers_border_bottom.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}},
{"mydraughts:bordercbl" ,{
"mycheckers_border_cornerbl.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}},
{"mydraughts:borderocbr",{
"mycheckers_border_cbr.png",
"mycheckers_border.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png",
"mycheckers_border_side.png"}}
,
{"mydraughts:white" ,{"mycheckers_wboard.png"}},
{"mydraughts:black" ,{"mycheckers_bboard.png"}},
}
for i in ipairs (board) do
local item = board[i][1]
local img = board[i][2]
minetest.register_node(item, {
description = item,
light_source = 5,
tiles = img,
drawtype = "normal",
paramtype = "light",
paramtype2 = "facedir",
groups = {cracky = 1,not_in_creative_inventory=1},
})
end
local regp = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, -0.3125, 0.3125},
{-0.3125, -0.5, -0.1875, 0.3125, -0.3125, 0.1875},
{-0.1875, -0.3125, -0.1875, 0.1875, -0.25, 0.1875},
}
}
local crown = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, -0.3125, 0.3125},
{-0.3125, -0.5, -0.1875, 0.3125, -0.3125, 0.1875},
{-0.3125, -0.25, -0.1875, 0.3125, -0.0625, 0.1875},
{-0.1875, -0.25, -0.3125, 0.1875, -0.0625, 0.3125},
{-0.1875, -0.3125, -0.1875, 0.1875, -0.25, 0.1875},
{-0.1875, -0.0625, -0.1875, 0.1875, 0, 0.1875},
}
}
minetest.register_node("mydraughts:redp_c", {
description = "Red Crown",
light_source = 5,
tiles = {"default_acacia_wood.png"},
drawtype = "nodebox",
paramtype = "light",
drop = "mydraughts:redp 2",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = crown,
})
minetest.register_node("mydraughts:blackp_c", {
description = "Black Crown",
light_source = 5,
tiles = {"default_obsidian.png"},
drawtype = "nodebox",
paramtype = "light",
drop = "mydraughts:blackp 2",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = crown,
})
minetest.register_node("mydraughts:blackp", {
description = "Black Piece",
light_source = 5,
tiles = {"default_obsidian.png"},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = regp,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos)
local nodeu = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
if nodeu.name == "mydraughts:blackp" and
node.name == "mydraughts:blackp" then
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "mydraughts:blackp_c"})
minetest.set_node(pos,{name = "air"})
elseif nodeu ~= "mydraughts:blackp" then
minetest.set_node(pos,{name="mydraughts:blackp"})
end
end
})
minetest.register_node("mydraughts:redp", {
description = "Red Piece",
light_source = 5,
tiles = {"default_acacia_wood.png"},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky = 1, dig_immediate=3,not_in_creative_inventory=1},
node_box = regp,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos)
local nodeu = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
if nodeu.name == "mydraughts:redp" and
node.name == "mydraughts:redp" then
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "mydraughts:redp_c"})
minetest.set_node(pos,{name = "air"})
elseif nodeu ~= "mydraughts:redp" then
minetest.set_node(pos,{name="mydraughts:redp"})
end
end
})

1
mydraughts/depends.txt Normal file
View File

@ -0,0 +1 @@
default

2
mydraughts/init.lua Normal file
View File

@ -0,0 +1,2 @@
dofile(minetest.get_modpath("mydraughts").."/board.lua")
print("[mydraughts] Loaded!")

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

149
mygomoku/init.lua Normal file
View File

@ -0,0 +1,149 @@
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",
groups = {cracky=3},
})
end
minetest.register_node("mygomoku:placer",{
description = "Gomoku",
tiles = {
"mygomoku_restart.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
"mygomoku_blank.png",
},
paramtype2 = "facedir",
groups = {cracky=3},
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,
})
minetest.register_node("mygomoku:stone_brown", {
description = "Stone Brown",
tiles = {
"mygomoku_blank.png^[colorize:brown:200",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {cracky=3},
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, 0.25, -0.4375, 0.125},
{-0.125, -0.5, -0.25, 0.125, -0.4375, 0.25},
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875},
{-0.125, -0.5, -0.125, 0.125, -0.375, 0.125},
{-0.0625, -0.5, -0.1875, 0.0625, -0.375, 0.1875},
{-0.1875, -0.5, -0.0625, 0.1875, -0.375, 0.0625},
}
}
})
minetest.register_node("mygomoku:stone_white", {
description = "Stone White",
tiles = {
"mygomoku_blank.png^[colorize:brown:100",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {cracky=3},
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, 0.25, -0.4375, 0.125},
{-0.125, -0.5, -0.25, 0.125, -0.4375, 0.25},
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875},
{-0.125, -0.5, -0.125, 0.125, -0.375, 0.125},
{-0.0625, -0.5, -0.1875, 0.0625, -0.375, 0.1875},
{-0.1875, -0.5, -0.0625, 0.1875, -0.375, 0.0625},
}
}
})
minetest.register_node("mygomoku:stone_brown_rf", {
description = "Stone Brown rf",
tiles = {
"mygomoku_blank.png^[colorize:brown:200",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {cracky=3},
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, 0.25, -0.4375, 0.125},
{-0.125, -0.5, -0.25, 0.125, -0.4375, 0.25},
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875},
{-0.125, -0.5, -0.125, 0.125, -0.375, 0.125},
{-0.0625, -0.5, -0.1875, 0.0625, -0.375, 0.1875},
{-0.1875, -0.5, -0.0625, 0.1875, -0.375, 0.0625},
}
},
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 = "Stone White rf",
tiles = {
"mygomoku_blank.png^[colorize:brown:100",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {cracky=3},
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, 0.25, -0.4375, 0.125},
{-0.125, -0.5, -0.25, 0.125, -0.4375, 0.25},
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875},
{-0.125, -0.5, -0.125, 0.125, -0.375, 0.125},
{-0.0625, -0.5, -0.1875, 0.0625, -0.375, 0.1875},
{-0.1875, -0.5, -0.0625, 0.1875, -0.375, 0.0625},
}
},
after_destruct = function(pos, oldnode)
minetest.set_node(pos,{name="mygomoku:stone_white_rf",param2=oldnode.param2})
end,
})

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B