Minetest-Hyperloop/init.lua

102 lines
4.1 KiB
Lua

--[[
Hyperloop Mod
=============
v2.06 by JoSt
Copyright (C) 2017-2021 Joachim Stolberg
LGPLv2.1+
See LICENSE.txt for more information
History:
2017-06-18 v0.01 First version
2017-07-06 v0.02 Version on GitHub
2017-07-07 v0.03 Recipes added, settingstypes added
2017-07-08 v0.04 Door removal issue fixed
2017-07-16 v0.05 Doors can be opened manually
2017-07-24 v0.06 Tubes with limited slope, elevator and deco blocks added
2017-07-28 v0.07 Slope removed, Station auto-builder added
2017-07-30 v0.08 Signs added, tube robot added, crowbar added
2017-07-31 v0.09 Some bug fixes on the Bocking Machine
2017-08-01 v0.10 Elevator now with sound and travel animation plus minor bug fixes
2017-08-06 v0.11 Crowbar now allows repairing of illegally detroyed tubes
2018-03-27 v0.12 Some minor improvements with player position, arrival time,
Wifi node improvements, Podshell cheating bugfix,
forceload_block removed.
2018-04-13 v0.13 Potential "Never Store ObjectRefs" bug fixed
2018-10-27 v1.00 Release
2018-10-27 v2.00 Switched to lubelib2 for shafts and tubes
2018-12-16 v2.01 Adapted to lubelib2 v0.5
2018-12-20 v2.02 Intllib support added, bugs fixed
2019-03-23 v2.03 Elevator duplication bugfix
2020-01-03 v2.04 Elevator door bugfix (MT 5+)
2020-03-12 v2.05 minetest translator added (thanks to acmgit/Clyde)
2020-06-14 v2.06 The default value for `hyperloop_free_tube_placement_enabled` is now true
2021-02-07 v2.07 tube_crowbar: Add tube length check
2021-11-01 v2.08 Enable the use of hyperloop networks for other mods
]]--
hyperloop = {}
-- Version for compatibility checks, see history
hyperloop.version = 2.08
if minetest.global_exists("techage") and techage.version < 0.06 then
error("[hyperloop] Hyperloop requires techage version 0.06 or newer!")
return
end
if minetest.get_translator ~= nil then
hyperloop.S = minetest.get_translator(minetest.get_current_modname())
else
-- Load support for intllib.
local MP = minetest.get_modpath("hyperloop")
hyperloop.S, hyperloop.NS = dofile(MP.."/intllib.lua")
end
-- MT 5.4 new string mode
hyperloop.CLIP = minetest.features.use_texture_alpha_string_modes and "clip" or false
hyperloop.BLEND = minetest.features.use_texture_alpha_string_modes and "blend" or true
if tubelib2.version < 1.7 then
error("Hyperloop requires tubelib2 version 1.7 or newer!!!")
else
-- Configuration settings
hyperloop.wifi_enabled = minetest.settings:get_bool("hyperloop_wifi_enabled")
hyperloop.wifi_crafting_enabled = minetest.settings:get_bool("hyperloop_wifi_crafting_enabled")
hyperloop.free_tube_placement_enabled = minetest.settings:get_bool("hyperloop_free_tube_placement_enabled", true)
hyperloop.subnet_enabled = minetest.settings:get_bool("hyperloop_subnet_enabled", true)
dofile(minetest.get_modpath("hyperloop") .. "/network.lua")
dofile(minetest.get_modpath("hyperloop") .. "/data_base.lua")
dofile(minetest.get_modpath("hyperloop") .. "/booking.lua")
dofile(minetest.get_modpath("hyperloop") .. "/utils.lua")
dofile(minetest.get_modpath("hyperloop") .. "/elevator.lua")
dofile(minetest.get_modpath("hyperloop") .. "/tube.lua")
dofile(minetest.get_modpath("hyperloop") .. "/tubecrowbar.lua")
dofile(minetest.get_modpath("hyperloop") .. "/junction.lua")
dofile(minetest.get_modpath("hyperloop") .. "/station.lua")
dofile(minetest.get_modpath("hyperloop") .. "/booking_node.lua")
if hyperloop.wifi_enabled then
dofile(minetest.get_modpath("hyperloop") .. "/wifi.lua")
end
dofile(minetest.get_modpath("hyperloop") .. "/map.lua")
dofile(minetest.get_modpath("hyperloop") .. "/door.lua")
dofile(minetest.get_modpath("hyperloop") .. "/seat.lua")
dofile(minetest.get_modpath("hyperloop") .. "/lcd.lua")
dofile(minetest.get_modpath("hyperloop") .. "/waypoint.lua")
dofile(minetest.get_modpath("hyperloop") .. "/deco.lua")
dofile(minetest.get_modpath("hyperloop") .. "/recipes.lua")
---- Migration from v1 to v2
dofile(minetest.get_modpath("hyperloop") .. "/migrate.lua")
print ("[MOD] Hyperloop loaded")
end