Compare commits
14 Commits
2022-05-02
...
master
Author | SHA1 | Date |
---|---|---|
Mikita Wiśniewski | 1f7ab3a8b6 | |
Mikita Wiśniewski | 8d1ae3cc8c | |
Mikita Wiśniewski | 25e3efc9ae | |
cora | d661bbc04b | |
Mikita Wiśniewski | 1927a1aabe | |
James Clarke | 626b12c0cb | |
James Clarke | 28bf2612fd | |
James Clarke | b39deed14d | |
Mikita Wiśniewski | ad33e6bc1e | |
syl | 82898f79e2 | |
Mikita Wiśniewski | fbf247d92e | |
Mikita Wiśniewski | 78ad6f1e6c | |
Mikita Wiśniewski | 0185f69567 | |
Mikita Wiśniewski | 04d7596b54 |
|
@ -0,0 +1,50 @@
|
||||||
|
unused_args = false
|
||||||
|
allow_defined_top = true
|
||||||
|
|
||||||
|
globals = {
|
||||||
|
"minetest","mcl_tmp_message","mcl_player"
|
||||||
|
}
|
||||||
|
|
||||||
|
read_globals = {
|
||||||
|
string = {fields = {"split"}},
|
||||||
|
table = {fields = {"copy", "getn"}},
|
||||||
|
-- My mod
|
||||||
|
"mcl_cozy",
|
||||||
|
|
||||||
|
-- Builtin
|
||||||
|
"vector", "ItemStack",
|
||||||
|
"dump", "DIR_DELIM", "VoxelArea", "Settings",
|
||||||
|
|
||||||
|
-- MTG
|
||||||
|
"default", "sfinv", "creative",
|
||||||
|
|
||||||
|
-- Mineclone
|
||||||
|
"mcl_loot", "tga_encoder", "mcl_util", "flowlib", "mcl_sounds", "mcl_autogroup",
|
||||||
|
"mcl_events", "biomeinfo", "mcl_damage", "mcl_particles", "mcl_worlds", "mcl_colors",
|
||||||
|
"mcl_explosions", "mcl_vars", "controls", "walkover", "mcl_meshhand", "mcl_fovapi",
|
||||||
|
"playerphysics", "mcl_hunger", "mcl_death_drop", "mcl_playerplus",
|
||||||
|
"mcl_gamemode", "mcl_spawn", "mcl_skins", "mcl_sprint", "mcl_playerinfo",
|
||||||
|
"mcl_item_id", "tt", "mcl_craftguide", "doc", "mcl_dripping",
|
||||||
|
"mcl_entity_invs", "mcl_item_entity", "mcl_burning",
|
||||||
|
"mcl_minecarts", "pillager", "mobs_mc", "sounds",
|
||||||
|
"textures", "mcl_mobs", "mcl_paintings",
|
||||||
|
"mcl_grindstone", "mcl_walls", "mcl_bamboo",
|
||||||
|
"mcl_maps", "mcl_clock", "mcl_end", "mcl_starting_inventory",
|
||||||
|
"mcl_bows", "mcl_bows_s", "mcl_dye", "mcl_copper",
|
||||||
|
"mcl_flowerpots", "mcl_furnaces", "mcl_farming",
|
||||||
|
"mcl_campfires", "mcl_crafting_table", "mcl_doors",
|
||||||
|
"mcl_jukebox", "screwdriver", "mcl_itemframes",
|
||||||
|
"mcl_heads", "mcl_beacons", "xpanes", "mcl_enchanting",
|
||||||
|
"mcl_beds", "mcl_throwing", "mcl_banners", "mcl_mobspawners",
|
||||||
|
"mcl_cocoas", "mcl_smithing_table", "mcl_flowers",
|
||||||
|
"mcl_core", "mcl_torches", "mcl_target", "mesecon", "mcl_observers",
|
||||||
|
"mcl_sculk", "mcl_armor", "mcl_lanterns", "mcl_stairs", "mcl_bells",
|
||||||
|
"mcl_hamburger", "mcl_signs", "mcl_honey", "mcl_stonecutter", "mcl_fire",
|
||||||
|
"mcl_compass", "mcl_ocean", "mcl_fences", "mcl_buckets", "mcl_potions",
|
||||||
|
"tnt", "mcl_cherry_blossom", "mcl_portals", "mcl_chests", "mcl_shields",
|
||||||
|
"mcl_wip", "mcl_raids", "mcl_moon", "lightning", "mcl_weather",
|
||||||
|
"mcl_formspec", "mcl_death_messages", "mcl_bossbars", "awards",
|
||||||
|
"mcl_inventory", "mcl_title", "mcl_offhand", "hb", "mcl_experience",
|
||||||
|
"mcl_info", "mcl_credits", "tsm_railcorridors", "mcl_mapgen_core",
|
||||||
|
"mcl_structures", "settlements", "mcl_dungeons", "mcl_colors_official"
|
||||||
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
# MineClone2 Get Comfortable
|
# MineClone2 Get Comfortable
|
||||||
Adds commands to /lay or /sit to the MineClone 2 (5) game
|
|
||||||
|
**Migrated, see <https://codeberg.org/rudzik8/mcl_cozy>**
|
||||||
|
|
||||||
|
[![ContentDB](https://content.minetest.net/packages/rudzik8/mcl_cozy/shields/downloads/)](https://content.minetest.net/packages/rudzik8/mcl_cozy/)
|
||||||
|
|
||||||
|
Adds commands to /lay or /sit to the MineClone 2/5/a game. Port of good old [cozy mod](https://forum.minetest.net/viewtopic.php?f=11&t=14143) (originally made for MTG by everamzah) to work with MCL properly and even provide some nice new features!
|
||||||
|
|
||||||
![Screenshot](screenshot.png)
|
![Screenshot](screenshot.png)
|
||||||
|
|
||||||
Port of [cozy mod](https://forum.minetest.net/viewtopic.php?f=11&t=14143) for Minetest Game by everamzah with some new features!
|
|
||||||
|
|
86
init.lua
86
init.lua
|
@ -1,20 +1,57 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
local mcl_cozy_print_actions = minetest.settings:get_bool("mcl_cozy_print_actions") ~= false
|
local mcl_cozy_print_actions = minetest.settings:get_bool("mcl_cozy_print_actions") ~= false
|
||||||
|
|
||||||
|
-- functions
|
||||||
|
local function print_action_sit(name)
|
||||||
|
if mcl_cozy_print_actions then
|
||||||
|
minetest.chat_send_all("* "..name..S(" sits"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local function print_action_lay(name)
|
||||||
|
if mcl_cozy_print_actions then
|
||||||
|
minetest.chat_send_all("* "..name..S(" lies"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local function print_action_stand(name)
|
||||||
|
if mcl_cozy_print_actions then
|
||||||
|
minetest.chat_send_all("* "..name..S(" stands up"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- to support both Mineclonia and MineClone 2/5
|
||||||
|
local function actionbar_show_status(player)
|
||||||
|
if minetest.get_modpath("mcl_title") then
|
||||||
|
mcl_title.set(player, "actionbar", {text=S("Move to stand up"), color="white", stay=60})
|
||||||
|
elseif minetest.get_modpath("mcl_tmp_message") then
|
||||||
|
mcl_tmp_message.message(player, S("Move to stand up"))
|
||||||
|
else
|
||||||
|
minetest.log("warning", "[mcl_cozy] Didn't found any mod to set titles in actionbar (mcl_title or mcl_tmp_message)!")
|
||||||
|
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 name = players[i]:get_player_name()
|
||||||
if mcl_player.player_attached[name] and not players[i]:get_attach() and
|
if mcl_player.player_attached[name] and not players[i]:get_attach() and
|
||||||
(players[i]:get_player_control().up == true or
|
(players[i]:get_player_control().up == true or
|
||||||
players[i]:get_player_control().down == true or
|
players[i]:get_player_control().down == true or
|
||||||
players[i]:get_player_control().left == true or
|
players[i]:get_player_control().left == true or
|
||||||
players[i]:get_player_control().right == true or
|
players[i]:get_player_control().right == true or
|
||||||
players[i]:get_player_control().jump == true) then
|
players[i]:get_player_control().jump == true or
|
||||||
|
players[i]:get_player_control().sneak == true) then
|
||||||
|
players[i]:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||||
|
playerphysics.remove_physics_factor(players[i], "speed", "mcl_cozy:attached")
|
||||||
|
playerphysics.remove_physics_factor(players[i], "jump", "mcl_cozy:attached")
|
||||||
|
mcl_player.player_attached[name] = false
|
||||||
|
mcl_player.player_set_animation(players[i], "stand", 30)
|
||||||
|
end
|
||||||
|
-- check the node below player (and if it's air, just unmount)
|
||||||
|
if minetest.get_node(vector.offset(players[i]:get_pos(),0,-1,0)).name == "air" 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)
|
playerphysics.remove_physics_factor(players[i], "speed", "mcl_cozy:attached")
|
||||||
|
playerphysics.remove_physics_factor(players[i], "jump", "mcl_cozy:attached")
|
||||||
mcl_player.player_attached[name] = false
|
mcl_player.player_attached[name] = false
|
||||||
mcl_player.player_set_animation(players[i], "stand", 30)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -23,23 +60,23 @@ minetest.register_chatcommand("sit", {
|
||||||
description = S("Sit down"),
|
description = S("Sit down"),
|
||||||
func = function(name)
|
func = function(name)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
|
-- check the node below player (and if it's air, just don't sit)
|
||||||
|
if minetest.get_node(vector.offset(player:get_pos(),0,-1,0)).name == "air" then return end
|
||||||
if mcl_player.player_attached[name] then
|
if mcl_player.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)
|
playerphysics.remove_physics_factor(player, "speed", "mcl_cozy:attached")
|
||||||
|
playerphysics.remove_physics_factor(player, "jump", "mcl_cozy:attached")
|
||||||
mcl_player.player_attached[name] = false
|
mcl_player.player_attached[name] = false
|
||||||
mcl_player.player_set_animation(player, "stand", 30)
|
mcl_player.player_set_animation(player, "stand", 30)
|
||||||
if mcl_cozy_print_status then
|
print_action_stand(name)
|
||||||
minetest.chat_send_all("* "..name..S(" stands up"))
|
|
||||||
end
|
|
||||||
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)
|
playerphysics.add_physics_factor(player, "speed", "mcl_cozy:attached", 0)
|
||||||
|
playerphysics.add_physics_factor(player, "jump", "mcl_cozy:attached", 0)
|
||||||
mcl_player.player_attached[name] = true
|
mcl_player.player_attached[name] = true
|
||||||
mcl_player.player_set_animation(player, "sit", 30)
|
mcl_player.player_set_animation(player, "sit", 30)
|
||||||
if mcl_cozy_print_actions then
|
print_action_sit(name)
|
||||||
minetest.chat_send_all("* "..name..S(" sits"))
|
actionbar_show_status(player)
|
||||||
end
|
|
||||||
mcl_title.set(player, "actionbar", {text=S("Move to stand up"), color="white", stay=60})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -48,23 +85,22 @@ minetest.register_chatcommand("lay", {
|
||||||
description = S("Lay down"),
|
description = S("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 minetest.get_node(vector.offset(player:get_pos(),0,-1,0)).name == "air" then return end
|
||||||
if mcl_player.player_attached[name] then
|
if mcl_player.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)
|
playerphysics.remove_physics_factor(player, "speed", "mcl_cozy:attached")
|
||||||
|
playerphysics.remove_physics_factor(player, "jump", "mcl_cozy:attached")
|
||||||
mcl_player.player_attached[name] = false
|
mcl_player.player_attached[name] = false
|
||||||
mcl_player.player_set_animation(player, "stand", 30)
|
mcl_player.player_set_animation(player, "stand", 30)
|
||||||
if mcl_cozy_print_actions then
|
print_action_stand(name)
|
||||||
minetest.chat_send_all("* "..name..S(" stands up"))
|
|
||||||
end
|
|
||||||
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)
|
playerphysics.add_physics_factor(player, "speed", "mcl_cozy:attached", 0)
|
||||||
|
playerphysics.add_physics_factor(player, "jump", "mcl_cozy:attached", 0)
|
||||||
mcl_player.player_attached[name] = true
|
mcl_player.player_attached[name] = true
|
||||||
mcl_player.player_set_animation(player, "lay", 0)
|
mcl_player.player_set_animation(player, "lay", 0)
|
||||||
if mcl_cozy_print_actions then
|
print_action_lay(name)
|
||||||
minetest.chat_send_all("* "..name..S(" lies"))
|
actionbar_show_status(player)
|
||||||
end
|
|
||||||
mcl_title.set(player, "actionbar", {text=S("Move to stand up"), color="white", stay=60})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
# textdomain: mcl_cozy
|
||||||
|
Sit down=S'assoir
|
||||||
|
Lay down=Se coucher
|
||||||
|
Move to stand up=Se déplacer pour se lever
|
||||||
|
sits= s'assoit
|
||||||
|
lies= se couche
|
||||||
|
stands up= se lève
|
4
mod.conf
4
mod.conf
|
@ -1,3 +1,5 @@
|
||||||
name = mcl_cozy
|
name = mcl_cozy
|
||||||
|
title = MineClone2 Get Comfortable
|
||||||
description = Sit and lay using chat commands
|
description = Sit and lay using chat commands
|
||||||
depends = mcl_player, mcl_title
|
depends = mcl_player, mcl_playerinfo, playerphysics
|
||||||
|
optional_depends = mcl_title, mcl_tmp_message
|
||||||
|
|
Reference in New Issue