loose items on death
This commit is contained in:
parent
9ce845b570
commit
5b6daa54af
12
mods/bones/README.txt
Normal file
12
mods/bones/README.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Minetest Game mod: bones
|
||||||
|
========================
|
||||||
|
See license.txt for license information.
|
||||||
|
|
||||||
|
Authors of source code
|
||||||
|
----------------------
|
||||||
|
Originally by PilzAdam (MIT)
|
||||||
|
Various Minetest developers and contributors (MIT)
|
||||||
|
|
||||||
|
Authors of media (textures)
|
||||||
|
---------------------------
|
||||||
|
All textures: paramat (CC BY-SA 3.0)
|
311
mods/bones/init.lua
Normal file
311
mods/bones/init.lua
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
bones = {}
|
||||||
|
local S = minetest.get_translator("bones")
|
||||||
|
|
||||||
|
--this function is from default mod, just put copied and pasted it here because WLS doesn't use default mod
|
||||||
|
function bones.node_sound_gravel_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name = "default_gravel_footstep", gain = 0.1}
|
||||||
|
table.dig = table.dig or
|
||||||
|
{name = "default_gravel_dig", gain = 0.35}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name = "default_gravel_dug", gain = 1.0}
|
||||||
|
table.place = table.place or
|
||||||
|
{name = "default_place_node", gain = 1.0}
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
--this function is from default mod, just put copied and pasted it here because WLS doesn't use default mod
|
||||||
|
function bones.get_hotbar_bg(x,y)
|
||||||
|
local out = ""
|
||||||
|
for i=0,7,1 do
|
||||||
|
out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]"
|
||||||
|
end
|
||||||
|
return out
|
||||||
|
end
|
||||||
|
|
||||||
|
--this is the bones mod from mtg, just made it usable here cause why not :P --olliy--
|
||||||
|
|
||||||
|
local function is_owner(pos, name)
|
||||||
|
local owner = minetest.get_meta(pos):get_string("owner")
|
||||||
|
if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local bones_formspec =
|
||||||
|
"size[8,9]" ..
|
||||||
|
"list[current_name;main;0,0.3;8,4;]" ..
|
||||||
|
"list[current_player;main;0,4.85;8,1;]" ..
|
||||||
|
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||||
|
"listring[current_name;main]" ..
|
||||||
|
"listring[current_player;main]" ..
|
||||||
|
bones.get_hotbar_bg(0,4.85)
|
||||||
|
|
||||||
|
local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200
|
||||||
|
local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4
|
||||||
|
|
||||||
|
minetest.register_node("bones:bones", {
|
||||||
|
description = S("Bones"),
|
||||||
|
tiles = {
|
||||||
|
"bones_top.png^[transform2",
|
||||||
|
"bones_bottom.png",
|
||||||
|
"bones_side.png",
|
||||||
|
"bones_side.png",
|
||||||
|
"bones_rear.png",
|
||||||
|
"bones_front.png"
|
||||||
|
},
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {dig_immediate = 2},
|
||||||
|
sounds = bones.node_sound_gravel_defaults(),
|
||||||
|
|
||||||
|
can_dig = function(pos, player)
|
||||||
|
local inv = minetest.get_meta(pos):get_inventory()
|
||||||
|
local name = ""
|
||||||
|
if player then
|
||||||
|
name = player:get_player_name()
|
||||||
|
end
|
||||||
|
return is_owner(pos, name) and inv:is_empty("main")
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
if is_owner(pos, player:get_player_name()) then
|
||||||
|
return count
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
if is_owner(pos, player:get_player_name()) then
|
||||||
|
return stack:get_count()
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
if meta:get_inventory():is_empty("main") then
|
||||||
|
local inv = player:get_inventory()
|
||||||
|
if inv:room_for_item("main", {name = "bones:bones"}) then
|
||||||
|
inv:add_item("main", {name = "bones:bones"})
|
||||||
|
else
|
||||||
|
minetest.add_item(pos, "bones:bones")
|
||||||
|
end
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_punch = function(pos, node, player)
|
||||||
|
if not is_owner(pos, player:get_player_name()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_meta(pos):get_string("infotext") == "" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local inv = minetest.get_meta(pos):get_inventory()
|
||||||
|
local player_inv = player:get_inventory()
|
||||||
|
local has_space = true
|
||||||
|
|
||||||
|
for i = 1, inv:get_size("main") do
|
||||||
|
local stk = inv:get_stack("main", i)
|
||||||
|
if player_inv:room_for_item("main", stk) then
|
||||||
|
inv:set_stack("main", i, nil)
|
||||||
|
player_inv:add_item("main", stk)
|
||||||
|
else
|
||||||
|
has_space = false
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- remove bones if player emptied them
|
||||||
|
if has_space then
|
||||||
|
if player_inv:room_for_item("main", {name = "bones:bones"}) then
|
||||||
|
player_inv:add_item("main", {name = "bones:bones"})
|
||||||
|
else
|
||||||
|
minetest.add_item(pos,"bones:bones")
|
||||||
|
end
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local time = meta:get_int("time") + elapsed
|
||||||
|
if time >= share_bones_time then
|
||||||
|
meta:set_string("infotext", S("@1's old bones", meta:get_string("owner")))
|
||||||
|
meta:set_string("owner", "")
|
||||||
|
else
|
||||||
|
meta:set_int("time", time)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_blast = function(pos)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
local function may_replace(pos, player)
|
||||||
|
local node_name = minetest.get_node(pos).name
|
||||||
|
local node_definition = minetest.registered_nodes[node_name]
|
||||||
|
|
||||||
|
-- if the node is unknown, we return false
|
||||||
|
if not node_definition then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- allow replacing air
|
||||||
|
if node_name == "air" then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- don't replace nodes inside protections
|
||||||
|
if minetest.is_protected(pos, player:get_player_name()) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- allow replacing liquids
|
||||||
|
if node_definition.liquidtype ~= "none" then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- don't replace filled chests and other nodes that don't allow it
|
||||||
|
local can_dig_func = node_definition.can_dig
|
||||||
|
if can_dig_func and not can_dig_func(pos, player) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
|
||||||
|
-- flowers being squished by bones are more realistical than a squished stone, too
|
||||||
|
return node_definition.buildable_to
|
||||||
|
end
|
||||||
|
|
||||||
|
local drop = function(pos, itemstack)
|
||||||
|
local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
|
||||||
|
if obj then
|
||||||
|
obj:set_velocity({
|
||||||
|
x = math.random(-10, 10) / 9,
|
||||||
|
y = 5,
|
||||||
|
z = math.random(-10, 10) / 9,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local player_inventory_lists = { "main", "craft" }
|
||||||
|
bones.player_inventory_lists = player_inventory_lists
|
||||||
|
|
||||||
|
local function is_all_empty(player_inv)
|
||||||
|
for _, list_name in ipairs(player_inventory_lists) do
|
||||||
|
if not player_inv:is_empty(list_name) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_dieplayer(function(player)
|
||||||
|
|
||||||
|
local bones_mode = minetest.settings:get("bones_mode") or "bones"
|
||||||
|
if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
|
||||||
|
bones_mode = "bones"
|
||||||
|
end
|
||||||
|
|
||||||
|
local bones_position_message = minetest.settings:get_bool("bones_position_message") == true
|
||||||
|
local player_name = player:get_player_name()
|
||||||
|
local pos = vector.round(player:get_pos())
|
||||||
|
local pos_string = minetest.pos_to_string(pos)
|
||||||
|
|
||||||
|
-- return if keep inventory set or in creative mode
|
||||||
|
if bones_mode == "keep" or (creative and creative.is_enabled_for
|
||||||
|
and creative.is_enabled_for(player:get_player_name())) then
|
||||||
|
minetest.log("action", player_name .. " dies at " .. pos_string ..
|
||||||
|
". No bones placed")
|
||||||
|
if bones_position_message then
|
||||||
|
minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string))
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local player_inv = player:get_inventory()
|
||||||
|
if is_all_empty(player_inv) then
|
||||||
|
minetest.log("action", player_name .. " dies at " .. pos_string ..
|
||||||
|
". No bones placed")
|
||||||
|
if bones_position_message then
|
||||||
|
minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string))
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check if it's possible to place bones, if not find space near player
|
||||||
|
if bones_mode == "bones" and not may_replace(pos, player) then
|
||||||
|
local air = minetest.find_node_near(pos, 1, {"air"})
|
||||||
|
if air and not minetest.is_protected(air, player_name) then
|
||||||
|
pos = air
|
||||||
|
else
|
||||||
|
bones_mode = "drop"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if bones_mode == "drop" then
|
||||||
|
for _, list_name in ipairs(player_inventory_lists) do
|
||||||
|
for i = 1, player_inv:get_size(list_name) do
|
||||||
|
drop(pos, player_inv:get_stack(list_name, i))
|
||||||
|
end
|
||||||
|
player_inv:set_list(list_name, {})
|
||||||
|
end
|
||||||
|
drop(pos, ItemStack("bones:bones"))
|
||||||
|
minetest.log("action", player_name .. " dies at " .. pos_string ..
|
||||||
|
". Inventory dropped")
|
||||||
|
if bones_position_message then
|
||||||
|
minetest.chat_send_player(player_name, S("@1 died at @2, and dropped their inventory.", player_name, pos_string))
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
||||||
|
minetest.set_node(pos, {name = "bones:bones", param2 = param2})
|
||||||
|
|
||||||
|
minetest.log("action", player_name .. " dies at " .. pos_string ..
|
||||||
|
". Bones placed")
|
||||||
|
if bones_position_message then
|
||||||
|
minetest.chat_send_player(player_name, S("@1 died at @2, and bones were placed.", player_name, pos_string))
|
||||||
|
end
|
||||||
|
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("main", 8 * 4)
|
||||||
|
|
||||||
|
for _, list_name in ipairs(player_inventory_lists) do
|
||||||
|
for i = 1, player_inv:get_size(list_name) do
|
||||||
|
local stack = player_inv:get_stack(list_name, i)
|
||||||
|
if inv:room_for_item("main", stack) then
|
||||||
|
inv:add_item("main", stack)
|
||||||
|
else -- no space left
|
||||||
|
drop(pos, stack)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
player_inv:set_list(list_name, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
meta:set_string("formspec", bones_formspec)
|
||||||
|
meta:set_string("owner", player_name)
|
||||||
|
|
||||||
|
if share_bones_time ~= 0 then
|
||||||
|
meta:set_string("infotext", S("@1's fresh bones", player_name))
|
||||||
|
|
||||||
|
if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then
|
||||||
|
meta:set_int("time", 0)
|
||||||
|
else
|
||||||
|
meta:set_int("time", (share_bones_time - share_bones_time_early))
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.get_node_timer(pos):start(10)
|
||||||
|
else
|
||||||
|
meta:set_string("infotext", S("@1's bones", player_name))
|
||||||
|
end
|
||||||
|
end)
|
59
mods/bones/license.txt
Normal file
59
mods/bones/license.txt
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
License of source code
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (C) 2012-2016 PilzAdam
|
||||||
|
Copyright (C) 2012-2016 Various Minetest developers and contributors
|
||||||
|
Copyright (C) 2021 olliy
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||||
|
software and associated documentation files (the "Software"), to deal in the Software
|
||||||
|
without restriction, including without limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||||
|
persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
||||||
|
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||||
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more details:
|
||||||
|
https://opensource.org/licenses/MIT
|
||||||
|
|
||||||
|
|
||||||
|
Licenses of media (textures)
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||||
|
Copyright (C) 2016 paramat
|
||||||
|
|
||||||
|
You are free to:
|
||||||
|
Share — copy and redistribute the material in any medium or format.
|
||||||
|
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
||||||
|
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
||||||
|
|
||||||
|
Under the following terms:
|
||||||
|
|
||||||
|
Attribution — You must give appropriate credit, provide a link to the license, and
|
||||||
|
indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
||||||
|
that suggests the licensor endorses you or your use.
|
||||||
|
|
||||||
|
ShareAlike — If you remix, transform, or build upon the material, you must distribute
|
||||||
|
your contributions under the same license as the original.
|
||||||
|
|
||||||
|
No additional restrictions — You may not apply legal terms or technological measures that
|
||||||
|
legally restrict others from doing anything the license permits.
|
||||||
|
|
||||||
|
Notices:
|
||||||
|
|
||||||
|
You do not have to comply with the license for elements of the material in the public
|
||||||
|
domain or where your use is permitted by an applicable exception or limitation.
|
||||||
|
No warranties are given. The license may not give you all of the permissions necessary
|
||||||
|
for your intended use. For example, other rights such as publicity, privacy, or moral
|
||||||
|
rights may limit how you use the material.
|
||||||
|
|
8
mods/bones/locale/bones.de.tr
Normal file
8
mods/bones/locale/bones.de.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Knochen
|
||||||
|
@1's old bones=Alte Knochen von @1
|
||||||
|
@1 died at @2.=@1 starb bei @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 starb bei @2 und ließ das Inventar fallen.
|
||||||
|
@1 died at @2, and bones were placed.=@1 starb bei @2 und Knochen wurden platziert.
|
||||||
|
@1's fresh bones=Frische Knochen von @1
|
||||||
|
@1's bones=Knochen von @1
|
8
mods/bones/locale/bones.es.tr
Normal file
8
mods/bones/locale/bones.es.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Huesos
|
||||||
|
@1's old bones=Huesos antiguos de @1
|
||||||
|
@1 died at @2.=@1 murió en @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 murió en @2, y su inventario se desprendió.
|
||||||
|
@1 died at @2, and bones were placed.=@1 murió en @2, y sus huesos fueron depositados.
|
||||||
|
@1's fresh bones=Huesos recientes de @1
|
||||||
|
@1's bones=Huesos de @1
|
8
mods/bones/locale/bones.fr.tr
Normal file
8
mods/bones/locale/bones.fr.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Os
|
||||||
|
@1's old bones=Vieux os de @1
|
||||||
|
@1 died at @2.=@1 est mort à @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 est mort à @2 et a laissé tomber son inventaire.
|
||||||
|
@1 died at @2, and bones were placed.=@1 est mort à @2 et ses os ont été placés.
|
||||||
|
@1's fresh bones=Os frais de @1
|
||||||
|
@1's bones=Os de @1
|
8
mods/bones/locale/bones.id.tr
Normal file
8
mods/bones/locale/bones.id.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Tulang
|
||||||
|
@1's old bones=Tulang lama @1
|
||||||
|
@1 died at @2.=@1 mati di @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 mati di @2 dan meninggalkan barangnya.
|
||||||
|
@1 died at @2, and bones were placed.=@1 mati di @2 dan tulangnya diletakkan.
|
||||||
|
@1's fresh bones=Tulang segar @1
|
||||||
|
@1's bones=Tulang @1
|
8
mods/bones/locale/bones.it.tr
Normal file
8
mods/bones/locale/bones.it.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Ossa
|
||||||
|
@1's old bones=Ossa vecchie di @1
|
||||||
|
@1 died at @2.=@1 è morto alla posizione @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 è morto alla posizione @2, e ha lasciato a terra il contenuto del suo inventario.
|
||||||
|
@1 died at @2, and bones were placed.=@1 è morto alla posizione @2, e vi sono state posizionate delle ossa.
|
||||||
|
@1's fresh bones=Ossa fresche di @1
|
||||||
|
@1's bones=Ossa di @1
|
8
mods/bones/locale/bones.ms.tr
Normal file
8
mods/bones/locale/bones.ms.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Tulang
|
||||||
|
@1's old bones=Tulang lama @1
|
||||||
|
@1 died at @2.=@1 mati di @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 mati di @2, dan menjatuhkan inventorinya.
|
||||||
|
@1 died at @2, and bones were placed.=@1 mati di @2, dan tulang diletakkan.
|
||||||
|
@1's fresh bones=Tulang segar @1
|
||||||
|
@1's bones=Tulang @1
|
8
mods/bones/locale/bones.ru.tr
Normal file
8
mods/bones/locale/bones.ru.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Кости
|
||||||
|
@1's old bones=Старые кости @1
|
||||||
|
@1 died at @2.=@1 умер в @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 умер в @2 и потерял содержимое своего инвентаря.
|
||||||
|
@1 died at @2, and bones were placed.=@1 умер в @2, помещены кости.
|
||||||
|
@1's fresh bones=новые кости @1
|
||||||
|
@1's bones=кости @1
|
8
mods/bones/locale/bones.se.tr
Normal file
8
mods/bones/locale/bones.se.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Ben
|
||||||
|
@1's old bones=@1s Gamla ben
|
||||||
|
@1 died at @2.=@1 dog på @a.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 dog på @a, och tappade deras saker.
|
||||||
|
@1 died at @2, and bones were placed.=@1 dog på @2, och deras ben var placerade.
|
||||||
|
@1's fresh bones=@1s färska ben
|
||||||
|
@1's bones=@1s ben
|
8
mods/bones/locale/bones.sk.tr
Normal file
8
mods/bones/locale/bones.sk.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=Kosti
|
||||||
|
@1's old bones=Staré kosti hráča @1
|
||||||
|
@1 died at @2.=@1 zomrel na pozícií @2.
|
||||||
|
@1 died at @2, and dropped their inventory.=@1 zomrel na pozícií @2 a vysypal svoj inventár.
|
||||||
|
@1 died at @2, and bones were placed.=@1 zomrel na pozícií @2 a ostali po ňom kosti.
|
||||||
|
@1's fresh bones=Čerstvé kosti hráča @1
|
||||||
|
@1's bones=Kosti hráča @1
|
8
mods/bones/locale/bones.zh_CN.tr
Normal file
8
mods/bones/locale/bones.zh_CN.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=骨骸
|
||||||
|
@1's old bones=@1的旧骨骸
|
||||||
|
@1 died at @2.=@1在@2死亡。
|
||||||
|
@1 died at @2, and dropped their inventory.=@1在@2死亡,丢掉了物品栏。
|
||||||
|
@1 died at @2, and bones were placed.=@1在@2死亡,骨骸被放置。
|
||||||
|
@1's fresh bones=@1的新鲜骨骸
|
||||||
|
@1's bones=@1的骨骸
|
8
mods/bones/locale/bones.zh_TW.tr
Normal file
8
mods/bones/locale/bones.zh_TW.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=骨骸
|
||||||
|
@1's old bones=@1的舊骨骸
|
||||||
|
@1 died at @2.=@1在@2死亡。
|
||||||
|
@1 died at @2, and dropped their inventory.=@1在@2死亡,丟掉了物品欄。
|
||||||
|
@1 died at @2, and bones were placed.=@1在@2死亡,骨骸被放置。
|
||||||
|
@1's fresh bones=@1的新鮮骨骸
|
||||||
|
@1's bones=@1的骨骸
|
8
mods/bones/locale/template.txt
Normal file
8
mods/bones/locale/template.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: bones
|
||||||
|
Bones=
|
||||||
|
@1's old bones=
|
||||||
|
@1 died at @2.=
|
||||||
|
@1 died at @2, and dropped their inventory.=
|
||||||
|
@1 died at @2, and bones were placed.=
|
||||||
|
@1's fresh bones=
|
||||||
|
@1's bones=
|
2
mods/bones/mod.conf
Normal file
2
mods/bones/mod.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name = bones
|
||||||
|
description = Minetest Game mod: bones
|
BIN
mods/bones/sounds/default_gravel_dig.1.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_dig.1.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_dig.2.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_dig.2.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_dug.1.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_dug.1.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_dug.2.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_dug.2.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_dug.3.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_dug.3.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_footstep.1.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_footstep.1.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_footstep.2.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_footstep.2.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_footstep.3.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_footstep.3.ogg
Normal file
Binary file not shown.
BIN
mods/bones/sounds/default_gravel_footstep.4.ogg
Normal file
BIN
mods/bones/sounds/default_gravel_footstep.4.ogg
Normal file
Binary file not shown.
BIN
mods/bones/textures/bones_bottom.png
Normal file
BIN
mods/bones/textures/bones_bottom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 740 B |
BIN
mods/bones/textures/bones_front.png
Normal file
BIN
mods/bones/textures/bones_front.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 656 B |
BIN
mods/bones/textures/bones_rear.png
Normal file
BIN
mods/bones/textures/bones_rear.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 637 B |
BIN
mods/bones/textures/bones_side.png
Normal file
BIN
mods/bones/textures/bones_side.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 700 B |
BIN
mods/bones/textures/bones_top.png
Normal file
BIN
mods/bones/textures/bones_top.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 662 B |
Loading…
x
Reference in New Issue
Block a user