aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advtrains/advtrains/init.lua2
-rw-r--r--advtrains/advtrains/lua_atc.lua166
2 files changed, 0 insertions, 168 deletions
diff --git a/advtrains/advtrains/init.lua b/advtrains/advtrains/init.lua
index b001f1f..536293d 100644
--- a/advtrains/advtrains/init.lua
+++ b/advtrains/advtrains/init.lua
@@ -96,7 +96,6 @@ else
advtrains.wagon_save = tbl.wagon_save
advtrains.ndb.load_data(tbl.ndb)
advtrains.atc.load_data(tbl.atc)
- --advtrains.latc.load_data(tbl.latc)
else
--oh no, its the old one...
advtrains.trains=tbl
@@ -165,7 +164,6 @@ advtrains.save = function()
trains = advtrains.trains,
wagon_save = advtrains.wagon_save,
atc = advtrains.atc.save_data(),
- --latc = advtrains.latc.save_data(),
ndb = advtrains.ndb.save_data(),
version = 1,
}
diff --git a/advtrains/advtrains/lua_atc.lua b/advtrains/advtrains/lua_atc.lua
deleted file mode 100644
index 313d70d..0000000
--- a/advtrains/advtrains/lua_atc.lua
+++ /dev/null
@@ -1,166 +0,0 @@
--------------
---LUA ATC controllers
-
-local latc={}
-
-function latc.load_data(data)
-end
-function latc.save_data()
- return stuff
-end
-
-latc.data
-latc.env_cdata
-latc.init_code=""
-latc.step_code=""
-
-advtrains.fpath_latc=minetest.get_worldpath().."/advtrains_latc"
-local file, err = io.open(advtrains.fpath_atc, "r")
-if not file then
- local er=err or "Unknown Error"
- atprint("Failed loading advtrains latc save file "..er)
-else
- local tbl = minetest.deserialize(file:read("*a"))
- if type(tbl) == "table" then
- atc.controllers=tbl.controllers
- end
- file:close()
-end
-function latc.save()
-
- local datastr = minetest.serialize({controllers = atc.controllers})
- if not datastr then
- minetest.log("error", " Failed to serialize latc data!")
- return
- end
- local file, err = io.open(advtrains.fpath_atc, "w")
- if err then
- return err
- end
- file:write(datastr)
- file:close()
-end
-
---Privilege
---Only trusted players should be enabled to build stuff which can break the server.
---If I later decide to have multiple environments ('data' tables), I better store an owner for every controller for future reference.
-
-minetest.register_privilege("advtrains_lua_atc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false })
-
---Environment
---Code from mesecons_luacontroller (credit goes to Jeija and mesecons contributors)
-
-local safe_globals = {
- "assert", "error", "ipairs", "next", "pairs", "select",
- "tonumber", "tostring", "type", "unpack", "_VERSION"
-}
-local function safe_print(param)
- print(dump(param))
-end
-
-local function safe_date()
- return(os.date("*t",os.time()))
-end
-
--- string.rep(str, n) with a high value for n can be used to DoS
--- the server. Therefore, limit max. length of generated string.
-local function safe_string_rep(str, n)
- if #str * n > mesecon.setting("luacontroller_string_rep_max", 64000) then
- debug.sethook() -- Clear hook
- error("string.rep: string length overflow", 2)
- end
-
- return string.rep(str, n)
-end
-
--- string.find with a pattern can be used to DoS the server.
--- Therefore, limit string.find to patternless matching.
-local function safe_string_find(...)
- if (select(4, ...)) ~= true then
- debug.sethook() -- Clear hook
- error("string.find: 'plain' (fourth parameter) must always be true in a LuaController")
- end
-
- return string.find(...)
-end
-
-latc.static_env = {
- print = safe_print,
- string = {
- byte = string.byte,
- char = string.char,
- format = string.format,
- len = string.len,
- lower = string.lower,
- upper = string.upper,
- rep = safe_string_rep,
- reverse = string.reverse,
- sub = string.sub,
- find = safe_string_find,
- },
- math = {
- abs = math.abs,
- acos = math.acos,
- asin = math.asin,
- atan = math.atan,
- atan2 = math.atan2,
- ceil = math.ceil,
- cos = math.cos,
- cosh = math.cosh,
- deg = math.deg,
- exp = math.exp,
- floor = math.floor,
- fmod = math.fmod,
- frexp = math.frexp,
- huge = math.huge,
- ldexp = math.ldexp,
- log = math.log,
- log10 = math.log10,
- max = math.max,
- min = math.min,
- modf = math.modf,
- pi = math.pi,
- pow = math.pow,
- rad = math.rad,
- random = math.random,
- sin = math.sin,
- sinh = math.sinh,
- sqrt = math.sqrt,
- tan = math.tan,
- tanh = math.tanh,
- },
- table = {
- concat = table.concat,
- insert = table.insert,
- maxn = table.maxn,
- remove = table.remove,
- sort = table.sort,
- },
- os = {
- clock = os.clock,
- difftime = os.difftime,
- time = os.time,
- datetable = safe_date,
- },
-}
-latc.static_env._G = env
-
-for _, name in pairs(safe_globals) do
- latc.static_env[name] = _G[name]
-end
-
-
---The environment all code calls get is a proxy table with a metatable.
---When an index is read:
--- Look in static_env
--- Look in volatile_env (user_written functions and userdata)
--- Look in saved_env (everything that's not a function or userdata)
---when an index is written:
--- If in static_env, do not allow
--- if function or userdata, volatile_env
--- if table, see below
--- else, save in saved_env
-
-
-
-advtrains.latc=latc