Move physics mod into "other" modpack (#382)
This commit is contained in:
parent
86ce4d7328
commit
d6dab9182a
1 changed files with 0 additions and 0 deletions
47
mods/other/physics/init.lua
Normal file
47
mods/other/physics/init.lua
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue