...
This commit is contained in:
parent
df95460c86
commit
9b271e20ec
@ -31,6 +31,11 @@ minetest.register_node("mymod:crate", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
local SOKOBAN_WALL = "default:wood"
|
||||||
|
local SOKOBAN_FLOOR = "default:stone"
|
||||||
|
local SOKOBAN_GOAL = "default:tree"
|
||||||
|
|
||||||
minetest.register_node("mymod:sokoban", {
|
minetest.register_node("mymod:sokoban", {
|
||||||
description = "sokoban crate",
|
description = "sokoban crate",
|
||||||
tiles = {"default_brick.png","crate.png","crate.png","crate.png","crate.png","crate.png"},
|
tiles = {"default_brick.png","crate.png","crate.png","crate.png","crate.png","crate.png"},
|
||||||
@ -67,13 +72,14 @@ description = "sokoban crate",
|
|||||||
if string.sub(str,1,1)==";" then file:close(); return end
|
if string.sub(str,1,1)==";" then file:close(); return end
|
||||||
i=i+1;
|
i=i+1;
|
||||||
for j = 1,string.len(str) do
|
for j = 1,string.len(str) do
|
||||||
p.x=pos.x+i;p.z=pos.z+j; s=string.sub(str,j,j);
|
p.x=pos.x+i;p.y=pos.y; p.z=pos.z+j; s=string.sub(str,j,j);
|
||||||
p.y=p.y-1;
|
p.y=p.y-1;
|
||||||
if minetest.get_node(p).name~="default:stone" then minetest.set_node(p,{name="default:stone"}); p.y=p.y+1; end -- clear floor
|
if minetest.get_node(p).name~=SOKOBAN_FLOOR then minetest.set_node(p,{name=SOKOBAN_FLOOR}); end -- clear floor
|
||||||
|
p.y=p.y+1;
|
||||||
if s==" " and minetest.get_node(p,{name="air"}).name~="air" then minetest.set_node(p,{name="air"}) end
|
if s==" " and minetest.get_node(p,{name="air"}).name~="air" then minetest.set_node(p,{name="air"}) end
|
||||||
if s=="#" then minetest.set_node(p,{name="default:wood"}) end
|
if s=="#" then minetest.set_node(p,{name=SOKOBAN_WALL}) end
|
||||||
if s=="$" then minetest.set_node(p,{name="mymod:crate"}) end
|
if s=="$" then minetest.set_node(p,{name="mymod:crate"}) end
|
||||||
if s=="." then p.y=p.y-1;minetest.set_node(p,{name="default:tree"}); p.y=p.y+1;minetest.set_node(p,{name="air"}) end
|
if s=="." then p.y=p.y-1;minetest.set_node(p,{name=SOKOBAN_GOAL}); p.y=p.y+1;minetest.set_node(p,{name="air"}) end
|
||||||
if s=="@" then p.y=p.y-1;minetest.set_node(p,{name="default:glass"}); p.y=p.y+1;minetest.set_node(p,{name="air"}) end
|
if s=="@" then p.y=p.y-1;minetest.set_node(p,{name="default:glass"}); p.y=p.y+1;minetest.set_node(p,{name="air"}) end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user