aliveai/aliveai/init.lua

131 lines
5.2 KiB
Lua

aliveai={
version=26.1,
--========================options==============================
grant_invisiable=true,
spawning=true, --spawning by self
character_model="aliveai_character.b3d", --character model
character_preview_model="aliveai_preview_character.obj", --character model
set_bones=true,
default_team="Sam",
gravity=10,
check_spawn_space=true,
enable_build=true,
status=false, --show bot status
systemfreeze=0, --freeze the system
tools=0, --hide bot tools
max_path_delay_time=1, --max delay each second, if a path using more will all other be stopped until next secund
get_everything_to_build_chance=50,
get_random_stuff_chance=50, -- get random stuff on spawn
team_fight=true,
max_delay=100, -- max run / bot delay
lifetimer=60, --remove unbehavior none nps's
max_new_bots=10,
max_chat_distance=200,
--========================not options==============================
loaded_objects=0,
delaytime=os.clock(),
buildings_spawners={},
terminal_users={},
bones=minetest.get_modpath("bones"),
creative=minetest.settings:get("creative_mode"),
bots_delay=0,
bots_delay2=0,
max_path_s=0,
last_spoken_to="",
msg={}, --messages to bots
registered_bots={}, --registered_bots
active={}, --active bots
active_num=0, --active bots count
smartshop=minetest.get_modpath("smartshop")~=nil,
mesecons=minetest.get_modpath("mesecons")~=nil,
loaddata={}, --functions
savedata={}, --functions
team_player={},
farming={},
storage=minetest.get_mod_storage(),
save=function(key,newdata)
aliveai.storage:set_string(key,minetest.serialize(newdata))
end,
load=function(key)
return minetest.deserialize(aliveai.storage:get_string(key)) or {}
end,
--========================options==============================
-- new food databas, checks what players eats, then save it
food= {["default:apple"]=2,["farming:bread"]=5,["mobs:meat"]=8,["mobs:meat_raw"]=3,["mobs:chicken_raw"]=2,["mobs:chicken_cooked"]=6,["mobs:chicken_egg_fried"]=2,["mobs:chicken_raw"]=2},
furnishings= {"default:torch","default:chest","default:furnace","default:chest_locked","default:sign_wall_wood","default:sign_wall_steel","vessels:steel_bottle","vessels:drinking_glass","vessels:glass_bottle","aliveai:bed","aliveai:bed_blue","aliveai:chair"},
basics= {"default:desert_stone","default:sandstonebrick","default:sandstone","default:snowblock","default:ice","default:stone","default:leaves","default:wood","default:acacia_tree","default:jungletree","default:pine_tree","default:aspen_tree"},
wood= {["default:tree"]="default:wood",["default:acacia_tree"]="default:acacia_wood",["default:jungletree"]="default:junglewood",["default:pine_tree"]="default:pine_wood",["default:aspen_tree"]="default:aspen_wood"},
windows= {"default:glass","default:glass"},
ladders= {"default:ladder_wood","default:ladder_steel"},
beds= {"aliveai:bed","aliveai:bed_blue","beds:bed","beds:fancy_bed"},
doors= {}, -- used by aliveai.make_door({name="steel",description = "Steel door",texture="",material="default:steelblock",craft={})}
doors_material= {},
tools_handler={ -- see extras.lua for use
["default"]={
try_to_craft=true,
use=false,
tools={"pick_wood","pick_stone","steel_steel","pick_mese","pick_diamond","sword_steel","sword_mese","sword_diamond"},
},
["aliveai"]={
try_to_craft=true,
use=false,
tools={"cudgel","relive"},
}
},
nodes_handler={ --dig, mesecon_on, mesecon_off, punch, function
["default:apple"]="dig",["aliveai_ants:antbase"]="dig",["tnt:tnt"]="dig",["tnt:tnt_burning"]="dig",["fire:basic_flame"]="dig",
},
}
local aliveai_v1=string.gsub(minetest.get_version().string,"-","%")
local aliveai_v2=aliveai_v1.split(aliveai_v1,".")
aliveai.minetest_version={tonumber(aliveai_v2[1]),(tonumber(aliveai_v2[2])*0.1),(tonumber(aliveai_v2[3]))*0.01}
minetest.after(5, function()
aliveai.team_load()
end)
aliveai.max_path_timer=0
aliveai.max_path_delay=0
aliveai.ticks_pers=os.clock()
aliveai.game_paused=true
minetest.register_globalstep(function(dtime)
if os.clock()-aliveai.ticks_pers>1 or aliveai.systemfreeze==1 then
aliveai.game_paused=true
else
aliveai.game_paused=false
end
aliveai.ticks_pers=os.clock()-aliveai.ticks_pers
aliveai.max_path_timer=aliveai.max_path_timer+dtime
if aliveai.max_path_timer>1 then
aliveai.ticks_pers=0
aliveai.max_path_s=0
aliveai.max_path_timer=0
aliveai.max_path_delay=0
aliveai.bots_delay2=aliveai.bots_delay
aliveai.bots_delay=0
end
aliveai.ticks_pers=os.clock()
end)
dofile(minetest.get_modpath("aliveai") .. "/base.lua")
dofile(minetest.get_modpath("aliveai") .. "/mapgen.lua")
dofile(minetest.get_modpath("aliveai") .. "/event.lua")
dofile(minetest.get_modpath("aliveai") .. "/other.lua")
dofile(minetest.get_modpath("aliveai") .. "/items.lua")
dofile(minetest.get_modpath("aliveai") .. "/tasks.lua")
dofile(minetest.get_modpath("aliveai") .. "/chat.lua")
dofile(minetest.get_modpath("aliveai") .. "/bot.lua")
dofile(minetest.get_modpath("aliveai") .. "/extras.lua")
dofile(minetest.get_modpath("aliveai") .. "/handlers.lua")
dofile(minetest.get_modpath("aliveai") .. "/settings.lua")
aliveai.delaytime=(os.clock()-aliveai.delaytime)
print("[aliveai] api Loaded")