Sudoku/mods/sudoku/init.lua

1658 lines
62 KiB
Lua

local hud_levels = {}
minetest.register_on_joinplayer(function(player)
local name = player:get_player_name()
player:hud_add({
hud_elem_type = "text",
position = {x=0, y=0.85},
offset = {x=0, y=10},
alignment = {x=1, y=0},
number = 0xFFFFFF ,
text = "For Minetest : 5.4.0",
})
player:hud_add({
hud_elem_type = "text",
position = {x=0, y=0.85},
offset = {x=0, y=30},
alignment = {x=1, y=0},
number = 0xFFFFFF ,
text = "Game Version : 1.9.5",
})
hud_levels[name] = player:hud_add({
hud_elem_type = "text",
position = {x=0, y=0.85},
offset = {x=0, y=-450},
alignment = {x=1, y=0},
number = 0xFFFFFF ,
text = "Level: /",
})
end)
local map_version = 1
minetest.register_on_joinplayer(function(player)
player:set_inventory_formspec("")
if player:get_player_name() == "singleplayer" then
else
minetest.kick_player(player:get_player_name(), "you can play sudoku only as 'singleplayer'")
end
end)
minetest.register_on_joinplayer(function(player)
player:set_inventory_formspec("")
end)
minetest.register_globalstep(function(dtime)
local players = minetest.get_connected_players()
for _,player in ipairs(players) do
local player_inv = player:get_inventory()
player_inv:set_size("ll", 1)
player_inv:set_size("l", 4)
local ll = player_inv:get_stack("ll", 1):get_count()
local l = player_inv:get_stack("l", ll):get_count()
if ll == 0 then
else
player:hud_change(hud_levels[player:get_player_name()], 'text', "Level: World "..ll.."."..l)
end
end
end)
function file_check(file_name)
local file_found=io.open(file_name, "r")
if file_found==nil then
file_found=false
else
file_found=true
end
return file_found
end
minetest.register_on_joinplayer(function(player)
local override_table = player:get_physics_override()
override_table.new_move = false
override_table.sneak_glitch = true
player:set_physics_override(override_table)
minetest.setting_set("time_speed", "0")
minetest.set_timeofday(0.5)
minetest.setting_set("node_highlighting", "box")
player:hud_set_hotbar_itemcount(9)
if file_check(minetest.get_worldpath().."/level1.txt") == true then
else
file = io.open(minetest.get_worldpath().."/level1.txt", "w")
file:write("1")
file:close()
end
if file_check(minetest.get_worldpath().."/level2.txt") == true then
else
file = io.open(minetest.get_worldpath().."/level2.txt", "w")
file:write("1")
file:close()
end
if file_check(minetest.get_worldpath().."/level3.txt") == true then
else
file = io.open(minetest.get_worldpath().."/level3.txt", "w")
file:write("1")
file:close()
end
if file_check(minetest.get_worldpath().."/level4.txt") == true then
else
file = io.open(minetest.get_worldpath().."/level4.txt", "w")
file:write("1")
file:close()
end
if file_check(minetest.get_worldpath().."/level5.txt") == true then
else
file = io.open(minetest.get_worldpath().."/level5.txt", "w")
file:write("1")
file:close()
end
if file_check(minetest.get_worldpath().."/Map_Version.txt") ~= true then
minetest.place_schematic({ x = 9, y = 7, z = -93 }, minetest.get_modpath("sudoku").."/schematics/sector1.mts","0")
player:setpos({x=19, y=8, z=-88})
file = io.open(minetest.get_worldpath().."/Map_Version.txt", "w")
file:write(map_version)
file:close()
end
file = io.open(minetest.get_worldpath().."/Map_Version.txt", "r")
local map_ver = file:read("*l")
file:close()
if tonumber(map_ver) < map_version then
minetest.place_schematic({ x = 9, y = 7, z = -93 }, minetest.get_modpath("sudoku").."/schematics/sector1.mts","0")
player:setpos({x=19, y=8, z=-88})
file = io.open(minetest.get_worldpath().."/Map_Version.txt", "w")
file:write(map_version)
file:close()
end
end)
minetest.register_on_newplayer(function(player)
local player = minetest.get_player_by_name(player:get_player_name())
local pri = minetest.get_player_privs(player:get_player_name())
pri["fly"] = true
pri["fast"] = true
minetest.set_player_privs(player:get_player_name(), pri)
end)
minetest.register_on_player_hpchange(function(player, hp_change)
hp_change = 0
return hp_change
end, true)
minetest.register_node("sudoku:desert",{
description = "Desert",
tiles = {"default_desert_sand.png"},
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
minetest.register_node("sudoku:black",{
description = "Black",
tiles = {"wool_black.png"},
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
minetest.register_node("sudoku:gray",{
description = "Gray",
tiles = {"default_sand.png"},
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
minetest.register_node("sudoku:glass", {
description = "Obsidian Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"},
paramtype = "light",
paramtype2 = "glasslikeliquidlevel",
is_ground_content = false,
sunlight_propagates = true,
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
minetest.register_node("sudoku:wall",{
description = "Wall",
tiles = {"default_mossycobble.png"},
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
minetest.register_node("sudoku:meselamp", {
description = "Mese Lamp",
drawtype = "glasslike",
tiles = {"sudoku_meselamp.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
--groups = {cracky = 3, oddly_breakable_by_hand = 3},
light_source = 15,
})
for i=1,9 do
minetest.register_node("sudoku:"..i,{
description = ""..i,
tiles = {"sudoku_1_"..i..".png"},
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
})
end
for i=1,9 do
minetest.register_node("sudoku:n_"..i,{
description = ""..i,
tiles = {"sudoku_2_"..i..".png"},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
after_place_node = function(pos, placer, itemstack, pointed_thing)
if Place(placer,i,pos) == false or pos.z ~= -76 then
minetest.set_node(pos, {name="air"})
local player_inv = placer:get_inventory()
return itemstack
end
end,
})
end
function New(player,page)
local player_inv = player:get_inventory()
player_inv:set_list("main", nil)
player_inv:set_size("main", 32)
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level = lv:read("*l")
lv:close()
local lv = io.open(minetest.get_modpath("sudoku").."/lv"..page..".txt", "r")
local ar1 = {}
local ar2 = {}
for i=1,9 do
ar1[i] = lv:read("*l")
end
for i=10,28 do
for k=9,27 do
minetest.set_node({x=i, y=k, z=-76}, {name="air"})
end
end
for i=10,13 do
for k=9,27 do
minetest.set_node({x=i, y=k, z=-76}, {name="sudoku:wall"})
end
end
for i=25,28 do
for k=9,27 do
minetest.set_node({x=i, y=k, z=-76}, {name="sudoku:wall"})
end
end
for i=10,28 do
for k=18,27 do
minetest.set_node({x=i, y=k, z=-76}, {name="sudoku:wall"})
end
end
local a1 = 0
local a2 = 0
local a3 = 0
local a4 = 0
local a5 = 0
local a6 = 0
local a7 = 0
local a8 = 0
local a9 = 0
for j = 1, 9 do
for i = 1, string.len(ar1[j]) do
local k = 0
if i < 4 then
k = i
elseif i < 7 then
k = i+1
else
k = i+2
end
local l = 0
if j < 4 then
l = j
elseif j < 7 then
l = j+1
else
l = j+2
end
if string.sub(ar1[j], i, i) == "0" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="air"})
elseif string.sub(ar1[j], i, i) == "1" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:1"})
a1 = a1+1
elseif string.sub(ar1[j], i, i) == "2" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:2"})
a2 = a2+1
elseif string.sub(ar1[j], i, i) == "3" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:3"})
a3 = a3+1
elseif string.sub(ar1[j], i, i) == "4" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:4"})
a4 = a4+1
elseif string.sub(ar1[j], i, i) == "5" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:5"})
a5 = a5+1
elseif string.sub(ar1[j], i, i) == "6" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:6"})
a6 = a6+1
elseif string.sub(ar1[j], i, i) == "7" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:7"})
a7 = a7+1
elseif string.sub(ar1[j], i, i) == "8" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:8"})
a8 = a8+1
elseif string.sub(ar1[j], i, i) == "9" then
minetest.set_node({x=k+13, y=(12-l)+8, z=-76}, {name="sudoku:9"})
a9 = a9+1
end
end
end
for i = 1,11 do
minetest.set_node({x=17, y=i+8, z=-76}, {name="sudoku:black"})
minetest.set_node({x=21, y=i+8, z=-76}, {name="sudoku:black"})
minetest.set_node({x=13+i, y=12, z=-76}, {name="sudoku:black"})
minetest.set_node({x=13+i, y=16, z=-76}, {name="sudoku:black"})
end
player_inv:add_item("main", "sudoku:n_1 "..(9-a1))
player_inv:add_item("main", "sudoku:n_2 "..(9-a2))
player_inv:add_item("main", "sudoku:n_3 "..(9-a3))
player_inv:add_item("main", "sudoku:n_4 "..(9-a4))
player_inv:add_item("main", "sudoku:n_5 "..(9-a5))
player_inv:add_item("main", "sudoku:n_6 "..(9-a6))
player_inv:add_item("main", "sudoku:n_7 "..(9-a7))
player_inv:add_item("main", "sudoku:n_8 "..(9-a8))
player_inv:add_item("main", "sudoku:n_9 "..(9-a9))
end
function Fi(i,k)
local temp = ""
if minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:1" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_1" then
temp = "1"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:2" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_2" then
temp = "2"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:3" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_3" then
temp = "3"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:4" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_4" then
temp = "4"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:5" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_5" then
temp = "5"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:6" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_6" then
temp = "6"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:7" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_7" then
temp = "7"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:8" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_8" then
temp = "8"
elseif minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:9" or minetest.get_node({x=i, y=k, z=-76}).name == "sudoku:n_9" then
temp = "9"
else
temp = "0"
end
return temp
end
function repeats(s,c)
local _,n = s:gsub(c,"")
return n
end
function Place(player,number,pos)
local dd = 0
local ar = {}
for i=14,24 do
local d = 0
local temp = ""
for k=9,19 do
temp = temp..Fi(i,k)
end
ar[i-13] = temp
end
for i=1,3 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
for i=5,7 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
for i=9,11 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
local ar = {}
for k=9,19 do
local d = 0
local temp = ""
for i=14,24 do
temp = temp..Fi(i,k)
end
ar[k-8] = temp
end
for i=1,3 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
for i=5,7 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
for i=9,11 do
if repeats(ar[i],"1") < 2 and repeats(ar[i],"2") < 2 and repeats(ar[i],"3") < 2 and repeats(ar[i],"4") < 2 and repeats(ar[i],"5") < 2 and repeats(ar[i],"6") < 2 and repeats(ar[i],"7") < 2 and repeats(ar[i],"8") < 2 and repeats(ar[i],"9") < 2 then
else
dd = 1
end
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,29 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,19 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,19 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if repeats(temp,"1") < 2 and repeats(temp,"2") < 2 and repeats(temp,"3") < 2 and repeats(temp,"4") < 2 and repeats(temp,"5") < 2 and repeats(temp,"6") < 2 and repeats(temp,"7") < 2 and repeats(temp,"8") < 2 and repeats(temp,"9") < 2 then
else
dd = 1
end
if dd == 1 then
minetest.chat_send_all("number already exists")
return false
else
return true
end
end
function Finisch(player)
local dd = 0
local ar = {}
for i=14,24 do
local d = 0
local temp = ""
for k=9,19 do
temp = temp..Fi(i,k)
end
ar[i-13] = temp
end
for i=1,3 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
for i=5,7 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
for i=9,11 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
local ar = {}
for k=9,19 do
local d = 0
local temp = ""
for i=14,24 do
temp = temp..Fi(i,k)
end
ar[k-8] = temp
end
for i=1,3 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
for i=5,7 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
for i=9,11 do
if string.find(ar[i], "1") and string.find(ar[i], "2") and string.find(ar[i], "3") and string.find(ar[i], "4") and string.find(ar[i], "5") and string.find(ar[i], "6") and string.find(ar[i], "7") and string.find(ar[i], "8") and string.find(ar[i], "9") then
else
dd = 1
end
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=9,11 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=13,15 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,29 do
local d = 0
for i=14,16 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,19 do
local d = 0
for i=18,20 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
local ar = {}
local temp = ""
for k=17,19 do
local d = 0
for i=22,24 do
temp = temp..Fi(i,k)
end
end
if string.find(temp, "1") and string.find(temp, "2") and string.find(temp, "3") and string.find(temp, "4") and string.find(temp, "5") and string.find(temp, "6") and string.find(temp, "7") and string.find(temp, "8") and string.find(temp, "9") then
else
dd = 1
end
if dd == 1 then
minetest.chat_send_all("not correct")
else
local player_inv = player:get_inventory()
local ll = player_inv:get_stack("ll", 1):get_count()
local level2 = player_inv:get_stack("l", ll):get_count()
lv = io.open(minetest.get_worldpath().."/level"..ll..".txt", "r")
local level = lv:read("*l")
lv:close()
minetest.chat_send_all("level completed")
if tonumber(level) == tonumber(level2) then
le = io.open(minetest.get_worldpath().."/level"..ll..".txt", "w")
le:write(level+1)
le:close()
end
end
end
function lvbut(from,num,level2)
local formspec = ""
.."image_button[4.5,-0.3;0.8,0.8;;esc;X]"
.."background[5,6.5;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
if tonumber(level2) > from and num > 0 then
formspec = formspec.."button[0,1;1,1;a;"..(from+1).."]"
end
if tonumber(level2) > (from+1) and num > 1 then
formspec = formspec.."button[1,1;1,1;b;"..(from+2).."]"
end
if tonumber(level2) > (from+2) and num > 2 then
formspec = formspec.."button[2,1;1,1;c;"..(from+3).."]"
end
if tonumber(level2) > (from+3) and num > 3 then
formspec = formspec.."button[3,1;1,1;d;"..(from+4).."]"
end
if tonumber(level2) > (from+4) and num > 4 then
formspec = formspec.."button[4,1;1,1;e;"..(from+5).."]"
end
if tonumber(level2) > (from+5) and num > 5 then
formspec = formspec.."button[0,2;1,1;f;"..(from+6).."]"
end
if tonumber(level2) > (from+6) and num > 6 then
formspec = formspec.."button[1,2;1,1;g;"..(from+7).."]"
end
if tonumber(level2) > (from+7) and num > 7 then
formspec = formspec.."button[2,2;1,1;h;"..(from+8).."]"
end
if tonumber(level2) > (from+8) and num > 8 then
formspec = formspec.."button[3,2;1,1;i;"..(from+9).."]"
end
if tonumber(level2) > (from+9) and num > 9 then
formspec = formspec.."button[4,2;1,1;j;"..(from+10).."]"
end
if tonumber(level2) > (from+10) and num > 10 then
formspec = formspec.."button[0,3;1,1;k;"..(from+11).."]"
end
if tonumber(level2) > (from+11) and num > 11 then
formspec = formspec.."button[1,3;1,1;l;"..(from+12).."]"
end
if tonumber(level2) > (from+12) and num > 12 then
formspec = formspec.."button[2,3;1,1;m;"..(from+13).."]"
end
if tonumber(level2) > (from+13) and num > 13 then
formspec = formspec.."button[3,3;1,1;n;"..(from+14).."]"
end
if tonumber(level2) > (from+14) and num > 14 then
formspec = formspec.."button[4,3;1,1;o;"..(from+15).."]"
end
if tonumber(level2) > (from+15) and num > 15 then
formspec = formspec.."button[0,4;1,1;p;"..(from+16).."]"
end
if tonumber(level2) > (from+16) and num > 16 then
formspec = formspec.."button[1,4;1,1;q;"..(from+17).."]"
end
if tonumber(level2) > (from+17) and num > 17 then
formspec = formspec.."button[2,4;1,1;r;"..(from+18).."]"
end
if tonumber(level2) > (from+18) and num > 18 then
formspec = formspec.."button[3,4;1,1;s;"..(from+19).."]"
end
if tonumber(level2) > (from+19) and num > 19 then
formspec = formspec.."button[4,4;1,1;t;"..(from+20).."]"
end
if tonumber(level2) > (from+20) and num > 20 then
formspec = formspec.."button[0,5;1,1;u;"..(from+21).."]"
end
if tonumber(level2) > (from+21) and num > 21 then
formspec = formspec.."button[1,5;1,1;v;"..(from+22).."]"
end
if tonumber(level2) > (from+22) and num > 22 then
formspec = formspec.."button[2,5;1,1;w;"..(from+23).."]"
end
if tonumber(level2) > (from+23) and num > 23 then
formspec = formspec.."button[3,5;1,1;x;"..(from+24).."]"
end
if tonumber(level2) > (from+24) and num > 24 then
formspec = formspec.."button[4,5;1,1;y;"..(from+25).."]"
end
return formspec
end
local w11 = {}
w11.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec..lvbut(0,25,level2)
if tonumber(level2) > 25 then
formspec = formspec.."button[2.5,6;1,1;wab;>]"
end
return formspec
end
local w12 = {}
w12.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;waa;<]"
formspec = formspec..lvbut(25,25,level2)
if tonumber(level2) > 50 then
formspec = formspec.."button[2.5,6;1,1;wac;>]"
end
return formspec
end
local w13 = {}
w13.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;wab;<]"
formspec = formspec..lvbut(50,25,level2)
if tonumber(level2) > 75 then
formspec = formspec.."button[2.5,6;1,1;wad;>]"
end
return formspec
end
local w14 = {}
w14.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;wac;<]"
formspec = formspec..lvbut(75,25,level2)
if tonumber(level2) > 100 then
formspec = formspec.."button[2.5,6;1,1;wae;>]"
end
return formspec
end
local w15 = {}
w15.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;wad;<]"
formspec = formspec..lvbut(100,25,level2)
if tonumber(level2) > 125 then
formspec = formspec.."button[2.5,6;1,1;waf;>]"
end
return formspec
end
local w16 = {}
w16.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;wae;<]"
formspec = formspec..lvbut(125,25,level2)
if tonumber(level2) > 150 then
formspec = formspec.."button[2.5,6;1,1;wag;>]"
end
return formspec
end
local w17 = {}
w17.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level1.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/160]"
formspec = formspec.."button[1.5,6;1,1;waf;<]"
formspec = formspec..lvbut(150,10,level2)
if tonumber(level2) > 160 then
formspec = formspec.."label[0,3;play world 2 and 3]"
end
return formspec
end
local w21 = {}
w21.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec..lvbut(0,25,level2)
if tonumber(level2) > 25 then
formspec = formspec.."button[2.5,6;1,1;wbb;>]"
end
return formspec
end
local w22 = {}
w22.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wba;<]"
formspec = formspec..lvbut(25,25,level2)
if tonumber(level2) > 50 then
formspec = formspec.."button[2.5,6;1,1;wbc;>]"
end
return formspec
end
local w23 = {}
w23.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbb;<]"
formspec = formspec..lvbut(50,25,level2)
if tonumber(level2) > 75 then
formspec = formspec.."button[2.5,6;1,1;wbd;>]"
end
return formspec
end
local w24 = {}
w24.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbc;<]"
formspec = formspec..lvbut(75,25,level2)
if tonumber(level2) > 100 then
formspec = formspec.."button[2.5,6;1,1;wbe;>]"
end
return formspec
end
local w25 = {}
w25.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbd;<]"
formspec = formspec..lvbut(100,25,level2)
if tonumber(level2) > 125 then
formspec = formspec.."button[2.5,6;1,1;wbf;>]"
end
return formspec
end
local w26 = {}
w26.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbe;<]"
formspec = formspec..lvbut(125,25,level2)
if tonumber(level2) > 150 then
formspec = formspec.."button[2.5,6;1,1;wbg;>]"
end
return formspec
end
local w27 = {}
w27.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbf;<]"
formspec = formspec..lvbut(150,25,level2)
if tonumber(level2) > 175 then
formspec = formspec.."button[2.5,6;1,1;wbh;>]"
end
return formspec
end
local w28 = {}
w28.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level2.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/190]"
formspec = formspec.."button[1.5,6;1,1;wbg;<]"
formspec = formspec..lvbut(175,15,level2)
if tonumber(level2) > 190 then
formspec = formspec.."label[0,4;play world 1 and 3]"
end
return formspec
end
local w31 = {}
w31.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec..lvbut(0,25,level2)
if tonumber(level2) > 25 then
formspec = formspec.."button[2.5,6;1,1;wcb;>]"
end
return formspec
end
local w32 = {}
w32.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wca;<]"
formspec = formspec..lvbut(25,25,level2)
if tonumber(level2) > 50 then
formspec = formspec.."button[2.5,6;1,1;wcc;>]"
end
return formspec
end
local w33 = {}
w33.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcb;<]"
formspec = formspec..lvbut(50,25,level2)
if tonumber(level2) > 75 then
formspec = formspec.."button[2.5,6;1,1;wcd;>]"
end
return formspec
end
local w34 = {}
w34.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcc;<]"
formspec = formspec..lvbut(75,25,level2)
if tonumber(level2) > 100 then
formspec = formspec.."button[2.5,6;1,1;wce;>]"
end
return formspec
end
local w35 = {}
w35.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcd;<]"
formspec = formspec..lvbut(100,25,level2)
if tonumber(level2) > 125 then
formspec = formspec.."button[2.5,6;1,1;wcf;>]"
end
return formspec
end
local w36 = {}
w36.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wce;<]"
formspec = formspec..lvbut(125,25,level2)
if tonumber(level2) > 150 then
formspec = formspec.."button[2.5,6;1,1;wcg;>]"
end
return formspec
end
local w37 = {}
w37.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcf;<]"
formspec = formspec..lvbut(150,25,level2)
if tonumber(level2) > 175 then
formspec = formspec.."button[2.5,6;1,1;wch;>]"
end
return formspec
end
local w38 = {}
w38.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcg;<]"
formspec = formspec..lvbut(175,25,level2)
if tonumber(level2) > 200 then
formspec = formspec.."button[2.5,6;1,1;wci;>]"
end
return formspec
end
local w39 = {}
w39.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wch;<]"
formspec = formspec..lvbut(200,25,level2)
if tonumber(level2) > 225 then
formspec = formspec.."button[2.5,6;1,1;wcj;>]"
end
return formspec
end
local w310 = {}
w310.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wci;<]"
formspec = formspec..lvbut(225,25,level2)
if tonumber(level2) > 250 then
formspec = formspec.."button[2.5,6;1,1;wck;>]"
end
return formspec
end
local w311 = {}
w311.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcj;<]"
formspec = formspec..lvbut(250,25,level2)
if tonumber(level2) > 275 then
formspec = formspec.."button[2.5,6;1,1;wcl;>]"
end
return formspec
end
local w312 = {}
w312.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wck;<]"
formspec = formspec..lvbut(275,25,level2)
if tonumber(level2) > 300 then
formspec = formspec.."button[2.5,6;1,1;wcm;>]"
end
return formspec
end
local w313 = {}
w313.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcl;<]"
formspec = formspec..lvbut(300,25,level2)
if tonumber(level2) > 325 then
formspec = formspec.."button[2.5,6;1,1;wcn;>]"
end
return formspec
end
local w314 = {}
w314.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level3.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/333]"
formspec = formspec.."button[1.5,6;1,1;wcm;<]"
formspec = formspec..lvbut(325,8,level2)
if tonumber(level2) > 333 then
formspec = formspec.."label[0,3;play world 1 and 2]"
end
return formspec
end
local w41 = {}
w41.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level4.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/100]"
formspec = formspec..lvbut(0,25,level2)
if tonumber(level2) > 25 then
formspec = formspec.."button[2.5,6;1,1;wdb;>]"
end
return formspec
end
local w42 = {}
w42.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level4.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/100]"
formspec = formspec.."button[1.5,6;1,1;wda;<]"
formspec = formspec..lvbut(25,25,level2)
if tonumber(level2) > 50 then
formspec = formspec.."button[2.5,6;1,1;wdc;>]"
end
return formspec
end
local w43 = {}
w43.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level4.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/100]"
formspec = formspec.."button[1.5,6;1,1;wdb;<]"
formspec = formspec..lvbut(50,25,level2)
if tonumber(level2) > 75 then
formspec = formspec.."button[2.5,6;1,1;wdd;>]"
end
return formspec
end
local w44 = {}
w44.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
lv = io.open(minetest.get_worldpath().."/level4.txt", "r")
local level2 = lv:read("*l")
lv:close()
formspec = "size[5,6.5]"
.."label[0,0;World Level: "..(tonumber(level2)-1).."/100]"
formspec = formspec.."button[1.5,6;1,1;wdc;<]"
formspec = formspec..lvbut(75,25,level2)
if tonumber(level2) > 100 then
formspec = formspec.."label[0,6;more comming soon]"
end
return formspec
end
local w3 = {}
w3.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
formspec = "size[8,8.3]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,0;Comming soon]"
return formspec
end
minetest.register_node("sudoku:new_w1",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w1.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
local player_inv = player:get_inventory()
local page = player_inv:get_stack("page1", 1):get_count()+1
if page == 1 then
minetest.show_formspec(player:get_player_name(), "w11" , w11.get_formspec(player))
elseif page == 2 then
minetest.show_formspec(player:get_player_name(), "w12" , w12.get_formspec(player))
elseif page == 3 then
minetest.show_formspec(player:get_player_name(), "w13" , w13.get_formspec(player))
elseif page == 4 then
minetest.show_formspec(player:get_player_name(), "w14" , w14.get_formspec(player))
elseif page == 5 then
minetest.show_formspec(player:get_player_name(), "w15" , w15.get_formspec(player))
elseif page == 6 then
minetest.show_formspec(player:get_player_name(), "w16" , w16.get_formspec(player))
elseif page == 7 then
minetest.show_formspec(player:get_player_name(), "w17" , w17.get_formspec(player))
end
end,
})
minetest.register_node("sudoku:new_w2",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w2.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
local player_inv = player:get_inventory()
local page = player_inv:get_stack("page2", 1):get_count()+1
if page == 1 then
minetest.show_formspec(player:get_player_name(), "w21" , w21.get_formspec(player))
elseif page == 2 then
minetest.show_formspec(player:get_player_name(), "w22" , w22.get_formspec(player))
elseif page == 3 then
minetest.show_formspec(player:get_player_name(), "w23" , w23.get_formspec(player))
elseif page == 4 then
minetest.show_formspec(player:get_player_name(), "w24" , w24.get_formspec(player))
elseif page == 5 then
minetest.show_formspec(player:get_player_name(), "w25" , w25.get_formspec(player))
elseif page == 6 then
minetest.show_formspec(player:get_player_name(), "w26" , w26.get_formspec(player))
elseif page == 7 then
minetest.show_formspec(player:get_player_name(), "w27" , w27.get_formspec(player))
elseif page == 8 then
minetest.show_formspec(player:get_player_name(), "w28" , w28.get_formspec(player))
end
end,
})
minetest.register_node("sudoku:new_w3",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w3.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
local player_inv = player:get_inventory()
local page = player_inv:get_stack("page3", 1):get_count()+1
if page == 1 then
minetest.show_formspec(player:get_player_name(), "w31" , w31.get_formspec(player))
elseif page == 2 then
minetest.show_formspec(player:get_player_name(), "w32" , w32.get_formspec(player))
elseif page == 3 then
minetest.show_formspec(player:get_player_name(), "w33" , w33.get_formspec(player))
elseif page == 4 then
minetest.show_formspec(player:get_player_name(), "w34" , w34.get_formspec(player))
elseif page == 5 then
minetest.show_formspec(player:get_player_name(), "w35" , w35.get_formspec(player))
elseif page == 6 then
minetest.show_formspec(player:get_player_name(), "w36" , w36.get_formspec(player))
elseif page == 7 then
minetest.show_formspec(player:get_player_name(), "w37" , w37.get_formspec(player))
elseif page == 8 then
minetest.show_formspec(player:get_player_name(), "w38" , w38.get_formspec(player))
elseif page == 9 then
minetest.show_formspec(player:get_player_name(), "w39" , w39.get_formspec(player))
elseif page == 10 then
minetest.show_formspec(player:get_player_name(), "w310" , w310.get_formspec(player))
elseif page == 11 then
minetest.show_formspec(player:get_player_name(), "w311" , w311.get_formspec(player))
elseif page == 12 then
minetest.show_formspec(player:get_player_name(), "w312" , w312.get_formspec(player))
elseif page == 13 then
minetest.show_formspec(player:get_player_name(), "w313" , w313.get_formspec(player))
elseif page == 14 then
minetest.show_formspec(player:get_player_name(), "w314" , w314.get_formspec(player))
end
end,
})
minetest.register_node("sudoku:new_w4",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w4.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
local player_inv = player:get_inventory()
local page = player_inv:get_stack("page4", 1):get_count()+1
if page == 1 then
minetest.show_formspec(player:get_player_name(), "w41" , w41.get_formspec(player))
elseif page == 2 then
minetest.show_formspec(player:get_player_name(), "w42" , w42.get_formspec(player))
elseif page == 3 then
minetest.show_formspec(player:get_player_name(), "w43" , w43.get_formspec(player))
elseif page == 4 then
minetest.show_formspec(player:get_player_name(), "w44" , w44.get_formspec(player))
end
end,
})
minetest.register_node("sudoku:new_w5",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w5.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
minetest.show_formspec(player:get_player_name(), "w3" , w3.get_formspec(player))
end,
})
minetest.register_node("sudoku:new_ws",{
tiles = {"default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png^sudoku_new_w6.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
minetest.show_formspec(player:get_player_name(), "w3" , w3.get_formspec(player))
end,
})
minetest.register_node("sudoku:finisch",{
tiles = {"default_silver_sandstone_block.png^sudoku_finisch.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png","default_silver_sandstone_block.png"},
description = "New",
--groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
on_punch = function(pos, node, player, pointed_thing)
Finisch(player)
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
local player_inv = player:get_inventory()
player_inv:set_size("ll", 1)
player_inv:set_size("l", 6)
player_inv:set_size("page1", 1)
player_inv:set_size("page2", 1)
player_inv:set_size("page3", 1)
player_inv:set_size("page4", 1)
if formname == "w11" or formname == "w12" or formname == "w13" or formname == "w14" or formname == "w15" or formname == "w16" or formname == "w17" then
for k, v in pairs(fields) do
if tonumber(v) ~= nil then
New(player,"1_"..v)
player_inv:set_stack("l", 1, "default:dirt "..v)
player_inv:set_stack("ll", 1, "default:dirt 1")
end
end
end
if formname == "w21" or formname == "w22" or formname == "w23" or formname == "w24" or formname == "w25" or formname == "w26" or formname == "w27" or formname == "w28" then
for k, v in pairs(fields) do
if tonumber(v) ~= nil then
New(player,"2_"..v)
player_inv:set_stack("l", 2, "default:dirt "..v)
player_inv:set_stack("ll", 1, "default:dirt 2")
end
end
end
if formname == "w31" or formname == "w32" or formname == "w33" or formname == "w34" or formname == "w35" or formname == "w36" or formname == "w37" or formname == "w38" or formname == "w39" or formname == "w310" or formname == "w311" or formname == "w312" or formname == "w313" or formname == "w314" then
for k, v in pairs(fields) do
if tonumber(v) ~= nil then
New(player,"3_"..v)
player_inv:set_stack("l", 3, "default:dirt "..v)
player_inv:set_stack("ll", 1, "default:dirt 3")
end
end
end
if formname == "w41" or formname == "w42" or formname == "w43" or formname == "w44" then
for k, v in pairs(fields) do
if tonumber(v) ~= nil then
New(player,"4_"..v)
player_inv:set_stack("l", 4, "default:dirt "..v)
player_inv:set_stack("ll", 1, "default:dirt 4")
end
end
end
if fields.waa then
player_inv:set_stack("page1", 1, nil)
minetest.show_formspec(player:get_player_name(), "w11" , w11.get_formspec(player))
elseif fields.wab then
player_inv:set_stack("page1", 1, "default:dirt")
minetest.show_formspec(player:get_player_name(), "w12" , w12.get_formspec(player))
elseif fields.wac then
player_inv:set_stack("page1", 1, "default:dirt 2")
minetest.show_formspec(player:get_player_name(), "w13" , w13.get_formspec(player))
elseif fields.wad then
player_inv:set_stack("page1", 1, "default:dirt 3")
minetest.show_formspec(player:get_player_name(), "w14" , w14.get_formspec(player))
elseif fields.wae then
player_inv:set_stack("page1", 1, "default:dirt 4")
minetest.show_formspec(player:get_player_name(), "w15" , w15.get_formspec(player))
elseif fields.waf then
player_inv:set_stack("page1", 1, "default:dirt 5")
minetest.show_formspec(player:get_player_name(), "w16" , w16.get_formspec(player))
elseif fields.wag then
player_inv:set_stack("page1", 1, "default:dirt 6")
minetest.show_formspec(player:get_player_name(), "w17" , w17.get_formspec(player))
elseif fields.wba then
player_inv:set_stack("page2", 1, nil)
minetest.show_formspec(player:get_player_name(), "w21" , w21.get_formspec(player))
elseif fields.wbb then
player_inv:set_stack("page2", 1, "default:dirt")
minetest.show_formspec(player:get_player_name(), "w22" , w22.get_formspec(player))
elseif fields.wbc then
player_inv:set_stack("page2", 1, "default:dirt 2")
minetest.show_formspec(player:get_player_name(), "w23" , w23.get_formspec(player))
elseif fields.wbd then
player_inv:set_stack("page2", 1, "default:dirt 3")
minetest.show_formspec(player:get_player_name(), "w24" , w24.get_formspec(player))
elseif fields.wbe then
player_inv:set_stack("page2", 1, "default:dirt 4")
minetest.show_formspec(player:get_player_name(), "w25" , w25.get_formspec(player))
elseif fields.wbf then
player_inv:set_stack("page2", 1, "default:dirt 5")
minetest.show_formspec(player:get_player_name(), "w26" , w26.get_formspec(player))
elseif fields.wbg then
player_inv:set_stack("page2", 1, "default:dirt 6")
minetest.show_formspec(player:get_player_name(), "w27" , w27.get_formspec(player))
elseif fields.wbh then
player_inv:set_stack("page2", 1, "default:dirt 7")
minetest.show_formspec(player:get_player_name(), "w28" , w28.get_formspec(player))
elseif fields.wca then
player_inv:set_stack("page3", 1, nil)
minetest.show_formspec(player:get_player_name(), "w31" , w31.get_formspec(player))
elseif fields.wcb then
player_inv:set_stack("page3", 1, "default:dirt")
minetest.show_formspec(player:get_player_name(), "w32" , w32.get_formspec(player))
elseif fields.wcc then
player_inv:set_stack("page3", 1, "default:dirt 2")
minetest.show_formspec(player:get_player_name(), "w33" , w33.get_formspec(player))
elseif fields.wcd then
player_inv:set_stack("page3", 1, "default:dirt 3")
minetest.show_formspec(player:get_player_name(), "w34" , w34.get_formspec(player))
elseif fields.wce then
player_inv:set_stack("page3", 1, "default:dirt 4")
minetest.show_formspec(player:get_player_name(), "w35" , w35.get_formspec(player))
elseif fields.wcf then
player_inv:set_stack("page3", 1, "default:dirt 5")
minetest.show_formspec(player:get_player_name(), "w36" , w36.get_formspec(player))
elseif fields.wcg then
player_inv:set_stack("page3", 1, "default:dirt 6")
minetest.show_formspec(player:get_player_name(), "w37" , w37.get_formspec(player))
elseif fields.wch then
player_inv:set_stack("page3", 1, "default:dirt 7")
minetest.show_formspec(player:get_player_name(), "w38" , w38.get_formspec(player))
elseif fields.wci then
player_inv:set_stack("page3", 1, "default:dirt 8")
minetest.show_formspec(player:get_player_name(), "w39" , w39.get_formspec(player))
elseif fields.wcj then
player_inv:set_stack("page3", 1, "default:dirt 9")
minetest.show_formspec(player:get_player_name(), "w310" , w310.get_formspec(player))
elseif fields.wck then
player_inv:set_stack("page3", 1, "default:dirt 10")
minetest.show_formspec(player:get_player_name(), "w311" , w311.get_formspec(player))
elseif fields.wcl then
player_inv:set_stack("page3", 1, "default:dirt 11")
minetest.show_formspec(player:get_player_name(), "w312" , w312.get_formspec(player))
elseif fields.wcm then
player_inv:set_stack("page3", 1, "default:dirt 12")
minetest.show_formspec(player:get_player_name(), "w313" , w313.get_formspec(player))
elseif fields.wcn then
player_inv:set_stack("page3", 1, "default:dirt 13")
minetest.show_formspec(player:get_player_name(), "w314" , w314.get_formspec(player))
elseif fields.wda then
player_inv:set_stack("page4", 1, "")
minetest.show_formspec(player:get_player_name(), "w41" , w41.get_formspec(player))
elseif fields.wdb then
player_inv:set_stack("page4", 1, "default:dirt")
minetest.show_formspec(player:get_player_name(), "w42" , w42.get_formspec(player))
elseif fields.wdc then
player_inv:set_stack("page4", 1, "default:dirt 2")
minetest.show_formspec(player:get_player_name(), "w43" , w43.get_formspec(player))
elseif fields.wdd then
player_inv:set_stack("page4", 1, "default:dirt 3")
minetest.show_formspec(player:get_player_name(), "w44" , w44.get_formspec(player))
else
minetest.show_formspec(player:get_player_name(), "", "")
end
end)