dofile(minetest.get_modpath("castrum").."/config.txt") local btimer = 1 local timer = 0 local timer2 = 0 local timer3 = 0 local timer4 = 0 local timer5 = 0 local timer6 = 0 local timer7 = 0 local timer8 = 0 local timer9 = 0 local timer10 = 0 local timer11 = 0 local timer12 = 0 local tree2 = 0 local tree3 = 0 local tree4 = 0 local quarry2 = 0 local quarry3 = 0 local mine2 = 0 local mine3 = 0 local sandmine2 = 0 local sandmine3 = 0 local last = {x=-40,y=8.5,z=-5} minetest.register_globalstep(function(dtime) if btimer > 0 then btimer = btimer + dtime; end timer = timer + dtime; timer2 = timer2 + dtime; timer3 = timer3 + dtime; timer4 = timer4 + dtime; timer5 = timer5 + dtime; timer6 = timer6 + dtime; timer7 = timer7 + dtime; timer8 = timer8 + dtime; timer9 = timer9 + dtime; timer10 = timer10 + dtime; timer11 = timer11 + dtime; timer12 = timer12 + dtime; local players = minetest.get_connected_players() for _,player in ipairs(players) do local pos = player:getpos() file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") local ship1 = file:read("*l") file:close() if fall_code == true then if btimer == 0 then if pos.x < -9.5 and pos.x > -15.5 and pos.z > -62.5 and pos.z < -54 and tonumber(ship1) > 1 then last = pos elseif pos.x < -10.5 and pos.x > -14.5 and pos.z > -63.5 and pos.z < -62.5 and tonumber(ship1) > 1 then last = pos elseif pos.x < -11.5 and pos.x > -13.5 and pos.z > -64.5 and pos.z < -63.5 and tonumber(ship1) > 1 then last = pos elseif pos.x < 132.5 and pos.x > 127.5 and pos.z > 39.5 and pos.z < 48.5 then last = pos elseif pos.x < 131.5 and pos.x > 128.5 and pos.z > 48.5 and pos.z < 49.5 then last = pos elseif pos.x < 130.5 and pos.x > 129.5 and pos.z > 49.5 and pos.z < 50.5 then last = pos elseif pos.x < 320.5 and pos.x > 315.5 and pos.z > 39.5 and pos.z < 48.5 then last = pos elseif pos.x < 319.5 and pos.x > 316.5 and pos.z > 48.5 and pos.z < 49.5 then last = pos elseif pos.x < 318.5 and pos.x > 317.5 and pos.z > 49.5 and pos.z < 50.5 then last = pos elseif pos.x < 168.5 and pos.x > 161.5 and pos.z > 40.5 and pos.z < 51.5 then last = pos elseif pos.x < 166.5 and pos.x > 163.5 and pos.z > 51.5 and pos.z < 53.5 then last = pos elseif pos.x < 165.5 and pos.x > 164.5 and pos.z > 53.5 and pos.z < 55.5 then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:wood" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:junglewood" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:pine_wood" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:sea_fight1" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:island_start_fight" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:turn_ship" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_ready" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_5" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_4" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_3" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_2" then last = pos elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_1" then last = pos elseif pos.y < 8 then player:setpos(last) elseif minetest.get_node({x=pos.x, y=(pos.y-0.5),z=pos.z}).name ~= "air" then last = pos end end if btimer > 5 then btimer = 0 end end file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") local ship1 = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "r") local quarry = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "r") local tree = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "r") local mine = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "r") local lake = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "r") local sandmine = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "r") local lake2 = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "r") local cactusfarm = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "r") local mountain_quarry = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "r") local farm = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "r") local meadow = file:read("*l") file:close() local quarrytime = 0 local quarrynum = 1 if tonumber(quarry) == 0 then quarrytime = 5 quarrynum = 1 elseif tonumber(quarry) == 1 then quarrytime = 3.5 quarrynum = 1 elseif tonumber(quarry) == 2 then quarrytime = 2.5 quarrynum = 2 elseif tonumber(quarry) == 3 then quarrytime = 2 quarrynum = 2 elseif tonumber(quarry) == 4 then quarrytime = 1.8 quarrynum = 3 elseif tonumber(quarry) == 5 then quarrytime = 1.6 quarrynum = 3 elseif tonumber(quarry) == 6 then quarrytime = 1.5 quarrynum = 3 end local treetime = 0 local treenum = 1 if tonumber(tree) == 1 then treetime = 8 treenum = 1 elseif tonumber(tree) == 2 then treetime = 6 treenum = 1 elseif tonumber(tree) == 3 then treetime = 4.5 treenum = 2 elseif tonumber(tree) == 4 then treetime = 3.5 treenum = 2 elseif tonumber(tree) == 5 then treetime = 3 treenum = 3 elseif tonumber(tree) == 6 then treetime = 2.7 treenum = 3 elseif tonumber(tree) == 7 then treetime = 2.4 treenum = 4 end local minetime = 0 local minenum = 1 if tonumber(mine) == 1 then minetime = 15 minenum = 1 elseif tonumber(mine) == 2 then minetime = 11.5 minenum = 1 elseif tonumber(mine) == 3 then minetime = 9 minenum = 2 elseif tonumber(mine) == 4 then minetime = 7 minenum = 2 elseif tonumber(mine) == 5 then minetime = 5.5 minenum = 3 elseif tonumber(mine) == 6 then minetime = 4.5 minenum = 3 end local laketime = 0 if tonumber(lake) == 1 then laketime = 12 elseif tonumber(lake) == 2 then laketime = 9 elseif tonumber(lake) == 3 then laketime = 6.5 elseif tonumber(lake) == 4 then laketime = 5 end local sandminetime = 0 local sandminenum = 1 if tonumber(sandmine) == 0 then sandminetime = 5 sandminenum = 1 elseif tonumber(sandmine) == 1 then sandminetime = 3.5 sandminenum = 1 elseif tonumber(sandmine) == 2 then sandminetime = 2.5 sandminenum = 2 elseif tonumber(sandmine) == 3 then sandminetime = 2 sandminenum = 2 elseif tonumber(sandmine) == 4 then sandminetime = 1.8 sandminenum = 3 end local lake2time = 0 if tonumber(lake2) == 1 then lake2time = 18 elseif tonumber(lake2) == 2 then lake2time = 13.5 elseif tonumber(lake2) == 3 then lake2time = 10 elseif tonumber(lake2) == 4 then lake2time = 7.5 end local cactusfarmtime = 0 if tonumber(cactusfarm) == 1 then cactusfarmtime = 15 elseif tonumber(cactusfarm) == 2 then cactusfarmtime = 11.5 elseif tonumber(cactusfarm) == 3 then cactusfarmtime = 9 elseif tonumber(cactusfarm) == 4 then cactusfarmtime = 7 elseif tonumber(cactusfarm) == 5 then cactusfarmtime = 5.5 end local mountain_quarrytime = 0 if tonumber(mountain_quarry) == 0 then mountain_quarrytime = 8 elseif tonumber(mountain_quarry) == 1 then mountain_quarrytime = 6 elseif tonumber(mountain_quarry) == 2 then mountain_quarrytime = 4.5 end local farmtime = 0 if tonumber(farm) == 1 then farmtime = 10 elseif tonumber(farm) == 2 then farmtime = 8 elseif tonumber(farm) == 3 then farmtime = 6.5 end local meadowtime = 0 local meadownum = 1 if tonumber(meadow) == 9 then meadowtime = 20 meadownum = 1 elseif tonumber(meadow) == 10 then meadowtime = 16 meadownum = 2 end if fill_chest == true then if timer >= quarrytime then if tonumber(quarry) > -1 then local inv = player:get_inventory() if inv then quarry2 = quarry2+1 quarry3 = quarry3+1 if quarry2 == 2 then quarry2 = 0 end if quarry3 == 3 then quarry3 = 0 end inv:set_size("quarry", 64) inv:add_item("quarry", "default:cobble ") if quarrynum > 1 and quarry2 == 1 then inv:add_item("quarry", "default:desert_cobble") end if quarrynum > 2 and quarry3 == 1 then inv:add_item("quarry", "default:obsidian") end end end timer = 0 end if timer2 >= treetime then if tonumber(tree) > 0 then local inv = player:get_inventory() if inv then tree2 = tree2+1 tree3 = tree3+1 tree4 = tree4+1 if tree2 == 2 then tree2 = 0 end if tree3 == 3 then tree3 = 0 end if tree4 == 4 then tree4 = 0 end inv:set_size("tree", 64) inv:add_item("tree", "default:wood") if treenum > 1 and tree2 == 1 then inv:add_item("tree", "default:junglewood") end if treenum > 2 and tree3 == 1 then inv:add_item("tree", "default:pine_wood") end if treenum > 3 and tree4 == 1 then inv:add_item("tree", "default:acacia_wood") end end end timer2 = 0 end if timer4 >= minetime then if tonumber(mine) > 0 then local inv = player:get_inventory() if inv then mine2 = mine2+1 mine3 = mine3+1 if mine2 == 2 then mine2 = 0 end if mine3 == 3 then mine3 = 0 end inv:set_size("mine", 64) inv:add_item("mine", "default:coal_lump") if minenum > 1 and mine2 == 1 then inv:add_item("mine", "default:iron_lump") end if minenum > 2 and mine3 == 1 then inv:add_item("mine", "default:tin_lump") inv:add_item("mine", "default:copper_lump") end end end timer4 = 0 end if timer5 >= laketime then if tonumber(lake) > 0 then local inv = player:get_inventory() if inv then inv:set_size("lake", 64) inv:add_item("lake", "castrum:bucket_water") end end timer5 = 0 end if timer6 >= sandminetime then if tonumber(sandmine) > -1 and tonumber(ship1) > 4 then local inv = player:get_inventory() if inv then sandmine2 = sandmine2+1 sandmine3 = sandmine3+1 if sandmine2 == 2 then sandmine2 = 0 end if sandmine3 == 3 then sandmine3 = 0 end inv:set_size("sandmine", 64) inv:add_item("sandmine", "default:sand") if sandminenum > 1 and sandmine2 == 1 then inv:add_item("sandmine", "default:desert_sand") end if sandminenum > 1 and sandmine3 == 1 then inv:add_item("sandmine", "default:silver_sand") end end end timer6 = 0 end if timer7 >= lake2time then if tonumber(lake2) > 0 then local inv = player:get_inventory() if inv then inv:set_size("lake2", 64) inv:add_item("lake2", "castrum:bucket_river_water") end end timer7 = 0 end if timer8 >= cactusfarmtime then if tonumber(cactusfarm) > 0 and tonumber(ship1) > 4 then local inv = player:get_inventory() if inv then inv:set_size("cactusfarm", 64) inv:add_item("cactusfarm", "default:cactus") end end timer8 = 0 end if timer9 >= mountain_quarrytime then if tonumber(mountain_quarry) > -1 and tonumber(ship1) > 5 then local inv = player:get_inventory() if inv then inv:set_size("mountain_quarry", 64) inv:add_item("mountain_quarry", "default:mossycobble") end end timer9 = 0 end if timer10 >= farmtime then if tonumber(farm) > 0 and tonumber(ship1) > 5 then local inv = player:get_inventory() if inv then inv:set_size("farm", 64) inv:add_item("farm", "farming:cotton") end end timer10 = 0 end if timer11 >= meadowtime then if tonumber(meadow) > 8 and tonumber(ship1) > 5 then local inv = player:get_inventory() if inv then inv:set_size("meadow", 64) inv:add_item("meadow", "flowers:rose") inv:add_item("meadow", "flowers:dandelion_white") if meadownum > 1 then inv:add_item("meadow", "flowers:dandelion_yellow") end end end timer11 = 0 end end end end)