forked from minetest-mods/cozy
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
5a04858fc0 | |||
|
ad3a575257 | ||
|
7aad47076e | ||
e89aae8092 | |||
0a725be9a6 | |||
|
b51cd0326c |
|
@ -1,2 +0,0 @@
|
||||||
default
|
|
||||||
player_monoids?
|
|
|
@ -1 +0,0 @@
|
||||||
Adds sitting down, and lying down player animations.
|
|
24
init.lua
24
init.lua
|
@ -1,4 +1,5 @@
|
||||||
local has_monoids = minetest.global_exists("player_monoids")
|
local has_monoids = minetest.global_exists("player_monoids")
|
||||||
|
local has_pova = minetest.global_exists("pova")
|
||||||
|
|
||||||
local function freeze(player)
|
local function freeze(player)
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
|
@ -6,10 +7,13 @@ local function freeze(player)
|
||||||
player_monoids.speed:add_change(player, 0, "cozy:speed")
|
player_monoids.speed:add_change(player, 0, "cozy:speed")
|
||||||
player_monoids.jump:add_change(player, 0, "cozy:jump")
|
player_monoids.jump:add_change(player, 0, "cozy:jump")
|
||||||
player_monoids.gravity:add_change(player, 0, "cozy:gravity")
|
player_monoids.gravity:add_change(player, 0, "cozy:gravity")
|
||||||
|
elseif has_pova then
|
||||||
|
pova.add_override(player_name, "force", {speed = 0, jump = 0, gravity = 0})
|
||||||
|
pova.do_override(player)
|
||||||
else
|
else
|
||||||
player:set_physics_override({speed = 0, jump = 0, gravity = 0})
|
player:set_physics_override({speed = 0, jump = 0, gravity = 0})
|
||||||
end
|
end
|
||||||
default.player_attached[player_name] = true
|
player_api.player_attached[player_name] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
local function unfreeze(player)
|
local function unfreeze(player)
|
||||||
|
@ -18,11 +22,14 @@ local function unfreeze(player)
|
||||||
player_monoids.speed:del_change(player, "cozy:speed")
|
player_monoids.speed:del_change(player, "cozy:speed")
|
||||||
player_monoids.jump:del_change(player, "cozy:jump")
|
player_monoids.jump:del_change(player, "cozy:jump")
|
||||||
player_monoids.gravity:del_change(player, "cozy:gravity")
|
player_monoids.gravity:del_change(player, "cozy:gravity")
|
||||||
|
elseif has_pova then
|
||||||
|
pova.del_override(player_name, "force")
|
||||||
|
pova.do_override(player)
|
||||||
else
|
else
|
||||||
player:set_physics_override({speed = 1, jump = 1, gravity = 1})
|
player:set_physics_override({speed = 1, jump = 1, gravity = 1})
|
||||||
end
|
end
|
||||||
default.player_attached[player_name] = nil
|
player_api.player_attached[player_name] = nil
|
||||||
default.player_set_animation(player, "stand", 30)
|
player_api.set_animation(player, "stand", 30)
|
||||||
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})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -32,7 +39,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
local player = players[i]
|
local player = players[i]
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local control = player:get_player_control()
|
local control = player:get_player_control()
|
||||||
if default.player_attached[name] and not player:get_attach() and (
|
if player_api.player_attached[name] and not player:get_attach() and (
|
||||||
control.up == true or
|
control.up == true or
|
||||||
control.down == true or
|
control.down == true or
|
||||||
control.left == true or
|
control.left == true or
|
||||||
|
@ -48,11 +55,11 @@ minetest.register_chatcommand("sit", {
|
||||||
description = "Sit down",
|
description = "Sit down",
|
||||||
func = function(name)
|
func = function(name)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if default.player_attached[name] then
|
if player_api.player_attached[name] then
|
||||||
unfreeze(player)
|
unfreeze(player)
|
||||||
else
|
else
|
||||||
freeze(player)
|
freeze(player)
|
||||||
default.player_set_animation(player, "sit", 30)
|
player_api.set_animation(player, "sit", 30)
|
||||||
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})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -62,13 +69,14 @@ minetest.register_chatcommand("lay", {
|
||||||
description = "Lay down",
|
description = "Lay down",
|
||||||
func = function(name)
|
func = function(name)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if default.player_attached[name] then
|
if player_api.player_attached[name] then
|
||||||
unfreeze(player)
|
unfreeze(player)
|
||||||
else
|
else
|
||||||
freeze(player)
|
freeze(player)
|
||||||
default.player_set_animation(player, "lay", 0)
|
player_api.set_animation(player, "lay", 0)
|
||||||
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})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.log("action", "[cozy] loaded.")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user