write something there
This commit is contained in:
commit
b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions
120
mods/researcher/init.lua
Normal file
120
mods/researcher/init.lua
Normal file
|
@ -0,0 +1,120 @@
|
|||
-- Globals
|
||||
researcher = {
|
||||
settings = {
|
||||
-- Research points and levels
|
||||
points_per_level = tonumber(minetest.settings:get("researcher.points_per_level",600) or 600),
|
||||
points_per_research = tonumber(minetest.settings:get("researcher.points_per_research",100) or 100),
|
||||
level_max = tonumber(minetest.settings:get("researcher.level_max",10) or 10),
|
||||
level_scale = tonumber(minetest.settings:get("researcher.level_scale",1.25) or 1.25),
|
||||
|
||||
-- Bonuses for group research
|
||||
group_research_bonus = tonumber(minetest.settings:get("researcher.group_research_bonus",1) or 1),
|
||||
group_research_bonus_max = tonumber(minetest.settings:get("researcher.group_research_bonus_max",150) or 150),
|
||||
|
||||
-- Bonuses for focused research
|
||||
focused_research_bonus_exact = tonumber(minetest.settings:get("researcher.focused_research_bonus_exact",5) or 5),
|
||||
focused_research_bonus_group = tonumber(minetest.settings:get("researcher.focused_research_bonus_group",1) or 1),
|
||||
focused_research_bonus_max = tonumber(minetest.settings:get("researcher.focused_research_bonus_max",150) or 150),
|
||||
|
||||
-- Bonuses for using a research table
|
||||
research_table_bonus_exact = tonumber(minetest.settings:get("researcher.research_table_bonus_exact",25) or 25),
|
||||
research_table_bonus_group = tonumber(minetest.settings:get("researcher.research_table_bonus_group",5) or 5),
|
||||
research_table_adjacency_bonus = tonumber(minetest.settings:get("researcher.research_table_adjacency_bonus",10) or 10),
|
||||
research_table_adjacency_max = tonumber(minetest.settings:get("researcher.research_table_adjacency_max",10) or 10),
|
||||
research_table_adjacency_radius = tonumber(minetest.settings:get("researcher.research_table_adjacency_radius",3) or 3),
|
||||
research_table_player_radius = tonumber(minetest.settings:get("researcher.research_table_player_radius",2) or 2),
|
||||
research_table_bonus_max = tonumber(minetest.settings:get("researcher.research_table_bonus_max",150) or 150),
|
||||
|
||||
-- Built-in item discount amounts
|
||||
discount_stack_max = tonumber(minetest.settings:get("researcher.discount_stack_max",-250) or -250),
|
||||
discount_mapgen = tonumber(minetest.settings:get("researcher.discount_mapgen",-400) or -400),
|
||||
discount_not_craftable = tonumber(minetest.settings:get("researcher.discount_not_craftable",-250) or -250),
|
||||
|
||||
-- Use research awards
|
||||
awards = minetest.settings:get_bool("researcher.awards",true) and minetest.get_modpath("awards") and true or false,
|
||||
|
||||
-- Groups that are excluded from group matching
|
||||
excluded_groups = minetest.settings:get("researcher.excluded_groups") or table.concat({
|
||||
"not_in_creative_inventory",
|
||||
"attached_node",
|
||||
"connect_to_raillike",
|
||||
"dig_immediate",
|
||||
"disable_jump",
|
||||
"disable_descend",
|
||||
"fall_damage_add_percent",
|
||||
"falling_node",
|
||||
"float",
|
||||
"level",
|
||||
"oddly_breakable_by_hand",
|
||||
"immortal",
|
||||
"disable_repair",
|
||||
"creative_breakable",
|
||||
"opaque",
|
||||
"solid",
|
||||
}," "),
|
||||
},
|
||||
|
||||
-- Cached mod data
|
||||
data = {
|
||||
save = {},
|
||||
},
|
||||
|
||||
-- Mod storage
|
||||
storage = minetest.get_mod_storage(),
|
||||
|
||||
-- Registered data
|
||||
registered_items = {},
|
||||
registered_adjustments = {},
|
||||
registered_bonuses = {},
|
||||
registered_on_research = {},
|
||||
|
||||
-- Item groups indexed by group name
|
||||
groups = {},
|
||||
|
||||
-- Dependency info
|
||||
dependencies = (function(deps)
|
||||
for _,mod in ipairs({
|
||||
"default",
|
||||
"mcl_sounds",
|
||||
"mcl_inventory",
|
||||
"sfinv",
|
||||
"awards",
|
||||
"unified_inventory",
|
||||
"i3",
|
||||
}) do
|
||||
deps[mod] = minetest.get_modpath(mod)
|
||||
end
|
||||
return deps
|
||||
end)({}),
|
||||
}
|
||||
|
||||
-- Get excluded groups from settings
|
||||
researcher.excluded_groups = (function()
|
||||
local groups = researcher.settings.excluded_groups:split("[ \n\r\t]+",false,-1,true)
|
||||
local exclude = {}
|
||||
for _,group in ipairs(groups) do
|
||||
exclude[group] = true
|
||||
end
|
||||
return exclude
|
||||
end)()
|
||||
|
||||
-- Load secondary files if the Research content pack is enabled in Asuna settings
|
||||
if asuna.content.research.enabled then
|
||||
local mpath = minetest.get_modpath("researcher")
|
||||
local function runfile(file)
|
||||
dofile(mpath .. "/src/" .. file .. ".lua")
|
||||
end
|
||||
|
||||
for _,file in ipairs({
|
||||
"api",
|
||||
"inventory",
|
||||
"bonuses",
|
||||
"research_table",
|
||||
"scan",
|
||||
"commands",
|
||||
"gui",
|
||||
"awards",
|
||||
}) do
|
||||
runfile(file)
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue