Move physics mod into "other" modpack (#382)

This commit is contained in:
ANAND 2019-03-19 22:34:05 +05:30 committed by GitHub
parent 86ce4d7328
commit d6dab9182a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,47 @@
physics = {}
local players = {}
minetest.register_on_joinplayer(function(player)
players[player:get_player_name()] = {}
end)
minetest.register_on_leaveplayer(function(player)
players[player:get_player_name()] = nil
end)
local function update(name)
assert(players[name])
local player = minetest.get_player_by_name(name)
local override = {
speed = 1,
jump = 1,
gravity = 1
}
for _, layer in pairs(players[name]) do
for attr, val in pairs(layer) do
override[attr] = override[attr] * val
end
end
player:set_physics_override(override)
end
function physics.set(pname, name, modifiers)
assert(players[pname] and not players[pname][name])
players[pname][name] = modifiers
update(pname)
end
function physics.change(pname, name, modifier)
assert(players[pname] and players[pname][name])
players[pname][name] = modifier
update(pname)
end
function physics.remove(pname, name)
assert(players[pname] and players[pname][name])
players[pname][name] = nil
update(pname)
end