From c576a26f77bf287311b13b4f846f034fc15ac970 Mon Sep 17 00:00:00 2001 From: tony-ka Date: Sun, 26 Aug 2012 06:39:01 +0200 Subject: [PATCH 1/3] finished pieces --- pieces.lua | 125 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 117 insertions(+), 8 deletions(-) diff --git a/pieces.lua b/pieces.lua index 5f46a74..5066923 100644 --- a/pieces.lua +++ b/pieces.lua @@ -86,12 +86,9 @@ for color = 1, 2 do }) --Knight - - --Bishop - - minetest.register_node("chess:bishop_"..colors[color], + minetest.register_node("chess:knight_"..colors[color], { - description = 'bishop', + description = 'Knight', groups = {snappy = 2}, tiles = {"chess_piece_"..colors[color]..".png"}, drawtype = "nodebox", @@ -102,19 +99,131 @@ for color = 1, 2 do node_box = { type = "fixed", fixed = { - {-0.2, -0.8, -0.3, 0.2, -0.4, 0.3}, - + {-0.2, -0.5, -0.3, 0.2, -0.4, 0.3}, + {-0.3, -0.5, -0.2, 0.3, -0.4, 0.2}, + {-0.1, -0.4, -0.2, 0.1, -0.3, 0.2}, + {-0.2, -0.4, -0.1, 0.2, -0.3, 0.1}, + {-0.1, -0.3, -0.1, 0.1, 0.45, 0.1}, + {-0.1, -0.2, -0.2, 0.1, 0.1, 0.15}, + {-0.15, -0.2, -0.1, 0.15, 0.1, 0.1}, + {-0.1, 0.2, -0.25, 0.1, 0.35, 0.15}, + {-0.1, 0.45, 0.01, -0.07, 0.5, 0.06}, + {0.07, 0.45, 0.01, 0.1, 0.5, 0.06}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + }, + groups = piece_group + }) + + --Bishop + + minetest.register_node("chess:bishop_"..colors[color], + { + description = 'Bishop', + groups = {snappy = 2}, + tiles = {"chess_piece_"..colors[color]..".png"}, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + light_source = 8, --max light is 18 + node_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.3, 0.2, -0.4, 0.3}, + {-0.3, -0.5, -0.2, 0.3, -0.4, 0.2}, + {-0.1, -0.4, -0.2, 0.1, -0.3, 0.2}, + {-0.2, -0.4, -0.1, 0.2, -0.3, 0.1}, + {-0.1, -0.3, -0.1, 0.1, 0.4, 0.1}, + {-0.1, 0, -0.2, 0.1, 0.1, 0.2}, + {-0.2, 0, -0.1, 0.2, 0.1, 0.1}, + {-0.1, 0.15, -0.2, 0.1, 0.35, 0.2}, + {-0.2, 0.15, -0.1, 0.2, 0.35, 0.1 }, + {-0.05, 0.4, -0.05, 0.05, 0.5, 0.05}, }, }, selection_box = { type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.2, 0.3}, + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, }, groups = piece_group }) --Queen + minetest.register_node("chess:queen_"..colors[color], + { + description = 'Queen', + groups = {snappy = 2}, + tiles = {"chess_piece_"..colors[color]..".png"}, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + light_source = 8, --max light is 18 + node_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.3, 0.2, -0.4, 0.3}, + {-0.3, -0.5, -0.2, 0.3, -0.4, 0.2}, + {-0.1, -0.4, -0.2, 0.1, -0.3, 0.2}, + {-0.2, -0.4, -0.1, 0.2, -0.3, 0.1}, + {-0.1, -0.3, -0.1, 0.1, 0.2, 0.1}, + {-0.1, 0, -0.2, 0.1, 0.1, 0.2}, + {-0.2, 0, -0.1, 0.2, 0.1, 0.1}, + {-0.1, 0.2, -0.2, 0.1, 0.4, 0.2}, + {-0.2, 0.2, -0.1, 0.2, 0.4, 0.1}, + {-0.07, 0.4, -0.19, 0.07, 0.44, -0.11}, + {-0.07, 0.4, 0.11, 0.07, 0.44, 0.19}, + {-0.19, 0.4, -0.07, -0.11, 0.44, 0.07}, + {0.11, 0.4, -0.07, 0.19, 0.44, 0.07}, + {-0.04, 0.4, -0.07, 0.04, 0.46, 0.07}, + {-0.07, 0.4, -0.04, 0.07, 0.46, 0.04}, + {-0.04, 0.46, -0.04, 0.04, 0.49, 0.04}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + }, + groups = piece_group + }) --King + minetest.register_node("chess:king_"..colors[color], + { + description = 'King', + groups = {snappy = 2}, + tiles = {"chess_piece_"..colors[color]..".png"}, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + light_source = 8, --max light is 18 + node_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.3, 0.2, -0.4, 0.3}, + {-0.3, -0.5, -0.2, 0.3, -0.4, 0.2}, + {-0.1, -0.4, -0.2, 0.1, -0.3, 0.2}, + {-0.2, -0.4, -0.1, 0.2, -0.3, 0.1}, + {-0.1, -0.3, -0.1, 0.1, 0.2, 0.1}, + {-0.1, 0, -0.2, 0.1, 0.1, 0.2}, + {-0.2, 0, -0.1, 0.2, 0.1, 0.1}, + {-0.1, 0.2, -0.2, 0.1, 0.4, 0.2}, + {-0.2, 0.2, -0.1, 0.2, 0.4, 0.1}, + {-0.02, 0.4, -0.02, 0.02, 0.5, 0.02}, + {-0.02, 0.43, -0.05, 0.02, 0.47, 0.05}, + {-0.05, 0.43, -0.02, 0.05, 0.47, 0.02}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + }, + groups = piece_group + }) end From 3e39a4a155eaf545c81eb15a3cc19cc1bf9614e5 Mon Sep 17 00:00:00 2001 From: Bas Date: Mon, 27 Aug 2012 21:22:52 +0200 Subject: [PATCH 2/3] Spawn all pieces on chessboard --- init.lua | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index e005f52..32e0390 100644 --- a/init.lua +++ b/init.lua @@ -31,8 +31,15 @@ minetest.register_node("chess:spawn",{ if n.name == "chess:board_black" then for i = size, 1, -1 do for ii = size, 1, -1 do + + --remove board local p = {x=pos.x+i, y=pos.y, z=pos.z+ii} minetest.env:remove_node(p) + + --remove pieces ontop + local p = {x=pos.x+i, y=pos.y+1, z=pos.z+ii} + minetest.env:remove_node(p) + end end end @@ -42,12 +49,22 @@ minetest.register_node("chess:spawn",{ --reset the pieces end, - after_place_node = function(pos) + after_place_node = function(pos, placer) + + --spawn box ownership + + local player = placer:get_player_name() + print(player) + local placed = minetest.env:get_node(pos) + + local placed_meta = minetest.env:get_meta(placed) + placed_meta:set_string("owner", player) + --chessboard placement that is coded really ugly. I hate it!!! and i will fix it!!! I MUST! local size = 10 local isFree = true - --check if there is room for a chessboard with pieces ontop - for i = size, 1, -1 do + + for i = size, 1, -1 do --check if there is room for a chessboard with pieces ontop for ii = size, 1, -1 do local p = {x=pos.x+i, y=pos.y, z=pos.z+ii} @@ -66,13 +83,43 @@ minetest.register_node("chess:spawn",{ local alternate = true - if isFree then -- if there is room for a chessboard make the chessboard with pieces + if isFree then -- if there is room for a chessboard and pieces, make the chessboard with pieces minetest.chat_send_all("Chess board has been placed, let the match begin!") for i = size, 1, -1 do for ii = size, 1, -1 do - + --place pieces local p = {x=pos.x+i, y=pos.y, z=pos.z+ii} - + local p_top = {x=pos.x+i, y=pos.y+1, z=pos.z+ii} + + if (i > 1 and i < size) then + --black pieces + if (ii == 3) then --pawns + minetest.env:add_node(p_top, {name="chess:pawn_black"}) + end + + if (ii == 2) then --behind pawns + if (i == 2 or i == 9) then minetest.env:add_node(p_top, {name="chess:rook_black"}) end + if (i == 3 or i == 8) then minetest.env:add_node(p_top, {name="chess:knight_black"}) end + if (i == 4 or i == 7) then minetest.env:add_node(p_top, {name="chess:bishop_black"}) end + if (i == 5) then minetest.env:add_node(p_top, {name="chess:queen_black"}) end + if (i == 6) then minetest.env:add_node(p_top, {name="chess:king_black"}) end + end + + --white pieces + if (ii == 8) then --pawns + minetest.env:add_node(p_top, {name="chess:pawn_white"}) + end + + if (ii == 9) then --behind pawns + if (i == 2 or i == 9) then minetest.env:add_node(p_top, {name="chess:rook_white"}) end + if (i == 3 or i == 8) then minetest.env:add_node(p_top, {name="chess:knight_white"}) end + if (i == 4 or i == 7) then minetest.env:add_node(p_top, {name="chess:bishop_white"}) end + if (i == 5) then minetest.env:add_node(p_top, {name="chess:queen_white"}) end + if (i == 6) then minetest.env:add_node(p_top, {name="chess:king_white"}) end + end + + end + if (ii == 1) or (ii == size) or (i ==1) or (i == size) then--create border minetest.env:add_node(p, {name="chess:board_black"}) else From 1d2693b93a33b102300dea037da00d92653d93d5 Mon Sep 17 00:00:00 2001 From: Bas Date: Mon, 27 Aug 2012 21:25:15 +0200 Subject: [PATCH 3/3] Black queen was standing on the wrong spot --- init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 32e0390..a647814 100644 --- a/init.lua +++ b/init.lua @@ -101,8 +101,8 @@ minetest.register_node("chess:spawn",{ if (i == 2 or i == 9) then minetest.env:add_node(p_top, {name="chess:rook_black"}) end if (i == 3 or i == 8) then minetest.env:add_node(p_top, {name="chess:knight_black"}) end if (i == 4 or i == 7) then minetest.env:add_node(p_top, {name="chess:bishop_black"}) end - if (i == 5) then minetest.env:add_node(p_top, {name="chess:queen_black"}) end - if (i == 6) then minetest.env:add_node(p_top, {name="chess:king_black"}) end + if (i == 6) then minetest.env:add_node(p_top, {name="chess:queen_black"}) end + if (i == 5) then minetest.env:add_node(p_top, {name="chess:king_black"}) end end --white pieces