Merge remote-tracking branch 'origin/master' into testing

This commit is contained in:
kay27 2022-02-19 00:14:44 +04:00
commit be76f372f3
28 changed files with 447 additions and 7 deletions

View File

@ -0,0 +1 @@
name = mcl_bubble_column

View File

@ -0,0 +1,2 @@
# textdomain:mcl_explosions
@1 was caught in an explosion.=@1 困于爆炸.

View File

@ -0,0 +1,12 @@
# textdomain: mcl_boats
Acacia Boat=金合欢木船
Birch Boat=白桦木船
Boat=船
Boats are used to travel on the surface of water.=船是用来在水面上航行的.
Dark Oak Boat=黑色橡木船
Jungle Boat=从林木船
Oak Boat=橡木船
Rightclick on a water source to place the boat. Rightclick the boat to enter it. Use [Left] and [Right] to steer, [Forwards] to speed up and [Backwards] to slow down or move backwards. Use [Sneak] to leave the boat, punch the boat to make it drop as an item.=右键单击水源以放置船。右键单击船进入。使用[左]和[右]转向,[前]加速,[后]减速或向后移动。使用[潜行]离开船,击打船使其作为物品掉落。
Spruce Boat=云杉船
Water vehicle=水上交通工具
Sneak to dismount=潜行以下船

View File

@ -0,0 +1,3 @@
# textdomain: mcl_falling_nodes
@1 was smashed by a falling anvil.=@1 被落下的铁砧砸碎了.
@1 was smashed by a falling block.=@1 被落下的方块砸碎了.

View File

@ -1,7 +0,0 @@
mcl_core
screwdriver
mcl_stairs
mclx_stairs
mcl_walls
mclx_fences
mcl_torches

View File

@ -1 +1,2 @@
name = mcl_blackstone name = mcl_blackstone
depends = mcl_core,screwdriver,mcl_stairs,mclx_stairs,mcl_walls,mclx_fences,mcl_torches

View File

