105 lines
4.3 KiB
Lua
105 lines
4.3 KiB
Lua
core_1042 = {
|
|
info = core.get_game_info(),
|
|
rand = PcgRandom(math.random(1, 2048)) -- Good for all random needed
|
|
}
|
|
|
|
|
|
|
|
|
|
local on_player_joins = {
|
|
function(player)
|
|
local name = player:get_player_name()
|
|
local protocol_version = core.get_player_information(name).protocol_version
|
|
if not protocol_version or protocol_version < 46 then
|
|
core.disconnect_player(name, "You are on too old of a client, please update.")
|
|
end
|
|
end
|
|
}
|
|
|
|
|
|
if core.features.hotbar_hud_element ~= true then
|
|
on_player_joins[#on_player_joins+1] = function(player)
|
|
core.disconnect_player(player:get_player_name(), "You must update to luanti 5.10.0 or later to play this game.")
|
|
end
|
|
end
|
|
|
|
if core.settings:get("1042_enable_hardcore") == "true" then
|
|
core.register_on_dieplayer(function(player, reason)
|
|
local name = player:get_player_name()
|
|
core.kick_player(name, "You died in 1042 while playing in hardcore mode.", false)
|
|
core.ban_player(name)
|
|
end)
|
|
end
|
|
|
|
-- key = {single_player, value}
|
|
local required_settings = {
|
|
-- Required
|
|
["enable_shaders"] = {single_player=true, value="true", required=true},
|
|
["enable_post_processing"] = {single_player=true, value="true", required=true},
|
|
["translucent_liquids"] = {single_player=true, value="true", required=true},
|
|
["enable_clouds"] = {single_player=true, value="true", required=true},
|
|
["enable_3d_clouds"] = {single_player=true, value="true", required=true},
|
|
["enable_auto_exposure"] = {single_player=true, value="true", required=true},
|
|
["exposure_compensation"] = {single_player=true, value="0.5", required=true},
|
|
|
|
-- Recommended
|
|
["enable_waving_water"] = {single_player=true, value="true"},
|
|
["smooth_lighting"] = {single_player=true, value="true"},
|
|
["enable_dynamic_shadows"] = {single_player=true, value="true"},
|
|
["enable_volumetric_lighting"] = {single_player=true, value="true"},
|
|
["enable_bloom"] = {single_player=true, value="true"},
|
|
["enable_node_specular"] = {single_player=true, value="true"},
|
|
["enable_water_reflections"] = {single_player=true, value="true"},
|
|
["soft_clouds"] = {single_player=true, value="true"},
|
|
["enable_fog"] = {single_player=true, value="true"},
|
|
}
|
|
|
|
if core.settings:get("1042_auto_adjust_settings") == "true" then
|
|
for name, value in pairs(required_settings) do
|
|
core.settings:set(name, value.value)
|
|
end
|
|
|
|
elseif core.settings:get("1042_ignore_required_settings") ~= "true" then
|
|
for name, value in pairs(required_settings) do
|
|
if value.required then
|
|
if value.single_player then
|
|
if core.is_singleplayer() and core.settings:get(name) ~= value.value then
|
|
on_player_joins[#on_player_joins+1] = function(player)
|
|
core.disconnect_player(player:get_player_name(), "Enable "..name.." to play this game!\n\nYou can also turn on the setting 1042>1042_auto_adjust_settings.")
|
|
end
|
|
end
|
|
elseif core.settings:get(name) ~= value.value then
|
|
on_player_joins[#on_player_joins+1] = function(player)
|
|
core.disconnect_player(player:get_player_name(), "Enable "..name.." to play this game!\n\nYou can also turn on the setting 1042>1042_auto_adjust_settings.")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if not core.is_singleplayer() and core.settings:get_bool("1042_warn_players_about_settings", true) then
|
|
on_player_joins[#on_player_joins+1] = function(player)
|
|
core.chat_send_player(player:get_player_name(), core.colorize("#eeee00", "It is recommended to load this game in single player with the setting 1042>1042_auto_adjust_settings turned on, to ensure proper rendering settings are on pior to using server mode. If the game does not look right or look dim/greyish, please try that."))
|
|
end
|
|
end
|
|
|
|
if #on_player_joins > 0 then
|
|
core.register_on_joinplayer(function(player)
|
|
for _, func in ipairs(on_player_joins) do
|
|
func(player)
|
|
end
|
|
end)
|
|
end
|
|
|
|
local path = core.get_modpath("1042_core")
|
|
|
|
dofile(path.."/src/funcs.lua")
|
|
dofile(path.."/src/invs.lua")
|
|
dofile(path.."/src/player_inv.lua")
|
|
dofile(path.."/src/player.lua")
|
|
dofile(path.."/src/privs.lua")
|
|
dofile(path.."/src/achievements.lua")
|
|
dofile(path.."/src/chat_commands.lua")
|
|
dofile(path.."/src/node_wear.lua")
|
|
|