455 lines
13 KiB
Lua
455 lines
13 KiB
Lua
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) |