@ -0,0 +1,339 @@
local S = minetest.get_translator(minetest.get_current_modname())
--
-- Composter mod, adds composters.
--
-- Copyleft 2022 by kabou
-- GNU General Public Licence 3.0
--
local composter_description = S(
"Composter"
)
local composter_longdesc = S(
"Composters can convert various organic items into bonemeal."
)
local composter_usagehelp = S(
"Use organic items on the composter to fill it with layers of compost. " ..
"Every time an item is put in the composter, there is a chance that the " ..
"composter adds another layer of compost. Some items have a bigger chance " ..
"of adding an extra layer than other items. After filling up with 7 layers " ..
"of compost, the composter is full and bone meal can be retrieved from it. " ..
"Taking out the bone meal empties the composter."
)
minetest.register_craft({
output = "mcl_composters:composter",
recipe = {
{"group:wood_slab", "", "group:wood_slab"},
{"group:wood_slab", "", "group:wood_slab"},
{"group:wood_slab", "group:wood_slab", "group:wood_slab"},
}
})
local compostability = {
["mcl_cake:cake"] = 100,
["mcl_farming:pumpkin_pie"] = 100,
["mcl_farming:potato_item_baked"] = 85,
["mcl_farming:bread"] = 85,
["mcl_farming:cookie"] = 85,
["mcl_farming:hay_block"] = 85,
-- mushroom cap block have 64 variants, wtf!?
["mcl_mushrooms:brown_mushroom_block_cap_111111"] = 85,
["mcl_mushrooms:red_mushroom_block_cap_111111"] = 85,
["mcl_nether:nether_wart_block"] = 85,
["mcl_mushroom:warped_wart_block"] = 85,
["mcl_core:apple"] = 65,
-- missing: azalea
["mcl_farming:beetroot_item"] = 65,
-- missing: big dripleaf
["mcl_farming:carrot_item"] = 65,
-- what's up with cocoa beans?
["mcl_dye:brown"] = 65,
["mcl_flowers:fern"] = 65,
["mcl_flowers:double_fern"] = 65,
["mcl_flowers:allium"] = 65,
["mcl_flowers:azure_bluet"] = 65,
["mcl_flowers:blue_orchid"] = 65,
["mcl_flowers:dandelion"] = 65,
["mcl_flowers:lilac"] = 65,
["mcl_flowers:oxeye_daisy"] = 65,
["mcl_flowers:poppy"] = 65,
["mcl_flowers:tulip_orange"] = 65,
["mcl_flowers:tulip_pink"] = 65,
["mcl_flowers:tulip_red"] = 65,
["mcl_flowers:tulip_white"] = 65,
["mcl_flowers:peony"] = 65,
["mcl_flowers:rose_bush"] = 65,
["mcl_flowers:sunflower"] = 65,
["mcl_flowers:waterlily"] = 65,
-- missing: melon block?
-- missing: moss block?
-- mushroom aliases below?
["mcl_farming:mushroom_brown"] = 65,
["mcl_mushrooms:mushroom_brown"] = 65,
["mcl_farming:mushroom_red"] = 65,
["mcl_mushrooms:mushroom_red"] = 65,
["mcl_mushrooms:brown_mushroom_block_stem_full"] = 65,
["mcl_mushrooms:red_mushroom_block_stem_full"] = 65,
-- nether wart
["mcl_farming:potato_item"] = 65,
["mcl_farming:pumpkin"] = 65,
["mcl_farming:pumpkin_face_light"] = 65,
["mcl_ocean:sea_pickle_"] = 65,
["mcl_mushroom:shroomlight"] = 65,
-- missing: spore blossom
["mcl_farming:wheat_item"] = 65,
["mcl_mushroom:crimson_fungus"] = 65,
["mcl_mushroom:warped_fungus"] = 65,
["mcl_mushroom:crimson_roots"] = 65,
["mcl_mushroom:warped_roots"] = 65,
["mcl_core:cactus"] = 50,
["mcl_ocean:dried_kelp_block"] = 50,
-- missing: flowering azalea leaves
-- missing: glow lichen
["mcl_farming:melon_item"] = 50,
["mcl_mushroom:nether_sprouts"] = 50,
["mcl_core:reeds"] = 50,
["mcl_flowers:double_grass"] = 50,
["mcl_core:vine"] = 50,
-- missing: weeping vines
["mcl_mushroom:twisting_vines"] = 50,
["mcl_flowers:tallgrass"] = 30,
["mcl_farming:beetroot_seeds"] = 30,
["mcl_core:dirt_with_grass"] = 30,
["mcl_core:tallgrass"] = 30,
["mcl_ocean:dried_kelp"] = 30,
["mcl_ocean:kelp"] = 30,
["mcl_core:leaves"] = 30,
["mcl_core:acacialeaves"] = 30,
["mcl_core:birchleaves"] = 30,
["mcl_core:darkleaves"] = 30,
["mcl_core:jungleleaves"] = 30,
["mcl_core:spruceleaves"] = 30,
--
["mcl_farming:melon_seeds"] = 30,
-- missing: moss carpet
["mcl_farming:pumpkin_seeds"] = 30,
["mcl_core:sapling"] = 30,
["mcl_core:acaciasapling"] = 30,
["mcl_core:birchsapling"] = 30,
["mcl_core:darksapling"] = 30,
["mcl_core:junglesapling"] = 30,
["mcl_core:spruceapling"] = 30,
["mcl_ocean:seagrass"] = 30,
-- missing: small dripleaf
["mcl_sweet_berry:sweet_berry"] = 30,
["mcl_farming:sweet_berry"] = 30,
["mcl_farming:wheat_seeds"] = 30,
}
local function composter_add_item(pos, node, player, itemstack, pointed_thing)
--
-- handle filling the composter when rightclicked
-- as an on_rightclick handles, it returns an itemstack
--
if not player or player:get_player_control().sneak then
return itemstack
end
if not itemstack and itemstack:is_empty() then
return itemstack
end
local itemname = itemstack:get_name()
local chance = compostability[itemname]
if chance then
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
-- calculate leveling up chance
local rand = math.random(0,100)
if chance >= rand then
-- get current compost level
local node_defs = minetest.registered_nodes[node.name]
local level = node_defs["_compost_level"]
-- spawn green particles above new layer
mcl_dye.add_bone_meal_particle(vector.add(pos, {x=0, y=level/8, z=0}))
-- TODO: play some sounds
-- update composter block
if level < 7 then
level = level + 1
else
level = "ready"
end
minetest.swap_node(pos, {name = "mcl_composters:composter_" .. level})
-- a full composter becomes ready for harvest after one second
-- the block will get updated by the node timer callback set in node reg def
if level == 7 then
local timer = minetest.get_node_timer(pos)
timer:start(1)
end
end
end
return itemstack
end
local function composter_ready(pos)
--
-- update the composter block to ready for harvesting
-- this function is a callback on_timer.
-- the timer is set in function 'composter_fill' when composter level is 7
-- returns false in order to cancel further activity of the timer
--
minetest.swap_node(pos, {name = "mcl_composters:composter_ready"})
-- maybe spawn particles again?
-- TODO: play some sounds
return false
end
local function composter_harvest(pos, node, player, itemstack, pointed_thing)
--
-- handle harvesting bone meal from a ready composter when rightclicked
--
if not player or player:get_player_control().sneak then
return
end
-- reset composter to empty
minetest.swap_node(pos, {name="mcl_composters:composter"})
-- spawn bone meal item (wtf dye?! is this how the make white cocoa)
minetest.add_item(pos, "mcl_dye:white")
-- TODO play some sounds
end
local function composter_get_nodeboxes(level)
--
-- Convenience function because the composter nodeboxes are very similar
--
local top_y_tbl = {[0]=-7, -5, -3, -1, 1, 3, 5, 7}
local top_y = top_y_tbl[level] / 16
return {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall
{ 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall
{-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall
{-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall
{-0.5, -0.5, -0.5, 0.5, top_y, 0.5}, -- Bottom level
}
}
end
local composter_wieldimg = minetest.inventorycube("mcl_composter_top.png", "mcl_composter_side.png", "mcl_composter_side.png")
--
-- Register empty composter
-- This is the base model that is craftable and can be placed in an inventory
--
minetest.register_node("mcl_composters:composter", {
description = composter_description,
_tt_help = S("Converts organic items into bonemeal"),
_doc_items_longdesc = composter_longdesc,
_doc_items_usagehelp = composter_usagehelp,
-- FIXME: mcl_composter_side.png is fugly. maybe somehow use minetest.inventorycube(img1, img2, img3)
-- eeeww, that is also ugly and weird
inventory_image = composter_wieldimg,
--inventory_image = "mcl_composter_side.png",
paramtype = "light",
drawtype = "nodebox",
node_box = composter_get_nodeboxes(0),
selection_box = {type = "regular"},
tiles = {
"mcl_composter_bottom.png^mcl_composter_top.png",
"mcl_composter_bottom.png",
"mcl_composter_side.png"
},
use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false,
is_ground_content = false,
groups = {
handy=1, material_wood=1, deco_block=1, dirtifier=1,
flammable=2, fire_encouragement=3, fire_flammability=4,
},
sounds = mcl_sounds.node_sound_wood_defaults(),
_mcl_hardness = 2,
_mcl_blast_resistance = 2,
_compost_level = 0,
on_rightclick = composter_add_item
})
--
-- Template function for composters with compost
-- For each fill level a custom node is registered
--
local function register_filled_composter(level)
local id = "mcl_composters:composter_"..level
minetest.register_node(id, {
description = S("Composter") .. " (" .. level .. "/7 " .. S("filled") .. ")",
_doc_items_create_entry = false,
paramtype = "light",
drawtype = "nodebox",
node_box = composter_get_nodeboxes(level),
selection_box = {type = "regular"},
tiles = {
"mcl_composter_compost.png^mcl_composter_top.png",
"mcl_composter_bottom.png",
"mcl_composter_side.png"
},
use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false,
is_ground_content = false,
groups = {
handy=1, material_wood=1, deco_block=1, dirtifier=1,
not_in_creative_inventory=1, not_in_craft_guide=1,
flammable=2, fire_encouragement=3, fire_flammability=4,
comparator_signal=level
},
sounds = mcl_sounds.node_sound_wood_defaults(),
drop = "mcl_composters:composter",
_mcl_hardness = 2,
_mcl_blast_resistance = 2,
_compost_level = level,
on_rightclick = composter_add_item,
on_timer = composter_ready
})
-- Add entry aliases for the Help
if minetest.get_modpath("doc") then
doc.add_entry_alias("nodes", "mcl_composters:composter", "nodes", id)
end
end
--
-- Register filled composters (7 levels)
--
for level = 1, 7 do
register_filled_composter(level)
end
--
-- Register composter ready to be harvested
--
minetest.register_node("mcl_composters:composter_ready", {
description = S("Composter") .. "(" .. S("ready for harvest") .. ")",
_doc_items_create_entry = false,
use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false,
paramtype = "light",
drawtype = "nodebox",
node_box = composter_get_nodeboxes(7),
selection_box = {type = "regular"},
tiles = {
"mcl_composter_ready.png^mcl_composter_top.png",
"mcl_composter_bottom.png",
"mcl_composter_side.png"
},
is_ground_content = false,
groups = {
handy=1, material_wood=1, deco_block=1, dirtifier=1,
not_in_creative_inventory=1, not_in_craft_guide=1,
flammable=2, fire_encouragement=3, fire_flammability=4,
comparator_signal=8
},
sounds = mcl_sounds.node_sound_wood_defaults(),
drop = "mcl_composters:composter",
_mcl_hardness = 2,
_mcl_blast_resistance = 2,
_compost_level = 7,
on_rightclick = composter_harvest
})

View File

@ -0,0 +1,7 @@
# textdomain: mcl_composters
Composter=
Composters can convert various organic items into bonemeal.=
Use organic items on the composter to fill it with layers of compost. Every time an item is put in the composter, there is a chance that the composter adds another layer of compost. Some items have a bigger chance of adding an extra layer than other items. After filling up with 7 layers of compost, the composter is full and bone meal can be retrieved from it. Taking out the bone meal empties the composter.=
filled=
ready for harvest=
Converts organic items into bonemeal=

View File

@ -0,0 +1,5 @@
name = mcl_composters
author = kabou
description = composters
depends = mcl_core, mcl_sounds
optional_depends = doc

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 759 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 800 B

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

After

Width:  |  Height:  |  Size: 567 B

View File

@ -0,0 +1,7 @@
# textdomain: mcl_structures
Generate a pre-defined structure near your position.=在你的位置附近生成一个预定的结构.
Structure placed.=结构被放置.
Village built. WARNING: Villages are experimental and might have bugs.=村庄建成了.警告村庄是实验性的可能有bug.
Error: No structure type given. Please use “/spawnstruct <type>”.=错误:没有给出结构类型。请使用 “/spawnstruct <type>”.
Error: Unknown structure type. Please use “/spawnstruct <type>”.=错误:未知结构类型。请使用 “/spawnstruct <type>”.
Use /help spawnstruct to see a list of avaiable types.= 使用 "/help spawnstruct "查看可用类型的列表.

View File

@ -0,0 +1,10 @@
# textdomain: findbiome
Find and teleport to biome=寻找以及传送至生物群系
<biome>=<生物群系>
No player.=没有玩家.
Biome does not exist!=生物群系不存在.
Biome found at @1.=生物群系在 @1 被找到
No biome found!=找不到生物群系.
List all biomes=生物群系列表信息
No biomes.=没有生物群系.
Not supported. The “biomeinfo” mod is required for v6 mapgen support!=不支持. 生物群系信息模组需要v6 地图生成构造器支持!

View File

@ -0,0 +1,26 @@
# textdomain: mcl_commands
Players can't be killed right now, damage has been disabled.=现在不能杀死玩家,由于互相伤害被禁止.
Player @1 does not exist.=玩家 @1 不存在
You are already dead=你已经死了
@1 is already dead=@1 已经死了
@1 committed suicide.=@1 尝试自杀
@1 was killed by @2.=@1 被 @2 杀了.
[<name>]=[<名字>]
Kill player or yourself=杀死其他玩家或者自己
Can use /say=可以使用 /say
<message>=<信息>
Send a message to every player=给每位玩家发消息
Invalid usage, see /help @1.=无效的使用,请查看 /help @1.
<X>,<Y>,<Z> <NodeString>=<X>,<Y>,<Z> <节点字符串>
Set node at given position=设置节点在所给的位置
Invalid node=无效的节点
@1 spawned.=@1 生成.
Invalid parameters (see /help setblock)=无效参数 (请查看 /help setblock)
List bans=被禁止的列表
Ban list: @1=禁止的列表: @1
Show who is logged on=显示谁已登录
Displays the world seed=显示世界生成种子
Only peaceful mobs allowed!=只允许和平的生物!
@1[<name>]=@1[<名字>]
Set game mode for player or yourself=为玩家或你自己设置游戏模式
Error: No game mode specified.=错误: 没有指定游戏模式.

View File

@ -0,0 +1,2 @@
# textdomain: mcl_privs
Can place and use advanced blocks like mob spawners, command blocks and barriers.=可以放置和使用高级块, 如怪物生成器、命令块和屏障.

View File

@ -0,0 +1,4 @@
# textdomain: mcl_wip
# WIP means “Work in Progress”
(WIP)=(半成品)
(Temporary)=(短暂的)

View File

@ -0,0 +1,8 @@
# textdomain: mcl_hunger
@1 succumbed to the poison.=@1 死于中毒.
Food=食物
Saturation=饱食度
%s: %.1f/%d=%s: %.1f/%d
Exhaust.=饥饿.
%s: %d/%d=%s: %d/%d
@1 starved to death.=@1 饿死了.

View File

@ -0,0 +1,3 @@
# textdomain: mcl_playerplus
@1 suffocated to death.=@1 窒息而死.
@1 was prickled to death by a cactus.=@1 被仙人掌刺死.

View File

@ -0,0 +1,13 @@
# textdomain: mcl_skins
[<player>] [<skin number>]=[<玩家>] [<皮肤编号>]
Select player skin of yourself or another player=选择你自己的玩家皮肤或者其他玩家皮肤
Insufficient or wrong parameters=参数不足或错误
Player @1 not online!=玩家 @1 不在线
You need the “server” privilege to change the skin of other players!=你需要“服务器”特权来改变其他玩家的皮肤!
Invalid skin number! Valid numbers: 0 to @1=无效的皮肤编号!有效数字: 0到 @1
Your skin has been set to: @1=您的皮肤已设置为: @1
Your skin has been set to: @1 (@2)=您的皮肤已设置为: @1 (@2)
Skin of @1 set to: @2 (@3)=@1 的皮肤 已经设置为: @2 (@3)
Select player skin:=选择你的玩家皮肤
@1 (@2)=@1 (@2)
Name: @1=名字: @1

View File

@ -0,0 +1,4 @@
# textdomain: mcl_spawn
New respawn position set!=设置了新的重生点
Respawn position cleared!=清除了重生点!
Your spawn bed was missing or blocked.=你的床已经丢失或者被阻挡。