mirror of
https://github.com/minetest-mods/cozy.git
synced 2024-09-27 14:20:21 +02:00
use player monoids if available
This commit is contained in:
parent
cd166a7549
commit
36b0d029ce
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.idea/
|
|
@ -1 +1,2 @@
|
||||||
default
|
default
|
||||||
|
player_monoids?
|
||||||
|
|
47
init.lua
47
init.lua
|
@ -1,15 +1,38 @@
|
||||||
|
local function freeze(player)
|
||||||
|
if minetest.global_exists("player_monoids") then
|
||||||
|
player_monoids.speed:add_change(player, 0, "cozy:speed")
|
||||||
|
player_monoids.jump:add_change(player, 0, "cozy:jump")
|
||||||
|
player_monoids.gravity:add_change(player, 0, "cozy:gravity")
|
||||||
|
else
|
||||||
|
player:set_physics_override({speed = 0, jump = 0, gravity = 0})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function unfreeze(player)
|
||||||
|
if minetest.global_exists("player_monoids") then
|
||||||
|
player_monoids.speed:del_change(player, "cozy:speed")
|
||||||
|
player_monoids.jump:del_change(player, "cozy:jump")
|
||||||
|
player_monoids.gravity:del_change(player, "cozy:gravity")
|
||||||
|
else
|
||||||
|
player:set_physics_override({speed = 1, jump = 1, gravity = 1})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
local players = minetest.get_connected_players()
|
local players = minetest.get_connected_players()
|
||||||
for i=1, #players do
|
for i=1, #players do
|
||||||
local name = players[i]:get_player_name()
|
local player = players[i]
|
||||||
if default.player_attached[name] and not players[i]:get_attach() and
|
local name = player:get_player_name()
|
||||||
(players[i]:get_player_control().up == true or
|
local control = player:get_player_control()
|
||||||
players[i]:get_player_control().down == true or
|
if default.player_attached[name] and not player:get_attach() and (
|
||||||
players[i]:get_player_control().left == true or
|
control.up == true or
|
||||||
players[i]:get_player_control().right == true or
|
control.down == true or
|
||||||
players[i]:get_player_control().jump == true) then
|
control.left == true or
|
||||||
|
control.right == true or
|
||||||
|
control.jump == true
|
||||||
|
) then
|
||||||
players[i]:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
players[i]:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||||
players[i]:set_physics_override(1, 1, 1)
|
unfreeze(player)
|
||||||
default.player_attached[name] = false
|
default.player_attached[name] = false
|
||||||
default.player_set_animation(players[i], "stand", 30)
|
default.player_set_animation(players[i], "stand", 30)
|
||||||
end
|
end
|
||||||
|
@ -22,12 +45,12 @@ minetest.register_chatcommand("sit", {
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if default.player_attached[name] then
|
if default.player_attached[name] then
|
||||||
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||||
player:set_physics_override(1, 1, 1)
|
unfreeze(player)
|
||||||
default.player_attached[name] = false
|
default.player_attached[name] = false
|
||||||
default.player_set_animation(player, "stand", 30)
|
default.player_set_animation(player, "stand", 30)
|
||||||
else
|
else
|
||||||
player:set_eye_offset({x=0, y=-7, z=2}, {x=0, y=0, z=0})
|
player:set_eye_offset({x=0, y=-7, z=2}, {x=0, y=0, z=0})
|
||||||
player:set_physics_override(0, 0, 0)
|
freeze(player)
|
||||||
default.player_attached[name] = true
|
default.player_attached[name] = true
|
||||||
default.player_set_animation(player, "sit", 30)
|
default.player_set_animation(player, "sit", 30)
|
||||||
end
|
end
|
||||||
|
@ -40,12 +63,12 @@ minetest.register_chatcommand("lay", {
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if default.player_attached[name] then
|
if default.player_attached[name] then
|
||||||
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||||
player:set_physics_override(1, 1, 1)
|
unfreeze(player)
|
||||||
default.player_attached[name] = false
|
default.player_attached[name] = false
|
||||||
default.player_set_animation(player, "stand", 30)
|
default.player_set_animation(player, "stand", 30)
|
||||||
else
|
else
|
||||||
player:set_eye_offset({x=0, y=-13, z=0}, {x=0, y=0, z=0})
|
player:set_eye_offset({x=0, y=-13, z=0}, {x=0, y=0, z=0})
|
||||||
player:set_physics_override(0, 0, 0)
|
freeze(player)
|
||||||
default.player_attached[name] = true
|
default.player_attached[name] = true
|
||||||
default.player_set_animation(player, "lay", 0)
|
default.player_set_animation(player, "lay", 0)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user