forked from VoxeLibre/VoxeLibre
Compare commits
227 Commits
fix-has_ro
...
master
Author | SHA1 | Date |
---|---|---|
|
52a6583b46 | |
|
2ad59c6df9 | |
|
948da34755 | |
|
406e0e8169 | |
|
09aba760cf | |
|
a6136ad158 | |
|
77bcf6cff3 | |
|
293eb6d021 | |
|
1c5f7d05fe | |
|
f8fcd9954f | |
|
8b9666137d | |
|
b3087118fa | |
|
b79a19f4d6 | |
|
b0b5cc1265 | |
|
b237c4642d | |
|
49b2491b70 | |
|
0408f9c3d8 | |
|
cbafdfa585 | |
|
2312989503 | |
|
1471ad7181 | |
|
38d7609173 | |
|
5bce56cdd6 | |
|
7a05c32198 | |
|
ff386e395f | |
|
a687ef19f6 | |
|
c03f9abd18 | |
|
9657c9d8bb | |
|
95aadd40b9 | |
|
86e3446407 | |
|
ee4d1efaa5 | |
|
5e6e4967f0 | |
|
df60ec947d | |
|
02cb0818a1 | |
|
77382d930e | |
|
5e366a8916 | |
|
6c614d8376 | |
|
a785be59d9 | |
|
f23014005f | |
|
c2098d777f | |
|
dc07eea590 | |
|
3460e27468 | |
|
0012bdb71e | |
|
b8d7139792 | |
|
cddc1982be | |
|
9595b0df59 | |
|
ff21d1eab1 | |
|
9d5b46c28a | |
|
80a6a6efb0 | |
|
32148262e1 | |
|
567d112942 | |
|
347305eaea | |
|
508bc19f6a | |
|
c1e9e4b1a2 | |
|
7bf15642ca | |
|
f1fa6240bb | |
|
c5bc6ff189 | |
|
70e903b716 | |
|
209b24a2fb | |
|
ac05f8bad6 | |
|
76cff76d91 | |
|
49b6d09985 | |
|
a66c35a9ea | |
|
a28e55160f | |
|
6bbb6b8dec | |
|
b4b5bf8391 | |
|
16dd8694a6 | |
|
7a5ee4e6e2 | |
|
d0d9600709 | |
|
709b73295c | |
|
1d77017ca9 | |
|
d6d64d8837 | |
|
e771f0e3ff | |
|
b10bfe27ce | |
|
d5b3a6f658 | |
|
f7ee3b59d7 | |
|
1745b6d400 | |
|
8c4df33eb2 | |
|
8144bfb1bd | |
|
cf25fbb2e8 | |
|
70ae18622e | |
|
01c28c0a90 | |
|
c14bf3ae45 | |
|
4a717a32c2 | |
|
9d50595d3e | |
|
4b3cf0de47 | |
|
fb46317469 | |
|
dea15a46e8 | |
|
47dada6ed0 | |
|
b9648ebd7f | |
|
e0e79968b5 | |
|
76a251908d | |
|
b62590f756 | |
|
da73d06647 | |
|
12db14a4a9 | |
|
72a8edc75f | |
|
6880c6af41 | |
|
4ddcfb9ea7 | |
|
3f58636df1 | |
|
e5275dd803 | |
|
2d5c6f9003 | |
|
7478fcb401 | |
|
296c1595e2 | |
|
070e3cb309 | |
|
6b1df989bd | |
|
23cc3fe8a1 | |
|
9cc095e3f4 | |
|
b588101003 | |
|
496d68a6be | |
|
e7d17626fe | |
|
c7fd6cc6b8 | |
|
5cfb8c94d2 | |
|
a73814c058 | |
|
2f08b57a33 | |
|
979a3efebc | |
|
47a95731c8 | |
|
406692bea4 | |
|
d90b1ce083 | |
|
1f23ba110e | |
|
7d96414bf4 | |
|
22f8985499 | |
|
4988c58963 | |
|
6a9547e1d6 | |
|
047cf3f6d0 | |
|
e304ff27a7 | |
|
124f443a37 | |
|
9f44368c23 | |
|
f220cf554d | |
|
d4bd6ae6df | |
|
d48a17efd2 | |
|
3c16749905 | |
|
ae5b901518 | |
|
4da8b79e70 | |
|
20195da4f6 | |
|
443f857b8e | |
|
faf5f25252 | |
|
db78c2f782 | |
|
8f0199afea | |
|
8402c58c1b | |
|
1fb1f56219 | |
|
0cdd6928b7 | |
|
ef09977624 | |
|
a55af69303 | |
|
19cf62a48a | |
|
c9fe197342 | |
|
d9e3b7d069 | |
|
255596d5d4 | |
|
9775341479 | |
|
08e0e58952 | |
|
c3b4712368 | |
|
566cf9416f | |
|
5a468ca2af | |
|
b46939731e | |
|
469d4daa7b | |
|
b7c15fc624 | |
|
92ee23482c | |
|
6746f5b858 | |
|
56c4653d04 | |
|
c379e2139a | |
|
dc0ce1fa52 | |
|
e498bfbab4 | |
|
25988b617c | |
|
b45a614e2f | |
|
2483984ee1 | |
|
c5e26d2a94 | |
|
f0f904a3d7 | |
|
0b28ccbe36 | |
|
57241f66ed | |
|
6870aa9b3f | |
|
81dd76b401 | |
|
e03ab6086e | |
|
75569d975f | |
|
a3927dbd1a | |
|
94c97d02cc | |
|
454d9c9151 | |
|
368df584b3 | |
|
1d2bf48aa7 | |
|
df1282747c | |
|
7b5f8daf82 | |
|
2142681242 | |
|
ea0f6c85d8 | |
|
c5f675eccd | |
|
d65e7e9224 | |
|
f1403b32fd | |
|
c7f453c865 | |
|
7b81229392 | |
|
71c5bc38b6 | |
|
38c3294d51 | |
|
957df99bf8 | |
|
838604b514 | |
|
f70c11aea2 | |
|
c90bd38631 | |
|
5549ac48fd | |
|
4b1ea6ae57 | |
|
dca7f046eb | |
|
c7a7347377 | |
|
b9511a4251 | |
|
27a80e2bc8 | |
|
0b83b2f43a | |
|
7c4b2be413 | |
|
c18858b842 | |
|
e9eb0f3aa4 | |
|
aedf54410d | |
|
e058173e2a | |
|
d8a264139b | |
|
eacc6ef978 | |
|
5fc7b4c1af | |
|
77262b41c1 | |
|
370b2cef52 | |
|
60b9f6060f | |
|
e9cde4017d | |
|
58746ffb56 | |
|
45fbc64c06 | |
|
5068cf75a0 | |
|
eb154b1887 | |
|
f62c338bc5 | |
|
f269345869 | |
|
d19ac07ccc | |
|
c497d64cdc | |
|
9aab8be1e7 | |
|
7fe90b676a | |
|
1d5b2a5396 | |
|
6ff8a403f8 | |
|
98c69e8a25 | |
|
bb9ed4498b | |
|
94981d9c09 | |
|
7ae05d9c06 | |
|
177e8f4b9d |
3
LEGAL.md
3
LEGAL.md
|
@ -46,6 +46,9 @@ Armor trim models were created by Aeonix_Aeon
|
||||||
Source: <https://www.curseforge.com/minecraft/texture-packs/ozocraft-remix>
|
Source: <https://www.curseforge.com/minecraft/texture-packs/ozocraft-remix>
|
||||||
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
||||||
|
Charcoal block texture was created by [blitzdoughnuts](https://gitlab.com/ApplemunchFromDaDead), based on the Pixel Perfection coal block.
|
||||||
|
License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
The main menu images are released under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
The main menu images are released under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
|
||||||
All other files, unless mentioned otherwise, fall under:
|
All other files, unless mentioned otherwise, fall under:
|
||||||
|
|
|
@ -83,7 +83,7 @@ The VoxeLibre repository is hosted at Mesehub. To contribute or report issues, h
|
||||||
* Discord: <https://discord.gg/xE4z8EEpDC>
|
* Discord: <https://discord.gg/xE4z8EEpDC>
|
||||||
* YouTube: <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A>
|
* YouTube: <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A>
|
||||||
* ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/>
|
* ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/>
|
||||||
* OpenCollective: <https://opencollective.com/mineclone2>
|
* OpenCollective: <https://opencollective.com/voxelibre>
|
||||||
* Mastodon: <https://fosstodon.org/@VoxeLibre>
|
* Mastodon: <https://fosstodon.org/@VoxeLibre>
|
||||||
* Lemmy: <https://lemm.ee/c/voxelibre>
|
* Lemmy: <https://lemm.ee/c/voxelibre>
|
||||||
* Matrix space: <https://app.element.io/#/room/#voxelibre:matrix.org>
|
* Matrix space: <https://app.element.io/#/room/#voxelibre:matrix.org>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain:mcl_explosions
|
||||||
|
@1 was caught in an explosion.=@1 foi atrapado nunha explosión.
|
|
@ -0,0 +1,23 @@
|
||||||
|
# textdomain: mcl_boats
|
||||||
|
Acacia Boat=Barco de acacia
|
||||||
|
Birch Boat=Barco de bidueiro
|
||||||
|
Boat=Barco
|
||||||
|
Boats are used to travel on the surface of water.=Os barcos úsanse para viaxar pola superficie da auga.
|
||||||
|
Dark Oak Boat=Barco de carballo escuro
|
||||||
|
Jungle Boat=Barco da xungla
|
||||||
|
Oak Boat=Barco de carballo
|
||||||
|
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. Rightclick the boat again to leave it, punch the boat to make it drop as an item.=Fai clic co botón dereito nunha fonte de auga para colocar o barco. Fai clic co botón dereito no barco para entrar nel. Use [Esquerda] e [Dereita] para dirixir, [Adiante] para acelerar e [Atrás] para desacelerar ou retroceder. Usa [Sneak] para deixar o barco, golpea o barco para que caia como elemento.
|
||||||
|
Spruce Boat=Barco de abeto
|
||||||
|
Water vehicle=Vehículo acuático
|
||||||
|
Sneak to dismount=Agáchate para desmontar
|
||||||
|
Obsidian Boat=Barco de obsidiana
|
||||||
|
Mangrove Boat=Barco de mangle
|
||||||
|
Cherry Boat=Barco cereixa
|
||||||
|
Oak Chest Boat=Barco cofre de carballo
|
||||||
|
Spruce Chest Boat=Barco de cofre de abeto
|
||||||
|
Birch Chest Boat=Barco de cofre de bidueiro
|
||||||
|
Jungle Chest Boat=Barco cofre da xungla
|
||||||
|
Acacia Chest Boat=Barco cofre de acacia
|
||||||
|
Dark Oak Chest Boat=Barco de cofre de carballo escuro
|
||||||
|
Mangrove Chest Boat=Barco cofre de mangle
|
||||||
|
Cherry Chest Boat=Barco de cofre de cereixa
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: mcl_falling_nodes
|
||||||
|
@1 was smashed by a falling anvil.=@1 foi esnaquizado por unha yunque que caía.
|
||||||
|
@1 was smashed by a falling block.=@1 foi esnaquizado por un bloque que caía.
|
|
@ -136,6 +136,7 @@ local function try_object_pickup(player, inv, object, checkpos)
|
||||||
-- Destroy entity
|
-- Destroy entity
|
||||||
-- This just prevents this section to be run again because object:remove() doesn't remove the item immediately.
|
-- This just prevents this section to be run again because object:remove() doesn't remove the item immediately.
|
||||||
le.target = checkpos
|
le.target = checkpos
|
||||||
|
le.itemstring = ""
|
||||||
le._removed = true
|
le._removed = true
|
||||||
|
|
||||||
-- Stop the object
|
-- Stop the object
|
||||||
|
@ -957,6 +958,7 @@ minetest.register_entity(":__builtin:item", {
|
||||||
self.random_velocity = 0
|
self.random_velocity = 0
|
||||||
self:set_item(own_stack:to_string())
|
self:set_item(own_stack:to_string())
|
||||||
|
|
||||||
|
entity.itemstring = ""
|
||||||
entity._removed = true
|
entity._removed = true
|
||||||
object:remove()
|
object:remove()
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
# textdomain: mcl_minecarts
|
||||||
|
Minecart=Vagoneta
|
||||||
|
Minecarts can be used for a quick transportion on rails.=As vagonetas pódense usar para un transporte rápido sobre carrís.
|
||||||
|
Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type.=Las vagonetas só circulan sobre carrís e seguen sempre as pistas. Nun cruce en T sen camiño recto, xiran á esquerda. A velocidade vese afectada polo tipo de carril.
|
||||||
|
You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Podes colocar a vagoneta sobre carrís. Fai clic co botón dereito nel para ingresalo. Golpea para que se mova.
|
||||||
|
To obtain the minecart, punch it while holding down the sneak key.=Para obter a vagoneta, golpeao mentres mantés premida a tecla furtiva.
|
||||||
|
Minecart with Chest=Vagoneta con cofre
|
||||||
|
Minecart with Furnace=Vagoneta con forno
|
||||||
|
Minecart with Command Block=Vagoneta con bloque de comandos
|
||||||
|
Minecart with Hopper=Vagoneta con tolva
|
||||||
|
Minecart with TNT=Vagoneta con dinamita
|
||||||
|
Place it on rails. Punch it to move it. The TNT is ignited with a flint and steel or when the minecart is on an powered activator rail.=Colócalo en raíles. Golpea para movelo. A dinamita encéndese cun pedernal e aceiro ou cando a vagoneta está nun carril activador motorizado.
|
||||||
|
To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.=Para obter a vagoneta e a dinamita, pégueos mentres mantén premida a tecla furtiva. Non podes facelo se a dinamita estaba acendido.
|
||||||
|
A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.=Unha vagoneta con forno é un vehículo que circula sobre carrís. Pode impulsarse con combustible.
|
||||||
|
Place it on rails. If you give it some coal, the furnace will start burning for a long time and the minecart will be able to move itself. Punch it to get it moving.=Colócalo en raíles. Se lle dás algo de carbón, o forno comezará a arder durante moito tempo e a vagoneta poderá moverse por si mesmo. Golpea para que se mova.
|
||||||
|
To obtain the minecart and furnace, punch them while holding down the sneak key.=Para obter a vagoneta e o forno, pécheos mentres mantén premida a tecla furtiva.
|
||||||
|
Minecart with Chest=Vagoneta con cofre
|
||||||
|
Minecart with Furnace=Vagoneta con forno
|
||||||
|
Minecart with Command Block=Vagoneta con bloque de comandos
|
||||||
|
Minecart with Hopper=Vagoneta con tolva
|
||||||
|
Minecart with TNT=Vagoneta con dinamita
|
||||||
|
Place them on the ground to build your railway, the rails will automatically connect to each other and will turn into curves, T-junctions, crossings and slopes as needed.=Colócaos no chan para construír o teu ferrocarril, os carrís conectaranse automaticamente entre si e converteranse en curvas, cruces en T, cruces e pendentes segundo sexa necesario.
|
||||||
|
Rail=Carril
|
||||||
|
Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction.=Os carrís pódense usar para construír vías de transporte para carros de minas. Os carrís normais ralentizan lixeiramente os carros de minas debido á fricción.
|
||||||
|
Powered Rail=Carril propulsor
|
||||||
|
Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts.=Os carrís pódense usar para construír vías de transporte para carros de minas. Os carrís motorizados son capaces de acelerar e frear os carros de minas.
|
||||||
|
Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power.=Sen enerxía Pedra Vermella, o carril freará as vagonetas. Para que este carril acelere os carros de minas, aliméntalo con enerxía Pedra Vermella.
|
||||||
|
Activator Rail=Carril activador
|
||||||
|
Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts.=Os carrís pódense usar para construír vías de transporte para carros de minas. Os carrís activadores utilízanse para activar vagonetas especiais.
|
||||||
|
To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail.=Para que este carril active os carros de minas, enciéndao con enerxía Redstone e envía unha vagoneta sobre este anaco de carril.
|
||||||
|
Detector Rail=Carril detector
|
||||||
|
Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms.=Os carrís pódense usar para construír vías de transporte para carros de minas. Un carril detector é capaz de detectar a vagpneta enriba dela e alimenta os mecanismos de pedra vermella.
|
||||||
|
To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Para detectar unha vagoneta e proporcionar enerxía de pedra vermella, conéctao a pistas de pedra vermella ou mecanismos de pedra vermella e envía calquera vagoneta sobre o carril.
|
||||||
|
Track for minecarts=Pista para carros de mina
|
||||||
|
Speed up when powered, slow down when not powered=Acelera cando está alimentado, reduce a velocidade cando non está alimentado
|
||||||
|
Activates minecarts when powered=Activa os minecarts cando se alimenta
|
||||||
|
Emits redstone power when a minecart is detected=Emite poder de pedra vermella cando se detecta unha vagoneta
|
||||||
|
Vehicle for fast travel on rails=Vehículo para desprazamentos rápidos sobre carrís
|
||||||
|
Can be ignited by tools or powered activator rail=Pódese acender con ferramentas ou carril activador eléctrico
|
||||||
|
Sneak to dismount=Coarse para desmontar
|
|
@ -18,7 +18,7 @@ mcl_mobs.invis = {}
|
||||||
local remove_far = true
|
local remove_far = true
|
||||||
|
|
||||||
local mobs_debug = minetest.settings:get_bool("mobs_debug", false) -- Shows helpful debug info above each mob
|
local mobs_debug = minetest.settings:get_bool("mobs_debug", false) -- Shows helpful debug info above each mob
|
||||||
local spawn_logging = minetest.settings:get_bool("mcl_logging_mobs_spawn",true)
|
local spawn_logging = minetest.settings:get_bool("mcl_logging_mobs_spawn", false)
|
||||||
|
|
||||||
local MAPGEN_LIMIT = mcl_vars.mapgen_limit
|
local MAPGEN_LIMIT = mcl_vars.mapgen_limit
|
||||||
local MAPGEN_MOB_LIMIT = MAPGEN_LIMIT - 90
|
local MAPGEN_MOB_LIMIT = MAPGEN_LIMIT - 90
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# textdomain: mcl_mobs
|
||||||
|
Peaceful mode active! No monsters will spawn.=¡Modo tranquilo activo! Non aparecerá ningún monstro.
|
||||||
|
This allows you to place a single mob.=Isto permítelle colocar un único mob.
|
||||||
|
Just place it where you want the mob to appear. Animals will spawn tamed, unless you hold down the sneak key while placing. If you place this on a mob spawner, you change the mob it spawns.=Simplemente colócao onde queres que apareza o inimigo. Os animais aparecerán domesticados, a menos que manteñas premida a tecla furtiva mentres o colocas. Se colocas isto nun xerador de mob, cambias o mob que xera.
|
||||||
|
You need the “maphack” privilege to change the mob spawner.=Precisas o privilexio "maphack" para cambiar o xerador de mob.
|
||||||
|
Name Tag=Etiqueta
|
||||||
|
A name tag is an item to name a mob.=Unha etiqueta de nome é un elemento para nomear un inimigo.
|
||||||
|
Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag.=Antes de usar a etiqueta de nome, cómpre establecer un nome nun zafra. Despois podes usar a etiqueta de nome para nomear unha multitude. Isto usa a etiqueta de nome.
|
||||||
|
Only peaceful mobs allowed!=¡Só se permiten mobs pacíficos!!
|
||||||
|
Give names to mobs=Dálle nomes aos mobs
|
||||||
|
Set name at anvil=Establecer o nome na zafra
|
||||||
|
Removes specified mobs except nametagged and tamed ones. For the second parameter, use nametagged/tamed to select only nametagged/tamed mobs, or a range to specify a maximum distance from the player.=Elimina as turbas especificadas, excepto as con nome e as domesticadas. Para o segundo parámetro, use nametagged/tamed para seleccionar só mobs nametagged/tamed, ou un intervalo para especificar unha distancia máxima do xogador.
|
||||||
|
Default usage. Clearing hostile mobs. For more options please type: /help clearmobs=Uso predeterminado. Eliminando turbas hostís. Para obter máis opcións, escriba: /help clearmobs
|
|
@ -258,6 +258,18 @@ function mcl_mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Stop!
|
||||||
|
local s = get_sign(entity.v)
|
||||||
|
|
||||||
|
entity.v = entity.v - 0.02 * s
|
||||||
|
|
||||||
|
if s ~= get_sign(entity.v) then
|
||||||
|
|
||||||
|
entity.object:set_velocity({x = 0, y = 0, z = 0})
|
||||||
|
entity.v = 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- if not moving then set animation and return
|
-- if not moving then set animation and return
|
||||||
if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
|
if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
|
||||||
|
|
||||||
|
@ -273,18 +285,6 @@ function mcl_mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
mcl_mobs:set_animation(entity, moving_anim)
|
mcl_mobs:set_animation(entity, moving_anim)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Stop!
|
|
||||||
local s = get_sign(entity.v)
|
|
||||||
|
|
||||||
entity.v = entity.v - 0.02 * s
|
|
||||||
|
|
||||||
if s ~= get_sign(entity.v) then
|
|
||||||
|
|
||||||
entity.object:set_velocity({x = 0, y = 0, z = 0})
|
|
||||||
entity.v = 0
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enforce speed limit forward and reverse
|
-- enforce speed limit forward and reverse
|
||||||
local max_spd = entity.max_speed_reverse
|
local max_spd = entity.max_speed_reverse
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,13 @@ local mt_get_biome_name = minetest.get_biome_name
|
||||||
local get_objects_inside_radius = minetest.get_objects_inside_radius
|
local get_objects_inside_radius = minetest.get_objects_inside_radius
|
||||||
local get_connected_players = minetest.get_connected_players
|
local get_connected_players = minetest.get_connected_players
|
||||||
|
|
||||||
|
local math_min = math.min
|
||||||
|
local math_max = math.max
|
||||||
local math_random = math.random
|
local math_random = math.random
|
||||||
local math_floor = math.floor
|
local math_floor = math.floor
|
||||||
local math_ceil = math.ceil
|
local math_ceil = math.ceil
|
||||||
local math_cos = math.cos
|
local math_cos = math.cos
|
||||||
local math_sin = math.sin
|
local math_sin = math.sin
|
||||||
local math_round = function(x) return (x > 0) and math_floor(x + 0.5) or math_ceil(x - 0.5) end
|
|
||||||
local math_sqrt = math.sqrt
|
local math_sqrt = math.sqrt
|
||||||
|
|
||||||
local vector_distance = vector.distance
|
local vector_distance = vector.distance
|
||||||
|
@ -33,9 +34,9 @@ local table_copy = table.copy
|
||||||
local table_remove = table.remove
|
local table_remove = table.remove
|
||||||
local pairs = pairs
|
local pairs = pairs
|
||||||
|
|
||||||
local LOGGING_ON = minetest.settings:get_bool("mcl_logging_mobs_spawning", false)
|
local logging = minetest.settings:get_bool("mcl_logging_mobs_spawn", false)
|
||||||
local function mcl_log (message, property)
|
local function mcl_log (message, property)
|
||||||
if LOGGING_ON then
|
if logging then
|
||||||
if property then
|
if property then
|
||||||
message = message .. ": " .. dump(property)
|
message = message .. ": " .. dump(property)
|
||||||
end
|
end
|
||||||
|
@ -54,8 +55,10 @@ local FIND_SPAWN_POS_RETRIES = 16
|
||||||
local FIND_SPAWN_POS_RETRIES_SUCCESS_RESPIN = 8
|
local FIND_SPAWN_POS_RETRIES_SUCCESS_RESPIN = 8
|
||||||
|
|
||||||
local MOB_SPAWN_ZONE_INNER = 24
|
local MOB_SPAWN_ZONE_INNER = 24
|
||||||
|
local MOB_SPAWN_ZONE_INNER_SQ = MOB_SPAWN_ZONE_INNER^2 -- squared
|
||||||
local MOB_SPAWN_ZONE_MIDDLE = 32
|
local MOB_SPAWN_ZONE_MIDDLE = 32
|
||||||
local MOB_SPAWN_ZONE_OUTER = 128
|
local MOB_SPAWN_ZONE_OUTER = 128
|
||||||
|
local MOB_SPAWN_ZONE_OUTER_SQ = MOB_SPAWN_ZONE_OUTER^2 -- squared
|
||||||
|
|
||||||
-- range for mob count
|
-- range for mob count
|
||||||
local MOB_CAP_INNER_RADIUS = 32
|
local MOB_CAP_INNER_RADIUS = 32
|
||||||
|
@ -95,7 +98,6 @@ mcl_log("Percentage of hostile spawns are group: " .. hostile_group_percentage_s
|
||||||
--do mobs spawn?
|
--do mobs spawn?
|
||||||
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
|
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
|
||||||
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
|
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
|
||||||
local logging = minetest.settings:get_bool("mcl_logging_mobs_spawn",true)
|
|
||||||
|
|
||||||
-- THIS IS THE BIG LIST OF ALL BIOMES - used for programming/updating mobs
|
-- THIS IS THE BIG LIST OF ALL BIOMES - used for programming/updating mobs
|
||||||
-- Also used for missing parameter
|
-- Also used for missing parameter
|
||||||
|
@ -601,71 +603,40 @@ function mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_
|
||||||
spawn_dictionary[key]["check_position"] = check_position
|
spawn_dictionary[key]["check_position"] = check_position
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Calculate the inverse of a piecewise linear function f(x). Line segments are represented as two
|
|
||||||
-- adjacent points specified as { x, f(x) }. At least 2 points are required. If there are most solutions,
|
|
||||||
-- the one with a lower x value will be chosen.
|
|
||||||
local function inverse_pwl(fx, f)
|
|
||||||
if fx < f[1][2] then
|
|
||||||
return f[1][1]
|
|
||||||
end
|
|
||||||
|
|
||||||
for i=2,#f do
|
|
||||||
local x0,fx0 = unpack(f[i-1])
|
|
||||||
local x1,fx1 = unpack(f[i ])
|
|
||||||
if fx < fx1 then
|
|
||||||
return (fx - fx0) * (x1 - x0) / (fx1 - fx0) + x0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return f[#f][1]
|
|
||||||
end
|
|
||||||
|
|
||||||
local SPAWN_DISTANCE_CDF_PWL = {
|
|
||||||
{0.000,0.00},
|
|
||||||
{0.083,0.40},
|
|
||||||
{0.416,0.75},
|
|
||||||
{1.000,1.00},
|
|
||||||
}
|
|
||||||
|
|
||||||
local two_pi = 2 * math.pi
|
|
||||||
local function get_next_mob_spawn_pos(pos)
|
local function get_next_mob_spawn_pos(pos)
|
||||||
-- Select a distance such that distances closer to the player are selected much more often than
|
-- Select a distance such that distances closer to the player are selected much more often than
|
||||||
-- those further away from the player.
|
-- those further away from the player. This does produce a concentration at INNER (24 blocks)
|
||||||
local fx = (math_random(1,10000)-1) / 10000
|
local distance = math_random()^2 * (MOB_SPAWN_ZONE_OUTER - MOB_SPAWN_ZONE_INNER) + MOB_SPAWN_ZONE_INNER
|
||||||
local x = inverse_pwl(fx, SPAWN_DISTANCE_CDF_PWL)
|
|
||||||
local distance = x * (MOB_SPAWN_ZONE_OUTER - MOB_SPAWN_ZONE_INNER) + MOB_SPAWN_ZONE_INNER
|
|
||||||
--print("Using spawn distance of "..tostring(distance).." fx="..tostring(fx)..",x="..tostring(x))
|
--print("Using spawn distance of "..tostring(distance).." fx="..tostring(fx)..",x="..tostring(x))
|
||||||
|
|
||||||
-- TODO Floor xoff and zoff and add 0.5 so it tries to spawn in the middle of the square. Less failed attempts.
|
-- Choose a random direction. Rejection sampling is simple and fast (1-2 tries usually)
|
||||||
-- Use spherical coordinates https://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
|
local xoff, yoff, zoff, dd
|
||||||
local theta = math_random() * two_pi
|
repeat
|
||||||
local phi = math_random() * two_pi
|
xoff, yoff, zoff = math_random() * 2 - 1, math_random() * 2 - 1, math_random() * 2 - 1
|
||||||
local xoff = math_round(distance * math_sin(theta) * math_cos(phi))
|
dd = xoff*xoff + yoff*yoff + zoff*zoff
|
||||||
local yoff = math_round(distance * math_cos(theta))
|
until (dd <= 1 and dd >= 1e-6) -- outside of uniform ball, retry
|
||||||
local zoff = math_round(distance * math_sin(theta) * math_sin(phi))
|
dd = distance / math_sqrt(dd) -- distance scaling factor
|
||||||
|
xoff, yoff, zoff = xoff * dd, yoff * dd, zoff * dd
|
||||||
local goal_pos = vector.offset(pos, xoff, yoff, zoff)
|
local goal_pos = vector.offset(pos, xoff, yoff, zoff)
|
||||||
|
|
||||||
if not ( math.abs(goal_pos.x) <= SPAWN_MAPGEN_LIMIT and math.abs(pos.y) <= SPAWN_MAPGEN_LIMIT and math.abs(goal_pos.z) <= SPAWN_MAPGEN_LIMIT ) then
|
if not ( math.abs(goal_pos.x) <= SPAWN_MAPGEN_LIMIT and math.abs(goal_pos.y) <= SPAWN_MAPGEN_LIMIT and math.abs(goal_pos.z) <= SPAWN_MAPGEN_LIMIT ) then
|
||||||
mcl_log("Pos outside mapgen limits: " .. minetest.pos_to_string(goal_pos))
|
mcl_log("Pos outside mapgen limits: " .. minetest.pos_to_string(goal_pos))
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Calculate upper/lower y limits
|
-- Calculate upper/lower y limits
|
||||||
local R1 = MOB_SPAWN_ZONE_OUTER
|
local d2 = xoff*xoff + zoff*zoff -- squared distance in x,z plane only
|
||||||
local d = vector_distance( pos, vector.new( goal_pos.x, pos.y, goal_pos.z ) ) -- distance from player to projected point on horizontal plane
|
local y1 = math_sqrt( MOB_SPAWN_ZONE_OUTER_SQ - d2 ) -- absolue value of distance to outer sphere
|
||||||
local y1 = math_sqrt( R1*R1 - d*d ) -- absolue value of distance to outer sphere
|
|
||||||
|
|
||||||
local y_min
|
local y_min, y_max
|
||||||
local y_max
|
if d2 >= MOB_SPAWN_ZONE_INNER_SQ then
|
||||||
if d >= MOB_SPAWN_ZONE_INNER then
|
|
||||||
-- Outer region, y range has both ends on the outer sphere
|
-- Outer region, y range has both ends on the outer sphere
|
||||||
y_min = pos.y - y1
|
y_min = pos.y - y1
|
||||||
y_max = pos.y + y1
|
y_max = pos.y + y1
|
||||||
else
|
else
|
||||||
-- Inner region, y range spans between inner and outer spheres
|
-- Inner region, y range spans between inner and outer spheres
|
||||||
local R2 = MOB_SPAWN_ZONE_INNER
|
local y2 = math_sqrt( MOB_SPAWN_ZONE_INNER_SQ - d2 )
|
||||||
local y2 = math_sqrt( R2*R2 - d*d )
|
if goal_pos.y > pos.y then
|
||||||
if goal_pos.y > pos. y then
|
|
||||||
-- Upper hemisphere
|
-- Upper hemisphere
|
||||||
y_min = pos.y + y2
|
y_min = pos.y + y2
|
||||||
y_max = pos.y + y1
|
y_max = pos.y + y1
|
||||||
|
@ -675,16 +646,9 @@ local function get_next_mob_spawn_pos(pos)
|
||||||
y_max = pos.y - y2
|
y_max = pos.y - y2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
y_min = math_round(y_min)
|
|
||||||
y_max = math_round(y_max)
|
|
||||||
|
|
||||||
-- Limit total range of check to 32 nodes (maximum of 3 map blocks)
|
-- Limit total range of check to 32 nodes (maximum of 3 map blocks)
|
||||||
if y_max > goal_pos.y + 16 then
|
y_min = math_max(math_floor(y_min), goal_pos.y - 16)
|
||||||
y_max = goal_pos.y + 16
|
y_max = math_min(math_ceil(y_max), goal_pos.y + 16)
|
||||||
end
|
|
||||||
if y_min < goal_pos.y - 16 then
|
|
||||||
y_min = goal_pos.y - 16
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Ask engine for valid spawn locations
|
-- Ask engine for valid spawn locations
|
||||||
local spawning_position_list = find_nodes_in_area_under_air(
|
local spawning_position_list = find_nodes_in_area_under_air(
|
||||||
|
@ -997,7 +961,7 @@ if mobs_spawn then
|
||||||
mob_total_wide = 0
|
mob_total_wide = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
local cap_space_wide = math.max(type_cap - mob_total_wide, 0)
|
local cap_space_wide = math_max(type_cap - mob_total_wide, 0)
|
||||||
|
|
||||||
mcl_log("mob_type", mob_type)
|
mcl_log("mob_type", mob_type)
|
||||||
mcl_log("cap_space_wide", cap_space_wide)
|
mcl_log("cap_space_wide", cap_space_wide)
|
||||||
|
@ -1005,10 +969,10 @@ if mobs_spawn then
|
||||||
local cap_space_available = 0
|
local cap_space_available = 0
|
||||||
if mob_type == "hostile" then
|
if mob_type == "hostile" then
|
||||||
mcl_log("cap_space_global", cap_space_hostile)
|
mcl_log("cap_space_global", cap_space_hostile)
|
||||||
cap_space_available = math.min(cap_space_hostile, cap_space_wide)
|
cap_space_available = math_min(cap_space_hostile, cap_space_wide)
|
||||||
else
|
else
|
||||||
mcl_log("cap_space_global", cap_space_non_hostile)
|
mcl_log("cap_space_global", cap_space_non_hostile)
|
||||||
cap_space_available = math.min(cap_space_non_hostile, cap_space_wide)
|
cap_space_available = math_min(cap_space_non_hostile, cap_space_wide)
|
||||||
end
|
end
|
||||||
|
|
||||||
local mob_total_close = mob_counts_close[mob_type]
|
local mob_total_close = mob_counts_close[mob_type]
|
||||||
|
@ -1017,8 +981,8 @@ if mobs_spawn then
|
||||||
mob_total_close = 0
|
mob_total_close = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
local cap_space_close = math.max(close_zone_cap - mob_total_close, 0)
|
local cap_space_close = math_max(close_zone_cap - mob_total_close, 0)
|
||||||
cap_space_available = math.min(cap_space_available, cap_space_close)
|
cap_space_available = math_min(cap_space_available, cap_space_close)
|
||||||
|
|
||||||
mcl_log("cap_space_close", cap_space_close)
|
mcl_log("cap_space_close", cap_space_close)
|
||||||
mcl_log("cap_space_available", cap_space_available)
|
mcl_log("cap_space_available", cap_space_available)
|
||||||
|
@ -1145,7 +1109,7 @@ if mobs_spawn then
|
||||||
|
|
||||||
local amount_to_spawn = math.random(group_min, spawn_in_group)
|
local amount_to_spawn = math.random(group_min, spawn_in_group)
|
||||||
mcl_log("Spawning quantity: " .. amount_to_spawn)
|
mcl_log("Spawning quantity: " .. amount_to_spawn)
|
||||||
amount_to_spawn = math.min(amount_to_spawn, cap_space_available)
|
amount_to_spawn = math_min(amount_to_spawn, cap_space_available)
|
||||||
mcl_log("throttled spawning quantity: " .. amount_to_spawn)
|
mcl_log("throttled spawning quantity: " .. amount_to_spawn)
|
||||||
|
|
||||||
if logging then
|
if logging then
|
||||||
|
@ -1196,8 +1160,8 @@ if mobs_spawn then
|
||||||
local players = get_connected_players()
|
local players = get_connected_players()
|
||||||
local total_mobs, total_non_hostile, total_hostile = count_mobs_total_cap()
|
local total_mobs, total_non_hostile, total_hostile = count_mobs_total_cap()
|
||||||
|
|
||||||
local cap_space_hostile = math.max(mob_cap.global_hostile - total_hostile, 0)
|
local cap_space_hostile = math_max(mob_cap.global_hostile - total_hostile, 0)
|
||||||
local cap_space_non_hostile = math.max(mob_cap.global_non_hostile - total_non_hostile, 0)
|
local cap_space_non_hostile = math_max(mob_cap.global_non_hostile - total_non_hostile, 0)
|
||||||
mcl_log("global cap_space_hostile", cap_space_hostile)
|
mcl_log("global cap_space_hostile", cap_space_hostile)
|
||||||
mcl_log("global cap_space_non_hostile", cap_space_non_hostile)
|
mcl_log("global cap_space_non_hostile", cap_space_non_hostile)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain:mcl_paintings
|
||||||
|
Painting=Pintura
|
|
@ -4,21 +4,17 @@
|
||||||
|
|
||||||
local S = minetest.get_translator("mobs_mc")
|
local S = minetest.get_translator("mobs_mc")
|
||||||
|
|
||||||
local BEAM_CHECK_FREQUENCY = 2
|
local BEAM_CHECK_FREQUENCY = 1
|
||||||
local POS_CHECK_FREQUENCY = 15
|
local POS_CHECK_FREQUENCY = 15
|
||||||
local HEAL_AMMOUNT = 37
|
local HEAL_INTERVAL = 1
|
||||||
|
local HEAL_AMOUNT = 2
|
||||||
|
|
||||||
local function heal(self)
|
|
||||||
local o = self.object
|
|
||||||
self.health = math.min(self.hp_max,self.health + HEAL_AMMOUNT)
|
|
||||||
end
|
|
||||||
local function check_beam(self)
|
local function check_beam(self)
|
||||||
for _, obj in ipairs(minetest.get_objects_inside_radius(self.object:get_pos(), 80)) do
|
for _, obj in ipairs(minetest.get_objects_inside_radius(self.object:get_pos(), 80)) do
|
||||||
local luaentity = obj:get_luaentity()
|
local luaentity = obj:get_luaentity()
|
||||||
if luaentity and luaentity.name == "mcl_end:crystal" then
|
if luaentity and luaentity.name == "mcl_end:crystal" then
|
||||||
if luaentity.beam then
|
if luaentity.beam then
|
||||||
if luaentity.beam == self.beam then
|
if luaentity.beam == self.beam then
|
||||||
heal(self)
|
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -106,7 +102,6 @@ mcl_mobs.register_mob("mobs_mc:enderdragon", {
|
||||||
},
|
},
|
||||||
ignores_nametag = true,
|
ignores_nametag = true,
|
||||||
do_custom = function(self,dtime)
|
do_custom = function(self,dtime)
|
||||||
mcl_bossbars.update_boss(self.object, "Ender Dragon", "light_purple")
|
|
||||||
if self._pos_timer == nil or self._pos_timer > POS_CHECK_FREQUENCY then
|
if self._pos_timer == nil or self._pos_timer > POS_CHECK_FREQUENCY then
|
||||||
self._pos_timer = 0
|
self._pos_timer = 0
|
||||||
check_pos(self)
|
check_pos(self)
|
||||||
|
@ -115,8 +110,20 @@ mcl_mobs.register_mob("mobs_mc:enderdragon", {
|
||||||
self._beam_timer = 0
|
self._beam_timer = 0
|
||||||
check_beam(self)
|
check_beam(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
self._beam_timer = self._beam_timer + dtime
|
self._beam_timer = self._beam_timer + dtime
|
||||||
self._pos_timer = self._pos_timer + dtime
|
self._pos_timer = self._pos_timer + dtime
|
||||||
|
|
||||||
|
if self.beam ~= nil then
|
||||||
|
-- heal
|
||||||
|
self._heal_timer = (self._heal_timer or 0) + dtime
|
||||||
|
if self._heal_timer > HEAL_INTERVAL then
|
||||||
|
self.health = math.min(self.hp_max,self.health + HEAL_AMOUNT)
|
||||||
|
self._heal_timer = self._heal_timer - HEAL_INTERVAL
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
mcl_bossbars.update_boss(self.object, "Ender Dragon", "light_purple")
|
||||||
end,
|
end,
|
||||||
on_die = function(self, pos, cmi_cause)
|
on_die = function(self, pos, cmi_cause)
|
||||||
if self._portal_pos then
|
if self._portal_pos then
|
||||||
|
|
|
@ -83,8 +83,8 @@ mcl_mobs.register_mob("mobs_mc:iron_golem", {
|
||||||
stand_speed = 15, walk_speed = 15, run_speed = 25, punch_speed = 15,
|
stand_speed = 15, walk_speed = 15, run_speed = 25, punch_speed = 15,
|
||||||
stand_start = 0, stand_end = 0,
|
stand_start = 0, stand_end = 0,
|
||||||
walk_start = 0, walk_end = 40,
|
walk_start = 0, walk_end = 40,
|
||||||
run_start = 0, run_end = 40,
|
run_start = 40, run_end = 80,
|
||||||
punch_start = 40, punch_end = 50,
|
punch_start = 80, punch_end = 90,
|
||||||
},
|
},
|
||||||
jump = true,
|
jump = true,
|
||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
# textdomain: mobs_mc
|
||||||
|
Agent=Axente
|
||||||
|
Axolotl=Axolotl
|
||||||
|
Bat=Morcego
|
||||||
|
Blaze=Blaze
|
||||||
|
Chicken=polo
|
||||||
|
Cow=vaca
|
||||||
|
Mooshroom=Mooshroom
|
||||||
|
Stalker=Acosador
|
||||||
|
Ender Dragon=Ender Dragon
|
||||||
|
Enderman=Enderman
|
||||||
|
Endermite=Endermita
|
||||||
|
Ghast=Ghast
|
||||||
|
Elder Guardian=Gardián Ancián
|
||||||
|
Guardian=Gardián
|
||||||
|
Horse=Cabalo
|
||||||
|
Skeleton Horse=Cabalo esqueleto
|
||||||
|
Zombie Horse=Cabalo zombi
|
||||||
|
Donkey=Burro
|
||||||
|
Mule=Mula
|
||||||
|
Iron Golem=Golem de ferro
|
||||||
|
Llama=Chama
|
||||||
|
Ocelot=Ocelote
|
||||||
|
Cat=gato
|
||||||
|
Parrot=Loro
|
||||||
|
Pig=Porco
|
||||||
|
Polar Bear=Oso polar
|
||||||
|
Rabbit=Coello
|
||||||
|
Killer Bunny=Coello asasino
|
||||||
|
Sheep=ovella
|
||||||
|
Shulker=Shulker
|
||||||
|
Silverfish=Peixe de prata
|
||||||
|
Skeleton=Esqueleto
|
||||||
|
Stray=Esqueleto
|
||||||
|
Wither Skeleton=Esqueleto de Wither
|
||||||
|
Magma Cube=Cubo de magma
|
||||||
|
Slime=Limo
|
||||||
|
Snow Golem=Golem de neve
|
||||||
|
Spider=Araña
|
||||||
|
Cave Spider=Araña caverna
|
||||||
|
Squid=Calamar
|
||||||
|
Vex=Vex
|
||||||
|
Evoker=Evocador
|
||||||
|
Illusioner=Ilusionista
|
||||||
|
Villager=Aldeano
|
||||||
|
Vindicator=Vindicador
|
||||||
|
Zombie Villager=Aldeabo Zombi
|
||||||
|
Witch=Bruxa
|
||||||
|
Wither=murchar
|
||||||
|
Wolf=Lobo
|
||||||
|
Husk=casca
|
||||||
|
Baby Husk=Bebé Husk
|
||||||
|
Zombie=Zombi
|
||||||
|
Baby Zombie=Bebé zombi
|
||||||
|
Piglin=Piglin
|
||||||
|
Baby Piglin=Bebé Piglin
|
||||||
|
Zombie Piglin=Zombie Piglin
|
||||||
|
Baby Zombie Piglin=Bebé Zombie Piglin
|
||||||
|
Sword Piglin=Espada Piglin
|
||||||
|
Piglin Brute=Piglin Brute
|
||||||
|
Farmer=Labrego
|
||||||
|
Fisherman=Pescador
|
||||||
|
Fletcher=Fletcher
|
||||||
|
Shepherd=Pastor
|
||||||
|
Librarian=Bibliotecario
|
||||||
|
Cartographer=Cartógrafo
|
||||||
|
Armorer=Armeiro
|
||||||
|
Leatherworker=Coiro
|
||||||
|
Butcher=carniceiro
|
||||||
|
Weapon Smith=Arma Smith
|
||||||
|
Tool Smith=Ferramenta Smith
|
||||||
|
Cleric=Clérigo
|
||||||
|
Nitwit=Nitwit
|
||||||
|
Cod=Cod
|
||||||
|
Salmon=salmón
|
||||||
|
Dolphin=Golfiño
|
||||||
|
Pillager=Pillador
|
||||||
|
Tropical fish=
|
||||||
|
Hoglin=Golfiño
|
||||||
|
Baby hoglin=Baby hoglin
|
||||||
|
Zoglin=Baby hoglin
|
||||||
|
Strider=Strider
|
||||||
|
Glow Squid=Calamar brillante
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: lightning
|
||||||
|
Let lightning strike at the specified position or player.No parameter will strike yourself.=Deixa caer un raio na posición ou no xogador especificado.Ningún parámetro vai caer a ti mesmo.
|
||||||
|
No position specified and unknown player=Sen posición especificada e xogador descoñecido
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain: mcl_raids
|
||||||
|
Ominous Banner=Estandarte Ameazador
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: mcl_void_damage
|
||||||
|
The void is off-limits to you!=¡O baleiro está fóra dos límites para ti!
|
||||||
|
@1 fell into the endless void.=@1 caeu no baleiro sen fin.
|
|
@ -0,0 +1,8 @@
|
||||||
|
# textdomain: mcl_weather
|
||||||
|
Gives ability to control weather=Dá a capacidade de controlar o tempo
|
||||||
|
Changes the weather to the specified parameter.=Cambia o tempo ao parámetro especificado.
|
||||||
|
Error: No weather specified.=Erro: non se especificou tempo.
|
||||||
|
Error: Invalid parameters.=Erro: parámetros non válidos.
|
||||||
|
Error: Duration can't be less than 1 second.=Erro: a duración non pode ser inferior a 1 segundo.
|
||||||
|
Error: Invalid weather specified. Use “clear”, “rain”, “snow” or “thunder”.=Erro: tempo especificado non válido. Use "claro", "choiva", "neve" ou "trono".
|
||||||
|
Toggles between clear weather and weather with downfall (randomly rain, thunderstorm or snow)=Alterna entre o tempo claro e o tempo con caída (choiva, treboada ou neve aleatoriamente)
|
|
@ -10,6 +10,10 @@ mcl_weather.thunder = {
|
||||||
init_done = false,
|
init_done = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lightning.register_on_strike(function(pos, pos2, objects)
|
||||||
|
if not mcl_weather.has_rain(pos) then return nil, true end
|
||||||
|
end)
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
if mcl_weather.get_weather() ~= "thunder" then
|
if mcl_weather.get_weather() ~= "thunder" then
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
# textdomain:doc
|
||||||
|
<=
|
||||||
|
>=
|
||||||
|
Access to the requested entry has been denied; this entry is secret. You may unlock access by progressing in the game. Figure out on your own how to unlock this entry.=O acceso á entrada solicitada foi denegado; esta entrada é secreta. Podes desbloquear o acceso progresando no xogo. Descubra por conta propia como desbloquear esta entrada.
|
||||||
|
All entries read.=Todas as entradas lidas.
|
||||||
|
All help entries revealed!=¡Reveláronse todas as entradas de axuda!
|
||||||
|
All help entries are already revealed.=Todas as entradas de axuda xa están reveladas.
|
||||||
|
Allows you to reveal all hidden help entries with /help_reveal=Permítelle revelar todas as entradas de axuda ocultas con /help_reveal
|
||||||
|
Category list=Lista de Categorias
|
||||||
|
Currently all entries in this category are hidden from you.\\nUnlock new entries by progressing in the game.=Actualmente todas as entradas desta categoría están ocultas para ti.
|
||||||
|
Unlock new entries by progressing in the game.=Desbloquea novas entradas progresando no xogo.
|
||||||
|
Help=Axuda
|
||||||
|
Entry=Entrada
|
||||||
|
Entry list=Lista de Entradas
|
||||||
|
Error: Access denied.=Erro: acceso denegado.
|
||||||
|
Error: No help available.=Erro: Non hai axuda dispoñible.
|
||||||
|
Go to category list=Ir á lista de categorías
|
||||||
|
Go to entry list=Ir á lista de entradas
|
||||||
|
Help > @1=Axuda > @1
|
||||||
|
Help > @1 > @2=Axuda > @1 > @2
|
||||||
|
Help > @1 > (No Entry)=Axuda > @1 > (Sen entrada)
|
||||||
|
Help > (No Category)=Axuda > (Sen categoría)
|
||||||
|
Hidden entries: @1=Entradas ocultas: @1
|
||||||
|
Nameless entry (@1)=Entrada sem nome (@1)
|
||||||
|
New entries: @1=Novas entradas: (@1)
|
||||||
|
New help entry unlocked: @1 > @2=Nova entrada de axuda desbloqueada: @1 > @2
|
||||||
|
No categories have been registered, but they are required to provide help.=Non se rexistraron categorías, pero son necesarias para proporcionar axuda.
|
||||||
|
The Documentation System [doc] does not come with help contents on its own, it needs additional mods to add help content. Please make sure such mods are enabled on for this world, and try again.=O sistema de documentación [doc] non inclúe contidos de axuda por si só, necesita modificacións adicionais para engadir contido de axuda. Asegúrate de que estes modificacións estean activadas para este mundo e téntao de novo.
|
||||||
|
Number of entries: @1=Número de entradas: @1
|
||||||
|
OK=Ben
|
||||||
|
Open a window providing help entries about Minetest and more=Abre unha ventá que ofrece entradas de axuda sobre Minetest e máis
|
||||||
|
Please select a category you wish to learn more about:=Seleccione unha categoría sobre a que desexa obter máis información:
|
||||||
|
Recommended mods: doc_basics, doc_items, doc_identifier, doc_encyclopedia.=Modificacións recomendadas: doc_basics, doc_items, doc_identifier, doc_encyclopedia
|
||||||
|
Reveal all hidden help entries to you=Mostrarche todas as entradas de axuda ocultas
|
||||||
|
Show entry=Mostrar entrada
|
||||||
|
Show category=Mostrar categoría
|
||||||
|
Show next entry=Mostrar a seguinte entrada
|
||||||
|
Show previous entry=Mostrar entrada anterior
|
||||||
|
This category does not have any entries.=Esta categoría non ten entradas.
|
||||||
|
This category has the following entries:=Esta categoría ten as seguintes entradas:
|
||||||
|
This category is empty.=Esta categoría está baleira.
|
||||||
|
This is the help.=Esta é a axuda.
|
||||||
|
You haven't chosen a category yet. Please choose one in the category list first.=Aínda non escolliches unha categoría. Escolla primeiro un na lista de categorías.
|
||||||
|
You haven't chosen an entry yet. Please choose one in the entry list first.=Aínda non escolliches ningunha entrada. Escolla primeiro un na lista de entradas.
|
||||||
|
Collection of help texts=Colección de textos de axuda
|
||||||
|
Notify me when new help is available=Notificarme cando hai unha nova axuda dispoñible
|
||||||
|
Play notification sound when new help is available=Reproduce un son de notificación cando hai unha nova axuda dispoñible
|
||||||
|
Show previous image=Mostrar imaxe anterior
|
||||||
|
Show previous gallery page=Mostrar a páxina anterior da galería
|
||||||
|
Show next image=Mostrar a seguinte imaxe
|
||||||
|
Show next gallery page=Mostrar a seguinte páxina da galería
|
|
@ -0,0 +1,18 @@
|
||||||
|
# textdomain:doc_identifier
|
||||||
|
Error: This node, item or object is undefined. This is always an error.=Erro: este nodo, elemento ou obxecto non está definido. Isto sempre é un erro.
|
||||||
|
This can happen for the following reasons:=Isto pode ocorrer polos seguintes motivos:
|
||||||
|
• The mod which is required for it is not enabled=• O mod que é necesario para iso non está activado
|
||||||
|
• The author of the game or a mod has made a mistake=• O autor do xogo ou un mod cometeu un erro
|
||||||
|
It appears to originate from the mod “@1”, which is enabled.=Parece orixinarse do mod "@1", que está activado.
|
||||||
|
It appears to originate from the mod “@1”, which is not enabled!=¡Parece orixinarse do mod "@1", que non está activado!
|
||||||
|
Its identifier is “@1”.=O seu identificador é “@1”.
|
||||||
|
Lookup Tool=Ferramenta de busca
|
||||||
|
No help entry for this block could be found.=Non se puido atopar ningunha entrada de axuda para este bloque.
|
||||||
|
No help entry for this item could be found.=Non se puido atopar ningunha entrada de axuda para este elemento.
|
||||||
|
No help entry for this object could be found.=Non se puido atopar ningunha entrada de axuda para este obxecto.
|
||||||
|
OK=Aceptar
|
||||||
|
Punch any block, item or other thing about you wish to learn more about. This will open up the appropriate help entry. The tool comes in two modes which are changed by using. In liquid mode, this tool points to liquids as well while in solid mode this is not the case.=Perfora calquera bloque, elemento ou outra cousa sobre o que queiras saber máis. Isto abrirá a entrada de axuda adecuada. A ferramenta vén en dous modos que se cambian usando. No modo líquido, esta ferramenta tamén apunta a líquidos, mentres que no modo sólido este non é o caso.
|
||||||
|
This block cannot be identified because the world has not materialized at this point yet. Try again in a few seconds.=Non se pode identificar este bloque porque o mundo aínda non se materializou neste momento. Téntao de novo nuns segundos.
|
||||||
|
This is a player.=Este é un xogador.
|
||||||
|
This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used.=Este pequeno axudante útil pódese usar para aprender rapidamente máis sobre o propio entorno máis próximo. Identifica e analiza bloques, elementos e outras cousas e mostra unha ampla información sobre a cousa na que se usa.
|
||||||
|
Show help for pointed thing=Mostrar axuda para cousa apuntada
|
|
@ -0,0 +1,143 @@
|
||||||
|
# textdomain:doc_items
|
||||||
|
Using it as fuel turns it into: @1.= Usalo como combustible convérteo en: @1.
|
||||||
|
@1 seconds=@1 segundo
|
||||||
|
# Item count times item name
|
||||||
|
%@1×@2=%@1×@2
|
||||||
|
# Itemname (25%)
|
||||||
|
@1 (@2%)=@1 (@2%)
|
||||||
|
# Itemname (<0.5%)
|
||||||
|
@1 (<0.5%)=@1 (<0.5%)
|
||||||
|
# Itemname (ca. 25%)
|
||||||
|
@1 (ca. @2%)=@1 (ca. @2%)
|
||||||
|
# List separator (e.g. “one, two, three”)
|
||||||
|
, =,
|
||||||
|
# Final list separator (e.g. “One, two and three”)
|
||||||
|
and = e
|
||||||
|
1 second=1 segundo
|
||||||
|
A transparent block, basically empty space. It is usually left behind after digging something.=Un bloque transparente, basicamente espazo baleiro. Adoita quedar atrás despois de cavar algo.
|
||||||
|
Air=Aire
|
||||||
|
Blocks=Bloques
|
||||||
|
Building another block at this block will place it inside and replace it.=Construír outro bloque neste bloque colocarao dentro e substituirase.
|
||||||
|
Building this block is completely silent.=Construír este bloque é completamente silencioso.
|
||||||
|
Collidable: @1=Colisible: @1
|
||||||
|
Description: @1=Descrición: @1
|
||||||
|
Falling blocks can go through this block; they destroy it when doing so.=Os bloques que caen poden pasar por este bloque; destrúeno ao facelo.
|
||||||
|
Full punch interval: @1 s=Intervalo completo de golpe: @1 s
|
||||||
|
Hand=Man
|
||||||
|
Hold it in your hand, then leftclick to eat it.=Mantéñao na man e, a continuación, prema co botón esquerdo para comelo.
|
||||||
|
Hold it in your hand, then leftclick to eat it. But why would you want to do this?=Mantéñao na man e, a continuación, prema co botón esquerdo para comelo. ¿Pero por que queres facer isto?
|
||||||
|
Item reference of all wieldable tools and weapons=Referencia do elemento de todas as ferramentas e armas manexables
|
||||||
|
Item reference of blocks and other things which are capable of occupying space=Referencia de elementos de bloques e outras cousas que son capaces de ocupar espazo
|
||||||
|
Item reference of items which are neither blocks, tools or weapons (esp. crafting items)=Referencia de elementos de elementos que non son nin bloques, ferramentas nin armas (especialmente artigos de elaboración)
|
||||||
|
Liquids can flow into this block and destroy it.=Os líquidos poden fluír neste bloque e destruílo.
|
||||||
|
Maximum stack size: @1=Tamaño máximo da pila: @1
|
||||||
|
Mining level: @1=Nivel de minería: @1
|
||||||
|
Mining ratings:=Clasificación mineira:
|
||||||
|
• @1, rating @2: @3 s - @4 s=• @1, clasificación @2: @3 s - @4 s
|
||||||
|
• @1, rating @2: @3 s=• @1, clasificación @2: @3 s
|
||||||
|
Mining times:=Tempos de minería:
|
||||||
|
Mining this block is completely silent.=A minería deste bloque é completamente silenciosa.
|
||||||
|
Miscellaneous items=Elementos varios
|
||||||
|
No=Non
|
||||||
|
Pointable: No=Puntual: Non
|
||||||
|
Pointable: Only by special items=Puntable: só por elementos especiais
|
||||||
|
Pointable: Yes=Puntual: Si
|
||||||
|
Punches with this block don't work as usual; melee combat and mining are either not possible or work differently.=Os golpes con este bloque non funcionan como de costume; o combate corpo a corpo e a minería non son posibles ou funcionan de forma diferente.
|
||||||
|
Punches with this item don't work as usual; melee combat and mining are either not possible or work differently.=Os golpes con este elemento non funcionan como de costume; o combate corpo a corpo e a minería non son posibles ou funcionan de forma diferente.
|
||||||
|
Punches with this tool don't work as usual; melee combat and mining are either not possible or work differently.=Os golpes con esta ferramenta non funcionan como de costume; o combate corpo a corpo e a minería non son posibles ou funcionan de forma diferente.
|
||||||
|
Range: @1=Alcance: @1
|
||||||
|
# Range: <Hand> (<Range>)
|
||||||
|
Range: @1 (@2)=Alcance: @1 (@2)
|
||||||
|
Range: 4=Alcance: 4
|
||||||
|
# Rating used for digging times
|
||||||
|
Rating @1=Classificación @1
|
||||||
|
# @1 is minimal rating, @2 is maximum rating
|
||||||
|
Rating @1-@2=Classificación @1-@2
|
||||||
|
The fall damage on this block is increased by @1%.=O dano por caída neste bloque aumenta nun @1%..
|
||||||
|
The fall damage on this block is reduced by @1%.=O dano por caída neste bloque redúcese nun @1%.
|
||||||
|
This block allows light to propagate with a small loss of brightness, and sunlight can even go through losslessly.=Este bloque permite que a luz se propague cunha pequena perda de brillo, e incluso a luz solar pode pasar sen perdas.
|
||||||
|
This block allows light to propagate with a small loss of brightness.=Este bloque permite que a luz se propague cunha pequena perda de brillo.
|
||||||
|
This block allows sunlight to propagate without loss in brightness.=Este bloque permite que a luz solar se propague sen perda de brillo.
|
||||||
|
This block belongs to the @1 group.=Este bloque pertence ao grupo @1.
|
||||||
|
This block belongs to these groups: @1.=Este bloque pertence a estes grupos: @1.
|
||||||
|
This block can be climbed.=Este bloque pódese escalar.
|
||||||
|
This block can be destroyed by any mining tool immediately.=Este bloque pode ser destruído por calquera ferramenta de minería inmediatamente.
|
||||||
|
This block can be destroyed by any mining tool in half a second.=Este bloque pode ser destruído por calquera ferramenta de minería en medio segundo.
|
||||||
|
This block can be mined by any mining tool immediately.=Este bloque pode ser minado por calquera ferramenta de minería inmediatamente.
|
||||||
|
This block can be mined by any mining tool in half a second.=Este bloque pode ser extraído por calquera ferramenta de minería en medio segundo.
|
||||||
|
This block can be mined by mining tools which match any of the following mining ratings and its toughness level.=Este bloque pódese extraer mediante ferramentas de minería que coincidan con calquera das seguintes clasificacións de minería e o seu nivel de dureza.
|
||||||
|
This block can not be destroyed by ordinary mining tools.=Este bloque non pode ser destruído por ferramentas de minería comúns.
|
||||||
|
This block can not be mined by ordinary mining tools.=Este bloque non pode ser extraído por ferramentas de minería comúns.
|
||||||
|
This block can serve as a smelting fuel with a burning time of @1.=Este bloque pode servir como combustible de fundición cun tempo de combustión de @1.
|
||||||
|
This block causes a damage of @1 hit point per second.=Este bloque causa un dano de @1 punto de golpe por segundo.
|
||||||
|
This block causes a damage of @1 hit points per second.=Este bloque causa un dano de @1 puntos de vida por segundo.
|
||||||
|
This block connects to blocks of the @1 group.=Este bloque conéctase a bloques do grupo @1.
|
||||||
|
This block connects to blocks of the following groups: @1.=Este bloque conéctase a bloques dos seguintes grupos: @1.
|
||||||
|
This block connects to these blocks: @1.=Este bloque conéctase a estes bloques: @1.
|
||||||
|
This block connects to this block: @1.=Este bloque conéctase a este bloque: @1.
|
||||||
|
This block decreases your breath and causes a drowning damage of @1 hit point every 2 seconds.=Este bloque diminúe a túa respiración e causa un dano por afogamento de @1 punto de golpe cada 2 segundos.
|
||||||
|
This block decreases your breath and causes a drowning damage of @1 hit points every 2 seconds.=Este bloque diminúe a túa respiración e causa un dano por afogamento de @1 punto de golpe cada 2 segundos..
|
||||||
|
This block is a light source with a light level of @1.=Este bloque é unha fonte de luz cun nivel de luz de @1.
|
||||||
|
This block glows faintly with a light level of @1.=Este bloque brilla débilmente cun nivel de luz de @1.
|
||||||
|
This block is a building block for creating various buildings.=Este bloque é un bloque para crear varios edificios.
|
||||||
|
This block is a liquid with these properties:=Este bloque é un líquido con estas propiedades:
|
||||||
|
This block is affected by gravity and can fall.=Este bloque está afectado pola gravidade e pode caer.
|
||||||
|
This block is completely silent when mined or built.=Este bloque é completamente silencioso cando se extrae ou se constrúe.
|
||||||
|
This block is completely silent when walked on, mined or built.=Este bloque é completamente silencioso cando se pisa, se extrae ou se constrúe.
|
||||||
|
This block is destroyed when a falling block ends up inside it.=Este bloque destrúese cando un bloque que cae acaba dentro del.
|
||||||
|
This block negates all fall damage.=Este bloque anula todos os danos por caída.
|
||||||
|
This block points to liquids.=Este bloque apunta a líquidos.
|
||||||
|
This block will drop as an item when a falling block ends up inside it.=Este bloque caerá como elemento cando un bloque caendo acabe dentro del.
|
||||||
|
This block will drop as an item when it is not attached to a surrounding block.=Este bloque caerá como elemento cando non estea ligado a un bloque circundante.
|
||||||
|
This block will drop as an item when no collidable block is below it.=Este bloque caerá como elemento cando ningún bloque colizable estea debaixo del.
|
||||||
|
This block will drop the following items when mined: %s.=Este bloque eliminará os seguintes elementos cando se extrae: @1.
|
||||||
|
This block will drop the following when mined: @1×@2.=Este bloque eliminará o seguinte cando se extrae: @1×@2.
|
||||||
|
This block will drop the following when mined: @1.=Este bloque eliminará o seguinte cando se extrae: @1.
|
||||||
|
This block will drop the following when mined: %s.=Este bloque eliminará o seguinte cando se extrae: @1.
|
||||||
|
This block will make you bounce off with an elasticity of @1%.=Este bloque farache rebotar cunha elasticidade de @1%.
|
||||||
|
This block will randomly drop one of the following when mined: %s.=Este bloque soltará aleatoriamente un dos seguintes cando se extrae: @1.
|
||||||
|
This block will randomly drop up to %d drops of the following possible drops when mined: %s.=Este bloque caerá aleatoriamente ata @1 gotas das seguintes posibles caídas cando se extrae: @2.
|
||||||
|
This block won't drop anything when mined.=Este bloque non soltará nada cando se extrae.
|
||||||
|
This is a decorational block.=Este é un bloque decorativo.
|
||||||
|
This is a melee weapon which deals damage by punching.=Esta é unha arma corpo a corpo que fai dano ao golpear.
|
||||||
|
Maximum damage per hit:=Dano máximo por golpe:
|
||||||
|
This item belongs to the @1 group.=Este elemento pertence ao grupo @1.
|
||||||
|
This item belongs to these groups: @1.=Este elemento pertence a estes grupos: @1.
|
||||||
|
This item can serve as a smelting fuel with a burning time of @1.=Este elemento pode servir como combustible de fundición cun tempo de combustión de @1.
|
||||||
|
This item is primarily used for crafting other items.=Este elemento úsase principalmente para elaborar outros elementos.
|
||||||
|
This item points to liquids.=Este elemento apunta a líquidos.
|
||||||
|
This tool belongs to the @1 group.=Esta ferramenta pertence ao grupo @1.
|
||||||
|
This tool belongs to these groups: @1.=Esta ferramenta pertence a estes grupos: @1.
|
||||||
|
This tool can serve as a smelting fuel with a burning time of @1.=Esta ferramenta pode servir como combustible de fundición cun tempo de combustión de @1.
|
||||||
|
This tool is capable of mining.=Esta ferramenta é capaz de minar.
|
||||||
|
Maximum toughness levels:=Niveis máximos de tenacidade:
|
||||||
|
This tool points to liquids.=Esta ferramenta apunta a líquidos.
|
||||||
|
Tools and weapons=Ferramentas e armas
|
||||||
|
Unknown Node=Nodo descoñecido
|
||||||
|
Usage help: @1=Como usar: @1
|
||||||
|
Walking on this block is completely silent.=Camiñar por este bloque é completamente silencioso.
|
||||||
|
Whenever you are not wielding any item, you use the hand which acts as a tool with its own capabilities. When you are wielding an item which is not a mining tool or a weapon it will behave as if it would be the hand.=Sempre que non manexas ningún elemento, utilizas a man que actúa como unha ferramenta coas súas propias capacidades. Cando manexas un elemento que non é unha ferramenta de minería ou unha arma, comportarase coma se fose a man.
|
||||||
|
Yes=Si
|
||||||
|
You can not jump while standing on this block.=Non podes saltar mentres estás de pé neste bloque.
|
||||||
|
any level=calquera nivel
|
||||||
|
level 0=nível 0
|
||||||
|
level 0-@1=nivel 0-@1
|
||||||
|
unknown=descoñecido
|
||||||
|
Unknown item (@1)=Elemento descoñecido (@1)
|
||||||
|
• @1: @2=
|
||||||
|
• @1: @2 HP=
|
||||||
|
• @1: @2, @3=
|
||||||
|
• Flowing range: @1=• Rango de fluxo: @1
|
||||||
|
• No flowing=• Non fluír
|
||||||
|
• Not renewable=• Non renovable
|
||||||
|
• Renewable=• • Renovable
|
||||||
|
• Viscosity: @1=• Viscosidade: @1
|
||||||
|
Itemstring: "@1"=Cadea de elementos: "@1"
|
||||||
|
Durability: @1 uses=Durabilidade: @1 usos
|
||||||
|
Durability: @1=Durabilidade: @1
|
||||||
|
Durability:=Durabilidade:
|
||||||
|
• @1, level @2: @3 uses=• @1, nivel @2: @3 usos
|
||||||
|
• @1, level @2: Unlimited=• @1, nivel @2: ilimitado
|
||||||
|
This block's rotation is affected by the way you place it: Place it on the floor or ceiling for a vertical orientation; place it at the side for a horizontal orientation. Sneaking while placing it leads to a perpendicular orientation instead.=A rotación deste bloque vese afectada pola forma de colocalo: colócao no chan ou no teito para unha orientación vertical; colócao ao lado para unha orientación horizontal. Colarse mentres o coloca leva a unha orientación perpendicular no seu lugar.
|
||||||
|
Toughness level: @1=Nivel de tenacidade: @1
|
||||||
|
This block is slippery.=Este bloque é esvaradío.
|
|
@ -0,0 +1,37 @@
|
||||||
|
# textdomain: craftguide
|
||||||
|
Any shulker box=Calquera caixa de shulker
|
||||||
|
Any wool=Calquera la
|
||||||
|
Any wood planks=Calquera táboa de madeira
|
||||||
|
Any wood=Calquera madeira
|
||||||
|
Any sand=Calquera area
|
||||||
|
Any normal sandstone=Calquera arenisca normal
|
||||||
|
Any red sandstone=Calquera arenisca vermella
|
||||||
|
Any carpet=Calquera alfombra
|
||||||
|
Any dye=Calquera tintura
|
||||||
|
Any water bucket=Calquera balde de auga
|
||||||
|
Any flower=Calquera flor
|
||||||
|
Any mushroom=Calquera cogomelo
|
||||||
|
Any wooden slab=Calquera lousa de madeira
|
||||||
|
Any wooden stairs=Calquera escaleira de madeira
|
||||||
|
Any coal=Calquera carbón
|
||||||
|
Any kind of quartz block=Calquera tipo de bloque de cuarzo
|
||||||
|
Any kind of purpur block=Calquera tipo de bloque púrpura
|
||||||
|
Any stone bricks=Calquera ladrillo de pedra
|
||||||
|
Any stick=Calquera pau
|
||||||
|
Any item belonging to the @1 group=Calquera elemento pertencente ao grupo @1
|
||||||
|
Any item belonging to the groups: @1=Calquera elemento pertencente aos grupos: @1
|
||||||
|
Search=Busca
|
||||||
|
Reset=Restablecer
|
||||||
|
Previous page=Páxina anterior
|
||||||
|
Next page=Páxina seguinte
|
||||||
|
Usage @1 of @2=Uso @1 de @2
|
||||||
|
Recipe @1 of @2=Receita @1 de @2
|
||||||
|
Burning time: @1=Tempo de combustión: @1
|
||||||
|
Cooking time: @1=Tempo de cocción: @1
|
||||||
|
Recipe is too big to be displayed (@1×@2)=A receita é demasiado grande para mostrarse (@1×@2)
|
||||||
|
Shapeless=Sen forma
|
||||||
|
Cooking=Cociñar
|
||||||
|
Increase window size=Aumentar o tamaño da xanela
|
||||||
|
Decrease window size=Diminuír o tamaño da xanela
|
||||||
|
No item to show=Non hai elemento que mostrar
|
||||||
|
Collect items to reveal more recipes=Recolle elementos para revelar máis receitas
|
|
@ -0,0 +1,80 @@
|
||||||
|
# textdomain: mcl_doc
|
||||||
|
Water can flow into this block and cause it to drop as an item.=A auga pode fluír neste bloque e facer que caia como elemento.
|
||||||
|
This block can be turned into dirt with a hoe.=Este bloque pódese converter en terra cunha aixada.
|
||||||
|
This block can be turned into farmland with a hoe.=Este bloque pódese converter en terra de cultivo cunha aixada.
|
||||||
|
This block can be turned into grass path with a shovel.=Este bloque pódese converter en camiño de herba cunha pa.
|
||||||
|
This block acts as a soil for all saplings.=Este bloque actúa como chan para todos os mudos.
|
||||||
|
This block acts as a soil for some saplings.=Este bloque fai de chan para algunhas mudas.
|
||||||
|
Sugar canes will grow on this block.=Neste bloque crecerán canas de azucre.
|
||||||
|
Nether wart will grow on this block.=A verruga inferior crecerá neste bloque.
|
||||||
|
This block quickly decays when there is no wood block of any species within a distance of @1. When decaying, it disappears and may drop one of its regular drops. The block does not decay when the block has been placed by a player.=Este bloque decae rapidamente cando non hai un bloque de madeira de ningunha especie a unha distancia de @1. Cando se deteriora, desaparece e pode caer unha das súas gotas habituais. O bloque non decae cando o bloqueo foi colocado por un xogador.
|
||||||
|
This block quickly decays and disappears when there is no wood block of any species within a distance of @1. The block does not decay when the block has been placed by a player.=Este bloque decae rapidamente e desaparece cando non hai un bloque de madeira de ningunha especie a unha distancia de @1. O bloque non decae cando o bloqueo foi colocado por un xogador.
|
||||||
|
This plant can only grow on grass blocks and dirt. To survive, it needs to have an unobstructed view to the sky above or be exposed to a light level of 8 or higher.=Esta planta só pode crecer en bloques de herba e terra. Para sobrevivir, ten que ter unha vista sen obstáculos do ceo enriba ou estar exposto a un nivel de luz de 8 ou superior.
|
||||||
|
This plant can grow on grass blocks, podzol, dirt and coarse dirt. To survive, it needs to have an unobstructed view to the sky above or be exposed to a light level of 8 or higher.=Esta planta pode crecer en bloques de herba, podzol, sucidade e sucidade grosa. Para sobrevivir, ten que ter unha vista sen obstáculos do ceo enriba ou estar exposto a un nivel de luz de 8 ou superior.
|
||||||
|
This block is flammable.=Este bloque é inflamable.
|
||||||
|
This block destroys any item it touches.=Este bloque destrúe calquera elemento que toque.
|
||||||
|
To eat it, wield it, then rightclick.=Para comelo, mándao e despois fai clic co botón dereito.
|
||||||
|
You can eat this even when your hunger bar is full.=Podes comer isto mesmo cando a túa barra de fame estea chea.
|
||||||
|
You cannot eat this when your hunger bar is full.=Non podes comer isto cando a túa barra de fame estea chea.
|
||||||
|
To drink it, wield it, then rightclick.=Para bebelo, mándao e despois fai clic co botón dereito.
|
||||||
|
You cannot drink this when your hunger bar is full.=Non podes beber isto cando a túa barra de fame estea chea.
|
||||||
|
To consume it, wield it, then rightclick.=Para consumilo, úsao e, a continuación, fai clic co botón dereito
|
||||||
|
You cannot consume this when your hunger bar is full.=Non podes consumir isto cando a túa barra de fame estea chea.
|
||||||
|
You have to wait for about 2 seconds before you can eat or drink again.=Ten que esperar uns 2 segundos antes de poder comer ou beber de novo.
|
||||||
|
Hunger points restored: @1=Puntos de fame restaurados: @1
|
||||||
|
Saturation points restored: @1%.1f=Puntos de saturación restaurados: @1%.1f
|
||||||
|
This item can be repaired at an anvil with: @1.=Este elemento pódese reparar nunha zafra con: @1.
|
||||||
|
This item can be repaired at an anvil with any wooden planks.=Este elemento pódese reparar nunha zafra con calquera táboa de madeira.
|
||||||
|
This item can be repaired at an anvil with any item in the “@1” group.=Este elemento pódese reparar nunha zafra con calquera elemento do grupo "@1".
|
||||||
|
This item cannot be renamed at an anvil.=Este elemento non se pode renomear nunha zafra.
|
||||||
|
This block crushes any block it falls into.=Este bloque esmaga calquera bloque no que caia.
|
||||||
|
When this block falls deeper than 1 block, it causes damage to any player it hits. The damage dealt is B×2−2 hit points with B @= number of blocks fallen. The damage can never be more than 40 HP.=Cando este bloque cae máis de 1 bloque, causa danos a calquera xogador ao que choque. O dano causado é de B×2−2 puntos de golpe con B @= número de bloques caídos. O dano nunca pode ser superior a 40 HP.
|
||||||
|
Diamond Pickaxe=Pico de diamante
|
||||||
|
Iron Pickaxe=Pico de ferro
|
||||||
|
Stone Pickaxe=Pico de pedra
|
||||||
|
Golden Pickaxe=Pico de Ouro
|
||||||
|
Wooden Pickaxe=Pico de Ouro
|
||||||
|
Diamond Axe=Machado de diamante
|
||||||
|
Iron Axe=Machado de ferro
|
||||||
|
Stone Axe=Machado de pedra
|
||||||
|
Golden Axe=Machado de ouro
|
||||||
|
Wooden Axe=Machado de madeira
|
||||||
|
Diamond Shovel=Pala de diamante
|
||||||
|
Iron Shovel=Pala de ferro
|
||||||
|
Stone Shovel=Pala de pedra
|
||||||
|
Golden Shovel=Pala de ouro
|
||||||
|
Wooden Shovel=Pala de madeira
|
||||||
|
This block can be mined by any tool instantly.=Este bloque pode ser extraído por calquera ferramenta ao instante.
|
||||||
|
This block can be mined by:=Este bloque pódese extraer mediante:
|
||||||
|
Hardness: ∞=Dureza: ∞
|
||||||
|
Hardness: @1=Dureza: @1
|
||||||
|
This block will not be destroyed by TNT explosions.=Este bloque non será destruído polas explosións de Dinamita.
|
||||||
|
This block drops itself when mined by shears.=Este bloque cae por si mesmo cando é extraído por tesoiras.
|
||||||
|
@1×@2=@1×@2
|
||||||
|
This blocks drops the following when mined by shears: @1=Este bloque elimina o seguinte cando se extrae con tesoiras: @1
|
||||||
|
, =,
|
||||||
|
• Shears=• Tesoiras
|
||||||
|
• Sword=• Espada
|
||||||
|
• Hand=• Man
|
||||||
|
This is a melee weapon which deals damage by punching.=Esta é unha arma corpo a corpo que fai dano ao golpear.
|
||||||
|
Maximum damage: @1 HP=Dano máximo: @1 HP
|
||||||
|
Full punch interval: @1 s=Intervalo de perforación total: @1 s
|
||||||
|
This tool is capable of mining.=Esta ferramenta é capaz de minar.
|
||||||
|
Mining speed: @1=Velocidade de minería: @1
|
||||||
|
Painfully slow=Dolorosamente lento
|
||||||
|
Very slow=Moi lento
|
||||||
|
Slow=Lento
|
||||||
|
Fast=Rápido
|
||||||
|
Very fast=Moi rápido
|
||||||
|
Extremely fast=Extremadamente rápido
|
||||||
|
Instantaneous=Instantáneo
|
||||||
|
@1 uses=@1 usos
|
||||||
|
Unlimited uses=Usos ilimitados
|
||||||
|
Block breaking strength: @1=Resistencia á rotura do bloque: @1
|
||||||
|
Durability: @1=Durabilidade: @1
|
||||||
|
Armor points: @1=Puntos de armadura: @1
|
||||||
|
Armor durability: @1=Durabilidade da armadura: @1
|
||||||
|
It can be worn on the head.=Pódese levar na cabeza.
|
||||||
|
It can be worn on the torso.=Pódese levar no torso.
|
||||||
|
It can be worn on the legs.=Pódese levar nas pernas.
|
||||||
|
It can be worn on the feet.=Pódese levar nos pés.
|
|
@ -0,0 +1,511 @@
|
||||||
|
# textdomain: mcl_doc_basics
|
||||||
|
Basics=Fundamentos
|
||||||
|
Everything you need to know about Minetest to get started with playing=Todo o que necesitas saber para comezar a xogar
|
||||||
|
Advanced usage=Uso avanzado
|
||||||
|
Advanced information about Minetest which may be nice to know, but is not crucial to gameplay=Información avanzada que pode ser agradable coñecer, pero que non é crucial para o xogo
|
||||||
|
Quick start=Inicio rápido
|
||||||
|
This is a very brief introduction to the basic gameplay:=Esta é unha breve introdución ao xogo básico:
|
||||||
|
Basic controls:=Controis básicos:
|
||||||
|
• Move mouse to look=• Move o rato para mirar
|
||||||
|
• [W], [A], [S] and [D] to move=• [W], [A], [S] e [D] para mover
|
||||||
|
• [E] to sprint=• [E] para esprintar
|
||||||
|
• [Space] to jump or move upwards=• [Espazo] para saltar ou moverse cara arriba
|
||||||
|
• [Shift] to sneak or move downwards=• [Maiús] para escapar ou moverse cara abaixo
|
||||||
|
• Mouse wheel or [0]-[9] to select item=• Roda do rato ou [1]-[9] para seleccionar elemento
|
||||||
|
• Left-click to mine blocks or attack=• Fai clic co botón esquerdo para minar bloques ou atacar
|
||||||
|
• Recover from swings to deal full damage=• Recupérate de oscilacións para causar dano total
|
||||||
|
• Right-click to build blocks and use things=• Fai clic co botón dereito para construír bloques e usar as cousas
|
||||||
|
• [I] for the inventory=• [I] para o inventario
|
||||||
|
• First items in inventory appear in hotbar below=• Os primeiros elementos do inventario aparecen na barra de acceso abaixo
|
||||||
|
• Lowest row in inventory appears in hotbar below=• A fila máis baixa do inventario aparece na barra de acceso abaixo
|
||||||
|
• [Esc] to close this window=• [Esc] para pechar esta xanela
|
||||||
|
How to play:=Como xogar:
|
||||||
|
• Punch a tree trunk until it breaks and collect wood=• Golpear un tronco de árbore ata romper e recoller madeira
|
||||||
|
• Place the wood into the 2×2 grid (your “crafting grid”) in your inventory menu and craft 4 wood planks=• Coloca a madeira na reixa 2×2 (a túa “reixa de elaboración”) no menú do teu inventario e crea 4 táboas de madeira
|
||||||
|
• Place them in a 2×2 shape in the crafting grid to craft a crafting table=• Colócaos en forma de 2×2 na reixa de elaboración para elaborar unha mesa de elaboración
|
||||||
|
• Place the crafting table on the ground=• Coloca a mesa de elaboración no chan
|
||||||
|
• Rightclick it for a 3×3 crafting grid=• Fai clic co botón dereito nel para obter unha cuadrícula de elaboración 3×3
|
||||||
|
• Use the crafting guide (book icon) to learn all the possible crafting recipes=• Use a guía de elaboración (icona do libro) para aprender todas as posibles receitas de elaboración
|
||||||
|
• Craft a wooden pickaxe so you can dig stone=• Elabora un pico de madeira para poder cavar pedra
|
||||||
|
• Different tools break different kinds of blocks. Try them out!=• Diferentes ferramentas rompen diferentes tipos de bloques. ¡Próbaos!
|
||||||
|
• Read entries in this help to learn the rest=• Le as entradas desta axuda para aprender o resto
|
||||||
|
• Continue playing as you wish. There's no goal. Have fun!=• Continúa xogando como queiras. Non hai gol. ¡Divírtete!
|
||||||
|
Minetest=
|
||||||
|
Minetest is a free software game engine for games based on voxel gameplay, inspired by InfiniMiner, Minecraft, and the like. Minetest was originally created by Perttu Ahola (alias “celeron55”).=Minetest é un motor de xogos de software gratuíto para xogos baseado en voxel, inspirado en InfiniMiner, Minecraft e similares. Minetest foi creado orixinalmente por Perttu Ahola (alias “celeron55”).
|
||||||
|
The player is thrown into a huge world made out of cubes or blocks. These cubes usually make the landscape they blocks can be removed and placed almost entirely freely. Using the collected items, new tools and other items can be crafted. Games in Minetest can, however, be much more complex than this.=O xogador é lanzado a un mundo enorme feito de cubos ou bloques. Estes cubos adoitan facer que a paisaxe que bloquean poida ser eliminada e colocada case totalmente libremente. Usando os elementos recollidos, pódense elaborar novas ferramentas e outros elementos. Non obstante, os xogos en Minetest poden ser moito máis complexos que isto.
|
||||||
|
A core feature of Minetest is the built-in modding capability. Mods modify existing gameplay. They can be as simple as adding a few decorational blocks or be very complex by e.g. introducing completely new gameplay concepts, generating a completely different kind of world, and many other things.=Unha característica principal de Minetest é a capacidade de modificación integrada. As modificacións modifican o xogo existente. Poden ser tan sinxelos como engadir uns cantos bloques decorativos ou ser moi complexos, por exemplo. introducindo conceptos de xogo completamente novos, xerando un tipo de mundo completamente diferente e moitas outras cousas.
|
||||||
|
Minetest can be played alone or online together with multiple players. Online play will work out of the box with any mods, with no need for additional software as they are entirely provided by the server.=Minetest pódese xogar só ou en liña xunto con varios xogadores. O xogo en liña funcionará fóra da caixa con calquera modificación, sen necesidade de software adicional, xa que son proporcionados enteiramente polo servidor.
|
||||||
|
Minetest is usually bundled with a simple default game, named “Minetest Game” (shown in images 1 and 2). You probably already have it. Other games for Minetest can be downloaded from the official Minetest forums <https://forum.minetest.net/viewforum.php?f@=48>.=Minetest adoita incluír un xogo predeterminado sinxelo, chamado "Xogo Minetest" (mostrado nas imaxes 1 e 2). Probablemente xa o teñas. Outros xogos para Minetest pódense descargar dos foros oficiais de Minetest <https://forum.minetest.net/viewforum.php?f@=48>.
|
||||||
|
Minetest as well as Minetest Game are both unfinished at the moment, so please forgive us when not everything works out perfectly.=Minetest e Minetest Game están sen rematar polo momento, así que perdóanos cando non todo funcione perfectamente.
|
||||||
|
Sneaking=furtivamente
|
||||||
|
Sneaking makes you walk slower and prevents you from falling off the edge of a block.=Escalar faiche camiñar máis lento e evita que caigas do bordo dun bloque.
|
||||||
|
To sneak, hold down the sneak key (default: [Shift]). When you release it, you stop sneaking. Careful: When you release the sneak key at a ledge, you might fall!=Para escabullirse, manteña premida a tecla de furtivismo (predeterminado: [Maiús]). Cando o soltas, deixas de escapar. Coidado: cando soltas a chave furtiva nunha cornisa, podes caer!
|
||||||
|
• Sneak: [Shift]=• Furtivamente: [Maiús]
|
||||||
|
Sneaking only works when you stand on solid ground, are not in a liquid and don't climb.=A furtiva só funciona cando estás en terreo sólido, non estás nun líquido e non trepes.
|
||||||
|
If you jump while holding the sneak key, you also jump slightly higher than usual.=Se saltas mantendo pulsada a tecla furtiva, tamén saltas lixeiramente máis alto do habitual.
|
||||||
|
Sneaking might be disabled by mods. In this case, you still walk slower by sneaking, but you will no longer be stopped at ledges.=As modificacións poden desactivar a furtiva. Neste caso, aínda camiñas máis lento coa furtiva, pero xa non te pararás nas repisas.
|
||||||
|
Controls=Controis
|
||||||
|
These are the default controls:=Estes son os controis predeterminados:
|
||||||
|
Basic movement:=Movemento básico:
|
||||||
|
• Moving the mouse around: Look around=• Mover o rato: mira ao redor
|
||||||
|
• W: Move forwards=• W: avanzar
|
||||||
|
• A: Move to the left=• R: Mover á esquerda
|
||||||
|
• D: Move to the right=• D: Mover á dereita
|
||||||
|
• S: Move backwards=• S: Mover cara atrás
|
||||||
|
• E: Sprint=• E: Sprint
|
||||||
|
While standing on solid ground:=Estando de pé en terreo sólido:
|
||||||
|
• Space: Jump=• Espazo: Salto
|
||||||
|
• Shift: Sneak=• Quenda: furtivo
|
||||||
|
While on a ladder, swimming in a liquid or fly mode is active=Mentres está nunha escaleira, nadar en modo líquido ou voar está activo
|
||||||
|
• Space: Move up=• Espazo: Mover arriba
|
||||||
|
• Shift: Move down=• Maiúsculas: Mover cara abaixo
|
||||||
|
Extended movement (requires privileges):=Movemento estendido (require privilexios):
|
||||||
|
• J: Toggle fast mode, makes you run or fly fast (requires “fast” privilege)=• J: alterna o modo rápido, faiche correr ou voar rápido (require privilexio "rápido")
|
||||||
|
• K: Toggle fly mode, makes you move freely in all directions (requires “fly” privilege)=• K: alterna o modo voo, fai que te movas libremente en todas as direccións (require o privilexio de "voar")
|
||||||
|
• H: Toggle noclip mode, makes you go through walls in fly mode (requires “noclip” privilege)=• H: Activa o modo noclip, fai que atraveses paredes no modo voar (require privilexio “noclip”)
|
||||||
|
• E: Move even faster when in fast mode=• E: Móvese aínda máis rápido cando está en modo rápido
|
||||||
|
• E: Walk fast in fast mode=• E: Camiña rápido en modo rápido
|
||||||
|
World interaction:=Interacción mundial:
|
||||||
|
• Left mouse button: Punch / mine blocks / take items=• Botón esquerdo do rato: perforar / minar bloques / levar elementos
|
||||||
|
• Left mouse button: Punch / mine blocks=• Botón esquerdo do rato: Punch/mine blocks
|
||||||
|
• Right mouse button: Build or use pointed block=• Botón dereito do rato: Constrúe ou use un bloque apuntado
|
||||||
|
• Shift+Right mouse button: Build=• Maiús+botón dereito do rato: Construír
|
||||||
|
• Roll mouse wheel: Select next/previous item in hotbar=• Rodar a roda do rato: seleccione o elemento seguinte/anterior na barra de acceso
|
||||||
|
• Roll mouse wheel / B / N: Select next/previous item in hotbar=• Rodar a roda do rato / B / N: seleccione o elemento seguinte/anterior na barra de acceso
|
||||||
|
• 1-9: Select item in hotbar directly=• 1-9: Seleccione o elemento na barra de acceso directo
|
||||||
|
• Q: Drop item stack=• P: Soltar pila de elementos
|
||||||
|
• Shift+Q: Drop 1 item=• Maiús+Q: solta 1 elemento
|
||||||
|
• I: Show/hide inventory menu=• I: Mostrar/ocultar menú de inventario
|
||||||
|
Inventory interaction:=Interacción de inventario:
|
||||||
|
See the entry “Basics > Inventory”.=Consulte a entrada "Básicos > Inventario".
|
||||||
|
Camera:=Cámara:
|
||||||
|
• Z: Zoom=• Z: Zoom
|
||||||
|
• F7: Toggle camera mode=• F7: alternar modo de cámara
|
||||||
|
• F8: Toggle cinematic mode=• F8: alternar modo cinematográfico
|
||||||
|
Interface:=Interface:
|
||||||
|
• Esc: Open menu window (pauses in single-player mode) or close window=• Esc: Abre a xanela do menú (fai unha pausa no modo dun xogador) ou pecha xanela
|
||||||
|
• F1: Show/hide HUD=• F1: Mostrar/ocultar HUD
|
||||||
|
• F2: Show/hide chat=• F2: Mostrar/ocultar chat
|
||||||
|
• F9: Toggle minimap=• F9: Alternar minimapa
|
||||||
|
• Shift+F9: Toggle minimap rotation mode=• Maiús+F9: alterna o modo de rotación do minimapa
|
||||||
|
• F10: Open/close console/chat log=• F10: Abrir/pechar consola/rexistro de chat
|
||||||
|
• F12: Take a screenshot=• F12: Fai unha captura de pantalla
|
||||||
|
Server interaction:=Interacción do servidor:
|
||||||
|
• T: Open chat window (chat requires the “shout” privilege)=• T: Abrir a xanela de chat (o chat require o privilexio de “gritar”)
|
||||||
|
• /: Start issuing a server command=• /: Comeza a emitir un comando do servidor
|
||||||
|
Technical:=Técnico:
|
||||||
|
• R: Toggle far view (disables all fog and allows viewing far away, can make game very slow)=• R: Alterna a vista de lonxe (desactiva toda a néboa e permite a visualización de lonxe, pode facer que o xogo sexa moi lento)
|
||||||
|
• +: Increase minimal viewing distance=• +: Aumenta a distancia mínima de visualización
|
||||||
|
• -: Decrease minimal viewing distance=• -: Diminuír a distancia mínima de visualización
|
||||||
|
• F3: Enable/disable fog=• F3: Activar/desactivar néboa
|
||||||
|
• F5: Enable/disable debug screen which also shows your coordinates=• F5: Activar/desactivar a pantalla de depuración que tamén mostra as súas coordenadas
|
||||||
|
• F6: Only useful for developers. Enables/disables profiler=• F6: Só útil para desenvolvedores. Activa/desactiva o perfilador
|
||||||
|
• P: Only useful for developers. Writes current stack traces=• P: Só útil para desenvolvedores. Escribe trazos de pila actual
|
||||||
|
Players=Xogadores
|
||||||
|
Players (actually: “player characters”) are the characters which users control.=Os xogadores (en realidade: "personaxes xogadores") son os personaxes que controlan os usuarios.
|
||||||
|
Players are living beings. They start with a number of health points (HP) and a number of breath points (BP).=Os xogadores son seres vivos. Comezan cun número de puntos de saúde (HP) e un número de puntos de respiración (BP).
|
||||||
|
Players are capable of walking, sneaking, jumping, climbing, swimming, diving, mining, building, fighting and using tools and blocks.=Os xogadores son capaces de camiñar, escapar, saltar, escalar, nadar, mergullarse, minar, construír, loitar e usar ferramentas e bloques.
|
||||||
|
Players can take damage for a variety of reasons, here are some:=Os xogadores poden sufrir danos por varias razóns, aquí tes algunhas:
|
||||||
|
• Taking fall damage=• Asumir danos por caída
|
||||||
|
• Touching a block which causes direct damage=• Tocar un bloque que cause danos directos
|
||||||
|
• Drowning=• Afogamento
|
||||||
|
• Being attacked by another player=• Ser atacado por outro xogador
|
||||||
|
• Being attacked by a computer enemy=• Ser atacado por un inimigo informático
|
||||||
|
At a health of 0, the player dies. The player can just respawn in the world.=Cunha saúde de 0, o xogador morre. O xogador só pode reaparecer no mundo.
|
||||||
|
Other consequences of death depend on the game. The player could lose all items, or lose the round in a competitive game.=Outras consecuencias da morte dependen do xogo. O xogador podería perder todos os elementos ou perder a rolda nun xogo competitivo.
|
||||||
|
Some blocks reduce breath. While being with the head in a block which causes drowning, the breath points are reduced by 1 for every 2 seconds. When all breath is gone, the player starts to suffer drowning damage. Breath is quickly restored in any other block.=Algúns bloques reducen a respiración. Mentres está coa cabeza nun bloque que provoca afogamento, os puntos de respiración redúcense 1 por cada 2 segundos. Cando todo o alento desaparece, o xogador comeza a sufrir danos por afogamento. A respiración restablece rapidamente en calquera outro bloque.
|
||||||
|
Damage can be disabled on any world. Without damage, players are immortal and health and breath are unimportant.=Os danos pódense desactivar en calquera mundo. Sen danos, os xogadores son inmortais e a saúde e a respiración non teñen importancia.
|
||||||
|
In multi-player mode, the name of other players is written above their head.=No modo multixogador, o nome dos outros xogadores está escrito enriba da súa cabeza.
|
||||||
|
Items=Elementos
|
||||||
|
Items are things you can carry along and store in inventories. They can be used for crafting, smelting, building, mining, and more. Types of items include blocks, tools, weapons and items only used for crafting.=Os artigos son cousas que podes levar e almacenar nos inventarios. Pódense usar para artesanía, fundición, construción, minería e moito máis. Os tipos de elementos inclúen bloques, ferramentas, armas e elementos que só se usan para a elaboración.
|
||||||
|
An item stack is a collection of items of the same type which fits into a single item slot. Item stacks can be dropped on the ground. Items which drop into the same coordinates will form an item stack.=Unha pila de artigos é unha colección de elementos do mesmo tipo que caben nun único espazo para elementos. As pilas de artigos pódense deixar caer ao chan. Os elementos que caen nas mesmas coordenadas formarán unha pila de elementos.
|
||||||
|
Dropped item stacks will be collected automatically when you stand close to them.=As pilas de elementos soltados recolleranse automaticamente cando esteas preto delas.
|
||||||
|
Items have several properties, including the following:=Os elementos teñen varias propiedades, incluíndo as seguintes:
|
||||||
|
• Maximum stack size: Number of items which fit on 1 item stack=• Tamaño máximo da pila: número de elementos que caben nunha pila de elementos
|
||||||
|
• Pointing range: How close things must be to be pointed while wielding this item=• Rango de apuntamento: ata que punto deben estar as cousas para ser apuntadas mentres se manexa este elemento
|
||||||
|
• Group memberships: See “Basics > Groups”=• Pertenzas a grupos: consulte “Aspectos básicos > Grupos”
|
||||||
|
• May be used for crafting or cooking=• Pódese usar para facer manualidades ou cociñar
|
||||||
|
Tools=Ferramentas
|
||||||
|
Some items may serve as a tool when wielded. Any item which has some special use which can be directly used by its wielder is considered a tool.=Algúns elementos poden servir como ferramenta cando se manexan. Calquera elemento que teña algún uso especial que poida ser usado directamente polo seu portador considérase unha ferramenta.
|
||||||
|
A common subset of tools is mining tools. These are important to break all kinds of blocks. Weapons are a kind of tool. There are of course many other possible tools. Special actions of tools are usually done by left-click or right-click.=Un subconxunto común de ferramentas son as ferramentas de minería. Estes son importantes para romper todo tipo de bloques. As armas son unha especie de ferramenta. Por suposto, hai moitas outras ferramentas posibles. As accións especiais das ferramentas adoitan facerse facendo clic co botón esquerdo ou co botón dereito.
|
||||||
|
When nothing is wielded, players use their hand which may act as tool and weapon.=Cando non se manexa nada, os xogadores usan a súa man que pode actuar como ferramenta e arma.
|
||||||
|
Mining tools are important to break all kinds of blocks. Weapons are another kind of tool. There are some other more specialized tools. Special actions of tools are usually done by right-click.=As ferramentas de minería son importantes para romper todo tipo de bloques. As armas son outro tipo de ferramenta. Hai outras ferramentas máis especializadas. As accións especiais das ferramentas adoitan facerse facendo clic co botón dereito.
|
||||||
|
When nothing is wielded, players use their hand which may act as tool and weapon. The hand is capable of punching and deals minimum damage.=Cando non se manexa nada, os xogadores usan a súa man, que pode actuar como ferramenta e arma. A man é capaz de golpear e causa un dano mínimo.
|
||||||
|
Many tools will wear off when using them and may eventually get destroyed. The damage is displayed in a damage bar below the tool icon. If no damage bar is shown, the tool is in mint condition. Tools may be repairable by crafting, see “Basics > Crafting”.=Moitas ferramentas desgastaranse ao usalas e poden acabar destruíndose. O dano móstrase nunha barra de danos debaixo da icona da ferramenta. Se non se mostra ningunha barra de danos, a ferramenta está en perfecto estado. As ferramentas pódense reparar elaborando, consulte "Conceptos básicos > Elaboración".
|
||||||
|
Weapons=Armas
|
||||||
|
Some items are usable as a melee weapon when wielded. Weapons share most of the properties of tools.=Algúns elementos poden usarse como arma corpo a corpo cando se manexan. As armas comparten a maioría das propiedades das ferramentas.
|
||||||
|
Melee weapons deal damage by punching players and other animate objects. There are two ways to attack:=As armas corpo a corpo causan dano golpeando aos xogadores e outros obxectos animados. Hai dúas formas de atacar:
|
||||||
|
• Single punch: Left-click once to deal a single punch=• Golpe único: fai clic co botón esquerdo unha vez para dar un só golpe
|
||||||
|
• Quick punching: Hold down the left mouse button to deal quick repeated punches=• Perforación rápida: Manteña premido o botón esquerdo do rato para facer golpes rápidos repetidos
|
||||||
|
There are two core attributes of melee weapons:=Hai dous atributos fundamentais das armas corpo a corpo:
|
||||||
|
• Maximum damage: Damage which is dealt after a hit when the weapon was fully recovered=• Dano máximo: dano que se inflixe despois dun golpe cando a arma foi totalmente recuperada
|
||||||
|
• Full punch interval: Time it takes for fully recovering from a punch=• Intervalo de golpe completo: tempo que tarda en recuperarse completamente dun golpe
|
||||||
|
A weapon only deals full damage when it has fully recovered from a previous punch. Otherwise, the weapon will deal only reduced damage. This means, quick punching is very fast, but also deals rather low damage. Note the full punch interval does not limit how fast you can attack.=Unha arma só causa dano total cando se recuperou completamente dun golpe anterior. En caso contrario, a arma só causará un dano reducido. Isto significa que o golpe rápido é moi rápido, pero tamén causa un dano bastante baixo. Teña en conta que o intervalo de golpe completo non limita a rapidez coa que pode atacar.
|
||||||
|
There is a rule which sometimes makes attacks impossible: Players, animate objects and weapons belong to damage groups. A weapon only deals damage to those who share at least one damage group with it. So if you're using the wrong weapon, you might not deal any damage at all.=Hai unha regra que ás veces imposibilita os ataques: os xogadores, os obxectos animados e as armas pertencen a grupos de danos. Unha arma só causa dano a aqueles que comparten polo menos un grupo de danos con ela. Polo tanto, se estás a usar a arma incorrecta, pode que non causes ningún dano.
|
||||||
|
Pointing=Apuntando
|
||||||
|
“Pointing” means looking at something in range with the crosshair. Pointing is needed for interaction, like mining, punching, using, etc. Pointable things include blocks, players, computer enemies and objects.="Apuntar" significa mirar algo dentro do alcance co punto de mira. Apuntar é necesario para a interacción, como minar, perforar, usar, etc. As cousas salientables inclúen bloques, xogadores, inimigos de ordenador e obxectos.
|
||||||
|
To point something, it must be in the pointing range (also just called “range”) of your wielded item. There's a default range when you are not wielding anything. A pointed thing will be outlined or highlighted (depending on your settings). Pointing is not possible with the 3rd person front camera.=Para apuntar algo, debe estar no intervalo de apuntamento (tamén chamado "rango") do teu elemento esgrimido. Hai un intervalo predeterminado cando non manexas nada. Destacarase ou resaltarase unha cousa sinalada (dependendo da súa configuración). Non é posible apuntar coa cámara frontal de 3a persoa.
|
||||||
|
A few things can not be pointed. Most blocks are pointable. A few blocks, like air, can never be pointed. Other blocks, like liquids can only be pointed by special items.=Algunhas cousas non se poden sinalar. A maioría dos bloques son puntuables. Uns cantos bloques, como o aire, nunca se poden apuntar. Outros bloques, como os líquidos, só poden ser sinalados por elementos especiais.
|
||||||
|
Camera=Cámara
|
||||||
|
There are 3 different views which determine the way you see the world. The modes are:=Hai 3 puntos de vista diferentes que determinan a forma de ver o mundo. Os modos son:
|
||||||
|
• 1: First-person view (default)=• 1: Vista en primeira persoa (predeterminado)
|
||||||
|
• 2: Third-person view from behind=• 2: Vista en terceira persoa desde atrás
|
||||||
|
• 3: Third-person view from the front=• 3: Vista en terceira persoa de fronte
|
||||||
|
You can change the camera mode by pressing [F7].=Pode cambiar o modo da cámara premendo [F7].
|
||||||
|
You might be able to zoom with [Z] to zoom the view at the crosshair. This allows you to look further.=Podes facer zoom con [Z] para ampliar a vista no punto de mira. Isto permítelle mirar máis alá.
|
||||||
|
Zooming is a gameplay feature that might be enabled or disabled by the game. By default, zooming is enabled when in Creative Mode but disabled otherwise.=O zoom é unha función de xogo que pode estar activada ou desactivada polo xogo. De forma predeterminada, o zoom está activado cando está en modo creativo, pero en caso contrario está desactivado.
|
||||||
|
There is also Cinematic Mode which can be toggled with [F8]. With Cinematic Mode enabled, the camera movements become more smooth. Some players don't like it, it is a matter of taste.=Tamén hai un modo cinematográfico que se pode alternar con [F8]. Co modo cinematográfico activado, os movementos da cámara fanse máis suaves. A algúns xogadores non lles gusta, é cuestión de gustos.
|
||||||
|
By holding down [Z], you can zoom the view at your crosshair. You need the “zoom” privilege to do this.=Mantendo premido [Z], podes ampliar a vista no punto de mira. Necesitas o privilexio de "zoom" para facelo.
|
||||||
|
• Switch camera mode: [F7]=• Cambiar modo de cámara: [F7]
|
||||||
|
• Toggle Cinematic Mode: [F8]=• Alterna o modo cinematográfico: [F8]
|
||||||
|
• Zoom: [Z]=• Zoom: [Z]
|
||||||
|
Blocks=Bloques
|
||||||
|
The world of MineClone 2 is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.=O mundo de MineClone 2 está feito enteiramente de bloques (voxels, para ser precisos). Pódense engadir ou eliminar bloques coas ferramentas correctas.
|
||||||
|
The world is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.=O mundo está feito enteiramente de bloques (voxels, para ser precisos). Pódense engadir ou eliminar bloques coas ferramentas correctas.
|
||||||
|
Blocks can have a wide range of different properties which determine mining times, behavior, looks, shape, and much more. Their properties include:=Os bloques poden ter unha ampla gama de propiedades diferentes que determinan os tempos de minería, o comportamento, o aspecto, a forma e moito máis. As súas propiedades inclúen:
|
||||||
|
• Collidable: Collidable blocks can not be passed through; players can walk on them. Non-collidable blocks can be passed through freely=• Colidable: os bloques colidábeis non se poden atravesar; os xogadores poden andar sobre eles. Os bloques non colisionables pódense pasar libremente
|
||||||
|
• Pointable: Pointable blocks show a wireframe or a halo box when pointed. But you will just point through non-pointable blocks. Liquids are usually non-pointable but they can be pointed at by some special tools=• Puntável: os bloques apuntables mostran unha armazón ou unha caixa de halo cando se apuntan. Pero só apuntarás a través de bloques non puntuables. Os líquidos adoitan ser insensibles, pero pódense sinalar con algunhas ferramentas especiais
|
||||||
|
• Mining properties: By which tools it can be mined, how fast and how much it wears off tools=• Propiedades mineiras: con que ferramentas se pode extraer, a que velocidade e canto gasta as ferramentas
|
||||||
|
• Climbable: While you are at a climbable block, you won't fall and you can move up and down with the jump and sneak keys=• Escalable: mentres estás nun bloque escalable, non caerás e podes moverte cara arriba e abaixo coas teclas de salto e furtivo
|
||||||
|
• Drowning damage: See the entry “Basics > Player”=• Danos por afogamento: consulte a entrada “Básicos > Xogador”
|
||||||
|
• Liquids: See the entry “Basics > Liquids”=• Líquidos: Consulte a entrada “Básicos > Líquidos”
|
||||||
|
• Group memberships: Group memberships are used to determine mining properties, crafting, interactions between blocks and more=• Pertenzas a grupos: as pertenzas a grupos úsanse para determinar as propiedades de minería, a elaboración, as interaccións entre bloques e moito máis
|
||||||
|
Mining=minería
|
||||||
|
Mining (or digging) is the process of breaking blocks to remove them. To mine a block, point it and hold down the left mouse button until it breaks.=A minería (ou cavar) é o proceso de romper bloques para eliminalos. Para minar un bloque, apunto e manteña premido o botón esquerdo do rato ata que se rompa.
|
||||||
|
Blocks require a mining tool to be mined. Different blocks are mined by different mining tools, and some blocks can not be mined by any tool. Blocks vary in hardness and tools vary in strength. Mining tools will wear off over time. The mining time and the tool wear depend on the block and the mining tool. The fastest way to find out how efficient your mining tools are is by just trying them out on various blocks. Any items you gather by mining will drop on the ground, ready to be collected.=Os bloques requiren unha ferramenta de minería para ser minados. Diferentes bloques son extraídos por diferentes ferramentas de minería, e algúns bloques non poden ser extraídos por ningunha ferramenta. Os bloques varían en dureza e as ferramentas varían en forza. As ferramentas de minería desaparecerán co paso do tempo. O tempo de minería e o desgaste da ferramenta dependen do bloque e da ferramenta de minería. A forma máis rápida de descubrir a eficiencia das túas ferramentas de minería é probalas en varios bloques. Calquera elemento que recolla coa minería caerá no chan, listo para ser recollido.
|
||||||
|
After mining, a block may leave a “drop” behind. This is a number of items you get after mining. Most commonly, you will get the block itself. There are other possibilities for a drop which depends on the block type. The following drops are possible:=Despois da minería, un bloque pode deixar unha "gota" atrás. Esta é unha serie de elementos que obtén despois da minería. Máis comúnmente, obterás o propio bloque. Existen outras posibilidades de caída que dependen do tipo de bloque. Son posibles as seguintes caídas:
|
||||||
|
• Always drops itself (the usual case)=• Sempre cae a si mesmo (o caso habitual)
|
||||||
|
• Always drops the same items=• Sempre solta os mesmos elementos
|
||||||
|
• Drops items based on probability=• Elimina elementos en función da probabilidade
|
||||||
|
• Drops nothing=• Non cae nada
|
||||||
|
Building=Edificio
|
||||||
|
Almost all blocks can be built (or placed). Building is very simple and has no delay.=Case todos os bloques pódense construír (ou colocar). A construción é moi sinxela e non ten demora.
|
||||||
|
To build your wielded block, point at a block in the world and right-click. If this is not possible because the pointed block has a special right-click action, hold down the sneak key before right-clicking.=Para construír o teu bloque, apunta a un bloque do mundo e fai clic co botón dereito. Se isto non é posible porque o bloque apuntado ten unha acción especial de clic co botón dereito, manteña premida a tecla furtiva antes de facer clic co botón dereito.
|
||||||
|
Blocks can almost always be built at pointable blocks. One exception are blocks attached to the floor; these can only be built on the floor.=Case sempre pódense construír bloques en bloques puntuables. Unha excepción son os bloques pegados ao chan; estes só poden construírse no chan.
|
||||||
|
Normally, blocks are built in front of the pointed side of the pointed block. A few blocks are different: When you try to build at them, they are replaced.=Normalmente, os bloques constrúense diante do lado apuntado do bloque puntiagudo. Algúns bloques son diferentes: cando intentas construír neles, substitúense.
|
||||||
|
Liquids=Líquidos
|
||||||
|
Liquids are special dynamic blocks. Liquids like to spread and flow to their surrounding blocks. Players can swim and drown in them.=Os líquidos son bloques dinámicos especiais. Aos líquidos gústalles estenderse e fluír aos seus bloques circundantes. Os xogadores poden nadar e afogar neles.
|
||||||
|
Liquids usually come in two forms: In source form (S) and in flowing form (F).=Os líquidos adoitan presentarse en dúas formas: en forma fonte (S) e en forma fluída (F).
|
||||||
|
Liquid sources have the shape of a full cube. A liquid source will generate flowing liquids around it from time to time, and, if the liquid is renewable, it also generates liquid sources. A liquid source can sustain itself. As long it is left alone, a liquid source will normally keep its place and does not drain out.=As fontes líquidas teñen a forma dun cubo cheo. Unha fonte líquida xerará líquidos ao seu redor de cando en vez e, se o líquido é renovable, tamén xera fontes líquidas. Unha fonte líquida pode manterse por si mesma. Mentres se deixa só, unha fonte líquida normalmente manterá o seu lugar e non escorre.
|
||||||
|
Flowing liquids take a sloped form. Flowing liquids spread around the world until they drain. A flowing liquid can not sustain itself and always comes from a liquid source, either directly or indirectly. Without a liquid source, a flowing liquid will eventually drain out and disappear.=Os líquidos que flúen adoptan unha forma inclinada. Os líquidos que flúen esténdense polo mundo ata que drenan. Un líquido que flúe non pode sosterse e sempre provén dunha fonte líquida, ben directa ou indirectamente. Sen unha fonte de líquido, un líquido que flúe eventualmente escorrerá e desaparecerá.
|
||||||
|
All liquids share the following properties:=Todos os líquidos comparten as seguintes propiedades:
|
||||||
|
• All properties of blocks (including drowning damage)=• Todas as propiedades dos bloques (incluíndo danos por afogamento)
|
||||||
|
• Renewability: Renewable liquids can create new sources=• Renovabilidade: os líquidos renovables poden crear novas fontes
|
||||||
|
• Flowing range: How many flowing liquids are created at maximum per liquid source, it determines how far the liquid will spread. Possible are ranges from 0 to 8. At 0, no flowing liquids will be created. Image 5 shows a liquid of flowing range 2=• Rango de fluxo: cantos líquidos fluídos se crean como máximo por fonte de líquido, determina ata onde se espallará o líquido. Posibles son os rangos de 0 a 8. Ao 0, non se crearán líquidos fluídos. A imaxe 5 mostra un líquido de intervalo fluído 2
|
||||||
|
• Viscosity: How slow players move through it and how slow the liquid spreads=• Viscosidade: o lento que se move os xogadores por el e o lento que se espalla o líquido
|
||||||
|
Renewable liquids create new liquid sources at open spaces (image 2). A new liquid source is created when:=Os líquidos renovables crean novas fontes líquidas en espazos abertos (imaxe 2). Créase unha nova fonte de líquido cando:
|
||||||
|
• Two renewable liquid blocks of the same type touch each other diagonally=• Dous bloques de líquidos renovables do mesmo tipo tócanse en diagonal
|
||||||
|
• These blocks are also on the same height=• Estes bloques tamén están á mesma altura
|
||||||
|
• One of the two “corners” is open space which allows liquids to flow in=• Un dos dous “esquinas” é un espazo aberto que permite que os líquidos flúen
|
||||||
|
When those criteria are met, the open space is filled with a new liquid source of the same type (image 3).=Cando se cumpren eses criterios, o espazo aberto énchese cunha nova fonte de líquido do mesmo tipo (imaxe 3).
|
||||||
|
Swimming in a liquid is fairly straightforward: The usual direction keys for basic movement, the jump key for rising and the sneak key for sinking.=Nadar nun líquido é bastante sinxelo: as teclas de dirección habituais para o movemento básico, a tecla de salto para subir e a tecla para afundir.
|
||||||
|
The physics for swimming and diving in a liquid are:=A física para nadar e mergullar nun líquido son:
|
||||||
|
• The higher the viscosity, the slower you move=• Canto maior sexa a viscosidade, máis lento te moves
|
||||||
|
• If you rest, you'll slowly sink=• Se descansas, afundirase lentamente
|
||||||
|
• There is no fall damage for falling into a liquid as such=• Non hai danos por caída por caer nun líquido como tal
|
||||||
|
• If you fall into a liquid, you will be slowed down on impact (but don't stop instantly). Your impact depth is determined by your speed and the liquid viscosity. For a safe high drop into a liquid, make sure there is enough liquid above the ground, otherwise you might hit the ground and take fall damage=• Se caes nun líquido, reducirás a velocidade no impacto (pero non pares ao instante). A súa profundidade de impacto está determinada pola súa velocidade e a viscosidade do líquido. Para unha caída segura e alta nun líquido, asegúrate de que haxa suficiente líquido sobre o chan, se non, podes golpear o chan e sufrir danos por caída
|
||||||
|
Liquids are often not pointable. But some special items are able to point all liquids.=Os líquidos moitas veces non son útiles. Pero algúns elementos especiais son capaces de apuntar todos os líquidos.
|
||||||
|
Crafting=Elaboración
|
||||||
|
Crafting is the task of combining several items to form a new item.=A elaboración é a tarefa de combinar varios elementos para formar un novo elemento.
|
||||||
|
To craft something, you need one or more items, a crafting grid (C) and a crafting recipe. A crafting grid is like a normal inventory which can also be used for crafting. Items need to be put in a certain pattern into the crafting grid. Next to the crafting grid is an output slot (O). Here the result will appear when you placed items correctly. This is just a preview, not the actual item. Crafting grids can come in different sizes which limits the possible recipes you can craft.=Para elaborar algo, necesitas un ou máis elementos, unha reixa de elaboración (C) e unha receita de elaboración. Unha cuadrícula de elaboración é como un inventario normal que tamén se pode usar para elaborar. Os elementos deben colocarse nun patrón determinado na reixa de elaboración. Xunto á reixa de elaboración hai unha ranura de saída (O). Aquí o resultado aparecerá cando colocou os elementos correctamente. Esta é só unha vista previa, non o elemento real. As cuadrículas de elaboración poden ter diferentes tamaños, o que limita as posibles receitas que podes elaborar.
|
||||||
|
To complete the craft, take the result item from the output slot, which will consume items from the crafting grid and creates a new item. It is not possible to place items into the output slot.=Para completar a manualidade, toma o elemento do resultado da ranura de saída, que consumirá elementos da grella de elaboración e creará un novo elemento. Non é posible colocar elementos no slot de saída.
|
||||||
|
A description on how to craft an item is called a “crafting recipe”. You need this knowledge to craft. There are multiple ways to learn crafting recipes. One way is by using a crafting guide, which contains a list of available crafting recipes. Some games provide crafting guides. There are also some mods which you can download online for installing a crafting guide. Another way is by reading the online manual of the game (if one is available).=Unha descrición sobre como elaborar un artigo chámase "receita de elaboración". Necesitas estes coñecementos para elaborar. Hai varias formas de aprender receitas artesanais. Unha forma é usar unha guía de elaboración, que contén unha lista de receitas de elaboración dispoñibles. Algúns xogos ofrecen guías de elaboración. Tamén hai algúns mods que podes descargar en liña para instalar unha guía de elaboración. Outra forma é lendo o manual en liña do xogo (se está dispoñible).
|
||||||
|
Crafting recipes consist of at least one input item and exactly one stack of output items. When performing a single craft, it will consume exactly one item from each stack of the crafting grid, unless the crafting recipe defines replacements.=As receitas de elaboración consisten en polo menos un elemento de entrada e exactamente unha pila de elementos de saída. Ao realizar unha única artesanía, consumirá exactamente un elemento de cada pila da grella de elaboración, a menos que a receita de elaboración defina substitucións.
|
||||||
|
There are multiple types of crafting recipes:=Hai varios tipos de receitas de elaboración:
|
||||||
|
• Shaped (image 2): Items need to be placed in a particular shape=• En forma (imaxe 2): os elementos deben colocarse nunha forma determinada
|
||||||
|
• Shapeless (images 3 and 4): Items need to be placed somewhere in input (both images show the same recipe)=• Sen forma (imaxes 3 e 4): os elementos deben colocarse nalgún lugar da entrada (ambas imaxes mostran a mesma receita)
|
||||||
|
• Cooking: Explained in “Basics > Cooking”=• Cociñar: Explícase en “Básicos > Cociñar”
|
||||||
|
• Repairing (image 5): Place two damaged tools into the crafting grid anywhere to get a tool which is repaired by 5%=• Reparación (imaxe 5): coloque dúas ferramentas danadas na reixa de elaboración en calquera lugar para conseguir unha ferramenta que se repara nun 5%
|
||||||
|
In some crafting recipes, some input items do not need to be a concrete item, instead they need to be a member of a group (see “Basics > Groups”). These recipes offer a bit more freedom in the input items. Images 6-8 show the same group-based recipe. Here, 8 items of the “stone” group are required, which is true for all of the shown items.=Nalgunhas receitas de elaboración, algúns elementos de entrada non precisan ser un elemento concreto, senón que deben ser membros dun grupo (consulta "Aspectos básicos > Grupos"). Estas receitas ofrecen un pouco máis de liberdade nos elementos de entrada. As imaxes 6-8 mostran a mesma receita baseada en grupo. Aquí, son necesarios 8 elementos do grupo "pedra", o que é certo para todos os elementos mostrados.
|
||||||
|
Rarely, crafting recipes have replacements. This means, whenever you perform a craft, some items in the crafting grid will not be consumed, but instead will be replaced by another item.=Poucas veces, as receitas de elaboración teñen substitutos. Isto significa que, sempre que realices unha manualidade, algúns elementos da grella de elaboración non se consumirán, senón que se substituirán por outro.
|
||||||
|
Cooking=Cociñar
|
||||||
|
Cooking (or smelting) is a form of crafting which does not involve a crafting grid. Cooking is done with a special block (like a furnace), an cookable item, a fuel item and time in order to yield a new item.=Cociñar (ou fundir) é unha forma de elaboración que non implica unha reixa de elaboración. A cociña realízase cun bloque especial (como un forno), un elemento cocibel, un elemento de combustible e tempo para producir un novo elemento.
|
||||||
|
Each fuel item has a burning time. This is the time a single item of the fuel keeps a furnace burning.=Cada elemento de combustible ten un tempo de combustión. Este é o momento en que un só elemento do combustible mantén aceso un forno.
|
||||||
|
Each cookable item requires time to be cooked. This time is specific to the item type and the item must be “on fire” for the whole cooking time to actually yield the result.=Cada elemento cociñable require tempo para ser cociñado. Este tempo é específico para o tipo de elemento e o elemento debe estar "incendido" durante todo o tempo de cocción para que realmente produza o resultado.
|
||||||
|
Hotbar=Barra de Acceso
|
||||||
|
At the bottom of the screen you see some squares. This is called the “hotbar”. The hotbar allows you to quickly access the first items from your player inventory.=Na parte inferior da pantalla ves algúns cadrados. Isto chámase "barra de acceso". A barra de acceso rápido permíteche acceder rapidamente aos primeiros elementos do inventario do teu reprodutor.
|
||||||
|
You can change the selected item with the mouse wheel or the keyboard.=Pode cambiar o elemento seleccionado coa roda do rato ou o teclado.
|
||||||
|
• Select previous item in hotbar: [Mouse wheel up] or [B]=• Seleccione o elemento anterior na barra de acceso: [Roda cara arriba] ou [B]
|
||||||
|
• Select next item in hotbar: [Mouse wheel down] or [N]=• Seleccione o seguinte elemento na barra de acceso: [Roda do rato cara abaixo] ou [N]
|
||||||
|
• Select item in hotbar directly: [1]-[9]=• Seleccione o elemento directamente na barra de acceso: [1]-[9]
|
||||||
|
The selected item is also your wielded item.=O elemento escollido tamén é o teu elemento usado.
|
||||||
|
Minimap=Minimapa
|
||||||
|
If you have a map item in any of your hotbar slots, you can use the minimap.=Se tes un elemento do mapa nalgunha das túas ranuras da barra activa, podes usar o minimapa.
|
||||||
|
Press [F9] to make a minimap appear on the top right. The minimap helps you to find your way around the world. Press it again to select different minimap modes and zoom levels. The minimap also shows the positions of other players.=Preme [F9] para que apareza un minimapa na parte superior dereita. O minimapa axúdache a buscar o teu camiño polo mundo. Preme de novo para seleccionar diferentes modos de minimapa e niveis de zoom. O minimapa tamén mostra as posicións doutros xogadores.
|
||||||
|
There are 2 minimap modes and 3 zoom levels.=Hai 2 modos de minimapa e 3 niveis de zoom.
|
||||||
|
Surface mode (image 1) is a top-down view of the world, roughly resembling the colors of the blocks this world is made of. It only shows the topmost blocks, everything below is hidden, like a satellite photo. Surface mode is useful if you got lost.=O modo de superficie (imaxe 1) é unha vista de arriba abaixo do mundo, que se asemella aproximadamente ás cores dos bloques dos que está feito este mundo. Só mostra os bloques superiores, todo o que está abaixo está oculto, como unha foto de satélite. O modo de superficie é útil se te perdes.
|
||||||
|
Radar mode (image 2) is more complicated. It displays the “denseness” of the area around you and changes with your height. Roughly, the more green an area is, the less “dense” it is. Black areas have many blocks. Use the radar to find caverns, hidden areas, walls and more. The rectangular shapes in image 2 clearly expose the position of a dungeon.=O modo radar (imaxe 2) é máis complicado. Mostra a "densidade" da área que te rodea e cambia coa túa altura. Aproximadamente, canto máis verde é unha zona, menos "densa" é. As áreas negras teñen moitos bloques. Usa o radar para atopar cavernas, áreas escondidas, muros e moito máis. As formas rectangulares da imaxe 2 expoñen claramente a posición dun calabozo.
|
||||||
|
There are also two different rotation modes. In “square mode”, the rotation of the minimap is fixed. If you press [Shift]+[F9] to switch to “circle mode”, the minimap will instead rotate with your looking direction, so “up” is always your looking direction.=Tamén hai dous modos de rotación diferentes. No "modo cadrado", a rotación do minimapa está fixada. Se premes [Maiús]+[F9] para cambiar ao "modo círculo", o minimapa xirará na dirección da túa mirada, polo que "arriba" é sempre a túa dirección de mira.
|
||||||
|
In some games, the minimap may be disabled.=Nalgúns xogos, o minimapa pode estar desactivado.
|
||||||
|
• Toggle minimap mode: [F9]=• Alternar o modo minimapa: [F9]
|
||||||
|
• Toggle minimap rotation mode: [Shift]+[F9]=• Alternar o modo de rotación do minimapa: [Maiús]+[F9]
|
||||||
|
Inventory=Inventario
|
||||||
|
Inventories are used to store item stacks. There are other uses, such as crafting. An inventory consists of a rectangular grid of item slots. Each item slot can either be empty or hold one item stack. Item stacks can be moved freely between most slots.=Os inventarios úsanse para almacenar pilas de artigos. Hai outros usos, como a artesanía. Un inventario consiste nunha cuadrícula rectangular de espazos para elementos. Cada espazo para elementos pode estar baleiro ou albergar unha pila de elementos. As pilas de elementos pódense mover libremente entre a maioría dos espazos.
|
||||||
|
You have your own inventory which is called your “player inventory”, you can open it with the inventory key (default: [I]). The first inventory slots are also used as slots in your hotbar.=Tes o teu propio inventario que se chama o teu "inventario de xogadores", podes abrilo coa clave de inventario (predeterminado: [I]). Os primeiros espazos de inventario tamén se usan como espazos na súa barra de acceso rápido.
|
||||||
|
Blocks can also have their own inventory, e.g. chests and furnaces.=Os bloques tamén poden ter o seu propio inventario, p. ex. cofres e fornos.
|
||||||
|
Inventory controls:=Controis de inventario:
|
||||||
|
Taking: You can take items from an occupied slot if the cursor holds nothing.=Tomando: podes sacar elementos dun slot ocupado se o cursor non contén nada.
|
||||||
|
• Left click: take entire item stack=• Fai clic co botón esquerdo: leva a pila completa de elementos
|
||||||
|
• Right click: take half from the item stack (rounded up)=• Fai clic co botón dereito: toma a metade da pila de elementos (redondeado cara arriba)
|
||||||
|
• Middle click: take 10 items from the item stack=• Prema central: toma 10 elementos da pila de elementos
|
||||||
|
• Mouse wheel down: take 1 item from the item stack=• Roda do rato cara abaixo: colle 1 elemento da pila de elementos
|
||||||
|
Putting: You can put items onto a slot if the cursor holds 1 or more items and the slot is either empty or contains an item stack of the same item type.=Poñer: podes poñer elementos nunha ranura se o cursor contén 1 ou máis elementos e o espazo está baleiro ou contén unha pila de elementos do mesmo tipo.
|
||||||
|
• Left click: put entire item stack=• Fai clic co botón esquerdo: pon todo a pila de elementos
|
||||||
|
• Right click: put 1 item of the item stack=• Fai clic co botón dereito: pon 1 elemento da pila de elementos
|
||||||
|
• Right click or mouse wheel up: put 1 item of the item stack=• Fai clic co botón dereito do rato ou a roda do rato cara arriba: pon 1 elemento da pila de elementos
|
||||||
|
• Middle click: put 10 items of the item stack=• Clic central: pon 10 elementos da pila de elementos
|
||||||
|
Exchanging: You can exchange items if the cursor holds 1 or more items and the destination slot is occupied by a different item type.=Intercambiar: podes intercambiar elementos se o cursor ten 1 ou máis elementos e o espazo de destino está ocupado por un tipo de elemento diferente.
|
||||||
|
• Click: exchange item stacks=• Fai clic: intercambia pilas de elementos
|
||||||
|
Throwing away: If you hold an item stack and click with it somewhere outside the menu, the item stack gets thrown away into the environment.=Tirar ao lixo: se gardas unha pila de elementos e fai clic con ela nalgún lugar fóra do menú, a pila de elementos bótase ao ambiente.
|
||||||
|
Quick transfer: You can quickly transfer an item stack to/from the player inventory to/from another item's inventory slot like a furnace, chest, or any other item with an inventory slot when that item's inventory is accessed. The target inventory is generally the most relevant inventory in this context.=Transferencia rápida: podes transferir rapidamente unha pila de artigos ao inventario dos xogadores a/desde o espazo de inventario doutro artigo, como un forno, un cofre ou calquera outro elemento cun espazo de inventario cando se accede ao inventario dese artigo. O inventario de destino é xeralmente o inventario máis relevante neste contexto.
|
||||||
|
• Sneak+Left click: Automatically transfer item stack=• Sneak+click esquerdo: transferir automaticamente pila de elementos
|
||||||
|
Online help=Axuda en liña
|
||||||
|
You may want to check out these online resources related to MineClone 2.=Pode querer consultar estes recursos en liña relacionados con MineClone 2.
|
||||||
|
MineClone 2 download and forum discussion: <https://forum.minetest.net/viewtopic.php?f@=50&t@=16407>=Descarga de MineClone 2 e discusión do foro: <https://forum.minetest.net/viewtopic.php?f@=50&t@=16407>
|
||||||
|
Here you find the most recent version of MineClone 2 and can discuss it.=Aquí atoparás a versión máis recente de MineClone 2 e podes discutilo.
|
||||||
|
Bug tracker: <https://github.com/Wuzzy2/MineClone2-Bugs>=Rastreador de erros: <https://github.com/Wuzzy2/MineClone2-Bugs>
|
||||||
|
Report bugs here.=Informa de erros aquí.
|
||||||
|
Minetest links:=Ligazóns Minetest:
|
||||||
|
You may want to check out these online resources related to Minetest:=Quizais queiras consultar estes recursos en liña relacionados con Minetest:
|
||||||
|
Official homepage of Minetest: <https://minetest.net/>=Páxina oficial de Minetest: <https://minetest.net/>
|
||||||
|
The main place to find the most recent version of Minetest, the engine used by MineClone 2.=O lugar principal para atopar a versión máis recente de Minetest, o motor empregado por MineClone 2.
|
||||||
|
The main place to find the most recent version of Minetest.=O lugar principal para atopar a versión máis recente de Minetest.
|
||||||
|
Community wiki: <https://wiki.minetest.net/>=Wiki da comunidade: <https://wiki.minetest.net/>
|
||||||
|
A community-based documentation website for Minetest. Anyone with an account can edit it! It also features a documentation of Minetest Game.=Un sitio web de documentación baseado na comunidade para Minetest. Calquera persoa que teña unha conta pode editala. Tamén presenta unha documentación de Minetest Game.
|
||||||
|
Minetest forums: <https://forums.minetest.net/>=Foros de Minetest: <https://forums.minetest.net/>
|
||||||
|
A web-based discussion platform where you can discuss everything related to Minetest. This is also a place where player-made mods and games are published and discussed. The discussions are mainly in English, but there is also space for discussion in other languages.=Unha plataforma de debate baseada na web onde podes discutir todo o relacionado con Minetest. Este tamén é un lugar onde se publican e discuten as modificacións e os xogos feitos polo xogador. Os debates son principalmente en inglés, pero tamén hai espazo para debater noutros idiomas.
|
||||||
|
Chat: <irc://irc.freenode.net#minetest>=Chat: <irc://irc.freenode.net#minetest>
|
||||||
|
A generic Internet Relay Chat channel for everything related to Minetest where people can meet to discuss in real-time. If you do not understand IRC, see the Community Wiki for help.=Unha canle xenérica de Internet Relay Chat para todo o relacionado con Minetest onde a xente pode reunirse para discutir en tempo real. Se non entendes IRC, consulta a Wiki da comunidade para obter axuda.
|
||||||
|
Groups=Grupos
|
||||||
|
Items, players and objects (animate and inanimate) can be members of any number of groups. Groups serve multiple purposes:=Os elementos, xogadores e obxectos (animados e inanimados) poden ser membros de calquera número de grupos. Os grupos teñen varios propósitos:
|
||||||
|
• Crafting recipes: Slots in a crafting recipe may not require a specific item, but instead an item which is a member of a particular group, or multiple groups=• Receitas de elaboración: os espazos nunha receita de elaboración poden non requirir un elemento específico, senón un elemento que é membro dun grupo determinado, ou de varios grupos
|
||||||
|
• Digging times: Diggable blocks belong to groups which are used to determine digging times. Mining tools are capable of digging blocks belonging to certain groups=• Tempos de escavación: os bloques escavables pertencen a grupos que se utilizan para determinar os tempos de escavación. As ferramentas de minería son capaces de cavar bloques pertencentes a determinados grupos
|
||||||
|
• Block behavior: Blocks may show a special behaviour and interact with other blocks when they belong to a particular group=• Comportamento do bloque: os bloques poden mostrar un comportamento especial e interactuar con outros bloques cando pertencen a un determinado grupo
|
||||||
|
• Damage and armor: Objects and players have armor groups, weapons have damage groups. These groups determine damage. See also: “Basics > Weapons”=• Danos e armaduras: os obxectos e os xogadores teñen grupos de armaduras, as armas teñen grupos de danos. Estes grupos determinan os danos. Vexa tamén: "Básico > Armas"
|
||||||
|
• Other uses=• Outros usos
|
||||||
|
In the item help, many important groups are usually mentioned and explained.=Na axuda do elemento, adoitan mencionarse e explicar moitos grupos importantes.
|
||||||
|
Glossary=Glosario
|
||||||
|
This is a list of commonly used terms:=Esta é unha lista de termos de uso habitual:
|
||||||
|
Controls:=Controis:
|
||||||
|
• Wielding: Holding an item in hand=• Empuñando: Sostendo un elemento na man
|
||||||
|
• Pointing: Looking with the crosshair at something in range=• Apuntar: mirar co punto de mira algo que se atopa no alcance
|
||||||
|
• Dropping: Throwing an item or item stack to the ground=• Caer: tirar un elemento ou unha pila de elementos ao chan
|
||||||
|
• Punching: Attacking with left-click, is also used on blocks=• Golpear: atacar co botón esquerdo, tamén se usa en bloques
|
||||||
|
• Sneaking: Walking slowly while (usually) avoiding to fall over edges=• Furtivamente: Camiñar lentamente mentres (normalmente) evita caer por riba das beiras
|
||||||
|
• Climbing: Moving up or down a climbable block=• Escalada: subir ou baixar un bloque escalable
|
||||||
|
Blocks:=Bloques:
|
||||||
|
• Block: Cubes that the worlds are made of=• Bloque: Cubos dos que están feitos os mundos
|
||||||
|
• Mining/digging: Using a mining tool to break a block=• Minería/escavación: Usando unha ferramenta de minería para romper un bloque
|
||||||
|
• Building/placing: Putting a block somewhere=• Construír/colocar: Poñer un bloque nalgún lugar
|
||||||
|
• Drop: Items you get after mining a block=• Soltar: elementos que obtén despois de minar un bloque
|
||||||
|
• Using a block: Right-clicking a block to access its special function=• Usando un bloque: premendo co botón dereito nun bloque para acceder á súa función especial
|
||||||
|
Items:=Elementos:
|
||||||
|
• Item: A single thing that players can possess=• Elemento: unha única cousa que os xogadores poden posuír
|
||||||
|
• Item stack: A collection of items of the same kind=• Pila de elementos: unha colección de elementos do mesmo tipo
|
||||||
|
• Maximum stack size: Maximum amount of items in an item stack=• Tamaño máximo da pila: cantidade máxima de elementos nunha pila de elementos
|
||||||
|
• Slot / inventory slot: Can hold one item stack=• Slot / slot de inventario: pode albergar unha pila de elementos
|
||||||
|
• Inventory: Provides several inventory slots for storage=• Inventario: ofrece varios espazos de inventario para almacenamento
|
||||||
|
• Player inventory: The main inventory of a player=• Inventario de xogadores: o inventario principal dun xogador
|
||||||
|
• Tool: An item which you can use to do special things with when wielding=• Ferramenta: un elemento co que podes usar para facer cousas especiais ao manexar
|
||||||
|
• Range: How far away things can be to be pointed by an item=• Rango: ata que punto poden estar as cousas para ser sinaladas por un elemento
|
||||||
|
• Mining tool: A tool which allows to break blocks=• Ferramenta de minería: unha ferramenta que permite romper bloques
|
||||||
|
• Craftitem: An item which is (primarily or only) used for crafting=• Artigo de artesanía: un artigo que se usa (principalmente ou só) para elaborar
|
||||||
|
Gameplay:=Xogo:
|
||||||
|
• “heart”: A single health symbol, indicates 2 HP=• “corazón”: un único símbolo de saúde, indica 2 HP
|
||||||
|
• “bubble”: A single breath symbol, indicates 1 BP=• “burbulla”: un só símbolo de respiración, indica 1 BP
|
||||||
|
• HP: Hit point (equals half 1 “heart”)=• HP: Punto de vida (é igual a metade 1 “corazón”)
|
||||||
|
• BP: Breath point, indicates breath when diving=• BP: punto de respiración, indica respiración ao mergullar
|
||||||
|
• Mob: Computer-controlled enemy=• Mob: inimigo controlado por ordenador
|
||||||
|
• Crafting: Combining multiple items to create new ones=• Elaboración: combinar varios elementos para crear outros novos
|
||||||
|
• Crafting guide: A helper which shows available crafting recipes=• Guía de elaboración: un axudante que mostra as receitas de elaboración dispoñibles
|
||||||
|
• Spawning: Appearing in the world=• Desove: Aparece no mundo
|
||||||
|
• Respawning: Appearing again in the world after death=• Respawning: aparecer de novo no mundo despois da morte
|
||||||
|
• Group: Puts similar things together, often affects gameplay=• Grupo: reúne cousas semellantes, moitas veces afecta ao xogo
|
||||||
|
• noclip: Allows to fly through walls=• noclip: Permite voar a través das paredes
|
||||||
|
Interface=Interface
|
||||||
|
• Hotbar: Inventory slots at the bottom=• Barra de acceso: espazos de inventario na parte inferior
|
||||||
|
• Statbar: Indicator made out of half-symbols, used for health and breath=• Statbar: indicador feito de semisímbolos, usado para saúde e respiración
|
||||||
|
• Minimap: The map or radar at the top right=• Minimapa: o mapa ou o radar na parte superior dereita
|
||||||
|
• Crosshair: Seen in the middle, used to point at things=• Punto de mira: Visto no medio, usado para sinalar cousas
|
||||||
|
Online multiplayer:=Multixogador en liña:
|
||||||
|
• PvP: Player vs Player. If active, players can deal damage to each other=• PvP: Xogador contra xogador. Se están activos, os xogadores poden facerse dano entre eles
|
||||||
|
• Griefing: Destroying the buildings of other players against their will=• Griefing: Destruír os edificios doutros xogadores contra a súa vontade
|
||||||
|
• Protection: Mechanism to own areas of the world, which only allows the owners to modify blocks inside=• Protección: Mecanismo para posuír zonas do mundo, que só permite aos propietarios modificar bloques no seu interior
|
||||||
|
Technical terms:=Termos técnicos:
|
||||||
|
• Minetest: This game engine=• Minetest: este motor de xogo
|
||||||
|
• MineClone 2: What you play right now=• MineClone 2: o que xogas agora
|
||||||
|
• Minetest Game: A game for Minetest by the Minetest developers=• Minetest Game: un xogo para Minetest dos desenvolvedores de Minetest
|
||||||
|
• Game: A complete playing experience to be used in Minetest; such as a game or sandbox or similar=• Xogo: unha experiencia de xogo completa para usar en Minetest; como un xogo ou unha caixa de area ou semellante
|
||||||
|
• Mod: A single subsystem which adds or modifies functionality; is the basic building block of games and can be used to further enhance or modify them=• Mod: un único subsistema que engade ou modifica funcionalidades; é o bloque básico dos xogos e pódese usar para melloralos ou modificalos aínda máis
|
||||||
|
• Privilege: Allows a player to do something=• Privilexio: Permítelle a un xogador facer algo
|
||||||
|
• Node: Other word for “block”=• Nodo: outra palabra para “bloque”
|
||||||
|
Settings=Configuración
|
||||||
|
There is a large variety of settings to configure Minetest. Pretty much every aspect can be changed that way.=Hai unha gran variedade de opcións para configurar Minetest. Case todos os aspectos pódense cambiar dese xeito.
|
||||||
|
These are a few of the most important gameplay settings:=Estas son algunhas das opcións de xogo máis importantes:
|
||||||
|
• Damage enabled (enable_damage): Enables the health and breath attributes for all players. If disabled, players are immortal=• Damage enabled (enable_damage): activa os atributos de saúde e respiración para todos os xogadores. Se está desactivado, os xogadores son inmortais
|
||||||
|
• Creative Mode (creative_mode): Enables sandbox-style gameplay focusing on creativity rather than a challenging gameplay. The meaning depends on the game; usual changes are: Reduced dig times, easy access to almost all items, tools never wear off, etc.=• Modo creativo (creative_mode): permite un xogo estilo sandbox centrándose na creatividade en vez de nun xogo desafiante. O significado depende do xogo; Os cambios habituais son: tempos de escavación reducidos, fácil acceso a case todos os elementos, ferramentas que nunca se desgastan, etc.
|
||||||
|
• PvP (enable_pvp): Short for “Player vs Player”. If enabled, players can deal damage to each other=• PvP (enable_pvp): abreviatura de "Xogador contra xogador". Se está activado, os xogadores poden causar dano entre eles
|
||||||
|
For a full list of all available settings, use the “All Settings” dialog in the main menu.=Para obter unha lista completa de todas as opcións dispoñibles, use o diálogo "Todas as opcións" no menú principal.
|
||||||
|
Movement modes=Modos de movemento
|
||||||
|
You can enable some special movement modes that change how you move.=Podes activar algúns modos de movemento especiais que cambian a forma de moverte.
|
||||||
|
Pitch movement mode:=Modo de movemento de ton:
|
||||||
|
• Description: If this mode is activated, the movement keys will move you relative to your current view pitch (vertical look angle) when you're in a liquid or in fly mode.=• Descrición: se este modo está activado, as teclas de movemento moveránche en relación ao teu tono de vista actual (ángulo de mirada vertical) cando esteas nun líquido ou no modo voo.
|
||||||
|
• Default key: [L]=• Tecla predeterminada: [L]
|
||||||
|
• No privilege required=• Non se require ningún privilexio
|
||||||
|
Fast mode:=Modo rápido:
|
||||||
|
• Description: Allows you to move much faster. Hold down the the “Use” key [E] to move faster. In the client configuration, you can further customize fast mode.=• Descrición: Permíteche moverte moito máis rápido. Manteña premida a tecla "Usar" [E] para moverse máis rápido. Na configuración do cliente, pode personalizar aínda máis o modo rápido.
|
||||||
|
• Default key: [J]=• Tecla predeterminada: [J]
|
||||||
|
• Required privilege: fast=• Privilexio necesario: rápido
|
||||||
|
Fly mode:=Modo voo:
|
||||||
|
• Description: Gravity doesn't affect you and you can move freely in all directions. Use the jump key to rise and the sneak key to sink.=• Descrición: a gravidade non che afecta e podes moverte libremente en todas as direccións. Usa a tecla de salto para subir e a tecla de furtivo para afundir.
|
||||||
|
• Default key: [K]=• Tecla predeterminada: [K]
|
||||||
|
• Required privilege: fly=• Privilexio necesario: fly
|
||||||
|
Noclip mode:=Modo Noclip:
|
||||||
|
• Description: Allows you to move through walls. Only works when fly mode is enabled, too.=• Descrición: Permíteche moverte por paredes. Só funciona cando o modo voo tamén está activado.
|
||||||
|
• Default key: [H]=• Tecla predeterminada: [H]
|
||||||
|
• Required privilege: noclip=• Privilexios necesarios: noclip
|
||||||
|
Console=Consola
|
||||||
|
With [F10] you can open and close the console. The main use of the console is to show the chat log and enter chat messages or server commands.=Con [F10] pode abrir e pechar a consola. O uso principal da consola é mostrar o rexistro de chat e introducir mensaxes de chat ou comandos do servidor.
|
||||||
|
Using the chat or server command key also opens the console, but it is smaller and will be closed after you sent a message.=Ao usar a tecla de comando do chat ou do servidor tamén se abre a consola, pero é máis pequena e pecharase despois de enviar unha mensaxe.
|
||||||
|
Use the chat to communicate with other players. This requires you to have the “shout” privilege.=Usa o chat para comunicarte con outros xogadores. Isto require que teñas o privilexio de "berrar".
|
||||||
|
Just type in the message and hit [Enter]. Public chat messages can not begin with “/”.=Só tes que escribir a mensaxe e premer [Intro]. As mensaxes de chat público non poden comezar por “/”.
|
||||||
|
You can send private messages: Say “/msg <player> <message>” in chat to send “<message>” which can only be seen by <player>.=Podes enviar mensaxes privadas: Di "/msg <player> <mensaxe>" no chat para enviar "<mensaxe>" que só pode ver <player>.
|
||||||
|
There are some special controls for the console:=Hai algúns controis especiais para a consola:
|
||||||
|
• [F10] Open/close console=• [F10] Abrir/pechar consola
|
||||||
|
• [Enter]: Send message or command=• [Intro]: enviar mensaxe ou comando
|
||||||
|
• [Tab]: Try to auto-complete a partially-entered player name=• [Tab]: tenta completar automaticamente un nome de xogador introducido parcialmente
|
||||||
|
• [Ctrl]+[Left]: Move cursor to the beginning of the previous word=• [Ctrl]+[Esquerda]: move o cursor ao comezo da palabra anterior
|
||||||
|
• [Ctrl]+[Right]: Move cursor to the beginning of the next word=• [Ctrl]+[Dereita]: move o cursor ao comezo da seguinte palabra
|
||||||
|
• [Ctrl]+[Backspace]: Delete previous word=• [Ctrl]+[Retroceso]: elimina a palabra anterior
|
||||||
|
• [Ctrl]+[Delete]: Delete next word=• [Ctrl]+[Eliminar]: elimina a seguinte palabra
|
||||||
|
• [Ctrl]+[U]: Delete all text before the cursor=• [Ctrl]+[U]: elimina todo o texto antes do cursor
|
||||||
|
• [Ctrl]+[K]: Delete all text after the cursor=• [Ctrl]+[K]: elimina todo o texto despois do cursor
|
||||||
|
• [Page up]: Scroll up=• [Arriba páxina]: Desprácese cara arriba
|
||||||
|
• [Page down]: Scroll down=• [Abaixo páxina]: Desprácese cara abaixo
|
||||||
|
There is also an input history. Minetest saves your previous console inputs which you can quickly access later:=Tamén hai un historial de entradas. Minetest garda as súas entradas de consola anteriores ás que pode acceder rapidamente máis tarde:
|
||||||
|
• [Up]: Go to previous entry in history=• [Arriba]: vai á entrada anterior do historial
|
||||||
|
• [Down]: Go to next entry in history=• [Abaixo]: vai á seguinte entrada do historial
|
||||||
|
Server commands=Comandos do servidor
|
||||||
|
Server commands (also called “chat commands”) are little helpers for advanced users. You don't need to use these commands when playing. But they might come in handy to perform some more technical tasks. Server commands work both in multi-player and single-player mode.=Os comandos do servidor (tamén chamados "comandos de chat") son pequenas axudas para os usuarios avanzados. Non necesitas usar estes comandos cando xogas. Pero poden ser útiles para realizar algunhas tarefas máis técnicas. Os comandos do servidor funcionan tanto no modo multixogador como no modo dun xogador.
|
||||||
|
Server commands can be entered by players using the chat to perform a special server action. There are a few commands which can be issued by everyone, but some commands only work if you have certain privileges granted on the server. There is a small set of basic commands which are always available, other commands can be added by mods.=Os xogadores poden introducir comandos do servidor mediante o chat para realizar unha acción especial do servidor. Hai algúns comandos que poden ser emitidos por todos, pero algúns só funcionan se tes certos privilexios concedidos no servidor. Hai un pequeno conxunto de comandos básicos que sempre están dispoñibles, outros comandos pódense engadir mediante mods.
|
||||||
|
To issue a command, simply type it like a chat message or press Minetest's command key (default: [/]). All commands have to begin with “/”, for example “/mods”. The Minetest command key does the same as the chat key, except that the slash is already entered.=Para emitir un comando, simplemente escríbeo como unha mensaxe de chat ou prema a tecla de comando de Minetest (predeterminado: [/]). Todos os comandos deben comezar por "/", por exemplo "/mods". A tecla de comando de Minetest fai o mesmo que a tecla de chat, excepto que a barra inclinada xa está introducida.
|
||||||
|
Commands may or may not give a response in the chat log, but errors will generally be shown in the chat. Try it for yourselves: Close this window and type in the “/mods” command. This will give you the list of available mods on this server.=Os comandos poden ou non dar unha resposta no rexistro de chat, pero os erros xeralmente mostraranse no chat. Probeo por vós mesmos: pecha esta xanela e escriba o comando "/mods". Isto darache a lista de modificacións dispoñibles neste servidor.
|
||||||
|
“/help all” is a very important command: You get a list of all available commands on the server, a short explanation and the allowed parameters. This command is also important because the available commands often differ per server.="/help all" é un comando moi importante: obtén unha lista de todos os comandos dispoñibles no servidor, unha pequena explicación e os parámetros permitidos. Este comando tamén é importante porque os comandos dispoñibles a miúdo difiren por servidor.
|
||||||
|
Commands are followed by zero or more parameters.=Os comandos van seguidos de cero ou máis parámetros.
|
||||||
|
In the command reference, you see some placeholders which you need to replace with an actual value. Here's an explanation:=Na referencia do comando, ves algúns marcadores de posición que debes substituír por un valor real. Aquí tes unha explicación:
|
||||||
|
• Text in greater-than and lower-than signs (e.g. “<param>”): Placeholder for a parameter=• Texto en signos de maior e menor que (por exemplo, “<param>”): marcador de posición para un parámetro
|
||||||
|
• Anything in square brackets (e.g. “[text]”) is optional and can be omitted=• Calquera cousa entre corchetes (por exemplo, “[texto]”) é opcional e pódese omitir
|
||||||
|
• Pipe or slash (e.g. “text1 | text2 | text3”): Alternation. One of multiple texts must be used (e.g. “text2”)=• Tubo ou barra (por exemplo, "texto1 | texto2 | texto3"): alternancia. Debe utilizarse un dos varios textos (por exemplo, "text2")
|
||||||
|
• Parenthesis: (e.g. “(word1 word2) | word3”): Groups multiple words together, used for alternations=• Paréntese: (p. ex. “(palabra1 palabra2) | palabra3”): agrupa varias palabras, usadas para alternar
|
||||||
|
• Everything else is to be read as literal text=• Todo o demais debe ser lido como texto literal
|
||||||
|
Here are some examples to illustrate the command syntax:=Aquí tes algúns exemplos para ilustrar a sintaxe do comando:
|
||||||
|
• /mods: No parameters. Just enter “/mods”=• /mods: sen parámetros. Só tes que introducir "/mods"
|
||||||
|
• /me <action>: 1 parameter. You have to enter “/me ” followed by any text, e.g. “/me orders pizza”=• /me <acción>: 1 parámetro. Tes que introducir "/me" seguido de calquera texto, p. ex. "/pido pizza"
|
||||||
|
• /give <name> <ItemString>: Two parameters. Example: “/give Player default:apple”=• /give <nome> <ItemString>: dous parámetros. Exemplo: "/dar o predeterminado do reprodutor: apple"
|
||||||
|
• /help [all|privs|<cmd>]: Valid inputs are “/help”, “/help all”, “/help privs”, or “/help ” followed by a command name, like “/help time”=• /help [all|privs|<cmd>]: as entradas válidas son “/help”, “/help all”, “/help privs” ou “/help ” seguidas dun nome de comando, como “/help time”
|
||||||
|
• /spawnentity <EntityName> [<X>,<Y>,<Z>]: Valid inputs include “/spawnentity boats:boat” and “/spawnentity boats:boat 0,0,0”=• /spawnentity <EntityName> [<X>,<Y>,<Z>]: as entradas válidas inclúen “/spawnentity boats:boat” e “/spawnentity boats:boat 0,0,0”
|
||||||
|
Some final remarks:=Algunhas observacións finais:
|
||||||
|
• For /give and /giveme, you need an itemstring. This is an internally used unique item identifier which you may find in the item help if you have the “give” or “debug” privilege=• Para /give e /giveme, necesitas unha cadea de elementos. Este é un identificador de elemento único de uso interno que podes atopar na axuda do elemento se tes o privilexio de "dar" ou "depurar"
|
||||||
|
• For /spawnentity you need an entity name, which is another identifier=• Para /spawnentity necesitas un nome de entidade, que é outro identificador
|
||||||
|
Privileges=Privilexios
|
||||||
|
Each player has a set of privileges, which differs from server to server. Your privileges determine what you can and can't do. Privileges can be granted and revoked from other players by any player who has the privilege called “privs”.=Cada xogador ten un conxunto de privilexios, que varían dun servidor a outro. Os teus privilexios determinan o que podes e non podes facer. Os privilexios poden ser concedidos e revogados a outros xogadores por calquera xogador que teña o privilexio chamado "privs".
|
||||||
|
On a multiplayer server with the default configuration, new players start with the privileges called “interact” and “shout”. The “interact” privilege is required for the most basic gameplay actions such as building, mining, using, etc. The “shout” privilege allows to chat.=Nun servidor multixogador coa configuración predeterminada, os novos xogadores comezan cos privilexios chamados "interactuar" e "gritar". O privilexio de "interactuar" é necesario para as accións de xogo máis básicas, como construír, minar, usar, etc. O privilexio de "gritar" permite chatear.
|
||||||
|
There is a small set of core privileges which you'll find on every server, other privileges might be added by mods.=Hai un pequeno conxunto de privilexios principais que atoparás en cada servidor, outros privilexios poden ser engadidos por mods.
|
||||||
|
To view your own privileges, issue the server command “/privs”.=Para ver os seus propios privilexios, emita o comando do servidor "/privs".
|
||||||
|
Here are a few basic privilege-related commands:=Aquí tes algúns comandos básicos relacionados cos privilexios:
|
||||||
|
• /privs: Lists your privileges=• /privs: enumera os teus privilexios
|
||||||
|
• /privs <player>: Lists the privileges of <player>=• /privs <player>: lista os privilexios de <player>
|
||||||
|
• /help privs: Shows a list and description about all privileges=• /help privs: mostra unha lista e unha descrición sobre todos os privilexios
|
||||||
|
Players with the “privs” privilege can modify privileges at will:=Os xogadores co privilexio "privs" poden modificar os privilexios a vontade:
|
||||||
|
• /grant <player> <privilege>: Grant <privilege> to <player>=• /grant <xogador> <privilexio>: concede <privilexio> a <xogador>
|
||||||
|
• /revoke <player> <privilege>: Revoke <privilege> from <player>=• /revoke <xogador> <privilexio>: revoga <privilexio> de <xogador>
|
||||||
|
In single-player mode, you can use “/grantme all” to unlock all abilities.=No modo para un xogador, podes usar "/grantme all" para desbloquear todas as habilidades.
|
||||||
|
Light=Luz
|
||||||
|
As the world is entirely block-based, so is the light in the world. Each block has its own brightness. The brightness of a block is expressed in a “light level” which ranges from 0 (total darkness) to 15 (as bright as the sun).=Como o mundo está totalmente baseado en bloques, tamén o é a luz do mundo. Cada bloque ten o seu propio brillo. O brillo dun bloque exprésase nun "nivel de luz" que varía de 0 (escuridade total) a 15 (tan brillante como o sol).
|
||||||
|
There are two types of light: Sunlight and artificial light.=Hai dous tipos de luz: luz solar e luz artificial.
|
||||||
|
Artificial light is emitted by luminous blocks. Artificial light has a light level from 1-14.=A luz artificial é emitida por bloques luminosos. A luz artificial ten un nivel de luz de 1-14.
|
||||||
|
Sunlight is the brightest light and always goes perfectly straight down from the sky at each time of the day. At night, the sunlight will become moonlight instead, which still provides a small amount of light. The light level of sunlight is 15.=A luz do sol é a luz máis brillante e sempre baixa perfectamente directamente desde o ceo a cada hora do día. Pola noite, a luz solar converterase en luz da lúa, que aínda proporciona unha pequena cantidade de luz. O nivel luminoso da luz solar é 15.
|
||||||
|
Blocks have 3 levels of transparency:=Os bloques teñen 3 niveis de transparencia:
|
||||||
|
• Transparent: Sunlight goes through limitless, artificial light goes through with losses=• Transparente: a luz solar pasa sen límites, a artificial pasa con perdas
|
||||||
|
• Semi-transparent: Sunlight and artificial light go through with losses=• Semitransparente: a luz solar e artificial atravesan con perdas
|
||||||
|
• Opaque: No light passes through=• Opaco: non pasa luz
|
||||||
|
Artificial light will lose one level of brightness for each transparent or semi-transparent block it passes through, until only darkness remains (image 1).=A luz artificial perderá un nivel de brillo por cada bloque transparente ou semitransparente polo que atravesa, ata que só quede escuridade (imaxe 1).
|
||||||
|
Sunlight will preserve its brightness as long it only passes fully transparent blocks. When it passes through a semi-transparent block, it turns to artificial light. Image 2 shows the difference.=A luz solar conservará o seu brillo mentres só pase bloques totalmente transparentes. Cando pasa por un bloque semitransparente, convértese en luz artificial. A imaxe 2 mostra a diferenza.
|
||||||
|
Note that “transparency” here only means that the block is able to carry brightness from its neighboring blocks. It is possible for a block to be transparent to light but you can't see trough the other side.=Teña en conta que "transparencia" aquí só significa que o bloque é capaz de levar o brillo dos seus bloques veciños. É posible que un bloque sexa transparente á luz pero non se ve polo outro lado.
|
||||||
|
Coordinates=Coordenadas
|
||||||
|
The world is a large cube. And because of this, a position in the world can be easily expressed with Cartesian coordinates. That is, for each position in the world, there are 3 values X, Y and Z.=O mundo é un gran cubo. E por iso, unha posición no mundo pódese expresar facilmente con coordenadas cartesianas. É dicir, para cada posición no mundo, hai 3 valores X, Y e Z.
|
||||||
|
Like this: (5, 45, -12)=Así: (5, 45, -12)
|
||||||
|
This refers to the position where X@=5, Y@=45 and Z@=-12. The 3 letters are called “axes”: Y is for the height. X and Z are for the horizontal position.=Isto refírese á posición onde X@=5, Y@=45 e Z@=-12. As 3 letras chámanse "eixes": Y é para a altura. X e Z son para a posición horizontal.
|
||||||
|
The values for X, Y and Z work like this:=Os valores de X, Y e Z funcionan así:
|
||||||
|
• If you go up, Y increases=• Se sobes, Y aumenta
|
||||||
|
• If you go down, Y decreases=• Se baixas, Y diminúe
|
||||||
|
• If you follow the sun, X increases=• Se segues o sol, X aumenta
|
||||||
|
• If you go to the reverse direction, X decreases=• Se vai en sentido inverso, X diminúe
|
||||||
|
• Follow the sun, then go right: Z increases=• Segue o sol, logo vai á dereita: Z aumenta
|
||||||
|
• Follow the sun, then go left: Z decreases=• Segue o sol, despois vai á esquerda: Z diminúe
|
||||||
|
• The side length of a full cube is 1=• A lonxitude do lado dun cubo completo é 1
|
||||||
|
You can view your current position in the debug screen (open with [F5]).=Podes ver a túa posición actual na pantalla de depuración (abre con [F5]).
|
||||||
|
|
||||||
|
# MCL2 extensions
|
||||||
|
Creative Mode=Modo creativo
|
||||||
|
Enabling Creative Mode in MineClone 2 applies the following changes:=Activar o modo creativo en MineClone 2 aplica os seguintes cambios:
|
||||||
|
• You keep the things you've placed=• Gardas as cousas que colocaches
|
||||||
|
• Creative inventory is available to obtain most items easily=• O inventario creativo está dispoñible para obter a maioría dos elementos facilmente
|
||||||
|
• Hand breaks all default blocks instantly=• A man rompe todos os bloques predeterminados ao instante
|
||||||
|
• Greatly increased hand pointing range=• Aumentou moito o rango de apuntamento da man
|
||||||
|
• Mined blocks don't drop items=• Os bloques extraídos non soltan elementos
|
||||||
|
• Items don't get used up=• Os elementos non se esgotan
|
||||||
|
• Tools don't wear off=• As ferramentas non se desgastan
|
||||||
|
• You can eat food whenever you want=• Podes comer cando queiras
|
||||||
|
• You can always use the minimap (including radar mode)=• Sempre podes usar o minimapa (incluído o modo radar)
|
||||||
|
Damage is not affected by Creative Mode, it needs to be disabled separately.=Os danos non se ven afectados polo modo creativo, é necesario desactivalo por separado.
|
||||||
|
Mobs=
|
||||||
|
Mobs are the living beings in the world. This includes animals and monsters.=As turbas son os seres vivos do mundo. Isto inclúe animais e monstros.
|
||||||
|
Mobs appear randomly throughout the world. This is called “spawning”. Each mob kind appears on particular block types at a given light level. The height also plays a role. Peaceful mobs tend to spawn at daylight while hostile ones prefer darkness. Most mobs can spawn on any solid block but some mobs only spawn on particular blocks (like grass blocks).=As turbas aparecen ao azar en todo o mundo. Isto chámase "desove". Cada tipo de mafia aparece en tipos de bloques particulares nun nivel de luz dado. A altura tamén xoga un papel. As turbas pacíficas tenden a aparecer á luz do día mentres que as hostís prefiren a escuridade. A maioría dos mobs poden xerarse en calquera bloque sólido, pero algúns mobs só aparecen en bloques particulares (como bloques de herba).
|
||||||
|
Like players, mobs have hit points and sometimes armor points, too (which means you need better weapons to deal any damage at all). Also like players, hostile mobs can attack directly or at a distance. Mobs may drop random items after they die.=Do mesmo xeito que os xogadores, os mobs teñen puntos de vida e ás veces tamén puntos de armadura (o que significa que necesitas mellores armas para causar calquera dano). Tamén como os xogadores, as turbas hostís poden atacar directamente ou a distancia. As turbas poden soltar elementos aleatorios despois de morrer.
|
||||||
|
Most animals roam the world aimlessly while most hostile mobs hunt players. Animals can be fed, tamed and bred.=A maioría dos animais percorren o mundo sen rumbo, mentres que a maioría das turbas hostís cazan aos xogadores. Os animais poden ser alimentados, domesticados e criados.
|
||||||
|
Animals=Animais
|
||||||
|
Animals are peaceful beings which roam the world aimlessly. You can feed, tame and breed them.=Os animais son seres pacíficos que deambulan polo mundo sen rumbo. Podes alimentalos, domesticalos e crialos.
|
||||||
|
Feeding:=Alimentación:
|
||||||
|
Each animal has its own taste for food and doesn't just accept any food. To feed, hold an item in your hand and rightclick the animal.=Cada animal ten o seu propio gusto pola comida e non só acepta calquera alimento. Para alimentarse, manteña un elemento na man e fai clic co botón dereito no animal.
|
||||||
|
Animals are attraced to the food they like and follow you as long you hold the food item in hand.=Os animais son atraídos pola comida que lles gusta e séguente mentres tes a comida na man.
|
||||||
|
Feeding an animal has three uses: Taming, healing and breeding.=Alimentar a un animal ten tres usos: domar, curar e criar.
|
||||||
|
Feeding heals animals instantly, depending on the quality of the food item.=A alimentación cura aos animais ao instante, dependendo da calidade do alimento.
|
||||||
|
Taming:=Domar:
|
||||||
|
A few animals can be tamed. You can generally do more things with tamed animals and use other items on them. For example, tame horses can be saddled and tame wolves fight on your side.=Algúns animais poden ser domesticados. En xeral, podes facer máis cousas con animais domesticados e usar outros elementos neles. Por exemplo, os cabalos mansos poden ser ensillados e os lobos mansos pelexan ao teu lado.
|
||||||
|
Breeding:=Cría:
|
||||||
|
When you have fed an animal up to its maximum health, then feed it again, you will activate “Love Mode” and many hearts appear around the animal.=Cando teñas alimentado un animal ata a súa saúde máxima, despois aliméntalo de novo, activarás o "Modo de amor" e aparecerán moitos corazóns ao redor do animal.
|
||||||
|
Two animals of the same species will start to breed if they are in Love Mode and close to each other. Soon a baby animal will pop up.=Dous animais da mesma especie comezarán a reproducirse se están en Modo Amor e preto un do outro. Axiña aparecerá un bebé animal.
|
||||||
|
Baby animals:=Animais bebés:
|
||||||
|
Baby animals are just like their adult couterparts, but they can't be tamed or bred and don't drop anything when they die. They grow to adults after a short time. When fed, they grow to adults faster.=Os animais bebés son como os seus homólogos adultos, pero non poden ser domesticados nin criados e non deixan caer nada cando morren. Crecen ata adultos despois de pouco tempo. Cando se alimentan, chegan a ser adultos máis rápido.
|
||||||
|
Hunger=fame
|
||||||
|
Hunger affects your health and your ability to sprint. Hunger is not in effect when damage is disabled.=A fame afecta a túa saúde e a túa capacidade para esprintar. A fame non está en vigor cando o dano está desactivado.
|
||||||
|
Core hunger rules:=Regras básicas da fame:
|
||||||
|
• You start with 20/20 hunger points (more points @= less hungry)=• Comezas con 20/20 puntos de fame (máis puntos @= menos fame)
|
||||||
|
• Actions like combat, jumping, sprinting, etc. decrease hunger points=• Accións como combate, saltos, sprints, etc. diminúen os puntos de fame
|
||||||
|
• Food restores hunger points=• A comida restaura os puntos de fame
|
||||||
|
• If your hunger bar decreases, you're hungry=• Se a barra da fame diminúe, tes fame
|
||||||
|
• At 18-20 hunger points, you regenerate 1 HP every 4 seconds=• Aos 18-20 puntos de fame, rexeneras 1 HP cada 4 segundos
|
||||||
|
• At 6 hunger points or less, you can't sprint=• Con 6 puntos de fame ou menos, non podes esprintar
|
||||||
|
• At 0 hunger points, you lose 1 HP every 4 seconds (down to 1 HP)=• Con 0 puntos de fame, perdes 1 HP cada 4 segundos (ata 1 HP)
|
||||||
|
• Poisonous food decreases your health=• A comida velenosa diminúe a túa saúde
|
||||||
|
Details:=Detalles:
|
||||||
|
You have 0-20 hunger points, indicated by 20 drumstick half-icons above the hotbar. You also have an invisible attribute: Saturation.=Tes 0-20 puntos de fame, indicados por 20 medias iconas de baqueta enriba da barra activa. Tamén tes un atributo invisible: Saturación.
|
||||||
|
Hunger points reflect how full you are while saturation points reflect how long it takes until you're hungry again.=Os puntos de fame reflicten o cheo que estás mentres que os de saturación reflicten o tempo que leva ata que tes fame de novo.
|
||||||
|
Each food item increases both your hunger level as well your saturation.=Cada alimento aumenta tanto o teu nivel de fame como a túa saturación.
|
||||||
|
Food with a high saturation boost has the advantage that it will take longer until you get hungry again.=A comida cun aumento de saturación elevado ten a vantaxe de que tardará máis tempo en volver pasar fame.
|
||||||
|
A few food items might induce food poisoning by chance. When you're poisoned, the health and hunger symbols turn sickly green. Food poisoning drains your health by 1 HP per second, down to 1 HP. Food poisoning also drains your saturation. Food poisoning goes away after a while or when you drink milk.=Algúns alimentos poden provocar unha intoxicación alimentaria por casualidade. Cando estás envelenado, os símbolos de saúde e fame vólvense verdes enfermizos. A intoxicación alimentaria drena a túa saúde en 1 HP por segundo, ata 1 HP. A intoxicación alimentaria tamén drena a túa saturación. A intoxicación alimentaria desaparece despois dun tempo ou cando toma leite.
|
||||||
|
You start with 5 saturation points. The maximum saturation is equal to your current hunger level. So with 20 hunger points your maximum saturation is 20. What this means is that food items which restore many saturation points are more effective the more hunger points you have. This is because at low hunger levels, a lot of the saturation boost will be lost due to the low saturation cap.=Comeza con 5 puntos de saturación. A saturación máxima é igual ao teu nivel de fame actual. Entón, con 20 puntos de fame, a túa saturación máxima é de 20. Isto significa que os alimentos que restauran moitos puntos de saturación son máis efectivos cantos máis puntos de fame teñas. Isto débese a que a baixos niveis de fame perderase gran parte do aumento da saturación debido ao baixo límite de saturación.
|
||||||
|
If your saturation reaches 0, you're hungry and start to lose hunger points. Whenever you see the hunger bar decrease, it is a good time to eat.=Se a túa saturación chega a 0, tes fame e comezas a perder puntos de fame. Sempre que vexas diminuír a barra da fame, é un bo momento para comer.
|
||||||
|
Saturation decreases by doing things which exhaust you (highest exhaustion first):=A saturación diminúe ao facer cousas que che esgotan (o esgotamento máis alto primeiro):
|
||||||
|
• Regenerating 1 HP=• Rexenerando 1 HP
|
||||||
|
• Suffering food poisoning=• Sufrir intoxicación alimentaria
|
||||||
|
• Sprint-jumping=• Sprint-salto
|
||||||
|
• Sprinting=• Sprintar
|
||||||
|
• Attacking=• Atacar
|
||||||
|
• Taking damage=• Levar danos
|
||||||
|
• Swimming=• Natación
|
||||||
|
• Jumping=• Saltar
|
||||||
|
• Mining a block=• Minar un bloque
|
||||||
|
Other actions, like walking, do not exaust you.=Outras accións, como andar, non te esgotan.
|
||||||
|
If you have a map item in any of your hotbar slots, you can use the minimap.=Se tes un elemento do mapa nalgunha das túas ranuras da barra activa, podes usar o minimapa.
|
|
@ -0,0 +1,48 @@
|
||||||
|
# textdomain: mcl_tt
|
||||||
|
Head armor=Armadura de cabeza
|
||||||
|
Torso armor=Armadura do torso
|
||||||
|
Legs armor=Armadura de pernas
|
||||||
|
Feet armor=Armadura de pés
|
||||||
|
Armor points: @1=Puntos de armadura: @1
|
||||||
|
Armor durability: @1=Durabilidade da armadura: @1
|
||||||
|
Protection: @1%=Protección: @1%
|
||||||
|
Hunger points: +@1=Puntos de fame: +@1
|
||||||
|
Saturation points: +@1=Puntos de saturación: +@1
|
||||||
|
Deals damage when falling=Causa dano ao caer
|
||||||
|
Grows on grass blocks or dirt=Crece en bloques de herba ou terra estéril
|
||||||
|
Grows on grass blocks, podzol, dirt or coarse dirt=Crece en bloques de herba, podzol, sucidade ou terra estéril
|
||||||
|
Flammable=Inflamable
|
||||||
|
Zombie view range: -50%=Rango de visión zombi: -50%
|
||||||
|
Skeleton view range: -50%=Rango de visión de esqueleto: -50%
|
||||||
|
Stalker view range: -50%=Rango de visión de acosador: -50%
|
||||||
|
Damage: @1=Dano: @1
|
||||||
|
Damage (@1): @2=Dano (@1): @2
|
||||||
|
Healing: @1=Curación: @1
|
||||||
|
Healing (@1): @2=Curación (@1): @2
|
||||||
|
Full punch interval: @1s=Intervalo de golpe completo: @1s
|
||||||
|
Contact damage: @1 per second=Dano por contacto: @1 por segundo
|
||||||
|
Contact healing: @1 per second=Curación por contacto: @1 por segundo
|
||||||
|
Drowning damage: @1=Dano por afogamento: @1
|
||||||
|
Bouncy (@1%)=Rebota (@1%)
|
||||||
|
Luminance: @1=Luminancia: @1
|
||||||
|
Slippery=Escorregadizo
|
||||||
|
Climbable=Escalable
|
||||||
|
Climbable (only downwards)=Escalable (só cara abaixo)
|
||||||
|
No jumping=Non saltar
|
||||||
|
No swimming upwards=Non nadar cara arriba
|
||||||
|
No rising=Non erguer
|
||||||
|
Fall damage: @1%=Dano por caída: @1%
|
||||||
|
Fall damage: +@1%=Dano por caída: @1%
|
||||||
|
No fall damage=Sen dano por caída
|
||||||
|
Mining speed: @1=Velocidade de minería: @1
|
||||||
|
Very fast=Moi rápido
|
||||||
|
Extremely fast=Extremadamente rápido
|
||||||
|
Fast=Rápido
|
||||||
|
Slow=Lento
|
||||||
|
Very slow=Moi lento
|
||||||
|
Painfully slow=Dolorosamente lento
|
||||||
|
Block breaking strength: @1=Forza para romper bloques: @1
|
||||||
|
@1 uses=@1 usos
|
||||||
|
Unlimited uses=Usos ilimitados
|
||||||
|
Durability: @1=Durabilidade: @1
|
||||||
|
...stacks=...pilas
|
|
@ -0,0 +1,71 @@
|
||||||
|
# textdomain:awards
|
||||||
|
@1/@2 chat messages=@1/@2 mensaxes de chat
|
||||||
|
@1/@2 crafted=@1/@2 elaborado
|
||||||
|
@1/@2 deaths=@1/@2 mortes
|
||||||
|
@1/@2 dug=@1/@2 cavado
|
||||||
|
@1/@2 game joins=@1/@2 unións ao xogo
|
||||||
|
@1/@2 placed=@1/@2 colocado
|
||||||
|
@1 (got)=@1 (conseguido)
|
||||||
|
@1: @2=@1: @2
|
||||||
|
@1’s awards:=Premios de @1:
|
||||||
|
(Secret Advancement)=(Avance secreto)
|
||||||
|
<achievement ID>=<ID de logro>
|
||||||
|
<name>=<nome>
|
||||||
|
Advancement Made!=¡Avance feito!
|
||||||
|
Advancement Made:=Avance realizado:
|
||||||
|
Advancement: @1=Avance: @1
|
||||||
|
Achievement not found.=Non se atopou o logro.
|
||||||
|
All your awards and statistics have been cleared. You can now start again.=Limpáronse todos os teus premios e estatísticas. Agora podes comezar de novo.
|
||||||
|
Awards=Premios
|
||||||
|
Craft: @1×@2=Elaboración: @1×@2
|
||||||
|
Craft: @1=Elaboración: @1
|
||||||
|
Die @1 times.=Morre @1 veces.
|
||||||
|
Die.=Morre.
|
||||||
|
Get the achievements statistics for the given player or yourself=Obtén as estatísticas de logros para o xogador ou ti mesmo
|
||||||
|
Join the game @1 times.=Únete ao xogo @1 veces.
|
||||||
|
Join the game.=Únete ao xogo.
|
||||||
|
List awards in chat (deprecated)=Únete ao xogo.
|
||||||
|
Place a block: @1=Coloca un bloque: @1
|
||||||
|
Place blocks: @1×@2=Colocar bloques: @1×@2
|
||||||
|
Secret Advancement Made!=Avance secreto feito!
|
||||||
|
Secret Advancement Made:=Avance secreto feito:
|
||||||
|
Secret Advancement Made: @1=Avance secreto realizado: @1
|
||||||
|
Show details of an achievement=Mostrar detalles dun logro
|
||||||
|
Show, clear, disable or enable your advancements.=Mostrar, borrar, desactivar ou activar os seus avances.
|
||||||
|
Make this advancement to find out what it is.=Fai este avance para descubrir o que é.
|
||||||
|
Write @1 chat messages.=Escribe @1 mensaxes de chat.
|
||||||
|
Write something in chat.=Escribe algo no chat.
|
||||||
|
You have disabled your advancements.=Desactivaches os teus avances.
|
||||||
|
You have enabled your advancements.=Activaches os teus avances.
|
||||||
|
You have not gotten any awards.=Non conseguiches ningún premio.
|
||||||
|
You've disabled awards. Type /awards enable to reenable.=Desactivaches os premios. Escriba /awards enable para volver activar.
|
||||||
|
[c|clear|disable|enable]=[c|borrar|desactivar|activar]
|
||||||
|
OK=Ben
|
||||||
|
Error: No awards available.=Erro: non hai premios dispoñibles.
|
||||||
|
Eat: @1×@2=Comer: @1×@2
|
||||||
|
Eat: @1=Comer: @1
|
||||||
|
@1/@2 eaten=@1/@2 comido
|
||||||
|
Place @1 block(s).=Coloca @1 bloque(s).
|
||||||
|
Dig @1 block(s).=Cavar @1 bloque(s).
|
||||||
|
Eat @1 item(s).=Coma @1 elemento(s).
|
||||||
|
Craft @1 item(s).=Elabora @1 elemento(s).
|
||||||
|
Can give advancements to any player=Pode dar avances a calquera xogador
|
||||||
|
(grant <player> (<advancement> | all)) | list=(conceder <xogador> (<avance> | todos)) | lista
|
||||||
|
Give advancement to player or list all advancements=Dálle un avance ao xogador ou enumera todos os avances
|
||||||
|
@1 (@2)=@1 (@2)
|
||||||
|
Invalid syntax.=Sintaxe non válida.
|
||||||
|
Invalid action.=Acción non válida.
|
||||||
|
Player is not online.=O xogador non está en liña.
|
||||||
|
Done.=Feito.
|
||||||
|
Advancement “@1” does not exist.=O avance “@1” non existe.
|
||||||
|
@1 has made the advancement @2=@1 fixo o avance @2
|
||||||
|
Mine a block: @1=Mina un bloque: @1
|
||||||
|
Mine blocks: @1×@2=Bloques de mina: @1×@2
|
||||||
|
Awards are disabled, enable them first by using /awards enable!=¡Os premios están desactivados, actívaos primeiro usando /awards enable!
|
||||||
|
Goal Completed:=Obxectivo conseguido:
|
||||||
|
Goal Completed!=¡Obxectivo cumprido!
|
||||||
|
Goal Completed: @1=Obxectivo conseguido: @1
|
||||||
|
Challenge Completed:=Desafío completado:
|
||||||
|
Challenge Completed!=¡Desafío completado!
|
||||||
|
Challenge Completed: @1=Desafío completado: @1
|
||||||
|
|
|
@ -330,9 +330,16 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
|
||||||
|
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local hudtable = hb.get_hudtable(identifier)
|
local hudtable = hb.get_hudtable(identifier)
|
||||||
|
|
||||||
|
-- hb.change_hudbar may be called with a non-existing hudbar like hunger.
|
||||||
|
if hudtable == nil then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
if not hudtable.hudstate[name] then
|
if not hudtable.hudstate[name] then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local value_changed, max_changed = false, false
|
local value_changed, max_changed = false, false
|
||||||
|
|
||||||
if new_value then
|
if new_value then
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: hudbars
|
||||||
|
Health=Saude
|
||||||
|
Breath=Alento
|
||||||
|
@1: @2/@3=@1: @2/@3
|
|
@ -0,0 +1,118 @@
|
||||||
|
# textdomain:mcl_achievements
|
||||||
|
Acquire Hardware=Adquirir hardware
|
||||||
|
Bake Bread=Cocer pan
|
||||||
|
Benchmarking=Crea a tu mesa de traballo
|
||||||
|
Cow Tipper=Volquete de vacas
|
||||||
|
Craft a bookshelf.=Elaborar unha estantería.
|
||||||
|
Craft a cake using wheat, sugar, milk and an egg.=Elabora un bolo con trigo, azucre, leite e un ovo.
|
||||||
|
Craft a crafting table from 4 wooden planks.=Elabora unha mesa de elaboración a partir de 4 táboas de madeira.
|
||||||
|
Craft a stone pickaxe using sticks and cobblestone.=Elabora un pico de pedra usando paus e rochas.
|
||||||
|
Craft a wooden sword using wooden planks and sticks on a crafting table.=Elabora unha espada de madeira usando táboas e paus de madeira nunha mesa de traballo.
|
||||||
|
DIAMONDS!=¡DIAMANTES!
|
||||||
|
Delicious Fish=Peixe delicioso
|
||||||
|
Dispense With This=Prescindir disto
|
||||||
|
Eat a cooked porkchop.=Coma unha chuleta de porco cocida.
|
||||||
|
Eat a cooked rabbit.=Coma un coello cocido.
|
||||||
|
Get really desperate and eat rotten flesh.=Desesperate moito e come carne podre.
|
||||||
|
Getting Wood=Conseguindo madeira
|
||||||
|
Getting an Upgrade=Obtendo unha actualización
|
||||||
|
Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters.=Golpear un esqueleto, murchar o esqueleto ou desviarse con arco e frecha desde unha distancia de polo menos 20 metros.
|
||||||
|
Hot Topic=Tema candente
|
||||||
|
Into Fire=No lume
|
||||||
|
We Need to Go Deeper=Necesitamos Afondar
|
||||||
|
Into the Nether=No abismo
|
||||||
|
Iron Belly=Barriga de Ferro
|
||||||
|
Librarian=Bibliotecario
|
||||||
|
Mine emerald ore.=Mina de esmeralda.
|
||||||
|
On A Rail=Nun carril
|
||||||
|
Pick up a blaze rod from the floor.=Colle unha vara de lume do chan.
|
||||||
|
Pick up a diamond from the floor.=Colle un diamante do chan.
|
||||||
|
Pick up a wood item from the ground.@nHint: Punch a tree trunk until it pops out as an item.=Colle un obxecto de madeira do chan.@nSuxestión: golpea o tronco dunha árbore ata que saia como elemento.
|
||||||
|
Pick up leather from the floor.@nHint: Cows and some other animals have a chance to drop leather, when killed.=Colle coiro do chan.@nSuxestión: as vacas e algúns outros animais teñen a oportunidade de soltar coiro cando os matan.
|
||||||
|
Place a dispenser.=Coloca un dispensador.
|
||||||
|
Place a flower pot.=Coloca unha maceta.
|
||||||
|
Pork Chop=Costela de porco
|
||||||
|
Pot Planter=Xardineiro
|
||||||
|
Rabbit Season=Tempada dos coellos
|
||||||
|
Sniper Duel=Duelo de arqueiros
|
||||||
|
Take a cooked fish from a furnace.@nHint: Use a fishing rod to catch a fish and cook it in a furnace.=Saca un peixe cocido dun forno.@nSuxestión: usa unha cana de pescar para coller un peixe e cociñalo nun forno.
|
||||||
|
Take an iron ingot from a furnace's output slot.@nHint: To smelt an iron ingot, put a fuel (like coal) and iron ore into a furnace.=Colle un lingote de ferro da ranura de saída dun forno.@nSuxestión: para fundir un lingote de ferro, pon un combustible (como o carbón) e mineral de ferro nun forno.
|
||||||
|
The Haggler=O regateador
|
||||||
|
The Lie=A mentira
|
||||||
|
Time to Farm!=¡Tempo de cultivar!
|
||||||
|
Time to Mine!=¡Tempo de minar!
|
||||||
|
Time to Strike!=¡Tempo de atacar!
|
||||||
|
Travel by minecart for at least 1000 meters from your starting point in a single ride.=Viaxa en carretilla durante polo menos 1000 metros desde o punto de partida nun só paseo.
|
||||||
|
Use 8 cobblestones to craft a furnace.=Usa 8 rochas para fabricar un forno.
|
||||||
|
Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Usa unha mesa de traballo para elaborar unha aixada de madeira a partir de táboas e paus de madeira.
|
||||||
|
Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Usa unha mesa de traballo para elaborar un pico de madeira a partir de táboas e paus de madeira.
|
||||||
|
Use obsidian and a fire starter to construct a Nether portal.=Usa obsidiana e un iniciador de lume para construír un portal Nether.
|
||||||
|
Use wheat to craft a bread.=Usa o trigo para elaborar un pan.
|
||||||
|
Who is Cutting Onions?=¿Quen está cortando cebolas?
|
||||||
|
Pick up a crying obsidian from the floor.=Colle unha obsidiana chorando do chan.
|
||||||
|
Hidden in the Depths=Oculto nas profundidades
|
||||||
|
Pick up an Ancient Debris from the floor.=Colle un restos antigos do chan.
|
||||||
|
The Nether=El Nether
|
||||||
|
Bring summer clothes.@nHint: Enter the Nether.=Trae roupa de verán.@nSuxestión: Entra no Nether.
|
||||||
|
Isn't It Iron Pick=¿Non e ferrónico?
|
||||||
|
Craft a iron pickaxe using sticks and iron.=Elabora un pico de ferro usando paus e ferro.
|
||||||
|
Postmortal=Post mortem
|
||||||
|
Use a Totem of Undying to cheat death.=Usa un Totem of Eternidade para enganar a morte.
|
||||||
|
Sweet Dreams=Doces soños
|
||||||
|
Sleep in a bed to change your respawn point.=Durme nunha cama para cambiar o seu punto de reaparición.
|
||||||
|
Not Quite "Nine" Lives=Non son "Nove" vidas
|
||||||
|
Charge a Respawn Anchor to the maximum.=Carga unha áncora de reaparición ao máximo.
|
||||||
|
What A Deal!=¡Qué negocio!
|
||||||
|
Successfully trade with a Villager.=Comercio con éxito cun aldeano.
|
||||||
|
Withering Heights=Alturas marchitas
|
||||||
|
Summon the wither from the dead.=Invoca o murcho de entre os mortos.
|
||||||
|
The Cutest Predator=O depredador máis bonito
|
||||||
|
Catch an Axolotl with a bucket!=¡Atrapa un axolote cun cubo!
|
||||||
|
Fishy Business=Negocios de pesca
|
||||||
|
Catch a fish.@nHint: Catch a fish, salmon, clownfish, or pufferfish.=Atrapa un peixe.@nSuxerencia: Atrapa un peixe, salmón, peixe paiaso, ou peixe globo.
|
||||||
|
Country Lode, Take Me Home=Magnetita lévame ao lar
|
||||||
|
Use a compass on a Lodestone.=Usa un compás sobre una magnetita
|
||||||
|
Serious Dedication=Dedicación seria
|
||||||
|
Use a Netherite Ingot to upgrade a hoe, and then completely reevaluate your life choices.=Usa un lingote de Netherite para actualizar unha aixada e, a continuación, reavalia completamente as túas opcións de vida.
|
||||||
|
Local Brewery=Cervexaría local
|
||||||
|
Brew a Potion.@nHint: Take a potion or glass bottle out of the brewing stand.=PPrepara unha poción.@nSuxestión: Saca unha poción ou unha botella de vidro do posto de elaboración.
|
||||||
|
Enchanter=Encantador
|
||||||
|
Enchant an item using an Enchantment Table.=Encanta un elemento usando unha táboa de encantamentos.
|
||||||
|
Bring Home the Beacon=Fágase a luz
|
||||||
|
Use a beacon.=Usa unha baliza.
|
||||||
|
Beaconator=Balizaneitor
|
||||||
|
Use a fully powered beacon.=Utiliza unha baliza a máxima potencia.
|
||||||
|
The Next Generation=A próxima xeración
|
||||||
|
Hold the Dragon Egg.@nHint: Pick up the egg from the ground and have it in your inventory.=Manteña o ovo de dragón.@nConsello: colle o ovo do chan e téñao no teu inventario.
|
||||||
|
The End... Again...=O final... de novo...
|
||||||
|
Respawn the Ender Dragon.=Volta a invocar ao dragón final.
|
||||||
|
Sky's the Limit=O ceo é o límite
|
||||||
|
Find the elytra and prepare to fly above and beyond!=¡Busca os élitros e prepárate para voar máis aló!
|
||||||
|
Free the End=Libera o final
|
||||||
|
Kill the ender dragon. Good Luck!=Mata o dragón final. Moita sorte!
|
||||||
|
Bee Our Guest=Abelante, este e o teu fogar
|
||||||
|
Use a campfire to collect a bottle of honey from a beehive without aggrivating the bees inside.=Usa unha fogueira para recoller unha botella de mel dunha colmea sen agravar as abellas dentro.
|
||||||
|
Total Beelocation=Abellémonos de aquí
|
||||||
|
Move a bee nest, with 3 bees inside, using a silk touch enchanted tool.=Move un niño de abellas, con 3 abellas dentro, usando unha ferramenta encantada de toque de seda.
|
||||||
|
Wax On=Encerando ando
|
||||||
|
Apply honeycomb to a copper block to protect it from the elements.=Aplique panal a un bloque de cobre para protexelo dos elementos.
|
||||||
|
Wax Off=Pulir cera
|
||||||
|
Scrape wax off of a copper block.=Raspe a cera dun bloque de cobre.
|
||||||
|
The End?=¿O fin?
|
||||||
|
Or the beginning?@nHint: Enter an end portal.=¿Ou o comezo?@nConsello: Entra nun portal final.
|
||||||
|
Stone Age=Idade de Pedra
|
||||||
|
Mine a stone with new pickaxe.=Mina unha pedra co pico novo.
|
||||||
|
Ice Bucket Challenge=Desafío de balde de xeo
|
||||||
|
Obtain an obsidian block.=Obter un bloque de obsidiana.
|
||||||
|
Hot Stuff=¡Cousas quentes!
|
||||||
|
Put lava in a bucket.=Poñer lava nun balde.
|
||||||
|
Hero of the Village=Heroe da aldea
|
||||||
|
Successfully defend a village from a raid=Defende con éxito unha aldea dunha incursión
|
||||||
|
Voluntary Exile=Exilio Voluntario
|
||||||
|
Kill a raid captain. Maybe consider staying away from the local villages for the time being...=Mata a un capitán de ataque. Quizais considere manterse lonxe das aldeas locais polo momento..
|
||||||
|
Tactical Fishing=Pesca táctica
|
||||||
|
Catch a fish... without a fishing rod!=Atrapa un peixe... ¡sen unha cana de pescar!
|
||||||
|
Crafting a New Look=Creando un novo aspecto
|
||||||
|
Craft a trimmed armor at a Smithing Table=Elabora unha armadura recortada nunha mesa de forxa
|
||||||
|
Smithing with Style=Forxando con estilo
|
||||||
|
Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder=Aplica polo menos unha vez estes modelos de ferraxe: agullas, fuciño, costelas, gardián, silencio, vex, mareas, pionero
|
|
@ -0,0 +1,14 @@
|
||||||
|
# textdomain: mcl_credits
|
||||||
|
3D Models=Modelos 3D
|
||||||
|
A faithful Open Source clone of Minecraft=Un fiel clon de código aberto de Minecraft
|
||||||
|
Contributors=Un fiel clon de código aberto de Minecraft
|
||||||
|
Creator of MineClone=Un fiel clon de código aberto de Minecraft
|
||||||
|
Creator of VoxeLibre=Creador de VoxeLibre
|
||||||
|
Developers=Desenvolvedores
|
||||||
|
Jump to speed up (additionally sprint)=Ir para acelerar (adicionalmente sprint)
|
||||||
|
Maintainers=Ir para acelerar (adicionalmente sprint)
|
||||||
|
MineClone5=MineClone5
|
||||||
|
Original Mod Authors=Autores do mod orixinal
|
||||||
|
Sneak to skip=Escalar para saltar
|
||||||
|
Textures=Texturas
|
||||||
|
Translations=Traducións
|
|
@ -0,0 +1,55 @@
|
||||||
|
# textdomain: mcl_death_messages
|
||||||
|
@1 went up in flames=@1 ardeu en chamas
|
||||||
|
@1 walked into fire whilst fighting @2=@1 entrou no lume mentres loitaba contra @2
|
||||||
|
@1 was struck by lightning=@1 foi alcanzado por un raio
|
||||||
|
@1 was struck by lightning whilst fighting @2=@1 foi alcanzado por un raio mentres loitaba contra @2
|
||||||
|
@1 burned to death=@1 morreu queimado
|
||||||
|
@1 was burnt to a crisp whilst fighting @2=@1 queimouse ata queimada mentres loitaba contra @2
|
||||||
|
@1 tried to swim in lava=@1 intentou nadar na lava
|
||||||
|
@1 tried to swim in lava to escape @2=@1 intentou nadar na lava para escapar @2
|
||||||
|
@1 discovered the floor was lava=@1 descubriu que o chan era lava
|
||||||
|
@1 walked into danger zone due to @2=@1 entrou na zona de perigo debido a @2
|
||||||
|
@1 suffocated in a wall=@1 asfixiado nunha parede
|
||||||
|
@1 suffocated in a wall whilst fighting @2=@1 asfixiouse nunha parede mentres loitaba contra @2
|
||||||
|
@1 drowned=@1 afogado
|
||||||
|
@1 drowned whilst trying to escape @2=@1 afogouse mentres intentaba escapar @2
|
||||||
|
@1 starved to death=@1 morreu de fame
|
||||||
|
@1 starved to death whilst fighting @2=@1 morreu de fame mentres loitaba contra @2
|
||||||
|
@1 was pricked to death=@1 morreu pinchado
|
||||||
|
@1 walked into a cactus whilst trying to escape @2=@1 entrou nun cacto mentres intentaba escapar @2
|
||||||
|
@1 hit the ground too hard=@1 golpeou o chan demasiado forte
|
||||||
|
@1 hit the ground too hard whilst trying to escape @2=@1 golpeou o chan con demasiada forza mentres tentaba escapar @2
|
||||||
|
@1 experienced kinetic energy=@1 experimentou enerxía cinética
|
||||||
|
@1 experienced kinetic energy whilst trying to escape @2=@1 experimentou enerxía cinética mentres intentaba escapar @2
|
||||||
|
@1 fell out of the world=@1 caeu do mundo
|
||||||
|
@1 didn't want to live in the same world as @2=@1 non quería vivir no mesmo mundo que @2
|
||||||
|
@1 died=@1 morreu
|
||||||
|
@1 died because of @2=@1 morreu por mor de @2
|
||||||
|
@1 was killed by magic=@1 foi asasinado por maxia
|
||||||
|
@1 was killed by magic whilst trying to escape @2=@1 foi asasinado por maxia mentres intentaba escapar @2
|
||||||
|
@1 was killed by @2 using magic=@1 foi asasinado por @2 usando magic
|
||||||
|
@1 was killed by @2 using @3=@1 foi asasinado por @2 usando @3
|
||||||
|
@1 was roasted in dragon breath=@1 foi asado en alento de dragón
|
||||||
|
@1 was roasted in dragon breath by @2=@1 foi asado en alento de dragón por @2
|
||||||
|
@1 withered away=@1 marchou
|
||||||
|
@1 withered away whilst fighting @2=@1 marchou mentres loitaba contra @2
|
||||||
|
@1 was shot by a skull from @2=@1 recibiu un disparo por unha caveira de @2
|
||||||
|
@1 was squashed by a falling anvil=@1 foi esmagado por unha yunque que caía
|
||||||
|
@1 was squashed by a falling anvil whilst fighting @2=@1 foi esmagado por unha yunque que caía mentres loitaba contra @2
|
||||||
|
@1 was squashed by a falling block=@1 foi esmagado por un bloque en caída
|
||||||
|
@1 was squashed by a falling block whilst fighting @2=@1 foi esmagado por un bloque que caía mentres loitaba contra @2
|
||||||
|
@1 was slain by @2=@1 foi asasinado por @2
|
||||||
|
@1 was slain by @2 using @3=@1 foi asasinado por @2 usando @3
|
||||||
|
@1 was shot by @2=@1 foi disparado por @2
|
||||||
|
@1 was shot by @2 using @3=@1 disparou @2 usando @3
|
||||||
|
@1 was fireballed by @2=@1 foi disparado por @2
|
||||||
|
@1 was fireballed by @2 using @3=@1 foi disparado por @2 usando @3
|
||||||
|
@1 was killed trying to hurt @2=@1 morreu intentando ferir a @2
|
||||||
|
@1 tried to hurt @2 and died by @3=@1 intentou ferir a @2 e morreu por @3
|
||||||
|
@1 blew up=@1 explotou
|
||||||
|
@1 was blown up by @2=@1 foi explotado por @2
|
||||||
|
@1 was blown up by @2 using @3=@1 foi explotado por @2 usando @3
|
||||||
|
@1 was squished too much=@1 esmagouse demasiado
|
||||||
|
@1 was squashed by @2=@1 foi esmagado por @2
|
||||||
|
@1 went off with a bang=@1 saíu cun estrondo
|
||||||
|
@1 went off with a bang due to a firework fired by @2 from @3=@1 saíu cun estrondo debido a un fogo de artificio disparado por @2 de @3
|
|
@ -0,0 +1,8 @@
|
||||||
|
# textdomain: mcl_experience
|
||||||
|
[[<player>] <xp>]=[[<xogador>] <xp>]
|
||||||
|
Gives a player some XP=Dálle a un xogador algo de XP
|
||||||
|
Error: Too many parameters!=¡Erro: demasiados parámetros!
|
||||||
|
Error: Incorrect value of XP=Erro: valor incorrecto de XP
|
||||||
|
Error: Player not found=Erro: Non se atopou o xogador
|
||||||
|
Added @1 XP to @2, total: @3, experience level: @4=Engadido @1 XP a @2, total: @3, nivel de experiencia: @4
|
||||||
|
Bottle o' Enchanting=Botella de Encanto
|
|
@ -1,7 +1,12 @@
|
||||||
local size_min, size_max = 20, 59
|
-- Constants
|
||||||
local delta_size = size_max - size_min
|
local size_min = 20 / 100 -- minimum size, prescaled
|
||||||
|
local size_max = 59 / 100 -- maximum size, prescaled
|
||||||
|
local delta_size = (size_max - size_min) / 10 -- Size change for each XP size level
|
||||||
|
local max_orb_age = 300 -- seconds
|
||||||
|
local gravity = vector.new(0, -((tonumber(minetest.settings:get("movement_gravity"))) or 9.81), 0)
|
||||||
|
|
||||||
local size_to_xp = {
|
local size_to_xp = {
|
||||||
|
-- min and max XP amount for a given size
|
||||||
{-32768, 2}, -- 1
|
{-32768, 2}, -- 1
|
||||||
{ 3, 6}, -- 2
|
{ 3, 6}, -- 2
|
||||||
{ 7, 16}, -- 3
|
{ 7, 16}, -- 3
|
||||||
|
@ -16,24 +21,20 @@ local size_to_xp = {
|
||||||
}
|
}
|
||||||
|
|
||||||
local function xp_to_size(xp)
|
local function xp_to_size(xp)
|
||||||
local i, l = 1, #size_to_xp
|
xp = xp or 0
|
||||||
|
|
||||||
while xp > size_to_xp[i][1] and i < l do
|
-- Find the size for the xp amount
|
||||||
i = i + 1
|
for i=1,11 do
|
||||||
|
local bucket = size_to_xp[i]
|
||||||
|
if xp >= bucket[1] and xp <= bucket[2] then
|
||||||
|
return (i - 1) * delta_size + size_min
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return ((i - 1) / (l - 1) * delta_size + size_min) / 100
|
-- Fallback is the minimum size
|
||||||
|
return size_min
|
||||||
end
|
end
|
||||||
|
|
||||||
local max_orb_age = 300 -- seconds
|
|
||||||
local gravity = vector.new(0, -((tonumber(minetest.settings:get("movement_gravity"))) or 9.81), 0)
|
|
||||||
|
|
||||||
local collector, pos, pos2
|
|
||||||
local direction, distance, player_velocity, goal
|
|
||||||
local currentvel, acceleration, multiplier, velocity
|
|
||||||
local node, vel, def
|
|
||||||
local is_moving, is_slippery, slippery, slip_factor
|
|
||||||
local size
|
|
||||||
local function xp_step(self, dtime)
|
local function xp_step(self, dtime)
|
||||||
--if item set to be collected then only execute go to player
|
--if item set to be collected then only execute go to player
|
||||||
if self.collected == true then
|
if self.collected == true then
|
||||||
|
@ -41,33 +42,32 @@ local function xp_step(self, dtime)
|
||||||
self.collected = false
|
self.collected = false
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
collector = minetest.get_player_by_name(self.collector)
|
|
||||||
|
local collector = minetest.get_player_by_name(self.collector)
|
||||||
if collector and collector:get_hp() > 0 and vector.distance(self.object:get_pos(),collector:get_pos()) < 7.25 then
|
if collector and collector:get_hp() > 0 and vector.distance(self.object:get_pos(),collector:get_pos()) < 7.25 then
|
||||||
self.object:set_acceleration(vector.new(0,0,0))
|
self.object:set_acceleration(vector.new(0,0,0))
|
||||||
self.disable_physics(self)
|
self.disable_physics(self)
|
||||||
--get the variables
|
--get the variables
|
||||||
pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
pos2 = collector:get_pos()
|
local pos2 = collector:get_pos()
|
||||||
|
|
||||||
player_velocity = collector:get_velocity() or collector:get_player_velocity()
|
local player_velocity = collector:get_velocity() or collector:get_player_velocity()
|
||||||
|
|
||||||
pos2.y = pos2.y + 0.8
|
pos2.y = pos2.y + 0.8
|
||||||
|
|
||||||
direction = vector.direction(pos,pos2)
|
local direction = vector.direction(pos,pos2)
|
||||||
distance = vector.distance(pos2,pos)
|
local distance = vector.distance(pos2,pos)
|
||||||
multiplier = distance
|
local multiplier = distance
|
||||||
if multiplier < 1 then
|
if multiplier < 1 then
|
||||||
multiplier = 1
|
multiplier = 1
|
||||||
end
|
end
|
||||||
goal = vector.multiply(direction,multiplier)
|
local currentvel = self.object:get_velocity()
|
||||||
currentvel = self.object:get_velocity()
|
|
||||||
|
|
||||||
if distance > 1 then
|
if distance > 1 then
|
||||||
multiplier = 20 - distance
|
multiplier = 20 - distance
|
||||||
velocity = vector.multiply(direction,multiplier)
|
local velocity = vector.multiply(direction, multiplier)
|
||||||
goal = velocity
|
local acceleration = vector.new(velocity.x - currentvel.x, velocity.y - currentvel.y, velocity.z - currentvel.z)
|
||||||
acceleration = vector.new(goal.x-currentvel.x,goal.y-currentvel.y,goal.z-currentvel.z)
|
self.object:add_velocity(vector.add(acceleration, player_velocity))
|
||||||
self.object:add_velocity(vector.add(acceleration,player_velocity))
|
|
||||||
elseif distance < 0.8 then
|
elseif distance < 0.8 then
|
||||||
mcl_experience.add_xp(collector, self._xp)
|
mcl_experience.add_xp(collector, self._xp)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
@ -75,28 +75,26 @@ local function xp_step(self, dtime)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
self.collector = nil
|
self.collector = nil
|
||||||
self.enable_physics(self)
|
self:enable_physics()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Age orbs
|
||||||
self.age = self.age + dtime
|
self.age = self.age + dtime
|
||||||
if self.age > max_orb_age then
|
if self.age > max_orb_age then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
|
if not pos then return end
|
||||||
|
|
||||||
if pos then
|
-- Get the node directly below the XP orb
|
||||||
node = minetest.get_node_or_nil({
|
local node = minetest.get_node_or_nil({
|
||||||
x = pos.x,
|
x = pos.x,
|
||||||
y = pos.y -0.25,
|
y = pos.y - 0.25, -- Orb collision box is +/-0.2, so go a bit below that
|
||||||
z = pos.z
|
z = pos.z
|
||||||
})
|
})
|
||||||
else
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Remove nodes in 'ignore'
|
-- Remove nodes in 'ignore'
|
||||||
if node and node.name == "ignore" then
|
if node and node.name == "ignore" then
|
||||||
|
@ -109,18 +107,18 @@ local function xp_step(self, dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Slide on slippery nodes
|
-- Slide on slippery nodes
|
||||||
vel = self.object:get_velocity()
|
local vel = self.object:get_velocity()
|
||||||
def = node and minetest.registered_nodes[node.name]
|
local def = node and minetest.registered_nodes[node.name]
|
||||||
is_moving = (def and not def.walkable) or
|
local is_moving = (def and not def.walkable) or
|
||||||
vel.x ~= 0 or vel.y ~= 0 or vel.z ~= 0
|
vel.x ~= 0 or vel.y ~= 0 or vel.z ~= 0
|
||||||
is_slippery = false
|
local is_slippery = false
|
||||||
|
|
||||||
if def and def.walkable then
|
if def and def.walkable then
|
||||||
slippery = minetest.get_item_group(node.name, "slippery")
|
local slippery = minetest.get_item_group(node.name, "slippery")
|
||||||
is_slippery = slippery ~= 0
|
is_slippery = slippery ~= 0
|
||||||
if is_slippery and (math.abs(vel.x) > 0.2 or math.abs(vel.z) > 0.2) then
|
if is_slippery and (math.abs(vel.x) > 0.2 or math.abs(vel.z) > 0.2) then
|
||||||
-- Horizontal deceleration
|
-- Horizontal deceleration
|
||||||
slip_factor = 4.0 / (slippery + 4)
|
local slip_factor = 4.0 / (slippery + 4)
|
||||||
self.object:set_acceleration({
|
self.object:set_acceleration({
|
||||||
x = -vel.x * slip_factor,
|
x = -vel.x * slip_factor,
|
||||||
y = 0,
|
y = 0,
|
||||||
|
@ -160,7 +158,6 @@ minetest.register_entity("mcl_experience:orb", {
|
||||||
initial_sprite_basepos = {x = 0, y = 0},
|
initial_sprite_basepos = {x = 0, y = 0},
|
||||||
is_visible = true,
|
is_visible = true,
|
||||||
pointable = false,
|
pointable = false,
|
||||||
static_save = false,
|
|
||||||
},
|
},
|
||||||
moving_state = true,
|
moving_state = true,
|
||||||
slippery_state = false,
|
slippery_state = false,
|
||||||
|
@ -191,7 +188,7 @@ minetest.register_entity("mcl_experience:orb", {
|
||||||
-- This was a minetest bug for a while: https://github.com/minetest/minetest/issues/14420
|
-- This was a minetest bug for a while: https://github.com/minetest/minetest/issues/14420
|
||||||
local xp = tonumber(staticdata) or 0
|
local xp = tonumber(staticdata) or 0
|
||||||
self._xp = xp
|
self._xp = xp
|
||||||
size = xp_to_size(xp)
|
local size = xp_to_size(xp)
|
||||||
|
|
||||||
self.object:set_properties({
|
self.object:set_properties({
|
||||||
visual_size = {x = size, y = size},
|
visual_size = {x = size, y = size},
|
||||||
|
@ -199,6 +196,9 @@ minetest.register_entity("mcl_experience:orb", {
|
||||||
})
|
})
|
||||||
self.object:set_sprite({x=1,y=math.random(1,14)}, 14, 0.05, false)
|
self.object:set_sprite({x=1,y=math.random(1,14)}, 14, 0.05, false)
|
||||||
end,
|
end,
|
||||||
|
get_staticdata = function(self)
|
||||||
|
return tostring(self._xp or 0)
|
||||||
|
end,
|
||||||
|
|
||||||
enable_physics = function(self)
|
enable_physics = function(self)
|
||||||
if not self.physical_state then
|
if not self.physical_state then
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain:hbarmor
|
||||||
|
Armor=Armadura
|
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: mcl_info
|
||||||
|
Set debug bit mask: 0 @= disable, 1 @= biome name, 2 @= coordinates, 3 @= all=Establecer máscara de bits de depuración: 0 @= desactivar, 1 @= nome do bioma, 2 @= coordenadas, 3 @= todo
|
||||||
|
Error! Possible values are integer numbers from @1 to @2=Erro! Os valores posibles son números enteiros de @1 a @2
|
||||||
|
Debug bit mask set to @1=Máscara de bits de depuración definida en @1
|
|
@ -0,0 +1,22 @@
|
||||||
|
# textdomain: mcl_inventory
|
||||||
|
Recipe book=Libro de receitas
|
||||||
|
Help=Axuda
|
||||||
|
Select player skin=Selecciona a pel do xogador
|
||||||
|
Achievements=Logros
|
||||||
|
Building Blocks=Bloques de construcción
|
||||||
|
Decoration Blocks=Bloques de decoración
|
||||||
|
Redstone=Pedra Vermella
|
||||||
|
Transportation=Transporte
|
||||||
|
Brewing=elaboración de cervexa
|
||||||
|
Miscellaneous=Varios
|
||||||
|
Search Items=Buscar elementos
|
||||||
|
Foodstuffs=Alimentos
|
||||||
|
Tools=Ferramentas
|
||||||
|
Combat=Combate
|
||||||
|
Mobs=Mobs
|
||||||
|
Materials=Materiais
|
||||||
|
Survival Inventory=Inventario de supervivencia
|
||||||
|
Crafting=Elaboración
|
||||||
|
Inventory=Inventario
|
||||||
|
@1/@2=@1/@2
|
||||||
|
Switch stack size=Cambiar tamaño de pila
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: mcl_ver_info
|
||||||
|
Sorry, but your version of Minetest doesn't support the latest API. Please upgrade your minetest.=Sentímolo, a túa versión de Minetest non admite a API máis recente. Actualiza o teu minetest.
|
||||||
|
Display VoxeLibre game version.=Mostra a versión do xogo VoxeLibre.
|
|
@ -0,0 +1,12 @@
|
||||||
|
# textdomain: mcl_comparators
|
||||||
|
Redstone comparators are multi-purpose redstone components.=Os comparadores pedra vermella son compoñentes de pedra vermella multipropósito.
|
||||||
|
They can transmit a redstone signal, detect whether a block contains any items and compare multiple signals.=Poden transmitir un sinal de pedra vermella, detectar se un bloque contén elementos e comparar varios sinais.
|
||||||
|
A redstone comparator has 1 main input, 2 side inputs and 1 output. The output is in arrow direction, the main input is in the opposite direction. The other 2 sides are the side inputs.=Un comparador pedra vermella ten 1 entrada principal, 2 entradas laterais e 1 saída. A saída está na dirección da frecha, a entrada principal está na dirección oposta. Os outros 2 lados son as entradas laterais.
|
||||||
|
The main input can powered in 2 ways: First, it can be powered directly by redstone power like any other component. Second, it is powered if, and only if a container (like a chest) is placed in front of it and the container contains at least one item.=A entrada principal pódese alimentar de 2 xeitos: en primeiro lugar, pódese alimentar directamente coa enerxía Pedra Vermella como calquera outro compoñente. En segundo lugar, é alimentado se, e só se un recipiente (como un cofre) se coloca diante del e o recipiente contén polo menos un elemento.
|
||||||
|
The side inputs are only powered by normal redstone power. The redstone comparator can operate in two modes: Transmission mode and subtraction mode. It starts in transmission mode and the mode can be changed by using the block.=As entradas laterais só son alimentadas pola enerxía Pedra Vermella normal. O comparador Pedra Vermella pode funcionar en dous modos: modo de transmisión e modo de subtracción. Comeza no modo de transmisión e pódese cambiar o modo usando o bloque.
|
||||||
|
Transmission mode:@nThe front torch is unlit and lowered. The output is powered if, and only if the main input is powered. The two side inputs are ignored.=Modo de transmisión: @nO farol dianteiro está apagado e baixa. A saída é alimentada se, e só se a entrada principal está alimentada. As dúas entradas laterais son ignoradas.
|
||||||
|
Subtraction mode:@nThe front torch is lit. The output is powered if, and only if the main input is powered and none of the side inputs is powered.=Modo de resta: @nO facho frontal está aceso. A saída é alimentada se, e só se a entrada principal está alimentada e ningunha das entradas laterais está alimentada.
|
||||||
|
Redstone Comparator=Comparador de Pedra Vermella
|
||||||
|
Redstone Comparator (Subtract)=Comparador de Pedra Vermella (Negativo)
|
||||||
|
Redstone Comparator (Powered)=Comparador de Pedra Vermella (Alimentado)
|
||||||
|
Redstone Comparator (Subtract, Powered)=Comparador Pedra Vermella(Negativo, Alimentado)
|
|
@ -0,0 +1,25 @@
|
||||||
|
# textdomain: mcl_dispensers
|
||||||
|
Dispenser=Dispensador
|
||||||
|
A dispenser is a block which acts as a redstone component which, when powered with redstone power, dispenses an item. It has a container with 9 inventory slots.=Un dispensador é un bloque que actúa como un compoñente Pedra vermella que, cando se alimenta con Pedra vermella Power, dispensa un artigo. Ten un recipiente con 9 ranuras de inventario.
|
||||||
|
Place the dispenser in one of 6 possible directions. The “hole” is where items will fly out of the dispenser. Use the dispenser to access its inventory. Insert the items you wish to dispense. Supply the dispenser with redstone energy once to dispense a random item.=Coloque o dispensador nunha das 6 direccións posibles. O "burato" é onde os elementos sairán voando do dispensador. Use o dispensador para acceder ao seu inventario. Insira os elementos que desexa dispensar. Subministre o dispensador con enerxía Pedra vermella unha vez para dispensar un elemento aleatorio:
|
||||||
|
The dispenser will do different things, depending on the dispensed item:=O dispensador fará diferentes cousas, dependendo do artigo dispensado:
|
||||||
|
• Arrows: Are launched=• Frechas: lánzanse
|
||||||
|
• Eggs and snowballs: Are thrown=• Ovos e bólas de neve: lánzanse
|
||||||
|
• Fire charges: Are fired in a straight line=• Cargas de lume: Dispáranse en liña recta
|
||||||
|
• Armor: Will be equipped to players and armor stands=• Armadura: estará equipada para xogadores e soportes de armadura
|
||||||
|
• Boats: Are placed on water or are dropped=• Barcos: Colócanse sobre a auga ou bótanse caer
|
||||||
|
• Minecart: Are placed on rails or are dropped=• Carro de minería: colócanse sobre carrís ou déixase caer
|
||||||
|
• Bone meal: Is applied on the block it is facing=• Fariña de ósos: Aplícase no bloque ao que se enfronta
|
||||||
|
• Empty buckets: Are used to collect a liquid source=• Cubos baleiros: Úsanse para recoller unha fonte líquida
|
||||||
|
• Filled buckets: Are used to place a liquid source=• Cubos cheos: Úsanse para colocar unha fonte líquida
|
||||||
|
• Heads, pumpkins: Equipped to players and armor stands, or placed as a block=• Cabezas, cabazas: Equipadas para xogadores e soportes de armaduras, ou colocadas como bloque
|
||||||
|
• Shulker boxes: Are placed as a block=• Caixas Shulker: Colócanse como un bloque
|
||||||
|
• TNT: Is placed and ignited=• DINAMITA: Colócase e acende
|
||||||
|
• Flint and steel: Is used to ignite a fire in air and to ignite TNT=• Silex e aceiro: Úsase para prender lume no aire e para prender Dinamita
|
||||||
|
• Spawn eggs: Will summon the mob they contain=• Desova ovos: convocará á turba que conteñen
|
||||||
|
• Other items: Are simply dropped=• Outros elementos: simplemente bótanse
|
||||||
|
Downwards-Facing Dispenser=Dispensador cara abaixo
|
||||||
|
Upwards-Facing Dispenser=Dispensador cara arriba
|
||||||
|
Inventory=Inventario
|
||||||
|
9 inventory slots=9 rañuras de inventario
|
||||||
|
Launches item when powered by redstone power=Lanza o elemento cando está alimentado por enerxía Pedra vermella
|
|
@ -0,0 +1,9 @@
|
||||||
|
# textdomain: mcl_droppers
|
||||||
|
Dropper=Contagotas
|
||||||
|
A dropper is a redstone component and a container with 9 inventory slots which, when supplied with redstone power, drops an item or puts it into a container in front of it.=Un contagotas é un compoñente Pedra Vermella e un recipiente con 9 rañuras de inventario que, cando se lle proporciona enerxía Pedra Vermella, deixa caer un artigo ou colócao nun recipiente diante del.
|
||||||
|
Droppers can be placed in 6 possible directions, items will be dropped out of the hole. Use the dropper to access its inventory. Supply it with redstone energy once to make the dropper drop or transfer a random item.=Os contagotas pódense colocar en 6 direccións posibles, os elementos deixaranse fóra do burato. Use o contagotas para acceder ao seu inventario. Proporcionalle enerxía de pedra vermella unha vez para facer caer o contagotas ou transferir un elemento aleatorio.
|
||||||
|
Downwards-Facing Dropper=Contagotas cara abaixo
|
||||||
|
Upwards-Facing Dropper=Contagotas cara arriba
|
||||||
|
Inventory=Inventario
|
||||||
|
9 inventory slots=9 rañuras de inventario
|
||||||
|
Drops item when powered by redstone power=Cae o elemento cando está alimentado por enerxía Pedra Vermella
|
|
@ -113,8 +113,8 @@ mesecon.register_node("mcl_observers:observer", {
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
_mcl_blast_resistance = 3.5,
|
_mcl_blast_resistance = 3,
|
||||||
_mcl_hardness = 3.5,
|
_mcl_hardness = 3,
|
||||||
}, {
|
}, {
|
||||||
description = S("Observer"),
|
description = S("Observer"),
|
||||||
_tt_help = S("Emits redstone pulse when block in front changes"),
|
_tt_help = S("Emits redstone pulse when block in front changes"),
|
||||||
|
@ -172,8 +172,8 @@ mesecon.register_node("mcl_observers:observer_down", {
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
|
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
_mcl_blast_resistance = 3.5,
|
_mcl_blast_resistance = 3,
|
||||||
_mcl_hardness = 3.5,
|
_mcl_hardness = 3,
|
||||||
drop = "mcl_observers:observer_off",
|
drop = "mcl_observers:observer_off",
|
||||||
}, {
|
}, {
|
||||||
tiles = {
|
tiles = {
|
||||||
|
@ -224,8 +224,8 @@ mesecon.register_node("mcl_observers:observer_up", {
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
|
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
_mcl_blast_resistance = 3.5,
|
_mcl_blast_resistance = 3,
|
||||||
_mcl_hardness = 3.5,
|
_mcl_hardness = 3,
|
||||||
drop = "mcl_observers:observer_off",
|
drop = "mcl_observers:observer_off",
|
||||||
}, {
|
}, {
|
||||||
tiles = {
|
tiles = {
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_observers
|
||||||
|
Observer=Observador
|
||||||
|
An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes.=Un observador é un compoñente de pedra vermella que observa o bloque diante del e envía un pulso de pedra vermella moi breve sempre que este bloque cambia.
|
||||||
|
Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here.=Coloca o observador directamente diante do bloque que queres observar coa "cara" mirando o bloque. A frecha apunta ao lado da saída, que está no lado oposto da "cara". Podes colocar aquí o teu po de pedra vermella ou calquera outro compoñente.
|
||||||
|
Emits redstone pulse when block in front changes=Emite pulso de pedra vermella cando o bloque de diante cambia
|
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: mcl_target
|
||||||
|
Target=Obxectivo
|
||||||
|
A target is a block that provides a temporary redstone charge when hit by a projectile.=Un obxectivo é un bloque que proporciona unha carga de pedra vermella temporal cando golpea un proxectil.
|
||||||
|
Throw a projectile on the target to activate it.=Lanza un proxectil sobre o obxectivo para activalo.
|
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: mesecons_button
|
||||||
|
Use the button to push it.=Use o botón para pulsalo.
|
||||||
|
Stone Button=Botón de pedra
|
||||||
|
A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un botón de pedra é un compoñente de pedra vermella feito de pedra que se pode presionar para proporcionar enerxía vermella. Cando se empurra, alimenta os compoñentes de pedra vermella adxacentes durante 1 segundo.
|
||||||
|
Polished Blackstone Button=Botón Pedra negra pulido
|
||||||
|
A polished blackstone button is a redstone component made out of polished blackstone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un botón de pedra negra pulida é un compoñente de pedra vermella feito de pedra negra pulida que se pode presionar para proporcionar potencia de pedra vermella. Cando se empurra, alimenta os compoñentes de pedra vermella adxacentes durante 1 segundo.
|
||||||
|
Oak Button=Botón de carballo
|
||||||
|
Acacia Button=Botón de acacia
|
||||||
|
Birch Button=Botón de bidueiro
|
||||||
|
Dark Oak Button=Botón de carballo escuro
|
||||||
|
Spruce Button=Botón de abeto
|
||||||
|
Jungle Button=Botón de xungla
|
||||||
|
Mangrove Button=Botón de mangle
|
||||||
|
Crimson Button=Botón carmesí
|
||||||
|
Warped Button=Botón deformado
|
||||||
|
A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.=Un botón de madeira é un compoñente de pedra vermella feito de madeira que se pode presionar para proporcionar enerxía vermella. Cando se empurra, alimenta os compoñentes de pedra vermella adxacentes durante 1,5 segundos. Os botóns de madeira tamén se poden empurrar mediante frechas.
|
||||||
|
Provides redstone power when pushed=Proporciona enerxía pedra Vermella cando se pulsa
|
||||||
|
Push duration: @1s=Duración pulso: @1s=
|
||||||
|
Pushable by arrow=Pulsable pola frecha
|
||||||
|
A button is a redstone component which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for @1 seconds.=Un botón é un compoñente Pedra Vermella que se pode premer para proporcionar enerxía Pedra Vermella. Cando se empurra, alimenta os compoñentes de pedra vermella adxacentes durante @1 segundo.
|
|
@ -0,0 +1,32 @@
|
||||||
|
# textdomain: mesecons_commandblock
|
||||||
|
Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands.=Erro: o comando "@1" non existe; o seu bloque de comandos non se cambiou. Use o comando de chat "axuda" para obter unha lista de comandos dispoñibles.
|
||||||
|
Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands. Hint: Try to remove the leading slash.=Erro: o comando "@1" non existe; o seu bloque de comandos non se cambiou. Use o comando de chat "axuda" para obter unha lista de comandos dispoñibles. Consello: tenta eliminar a barra inclinada inicial.
|
||||||
|
Error: You have insufficient privileges to use the command “@1” (missing privilege: @2)! The command block has not been changed.=Erro: non tes privilexios suficientes para usar o comando "@1" (falta o privilexio: @2)! Non se cambiou o bloque de comandos.
|
||||||
|
Error: No commander! Block must be replaced.=Erro: ¡sen dono! O bloque debe ser substituído.
|
||||||
|
Commander: @1=Dono: @1
|
||||||
|
Submit=Aceptar
|
||||||
|
No commands.=Sen comandos.
|
||||||
|
Commands:=Comandos:
|
||||||
|
Help=Axuda
|
||||||
|
Placement denied. You need the “maphack” privilege to place command blocks.=Colocación denegada. Necesitas o privilexio "maphack" para colocar bloques de comandos.
|
||||||
|
Command Block=Bloque de comandos
|
||||||
|
Command blocks are mighty redstone components which are able to alter reality itself. In other words, they cause the server to execute server commands when they are supplied with redstone power.=Os bloques de comando son poderosos compoñentes de pedra vermella que son capaces de alterar a propia realidade. Noutras palabras, fan que o servidor execute comandos do servidor cando se lles proporciona enerxía Pedra Vermella.
|
||||||
|
Everyone can activate a command block and look at its commands, but not everyone can edit and place them.=Todo o mundo pode activar un bloque de comandos e mirar os seus comandos, pero non todos poden editalos e colocalos.
|
||||||
|
To view the commands in a command block, use it. To activate the command block, just supply it with redstone power. This will execute the commands once. To execute the commands again, turn the redstone power off and on again.=Para ver os comandos nun bloque de comandos, utilízao. Para activar o bloque de comandos, só tes que proporcionarlle enerxía Pedra vermella. Isto executará os comandos unha vez. Para executar os comandos de novo, apaga a Pedra vermella e acende de novo.
|
||||||
|
To be able to place a command block and change the commands, you need to be in Creative Mode and must have the “maphack” privilege. A new command block does not have any commands and does nothing. Use the command block (in Creative Mode!) to edit its commands. Read the help entry “Advanced usage > Server Commands” to understand how commands work. Each line contains a single command. You enter them like you would in the console, but without the leading slash. The commands will be executed from top to bottom.=Para poder colocar un bloque de comandos e cambiar os comandos, cómpre estar en modo creativo e ter o privilexio "maphack". Un novo bloque de comandos non ten ningún comando e non fai nada. Use o bloque de comandos (en modo creativo!) para editar os seus comandos. Le a entrada de axuda "Uso avanzado > Comandos do servidor" para comprender como funcionan os comandos. Cada liña contén un único comando. Introdúceos como o faría na consola, pero sen a barra inclinada. Os comandos executaranse de arriba a abaixo.
|
||||||
|
# ^ OLD TRANSLATION: Para poder colocar un bloque de comandos y cambiar los comandos, debe estar en modo creativo y debe tener el privilegio de "maphack". Un nuevo bloque de comandos no tiene ningún comando y no hace nada. Use el bloque de comandos (en modo creativo) para editar sus comandos. Lea la entrada de ayuda "Temas avanzados> Comandos del servidor" para comprender cómo funcionan los comandos. Cada línea contiene un solo comando. Los ingresas como lo harías en la consola, pero sin la barra inclinada. Los comandos se ejecutarán de arriba a abajo.
|
||||||
|
|
||||||
|
All commands will be executed on behalf of the player who placed the command block, as if the player typed in the commands. This player is said to be the “commander” of the block.=Todas as ordes executaranse en nome do xogador que colocou o bloque de comandos, coma se o xogador teclease as ordes. Dise que este xogador é o "dono" do bloque.
|
||||||
|
Command blocks support placeholders, insert one of these placeholders and they will be replaced by some other text:=Os bloques de comandos admiten marcadores de posición, insira un destes marcadores de posición e substituirase por outro texto:
|
||||||
|
• “@@c”: commander of this command block=• "@@c“: dono deste bloque de comandos
|
||||||
|
• “@@n” or “@@p”: nearest player from the command block=• "@@n“ o "@@p“: xogador máis próximo do bloque de comandos
|
||||||
|
• “@@f” farthest player from the command block=• "@@f“: jugador máis afastado do bloque de comandos
|
||||||
|
• “@@r”: random player currently in the world=• "@@r“: xogador aleatorio actualmente no mundo
|
||||||
|
• “@@@@”: literal “@@” sign=• „@@@@“: literal "@@“ letreiro
|
||||||
|
Example 1:@n time 12000@nSets the game clock to 12:00=Exemplo 1:@n hora 12000@nConfigura o reloxo do xogo ás 12:00
|
||||||
|
Example 2:@n give @@n mcl_core:apple 5@nGives the nearest player 5 apples=Exemplo 2: @n dálle @@n mcl_core:apple 5@nDálle 5 mazás ao xogador máis próximo
|
||||||
|
Access denied. You need the “maphack” privilege to edit command blocks.=Acceso denegado. Necesitas o privilexio "maphack" para editar bloques de comandos.
|
||||||
|
Editing the command block has failed! You can only change the command block in Creative Mode!=¡Produciuse un erro ao editar o bloque de comandos! ¡Só podes cambiar o bloque de comandos no modo creativo!
|
||||||
|
Editing the command block has failed! The command block is gone.=Produciuse un erro ao editar o bloque de comandos! O bloque de comandos desapareceu.
|
||||||
|
Executes server commands when powered by redstone power=Executa os comandos do servidor cando está alimentado por enerxía Pedra Vermella
|
||||||
|
Command blocks are not enabled on this server=Os bloques de comandos non están activados neste servidor
|
|
@ -0,0 +1,13 @@
|
||||||
|
# textdomain: mesecons_delayer
|
||||||
|
Redstone repeaters are versatile redstone components with multiple purposes: 1. They only allow signals to travel in one direction. 2. They delay the signal. 3. Optionally, they can lock their output in one state.=Os repetidores Redstone son compoñentes versátiles de Redstone con múltiples propósitos: 1. Só permiten que os sinais viaxan nunha dirección. 2. Retrasan o sinal. 3. Opcionalmente, poden bloquear a súa saída nun estado.
|
||||||
|
To power a redstone repeater, send a signal in “arrow” direction (the input). The signal goes out on the opposite side (the output) with a delay. To change the delay, use the redstone repeater. The delay is between 0.1 and 0.4 seconds long and can be changed in steps of 0.1 seconds. It is indicated by the position of the moving redstone torch.=Para alimentar un repetidor Redstone, envíe un sinal na dirección da "frecha" (a entrada). O sinal sae no lado oposto (a saída) cun atraso. Para cambiar o atraso, usa o repetidor Redstone. O atraso é de entre 0,1 e 0,4 segundos e pódese cambiar en pasos de 0,1 segundos. Indícase pola posición do facho de pedra vermella en movemento.
|
||||||
|
To lock a repeater, send a signal from an adjacent repeater into one of its sides. While locked, the moving redstone torch disappears, the output doesn't change and the input signal is ignored.=Para bloquear un repetidor, envíe un sinal desde un repetidor adxacente a un dos seus lados. Mentres está bloqueado, o facho de pedra vermella en movemento desaparece, a saída non cambia e o sinal de entrada é ignorado.
|
||||||
|
Redstone Repeater=Repetidor de Pedra Vermella
|
||||||
|
Redstone Repeater (Powered)=Repetidor de Pedra Vermella (Alimentado)
|
||||||
|
Redstone Repeater (Locked)=Repetidor de Pedra Vermella (Bloqueado)
|
||||||
|
Redstone Repeater (Locked, Powered)=Repetidor de Pedra Vermella (Bloqueado, Alimentado)
|
||||||
|
Redstone Repeater (Delay @1)=Repetidor de Pedra Vermella (Retardar @1)
|
||||||
|
Redstone Repeater (Delay @1, Powered)=Repetidor de Pedra Vermella (Retardar @1, Alimentado)
|
||||||
|
Transmits redstone power only in one direction=Transmite o poder de Pedra Vermella só nunha dirección
|
||||||
|
Delays signal=Sinal de atraso
|
||||||
|
Output locks when getting active redstone repeater signal from the side=Bloqueas de saída ao recibir o sinal de repetidor Redstone activo desde o lado
|
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: mesecons_lightstone
|
||||||
|
Redstone Lamp=Lámpara de Pedra Vermella
|
||||||
|
Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=As lámpadas Pedra Vermella son compoñentes sinxelos de Pedra Vermella que brillan intensamente (nivel de luz @1) cando reciben enerxía Pedra Vermella.
|
||||||
|
Glows when powered by redstone power=Brilla cando está alimentado por enerxía de Pedra Vermella
|
||||||
|
White Redstone Lamp=Lámpada Pedra Vermella Branca
|
||||||
|
Grey Redstone Lamp=Lámpada de Pedra Vermella gris
|
||||||
|
Light Grey Redstone Lamp=Lámpada de Pedra Vermella gris claro
|
||||||
|
Black Redstone Lamp=Lámpada de Pedra Vermella negra
|
||||||
|
Red Redstone Lamp=Lámpada de Pedra Vermella
|
||||||
|
Yellow Redstone Lamp=Lámpada de Pedra Vermella amarela
|
||||||
|
Green Redstone Lamp=Lámpada de Pedra Vermella verde
|
||||||
|
Cyan Redstone Lamp=Lámpada de Pedra Vermella cian
|
||||||
|
Blue Redstone Lamp=Lámpada Pedra Vermella Azul
|
||||||
|
Magenta Redstone Lamp=Lámpada de Pedra Vermella maxenta
|
||||||
|
Orange Redstone Lamp=Lámpada de Pedra Vermella laranxa
|
||||||
|
Purple Redstone Lamp=Lámpada de Pedra Vermella vermella
|
||||||
|
Brown Redstone Lamp=Lámpada de Pedra Vermella marrón
|
||||||
|
Pink Redstone Lamp=Lámpada de Pedra Vermella rosa
|
||||||
|
Lime Redstone Lamp=Lámpada de Pedra Vermella de Lima
|
||||||
|
Light Blue Redstone Lamp=Lámpada de Pedra Vermella azul claro
|
|
@ -0,0 +1,25 @@
|
||||||
|
# textdomain: mesecons_noteblock
|
||||||
|
Note Block=Bloque de notas
|
||||||
|
A note block is a musical block which plays one of many musical notes and different intruments when it is punched or supplied with redstone power.=Un bloque de notas é un bloque musical que toca unha das moitas notas musicais e diferentes instrumentos cando se lle perfora ou recibe enerxía Pedra Vermella.
|
||||||
|
Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:=Use o bloque de notas para escoller a seguinte nota musical (hai 25 semitonos ou 2 oitavas). O instrumento tocado depende do material do bloque debaixo do bloque de notas:
|
||||||
|
• Glass: Sticks=• Cristal: Paus
|
||||||
|
• Wood: Bass guitar=• Madeira: Baixo
|
||||||
|
• Stone: Bass drum=• Pedra: Bombo
|
||||||
|
• Sand or gravel: Snare drum=• Area ou grava: tambor
|
||||||
|
• Anything else: Piano=• Calquera outra cousa: piano
|
||||||
|
• Stone: Bass drum=
|
||||||
|
• Sand or gravel: Snare drum=
|
||||||
|
• Anything else: Piano=
|
||||||
|
• Block of Gold: Bell=• Bloque de Ouro: Campana
|
||||||
|
• Clay: Flute=• Arxila: Frauta
|
||||||
|
• Packed Ice: Chime=• Xeo empacado: Chime
|
||||||
|
• Wool: Guitar=• La: Guitarra
|
||||||
|
• Bone Block: Xylophne=• Bloque óseo: Xilofono
|
||||||
|
• Block of Iron: Iron xylophne=• Bloque de Ferro: Ferro xilofono
|
||||||
|
• Soul Sand: Cow bell=• Area de alma: campá de vaca
|
||||||
|
• Pumpkin: Didgeridoo=• Cabaza: Didgeridoo
|
||||||
|
• Block of Emerald: Square wave=• Bloque de Esmeralda: Onda cadrada
|
||||||
|
• Hay Bale: Banjo= Bale de pao: Banjo
|
||||||
|
• Glowstone: Electric piano=• Pedra Brillante: Piano eléctrico
|
||||||
|
The note block will only play a note when it is below air, otherwise, it stays silent.=O bloque de notas só reproducirá unha nota cando estea debaixo do aire, se non, permanece en silencio.
|
||||||
|
Plays a musical note when powered by redstone power=Reproduce unha nota musical cando está alimentado por enerxía Pedra vermella
|
|
@ -218,7 +218,7 @@ minetest.register_node("mesecons_pistons:piston_normal_off", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_up_normal_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_up_normal_off"})
|
||||||
|
@ -255,7 +255,7 @@ minetest.register_node("mesecons_pistons:piston_normal_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -326,7 +326,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_off", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_up_sticky_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_up_sticky_off"})
|
||||||
|
@ -363,7 +363,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -449,7 +449,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_off", {
|
||||||
footstep = mcl_sounds.node_sound_wood_defaults().footstep
|
footstep = mcl_sounds.node_sound_wood_defaults().footstep
|
||||||
}),
|
}),
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_down_normal_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_down_normal_off"})
|
||||||
|
@ -487,7 +487,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_off", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_down_sticky_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_down_sticky_off"})
|
||||||
|
@ -594,7 +594,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -680,7 +680,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_off", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_normal_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_normal_off"})
|
||||||
|
@ -718,7 +718,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -782,7 +782,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_off", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = function(pos, node, user, mode)
|
on_rotate = function(pos, node, user, mode)
|
||||||
if mode == screwdriver.ROTATE_AXIS then
|
if mode == screwdriver.ROTATE_AXIS then
|
||||||
minetest.set_node(pos, {name="mesecons_pistons:piston_sticky_off"})
|
minetest.set_node(pos, {name="mesecons_pistons:piston_sticky_off"})
|
||||||
|
@ -820,7 +820,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_on", {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 1.5,
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
# textdomain: mesecons_pistons
|
||||||
|
This block can have one of 6 possible orientations.=Este bloque pode ter unha das 6 orientacións posibles.
|
||||||
|
Piston=Pistón
|
||||||
|
A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however.=Un pistón é un compoñente de pedra vermella cun empurrador que empurra o bloque ou bloques diante del cando recibe enerxía de pedra vermella. Non obstante, non todos os bloques poden ser empuxados.
|
||||||
|
Sticky Piston=Pistón pegajoso
|
||||||
|
A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled.=Un pistón pegajoso é un compoñente de pedra vermella cun impulsor pegajoso que se pode estender e retraer. Esténdese cando recibe enerxía Pedra Vermella. Cando o empurrador se estende, empurra o bloque ou bloques diante del. Cando se retrae, tira cara atrás o único bloque diante del. Teña en conta que non todos os bloques poden ser empurrados ou tirados.
|
||||||
|
Pushes block when powered by redstone power=Empuxa o bloque cando está alimentado por enerxía pedra vermella
|
||||||
|
Pushes or pulls block when powered by redstone power=Empuxa ou tira do bloque cando está alimentado por enerxía pedra vermella
|
|
@ -0,0 +1,21 @@
|
||||||
|
# textdomain: mesecons_pressureplates
|
||||||
|
A pressure plate is a redstone component which supplies its surrounding blocks with redstone power while someone or something rests on top of it.=Unha placa de presión é un compoñente de pedra vermella que proporciona aos seus bloques circundantes poder de pedra vermella mentres alguén ou algo descansa sobre el.
|
||||||
|
Oak Pressure Plate=Placa de presión de carballo
|
||||||
|
Acacia Pressure Plate=Placa de presión de acacia
|
||||||
|
Birch Pressure Plate=Placa de presión de bidueiro
|
||||||
|
Dark Oak Pressure Plate=Placa de presión de carballo escuro
|
||||||
|
Spruce Pressure Plate=Placa de presión de abeto
|
||||||
|
Jungle Pressure Plate=Placa de presión de xungla
|
||||||
|
Mangrove Pressure Plate=Placa de presión de mangle
|
||||||
|
Crimson Pressure Plate=Placa de presión carmesí
|
||||||
|
Warped Pressure Plate=Placa de presión deformada
|
||||||
|
A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Unha placa de presión de madeira é un compoñente de pedra vermella que proporciona aos seus bloques circundantes poder de pedra vermella mentres calquera obxecto móbil (incluídos os elementos caídos, os xogadores e as turbas) descansa sobre el.
|
||||||
|
Polished Blackstone Pressure Plate=Placa de presión de Pedra negra pulida
|
||||||
|
A polished blackstone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Unha placa de presión de pedra negra pulida é un compoñente de pedra vermella que proporciona aos seus bloques circundantes poder de pedra vermella mentres un xogador ou inimigo está enriba dela. Non é desencadeado por outra cousa.
|
||||||
|
Stone Pressure Plate=Placa de presión de pedra
|
||||||
|
A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Unha placa de presión de pedra é un compoñente de pedra vermella que proporciona aos seus bloques circundantes poder de pedra vermella mentres un xogador ou inimigo está enriba dela. Non é desencadeado por outra cousa.
|
||||||
|
Provides redstone power when pushed=Proporciona enerxía Pedra Vermella cando se empurra
|
||||||
|
Pushable by players, mobs and objects=Empuxable por xogadores, mobs e obxectos
|
||||||
|
Pushable by players and mobs=Empuxable por xogadores e mobs
|
||||||
|
Pushable by players=Empuxable polos xogadores
|
||||||
|
Pushable by mobs=Pushable por mobs
|
|
@ -0,0 +1,8 @@
|
||||||
|
# textdomain: mesecons_solarpanel
|
||||||
|
Daylight Sensor=Sensor de luz diurna
|
||||||
|
Daylight sensors are redstone components which provide redstone power when they are in sunlight and no power otherwise. They can also be inverted.=Os sensores de luz diurna son compoñentes Pedra Vermella que proporcionan enerxía Pedra Vermella cando están baixo a luz solar e non hai enerxía doutro xeito. Tamén se poden invertir.
|
||||||
|
Inverted Daylight Sensor=Sensor de luz diurna invertida
|
||||||
|
Use the daylight sensor to toggle its state.=Use o sensor de luz diurna para cambiar o seu estado.
|
||||||
|
In inverted state, they provide redstone power when they are not in sunlight and no power otherwise.=En estado invertido, proporcionan enerxía de Pedra Vermella cando non están á luz do sol e non hai enerxía doutro xeito.
|
||||||
|
Provides redstone power when in sunlight=Proporciona enerxía vermella cando está á luz solar
|
||||||
|
Can be inverted=Pódese invertir
|
|
@ -0,0 +1,9 @@
|
||||||
|
# textdomain: mesecons_torch
|
||||||
|
Redstone Torch=Facho Pedra Vermella
|
||||||
|
Redstone Torch (off)=Facho Pedra Vermella (Apagada)
|
||||||
|
Redstone Torch (overheated)=Facho Pedra Vermella (sobrequentado)
|
||||||
|
A redstone torch is a redstone component which can be used to invert a redstone signal. It supplies its surrounding blocks with redstone power, except for the block it is attached to. A redstone torch is normally lit, but it can also be turned off by powering the block it is attached to. While unlit, a redstone torch does not power anything.=Un facho de pedra vermella é un compoñente de pedra vermella que se pode usar para inverter un sinal de pedra vermella. Fornece os seus bloques circundantes con enerxía de pedra vermella, agás o bloque ao que está unido. Normalmente acendese un facho de pedra vermella, pero tamén se pode apagar alimentando o bloque ao que está conectado. Mentres non se acende, un facho de pedra vermella non alimenta nada.
|
||||||
|
Redstone torches can be placed at the side and on the top of full solid opaque blocks.=Os fachos Pedra Vermella pódense colocar ao lado e na parte superior dos bloques opacos sólidos completos.
|
||||||
|
Block of Redstone=Bloque de Pedra Vermella
|
||||||
|
A block of redstone permanently supplies redstone power to its surrounding blocks.=Un bloque de pedra Vermella fornece permanentemente enerxía de pedra Vermella aos seus bloques circundantes.
|
||||||
|
Provides redstone power=Proporciona enerxía Pedra Vermella
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mesecons_walllever
|
||||||
|
Lever=Panca
|
||||||
|
A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state.=Unha panca é un compoñente de pedra vermella que se pode activar e desactivar. Proporciona enerxía Redstone aos bloques adxacentes mentres está no estado "activado".
|
||||||
|
Use the lever to flip it on or off.=Use a panca para acendelo ou apagalo.
|
||||||
|
Provides redstone power while it's turned on=Proporciona enerxía Redstone mentres está acendido
|
|
@ -0,0 +1,11 @@
|
||||||
|
# textdomain: mesecons_wires
|
||||||
|
Redstone is a versatile conductive mineral which transmits redstone power. It can be placed on the ground as a trail.=Pedra Vermella é un mineral condutor versátil que transmite a enerxía de Pedra Vermella. Pódese colocar no chan a modo de rastro.
|
||||||
|
A redstone trail can be in two states: Powered or not powered. A powered redstone trail will power (and thus activate) adjacent redstone components.=Unha ruta Redstone pode estar en dous estados: alimentado ou sen alimentación. Un rastro de Pedra Vermella alimentado alimentará (e así activará) os compoñentes adxacentes de Pedra Vermella.
|
||||||
|
Redstone power can be received from various redstone components, such as a block of redstone or a button. Redstone power is used to activate numerous mechanisms, such as redstone lamps or pistons.=A enerxía de Pedra Vermella pódese recibir de varios compoñentes de Pedra Vermella, como un bloque de Pedra Vermella ou un botón. A enerxía Pedra Vermella úsase para activar numerosos mecanismos, como lámpadas ou pistóns Pedra Vermella.
|
||||||
|
Place redstone on the ground to build a redstone trail. The trails will connect to each other automatically and it can also go over hills.=Coloca Pedra Vermella no chan para construír unha pista de Pedra Vermella. Os camiños conectaranse entre si automaticamente e tamén poden pasar por outeiros.
|
||||||
|
Read the help entries on the other redstone components to learn how redstone components interact.=Le as entradas de axuda sobre os outros compoñentes de Pedra Vermella para saber como interactúan os compoñentes de Pedra Vermella.
|
||||||
|
Redstone=Pedra Vermella
|
||||||
|
Powered Redstone Spot (@1)=Punto de Pedra Vermella accionado (@1)
|
||||||
|
Redstone Trail (@1)=Sendeiro de Pedra Vermella (@1)
|
||||||
|
Powered Redstone Trail (@1)=Sendeiro de Pedra Vermella con alimentación (@1)
|
||||||
|
Transmits redstone power, powers mechanisms=Transmite enerxía Pedra Vermella, potencia mecanismos
|
|
@ -0,0 +1,19 @@
|
||||||
|
# textdomain: mcl_amethyst
|
||||||
|
Amethyst Cluster=Aglomerado de Ametista
|
||||||
|
Amethyst Cluster is the final growth of amethyst bud.=O aglomerado de ametista é o final do crecemento do gromo de ametista.
|
||||||
|
Amethyst Shard=Fragmento de Ametista
|
||||||
|
An amethyst shard is a crystalline mineral.=Um fragmento de ametista é un mineral cristalino.
|
||||||
|
Block of Amethyst=Bloque de Ametista
|
||||||
|
Budding Amethyst=Ametista Gromando
|
||||||
|
Calcite=Calcita
|
||||||
|
Calcite can be found as part of amethyst geodes.=Calcita pode ser atopada como parte das xeodas de ametista.
|
||||||
|
Large Amethyst Bud=Gromo de Ametista Grande
|
||||||
|
Large Amethyst Bud is the third growth of amethyst bud.=Gromo de Ametista Grande é a terceira etapa de crecemento do gromo de ametista.
|
||||||
|
Medium Amethyst Bud=Gromo de Ametista Médio
|
||||||
|
Medium Amethyst Bud is the second growth of amethyst bud.=Gromo de Ametista Médio é a segunda etapa de crecemento do gromo de ametista.
|
||||||
|
Small Amethyst Bud=Gromo de Ametista Pequeno
|
||||||
|
Small Amethyst Bud is the first growth of amethyst bud.=Gromo de Ametista Pequeno é a primeira etapa de crecemento do gromo de ametista.
|
||||||
|
The Block of Amethyst is a decoration block crafted from amethyst shards.=O bloque de ametista é un bloque decorativo feito a partir de fragmentos de ametista.
|
||||||
|
The Budding Amethyst can grow amethyst=A ametista brotando pode cultivar ametista.
|
||||||
|
Tinted Glass=Vidro Tingido
|
||||||
|
Tinted Glass is a type of glass which blocks lights while it is visually transparent.=O vidro tingido é un tipo de vidro que bloquea luces mentre é visualmente transparente.
|
|
@ -0,0 +1,16 @@
|
||||||
|
# textdomain: mcl_anvils
|
||||||
|
Set Name=Escolle un Nome
|
||||||
|
Repair and Name=Reparar e Nomear
|
||||||
|
Inventory=Inventario
|
||||||
|
Anvil=Zafra
|
||||||
|
The anvil allows you to repair tools and armor, and to give names to items. It has a limited durability, however. Don't let it fall on your head, it could be quite painful!=A zafra permiteche reparar ferramentas e armaduras, e dar nomes aos elementos. Sen embargo, ten unha durabilidade limitada. Non a deixes caer sobre a tua cabeza, ¡podería ser bastante doloroso!
|
||||||
|
To use an anvil, rightclick it. An anvil has 2 input slots (on the left) and one output slot.=Para usar unha zafra, faga clic dereito sobre ela. Unha zafra ten 2 rañuras de entrada (a esquerda) e unha rañura de saida.
|
||||||
|
To rename items, put an item stack in one of the item slots while keeping the other input slot empty. Type in a name, hit enter or “Set Name”, then take the renamed item from the output slot.=Para trocar o nome dos elementos, coloque unha pila de elementos nunha das rañuras de elementos mentras mantés Baleira a outra rañura de entrada. Escriba un nombre, presione enter o "Establecer nombre", luego obtenga el elemento renombrado en la ranura de salida.
|
||||||
|
There are two possibilities to repair tools (and armor):=Hai duas posibilidades para reparar ferramentas (e armaduras):
|
||||||
|
• Tool + Tool: Place two tools of the same type in the input slots. The “health” of the repaired tool is the sum of the “health” of both input tools, plus a 12% bonus.=• Ferramenta + Ferramenta: Coloque duas ferramentas do mesmo tipo nas rañuras de entrada. A "saude" da ferramenta reparada e a suma da "saude" de ambas ferramentas, cun bono do 12%.
|
||||||
|
• Tool + Material: Some tools can also be repaired by combining them with an item that it's made of. For example, iron pickaxes can be repaired with iron ingots. This repairs the tool by 25%.=• Ferramienta + Material: Algunhas ferramentas tamén poden repararse combinándoas cun elemento do que está feita. Por exemplo, os picos de ferro poden repararse con lingotes de ferro. Isto repara a ferramenta nun 25%.
|
||||||
|
Armor counts as a tool. It is possible to repair and rename a tool in a single step.=A armadura conta como unha ferramenta. E posible reparar e trocar o nome dunha ferramenta nun só paso.
|
||||||
|
The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.=A zafra ten unha durabilidade limitada e 3 niveis de dano: sen danos, lixeiramente danada e moi danado. Cada vez que reparas ou trocas o nome de algo, hai un 12% de posibilidades de ca zafra se dane. As zafras tamén teñen a posibilidade de danarse cando caen en máis de 1 bloque. Se unha zafra moi danado se dana novamente, se destrue.
|
||||||
|
Slightly Damaged Anvil=Zafra lixeiramente danada
|
||||||
|
Very Damaged Anvil=Zafra moi danada
|
||||||
|
Repair and rename items=Reparar e renomear obxetos
|
|
@ -0,0 +1,51 @@
|
||||||
|
# textdomain: mcl_armor
|
||||||
|
This is a piece of equippable armor which reduces the amount of damage you receive.=Esta é unha peza de armadura que se pode equipar, a cal reduce o dano que recibes.
|
||||||
|
To equip it, put it on the corresponding armor slot in your inventory menu.=Para equipala, colocaa na rañura da armadura do menú do teu inventario.
|
||||||
|
Leather Cap=Sombreiro de Coiro
|
||||||
|
Iron Helmet=Casco de Ferro
|
||||||
|
Golden Helmet=Casco de Ouro
|
||||||
|
Diamond Helmet=Casco de Diamante
|
||||||
|
Chain Helmet=casco de Cadeas
|
||||||
|
Netherite Helmet=Casco de Netherita
|
||||||
|
Leather Tunic=Túnica de Coiro
|
||||||
|
Iron Chestplate=Cota de Ferro
|
||||||
|
Golden Chestplate=Cota de Ouro
|
||||||
|
Diamond Chestplate=Cota de Diamante
|
||||||
|
Chain Chestplate=Cota de Cadeas
|
||||||
|
Netherite Chestplate=Cota de Netherita
|
||||||
|
Leather Pants=Pantalons de Coiro
|
||||||
|
Iron Leggings=Mallas de Ferro
|
||||||
|
Golden Leggings=Mallas de Ouro
|
||||||
|
Diamond Leggings=Mallas de Diamante
|
||||||
|
Chain Leggings=Mallas de Cadeas
|
||||||
|
Netherite Leggings=Mallas de Netherita
|
||||||
|
Leather Boots=Botas de Coiro
|
||||||
|
Iron Boots=Botas de Ferro
|
||||||
|
Golden Boots=Botas de Ouro
|
||||||
|
Diamond Boots=Botas de diamante
|
||||||
|
Chain Boots=Botas de Cadeas
|
||||||
|
Netherite Boots=Botas de Netherita
|
||||||
|
Elytra=Élitros
|
||||||
|
|
||||||
|
#Translations of enchantements
|
||||||
|
Increases underwater mining speed.=Aumenta a velocidade de minado baixo a agua.
|
||||||
|
Blast Protection=Protección contra explosions
|
||||||
|
Reduces explosion damage and knockback.=Reduce o dano de explosions e o seu empuxe.
|
||||||
|
Curse of Binding=Maldición de ligazón
|
||||||
|
Item cannot be removed from armor slots except due to death, breaking or in Creative Mode.=O obxeto non pode ser removido das rañuras do inventario excepto ao morrer, ao romperse, ou en Modo Creativo.
|
||||||
|
Feather Falling=Caída de plumaxe
|
||||||
|
Reduces fall damage.=Reduce o daño por caída.
|
||||||
|
Fire Protection=Protección contra o lume
|
||||||
|
Reduces fire damage.=Reduce o dano causado polo lume.
|
||||||
|
Shooting consumes no regular arrows.=Disparar non consume frechas normais.
|
||||||
|
Shoot 3 arrows at the cost of one.=Dispara 3 frechas polo custo dunha.
|
||||||
|
Projectile Protection=Protección contra proxectís
|
||||||
|
Reduces projectile damage.=Reduce o dano do proxectís.
|
||||||
|
Protection=Protección
|
||||||
|
Reduces most types of damage by 4% for each level.=Reduce a maioría de tipos de dano por 4% por cada nivel.
|
||||||
|
Thorns=Espiñas
|
||||||
|
Reflects some of the damage taken when hit, at the cost of reducing durability with each proc.=Reflexa unha parte do dano inflixido, a costa de reducir a durabilidade con cada activación.
|
||||||
|
Aqua Affinity=Afinidade acuática
|
||||||
|
|
||||||
|
#Translations for armor trims
|
||||||
|
Smithing Template '@1'=Modelo de forxería '@1'
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_armor_stand
|
||||||
|
Armor Stand=Soporte para armadura
|
||||||
|
An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.=Un soporte para armadura e un obxeto decorativo que pode amosar diferentes pezas de armadura. Calquer cousa cos xogadores poidan usar como armadura tamén se pode poñer nun soporte para armadura.
|
||||||
|
Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.=Soamente coloca un obxeto de armadura no soporte para armadura. Para tomar a peza superior de armadura do soporte para armadura, escolla a sua man e use a tecla de posición no soporte para armadura.
|
||||||
|
Displays pieces of armor=Amosa pezas de armadura
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_armor_stand
|
||||||
|
Armor Stand=Soporte para armadura
|
||||||
|
An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.=Un soporte para armadura e un obxeto decorativo que pode amosar diferentes pezas de armadura. Calquer cousa cos xogadores poidan usar como armadura tamén se pode poñer nun soporte para armadura.
|
||||||
|
Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.=Soamente coloca un obxeto de armadura no soporte para armadura. Para tomar a peza superior de armadura do soporte para armadura, escolla a sua man e use a tecla de posición no soporte para armadura.
|
||||||
|
Displays pieces of armor=Amosa pezas de armadura
|
|
@ -62,7 +62,7 @@ local bamboo_def = {
|
||||||
inventory_image = "mcl_bamboo_bamboo_shoot.png",
|
inventory_image = "mcl_bamboo_bamboo_shoot.png",
|
||||||
wield_image = "mcl_bamboo_bamboo_shoot.png",
|
wield_image = "mcl_bamboo_bamboo_shoot.png",
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 1,
|
||||||
_mcl_hardness = 1.5,
|
_mcl_hardness = 1,
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
@ -277,7 +277,7 @@ local bamboo_block_def = {
|
||||||
sounds = node_sound,
|
sounds = node_sound,
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
drops = "mcl_bamboo:bamboo_block",
|
drops = "mcl_bamboo:bamboo_block",
|
||||||
_mcl_blast_resistance = 3,
|
_mcl_blast_resistance = 2,
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 2,
|
||||||
_mcl_stripped_variant = "mcl_bamboo:bamboo_block_stripped", -- this allows us to use the built in Axe's strip block.
|
_mcl_stripped_variant = "mcl_bamboo:bamboo_block_stripped", -- this allows us to use the built in Axe's strip block.
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
|
|
|
@ -208,7 +208,7 @@ if minetest.get_modpath("mcl_fences") then
|
||||||
wood_groups,
|
wood_groups,
|
||||||
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
|
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
|
||||||
minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance,
|
minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance,
|
||||||
node_sound) -- note: about missing params.. will use defaults.
|
node_sound)
|
||||||
|
|
||||||
mcl_bamboo.mcl_log(dump(fence_id))
|
mcl_bamboo.mcl_log(dump(fence_id))
|
||||||
mcl_bamboo.mcl_log(dump(gate_id))
|
mcl_bamboo.mcl_log(dump(gate_id))
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
# textdomain: mcl_bamboo
|
||||||
|
|
||||||
|
### bamboo_base.lua ###
|
||||||
|
|
||||||
|
Bamboo=Bambú
|
||||||
|
Bamboo Mosaic Plank=Madeira de bambú de mosaico
|
||||||
|
Bamboo Plank=Madeira de bambú
|
||||||
|
Stripped Bamboo Block=Bloque de bambú sen cortiza
|
||||||
|
Bamboo Block=Bloque de Bambú
|
||||||
|
|
||||||
|
### bamboo_items.lua ###
|
||||||
|
|
||||||
|
A bamboo button is a redstone component made out of bamboo which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un botón de bambú e un compoñente de pedra vermella feito de pedra o cal se pode presionar para proporcionar enerxía de pedra vermella. Cando se empuxa, alimenta os compoñentes adxacentes de pedra vermella durante 1 segundo.
|
||||||
|
|
||||||
|
A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Unha placa de presión de madeira e un compoñente de pedra vermella que proporciona enerxía de pedra vermella aos seus bloques adxacentes mentres calquer obxeto movible (incluindo obxetos no chan, xogadores e mobs) descanse derriba sua.
|
||||||
|
|
||||||
|
Bamboo=Bambú
|
||||||
|
Bamboo Button=Botón de bambú
|
||||||
|
Bamboo Door.=Porta de bambú
|
||||||
|
Bamboo Fence=Cerca de bambú
|
||||||
|
Bamboo Fence Gate=Porta de cerca de bambú
|
||||||
|
Bamboo Mosaic Slab=Lousa de mosaico de bambú
|
||||||
|
Bamboo Mosaic Stair=Escaleiras de mosaico de bambú
|
||||||
|
Bamboo Plank Slab=Lousa de madeira de bambú
|
||||||
|
Bamboo Plank Stair=Escaleira de madeira de bambú
|
||||||
|
Bamboo Pressure Plate=Placa de presión de bambú
|
||||||
|
Bamboo Sign=Sinal de bambú
|
||||||
|
Bamboo Slab=Lousa de bambú
|
||||||
|
Bamboo Stair=Escaleira de bambú
|
||||||
|
Bamboo Trapdoor.=Trapela de bambú
|
||||||
|
Double Bamboo Mosaic Slab=Lousa dobre de mosaico de bambú
|
||||||
|
Double Bamboo Plank Slab=Lousa dobre de madeira de bambú
|
||||||
|
Double Bamboo Slab=Lousa dobre de bambú
|
||||||
|
Double Stripped Bamboo Slab=Lousa dobre de bambú sen cortiza
|
||||||
|
Scaffolding=Estada
|
||||||
|
Scaffolding (horizontal)=Estada (horizontal)
|
||||||
|
Scaffolding block used to climb up or out across areas.=O bloque de estada serve para subir ou baixar entre zonas.
|
||||||
|
Stripped Bamboo Slab=Lousa de bambú sen cortiza
|
||||||
|
Stripped Bamboo Stair=Escaleira de bambú sen cortiza
|
||||||
|
|
||||||
|
To open or close the trapdoor, rightclick it or send a redstone signal to it.=Para abrir ou pechar unha trapela, fai clic dereito ou manda un sinal de pedra vermella cara ela.
|
||||||
|
|
||||||
|
Wooden trapdoors are horizontal barriers which can be opened and closed by hand or a redstone signal. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=As trapelas de madeira son barreiras horizontais que podense abrir e pechar ca man ou por un sinal de pedra vermella.
|
||||||
|
|
||||||
|
Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=As portas de madeira son barreiras altas de 2 bloques que se poden abrir ou pechar a man e mediante un sinal de pedra vermella.
|
||||||
|
To open or close a wooden door, rightclick it or supply its lower half with a redstone signal.=Para abrir ou pechar unha porta de madeira, fai clic co botón dereito nela ou proporciona á súa metade inferior un sinal de pedra vermella.
|
|
@ -0,0 +1,79 @@
|
||||||
|
# textdomain: mcl_banners
|
||||||
|
White Banner=Estandarte branco
|
||||||
|
White=Branco
|
||||||
|
Grey Banner=Estandarte gris
|
||||||
|
Grey=Gris
|
||||||
|
Light Grey Banner=Estandarte gris claro
|
||||||
|
Light Grey=Gris claro
|
||||||
|
Black Banner=Estandarte negro
|
||||||
|
Black=Negro
|
||||||
|
Red Banner=Estandarte vermello
|
||||||
|
Red=Rojo
|
||||||
|
Yellow Banner=Estandarte amarelo
|
||||||
|
Yellow=Amarelo
|
||||||
|
Green Banner=Estandarte verde
|
||||||
|
Green=Verde
|
||||||
|
Cyan Banner=Estandarte cian
|
||||||
|
Cyan=Cian
|
||||||
|
Blue Banner=Estandarte azul
|
||||||
|
Blue=Azul
|
||||||
|
Magenta Banner=Estandarte maxenta
|
||||||
|
Magenta=Maxenta
|
||||||
|
Orange Banner=Estandarte laranxa
|
||||||
|
Orange=Laranxa
|
||||||
|
Purple Banner=Estandarte morado
|
||||||
|
Purple=Morado
|
||||||
|
Brown Banner=Estandarte marrón
|
||||||
|
Brown=Marrón
|
||||||
|
Pink Banner=Estandarte rosa
|
||||||
|
Pink=Rosa
|
||||||
|
Lime Banner=Estandarte verde lima
|
||||||
|
Lime=Verde lima
|
||||||
|
Light Blue Banner=Estandarte azul claro
|
||||||
|
Light Blue=Azul claro
|
||||||
|
Banner=Estandarte
|
||||||
|
Banners are tall colorful decorative blocks. They can be placed on the floor and at walls. Banners can be emblazoned with a variety of patterns using a lot of dye in crafting.=Los estandartes son bloques decorativos altos y coloridos. Se pueden colocar en el suelo y en las paredes. Los estandartes se pueden estampar con una variedad de patrones usando mucho tinte en la elaboración.
|
||||||
|
Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 12 layers on a banner that way. If the banner includes a gradient, only 3 layers are possible.=Usa la elaboración para dibujar un patrón en la parte superior del estandarte. Los estandartes estampados pueden volver a estamparse para combinar varios patrones. Puede dibujar hasta 12 capas en un estandarte de esa manera. Si la pancarta incluye un degradado, solo son posibles 3 capas.
|
||||||
|
You can copy the pattern of a banner by placing two banners of the same color in the crafting grid—one needs to be emblazoned, the other one must be clean. Finally, you can use a banner on a cauldron with water to wash off its top-most layer.=Puede copiar el patrón de un estandarte colocando dos estandartes del mismo color en la cuadrícula de fabricación: una debe ser estampada, la otra debe estar limpia. Finalmente, puede usar un estandarte en un caldero con agua para lavar su capa superior.
|
||||||
|
@1 Bordure=Bordo (@1)
|
||||||
|
@1 Bricks=Bloque (@1)
|
||||||
|
@1 Roundel=Medallón (@1)
|
||||||
|
@1 Creeper Charge=Carga de enredadeira (@1)
|
||||||
|
@1 Saltire=Aspa (@1)
|
||||||
|
@1 Bordure Indented=Bordura dentada (@1)
|
||||||
|
@1 Per Bend Inverted=Por banda invertida (@1)
|
||||||
|
@1 Per Bend Sinister Inverted=Por banda sinistra invertida (@1)
|
||||||
|
@1 Per Bend=Por Banda (@1)
|
||||||
|
@1 Per Bend Sinister=Por banda sinistra (@1)
|
||||||
|
@1 Flower Charge=Carga de flor (@1)
|
||||||
|
@1 Gradient=Degradado (@1)
|
||||||
|
@1 Base Gradient=Degradado de base (@1)
|
||||||
|
@1 Per Fess Inverted=Por faixa invertida (@1)
|
||||||
|
@1 Per Fess=Por faixa (@1)
|
||||||
|
@1 Per Pale=Palidez (@1)
|
||||||
|
@1 Per Pale Inverted=Palidez invertida (@1)
|
||||||
|
@1 Thing Charge=Carga de obxeto (@1)
|
||||||
|
@1 Lozenge=Rombo (@1)
|
||||||
|
@1 Skull Charge=Carga de caveira (@1)
|
||||||
|
@1 Paly=Póster (@1)
|
||||||
|
@1 Base Dexter Canton=Base inferior destra (@1)
|
||||||
|
@1 Base Sinister Canton=Base inferior sinistra (@1)
|
||||||
|
@1 Chief Dexter Canton=Encabezado superior destro (@1)
|
||||||
|
@1 Chief Sinister Canton=Encabezamento superior sinistro (@1)
|
||||||
|
@1 Cross=Cruzamento (@1)
|
||||||
|
@1 Base=Base (@1)
|
||||||
|
@1 Pale=Palidez (@1)
|
||||||
|
@1 Bend Sinister=Banda sinistra (@1)
|
||||||
|
@1 Bend=Banda (@1)
|
||||||
|
@1 Pale Dexter=Palidez destra (@1)
|
||||||
|
@1 Fess=Faixa (@1)
|
||||||
|
@1 Pale Sinister=Palidez sinistra (@1)
|
||||||
|
@1 Chief=Encabezamento (@1)
|
||||||
|
@1 Chevron=Viga (@1)
|
||||||
|
@1 Chevron Inverted=Viga invertida (@1)
|
||||||
|
@1 Base Indented=Base Dentada (@1)
|
||||||
|
@1 Chief Indented=Dentado do encabezamento (@1)
|
||||||
|
And one additional layer=E unha capa adicional
|
||||||
|
And @1 additional layers=E @1 capas adicionais
|
||||||
|
Paintable decoration=Decoración pintable
|
||||||
|
Preview Banner=Vista previa do Estandarte
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_barrels
|
||||||
|
Barrel=Barril
|
||||||
|
Barrels are containers which provide 27 inventory slots.=Os barrís son contedores que proveen 27 rañuras de inventario.
|
||||||
|
To access its inventory, rightclick it. When broken, the items will drop out.=Para acceder o teu inventario, fai clic dereito sobre el. Ao romperse, os obxetos caerán ao chan.
|
||||||
|
27 inventory slots=27 rañuras de inventario
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_beacons
|
||||||
|
Beacon=Sinalizador
|
||||||
|
Beacon:=Sinalizador:
|
||||||
|
Primary Power:=Poder Primario:
|
||||||
|
Inventory:=Inventario:
|
|
@ -210,7 +210,7 @@ function mcl_beds.register_bed(name, def)
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
groups = {handy=1, bed = 1, dig_by_piston=1, bouncy=66, fall_damage_add_percent=-50, deco_block = 1, flammable=-1},
|
groups = {handy=1, bed = 1, dig_by_piston=1, bouncy=66, fall_damage_add_percent=-50, deco_block = 1, flammable=-1},
|
||||||
_mcl_hardness = 0.2,
|
_mcl_hardness = 0.2,
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.2,
|
||||||
sounds = def.sounds or default_sounds,
|
sounds = def.sounds or default_sounds,
|
||||||
selection_box = common_box,
|
selection_box = common_box,
|
||||||
collision_box = common_box,
|
collision_box = common_box,
|
||||||
|
@ -286,10 +286,9 @@ function mcl_beds.register_bed(name, def)
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
-- FIXME: Should be bouncy=66, but this would be a higher bounciness than slime blocks!
|
groups = {handy = 1, flammable = -1, bed = 2, dig_by_piston=1, bouncy=66, fall_damage_add_percent=-50, not_in_creative_inventory = 1},
|
||||||
groups = {handy = 1, flammable = -1, bed = 2, dig_by_piston=1, bouncy=33, fall_damage_add_percent=-50, not_in_creative_inventory = 1},
|
|
||||||
_mcl_hardness = 0.2,
|
_mcl_hardness = 0.2,
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.2,
|
||||||
sounds = def.sounds or default_sounds,
|
sounds = def.sounds or default_sounds,
|
||||||
drop = "",
|
drop = "",
|
||||||
selection_box = common_box,
|
selection_box = common_box,
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
# textdomain: mcl_beds
|
||||||
|
Beds allow you to sleep at night and make the time pass faster.=As camas te permiten durmir pola noite e facer co tempo pase máis axiña.
|
||||||
|
To use a bed, stand close to it and right-click the bed to sleep in it. Sleeping only works when the sun sets, at night or during a thunderstorm. The bed must also be clear of any danger.=Para usar unha cama, párate preto dela e fai clic dereito na cama para durmir nela. Durmir só funciona cando se agocha o sol pola noite ou durante unha tormenta eléctrica. A cama tamén ten que estar libre de calquer perigo.
|
||||||
|
You have heard of other worlds in which a bed would set the start point for your next life. But this world is not one of them.=Oiches falar doutros mundos nos que unha cama establecería o punto de partida para a tua vindeira vida. Pero este mundo non e un deles.
|
||||||
|
By using a bed, you set the starting point for your next life. If you die, you will start your next life at this bed, unless it is obstructed or destroyed.=Ao usar unha cama, esta establecese como o punto de partida para a tua vindeira vida. Se morres, comenzarás a tua vindeira vida nesa cama, a menos que esté obstruida ou destruida.
|
||||||
|
In this world, going to bed won't skip the night, but it will skip thunderstorms.=En este mundo, ir a la cama no se saltará la noche, pero se saltará las tormentas eléctricas.
|
||||||
|
Sleeping allows you to skip the night. The night is skipped when all players in this world went to sleep. The night is skipped after sleeping for a few seconds. Thunderstorms can be skipped in the same manner.=Durmir permite saltarte a noite. Omitese a noite cando todos os xogadores neste mundo foron a durmir. A noite saltase despois de durmir durante uns segundos. As tormentas eléctricas podense omitir da mesma maneira.
|
||||||
|
Bed=Cama
|
||||||
|
Red Bed=Cama vermella
|
||||||
|
Blue Bed=Cama azul
|
||||||
|
Cyan Bed=Cama cian
|
||||||
|
Grey Bed=Cama gris
|
||||||
|
Light Grey Bed=Cama gris ocuro
|
||||||
|
Black Bed=Cama negra
|
||||||
|
Yellow Bed=Cama amarela
|
||||||
|
Green Bed=Cama verde
|
||||||
|
Magenta Bed=Cama maxenta
|
||||||
|
Orange Bed=Cama laranxa
|
||||||
|
Purple Bed=Cama morada
|
||||||
|
Brown Bed=Cama marrón
|
||||||
|
Pink Bed=Cama rosa
|
||||||
|
Lime Bed=Cama verde lima
|
||||||
|
Light Blue Bed=Cama azul claro
|
||||||
|
White Bed=Cama branca
|
||||||
|
You can't sleep, the bed's too far away!=¡Non podes durmir, a cama está moi lonxe!
|
||||||
|
This bed is already occupied!=¡A cama xa está ocupada!
|
||||||
|
You have to stop moving before going to bed!=¡Tes que deixar de moverte antes de deitarte!
|
||||||
|
You can't sleep now, monsters are nearby!=No podes durmir agora, ¡hai monstros preto!
|
||||||
|
You can't sleep, the bed is obstructed!=¡Non podes durmir, a cama está obstruida!
|
||||||
|
It's too dangerous to sleep here!=¡E moi perigoso durmir aquí!
|
||||||
|
New respawn position set! But you can only sleep at night or during a thunderstorm.=¡Nova posición de reaparición establecida! Pero só podes durmir pola noite ou durante tormentas eléctricas.
|
||||||
|
You can only sleep at night or during a thunderstorm.=Só podes durmir pola noite ou durante tormentas eléctricas.
|
||||||
|
New respawn position set!=¡Nova posición de reaparición establecida!
|
||||||
|
Leave bed=Sair da cama
|
||||||
|
Abort sleep=Erguerse
|
||||||
|
Players in bed: @1/@2=Jugadores en la cama: @1/@2
|
||||||
|
Note: Night skip is disabled.=Nota: O salto nocturno está deshabilitado.
|
||||||
|
You're sleeping.=Estás durmindo.
|
||||||
|
You will fall asleep when all players are in bed.=Te quedarás durmido cando todos os xogadores estén na cama.
|
||||||
|
You will fall asleep when @1% of all players are in bed.=Quedarás durmido cando o @1% de todos os xogadores estean na cama.
|
||||||
|
You're in bed.=Estas na cama.
|
||||||
|
Allows you to sleep=Permíteche durmir
|
||||||
|
Respawn Anchor=Áncora de reaparición
|
||||||
|
Chat:=Chat:
|
||||||
|
send!=¡enviar!
|
||||||
|
You are missing the 'shout' privilege! It's required in order to talk in chat...=¡Estás perdendo o privilexio de "berrar"! É necesario para falar no chat...
|
||||||
|
You exceeded the maximum number of messages per 10 seconds!=¡Superou o número máximo de mensaxes por 10 segundos!
|
||||||
|
Hey! Would you guys mind sleeping?=¡Ei! ¿Importaríavos durmir?
|
||||||
|
Sorry, but you have to wait @1 seconds until you may use this button again!=¡Sentímolo, pero tes que esperar @1 segundo ata que poidas usar este botón de novo!
|
||||||
|
@1/@2 players currently in bed.=@1/@2 xogadores actualmente na cama.
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_beehives
|
||||||
|
Beehive=Colmea
|
||||||
|
Artificial bee nest.=Niño de abella artificial.
|
||||||
|
Bee Nest=Niño de abellas
|
||||||
|
A naturally generating block that houses bees and a tasty treat...if you can get it.=Un bloque xerador natural que alberga abellas e unha delicia... se podes conseguilo.
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain: mcl_bells
|
||||||
|
Bell=Campá
|
|
@ -33,8 +33,8 @@ minetest.register_node("mcl_blackstone:blackstone_gilded", {
|
||||||
{items = {"mcl_blackstone:blackstone_gilded"}, rarity = 1},
|
{items = {"mcl_blackstone:blackstone_gilded"}, rarity = 1},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_mcl_blast_resistance = 2,
|
_mcl_blast_resistance = 6,
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 1.5,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
_mcl_fortune_drop = {
|
_mcl_fortune_drop = {
|
||||||
discrete_uniform_distribution = true,
|
discrete_uniform_distribution = true,
|
||||||
|
@ -226,18 +226,7 @@ mcl_stairs.register_stair_and_slab("blackstone_brick_polished", "mcl_blackstone:
|
||||||
S("Double Polished Blackstone Brick Slab"), nil)
|
S("Double Polished Blackstone Brick Slab"), nil)
|
||||||
|
|
||||||
--Wall
|
--Wall
|
||||||
mcl_walls.register_wall(
|
mcl_walls.register_wall("mcl_blackstone:wall", S("Blackstone Wall"), "mcl_blackstone:blackstone")
|
||||||
"mcl_blackstone:wall",
|
|
||||||
S("Blackstone Wall"),
|
|
||||||
"mcl_blackstone:blackstone",
|
|
||||||
{
|
|
||||||
"mcl_blackstone_top.png",
|
|
||||||
"mcl_blackstone_top.png",
|
|
||||||
"mcl_blackstone_side.png"
|
|
||||||
},
|
|
||||||
"",
|
|
||||||
{ cracky=3, pickaxey=1, material_stone=1 }
|
|
||||||
)
|
|
||||||
|
|
||||||
--lavacooling
|
--lavacooling
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
# textdomain: mcl_blackstone
|
||||||
|
Blackstone=Pedra negra
|
||||||
|
Polished Blackstone=Pedra negra Pulida
|
||||||
|
Chiseled Polished Blackstone=Pedra negra Pulida cincelada
|
||||||
|
Polished Blackstone Bricks=Ladrillos de Pedra negra Pulida
|
||||||
|
Basalt=Basalto
|
||||||
|
Polished Basalt=Basalto Pulido
|
||||||
|
Blackstone Slab=Lousa de Pedra negra
|
||||||
|
Polished Blackstone Slab=Lousa de Pedra negra Pulida
|
||||||
|
Chiseled Polished Blackstone Slab=Lousa de Pedra negra Pulida Cincelada
|
||||||
|
Polished Blackstone Brick Slab=Lousa de Ladrillo de Pedra-negra Polida
|
||||||
|
Blackstone Stair=Escada de Pedra negra
|
||||||
|
Polished Blackstone Stair=Escada de Pedra negra Pulida
|
||||||
|
Chiseled Polished Blackstone Stair=Escada de Pedra negra Pulida cincelada
|
||||||
|
Polished Blackstone Brick Stair=Escada de Ladrillo de Pedra negra Pulida
|
||||||
|
Quartz Bricks=Ladrillos de Cuarzo
|
||||||
|
Soul Torch=Facho de Alma
|
||||||
|
Torches are light sources which can be placed at the side or on the top of most blocks.=Os fachos son fontes de luz que se poden colocar ao lado ou na parte superior da maioría dos bloques.
|
||||||
|
Soul Lantern=Lanterna de Alma
|
||||||
|
Soul Soil=Terra de Alma
|
||||||
|
Eternal Soul Fire=Eterno lume de Alma
|
||||||
|
Gilded Blackstone=Pedra negra Dourada
|
||||||
|
Nether Gold Ore=Mineral de Ouro do Nether
|
||||||
|
Smooth Basalt=Basalto Liso
|
||||||
|
Blackstone Wall=Muro de Pedra negra
|
||||||
|
Double Blackstone Slab=Dobre Lousa de Pedra negra
|
||||||
|
Polished Double Blackstone Slab=Dobre Lousa de Pedra negra Polida
|
||||||
|
Double Chiseled Polished Blackstone Slab=Dobre Lousa de Pedra negra Polida cincelada
|
||||||
|
Double Polished Blackstone Brick Slab=Dobre Lousa de Ladrillo de Pedra negra Polida
|
|
@ -0,0 +1,11 @@
|
||||||
|
# textdomain: mcl_blast_furnace
|
||||||
|
Inventory=Inventario
|
||||||
|
Blast Furnace=Alto forno
|
||||||
|
Smelts ores faster than furnace=Funde os minerais máis rápido que o forno
|
||||||
|
Use the recipe book to see what ores you can smelt, what you can use as fuel and how long it will burn.=Emprega o libro de receitas para ver que minerais pode fundir, que pode usar como combustible e canto tempo vai arder.
|
||||||
|
Use the blast furnace to open the furnace menu.=Emprega o alto forno para abrir o menú do forno.
|
||||||
|
Place a furnace fuel in the lower slot and the source material in the upper slot.=Coloque un combustible de forno na rañura inferior e o material de orixe na rañura superior.
|
||||||
|
The blast furnace will slowly use its fuel to smelt the item.=O alto forno utilizará lentamente o seu combustible para fundir o elemento.
|
||||||
|
The result will be placed into the output slot at the right side.=O resultado colocarase na rañura de saída do lado dereito.
|
||||||
|
Blast Furnaces smelt several items, mainly ores and armor, using a furnace fuel, but twice as fast as a normal furnace.=Os altos fornos funden varios elementos, principalmente minerais e armaduras, usando un combustible de forno, pero o dobre de rápido que un forno normal.
|
||||||
|
Active Blast Furnace=Alto forno activo
|
|
@ -0,0 +1,28 @@
|
||||||
|
# textdomain: mcl_books
|
||||||
|
Book=Libro
|
||||||
|
Books are used to make bookshelves and book and quills.=Os libros utilízanse para facer estanterías, libros e plumas.
|
||||||
|
“@1”="@1“
|
||||||
|
Copy of “@1”=Copia de "@1“
|
||||||
|
Copy of Copy of “@1”=Copia da copia de "@1"
|
||||||
|
Tatter ed Book=Libro esfarrapado
|
||||||
|
by @1=por @1
|
||||||
|
# as in “to sign a book”
|
||||||
|
Sign=Asinar
|
||||||
|
Done=Feito
|
||||||
|
This item can be used to write down some notes.=Este elemento podese empregar para escribir algunhas notas.
|
||||||
|
Hold it in the hand, then rightclick to read the current notes and edit then. You can edit the text as often as you like. You can also sign the book which turns it into a written book which you can stack, but it can't be edited anymore.=Sosteno na man, logo fai clic dereito para leer as notas actuais e logo edite. Pode editar o texto ca frecuencia que desexe. Tambén pode asinar o libro co convirte nun libro escrito que pode apiñar, pero ya no se puede editar.
|
||||||
|
A book can hold up to 4500 characters. The title length is limited to 64 characters.=Un libro pode conter ata 4500 caracteres. A longitude do título está limitada a 64 caracteres.
|
||||||
|
Enter book title:=Inserta o título do libro:
|
||||||
|
by @1=por @1
|
||||||
|
Note: The book will no longer be editable after signing=Nota: O libro xa non será editable despois de asinalo
|
||||||
|
Sign and Close=Asinar e pechar
|
||||||
|
Cancel=Cancelar
|
||||||
|
Nameless Book=Libro sen nome
|
||||||
|
Written Book=Libro escrito
|
||||||
|
Written books contain some text written by someone. They can be read and copied, but not edited.=Os libros escritos conteñen texto escrito por alguén. Poden leerse e copiarse, pero non editarse.
|
||||||
|
Hold it in your hand, then rightclick to read the book.="Sosteno na man e fai clic dereito para ler o libro."
|
||||||
|
To copy the text of the written book, place it into the crafting grid together with a book and quill (or multiple of those) and craft. The written book will not be consumed. Copies of copies can not be copied.=Para copiar o texto do libro escrito, colóqueo na cuadrícula de elaboración xunto cun libro e pluma (ou varios deles) e faga manualidades. O libro escrito non será consumido. As copias das copias non se poden copiar.
|
||||||
|
Bookshelf=Librería
|
||||||
|
Bookshelves are used for decoration.=As librerías utilizanse para a decoración.
|
||||||
|
Book and Quill=Libro e pluma
|
||||||
|
Write down some notes=Escribe algunhas notas
|
|
@ -0,0 +1,18 @@
|
||||||
|
# textdomain: mcl_bows
|
||||||
|
Arrow=Frecha
|
||||||
|
Arrows are ammunition for bows and dispensers.=As frechas son municions para arcos y dispensadores.
|
||||||
|
An arrow fired from a bow has a regular damage of 1-9. At full charge, there's a 20% chance of a critical hit dealing 10 damage instead. An arrow fired from a dispenser always deals 3 damage.=Unha frecha disparada desde un arco ten un dano regular de 1-9. A carga completa, hai un 20 % de posibilidades de que un golpe crítico cause 10 de danos. Unha frecha disparada desde un dispensador sempre fai 3 de danos.
|
||||||
|
Arrows might get stuck on solid blocks and can be retrieved again. They are also capable of pushing wooden buttons.=As frechas poden quedar atrapadas en bloques sólidos e pódense recuperar de novo. Tamén son capaces de premer botóns de madeira.
|
||||||
|
To use arrows as ammunition for a bow, just put them anywhere in your inventory, they will be used up automatically. To use arrows as ammunition for a dispenser, place them in the dispenser's inventory. To retrieve an arrow that sticks in a block, simply walk close to it.=Para usar as frechas como munición para un arco, só tes que poñelas en calquera lugar do teu inventario, esgotaranse automaticamente. Para usar frechas como munición para un dispensador, colócaas no inventario do dispensador. Para recuperar unha frecha que se pegue nun bloque, só tes que camiñar preto dela.
|
||||||
|
Bow=Arco
|
||||||
|
Bows are ranged weapons to shoot arrows at your foes.=Os arcos son armas a distancia para disparar frechas aos teus inimigos.
|
||||||
|
The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead.=A velocidade e os danos da frecha aumentan canto máis tempo cargas. O dano normal da frecha está entre 1 e 9. A carga completa, tamén hai un 20 % dun golpe crítico, causando 10 de danos no seu lugar.
|
||||||
|
To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.=Para usar o arco, primeiro debes ter polo menos unha frecha en calquera lugar do teu inventario (a non ser que esteas no modo creativo). Mantén premido o botón dereito do rato para cargar, solta para disparar.
|
||||||
|
Bow=Arco
|
||||||
|
Ammunition=Munición
|
||||||
|
Damage from bow: 1-10=Dano con arco: 1-10
|
||||||
|
Damage from dispenser: 3=Dano por dispensador: 3
|
||||||
|
Launches arrows=Lanza frechas
|
||||||
|
Crossbow=Bésta
|
||||||
|
Crossbows are ranged weapons to shoot arrows at your foes.=As béstas son armas a distancia para disparar frechas aos teus inimigos.
|
||||||
|
To use the crossbow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.=Para empregar a bésta, primeiro debes ter polo menos unha frecha en calquer lugar do teu inventario (agás no modo creativo).Mantén premido o botón dereito do rato para cargar, solta para disparar.
|
|
@ -456,8 +456,8 @@ minetest.register_node("mcl_brewing:stand_000", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -537,8 +537,8 @@ minetest.register_node("mcl_brewing:stand_100", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -617,8 +617,8 @@ minetest.register_node("mcl_brewing:stand_010", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -692,8 +692,8 @@ minetest.register_node("mcl_brewing:stand_001", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -777,8 +777,8 @@ minetest.register_node("mcl_brewing:stand_110", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -858,8 +858,8 @@ minetest.register_node("mcl_brewing:stand_101", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -939,8 +939,8 @@ minetest.register_node("mcl_brewing:stand_011", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
@ -1027,8 +1027,8 @@ minetest.register_node("mcl_brewing:stand_111", {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 0.5,
|
||||||
on_destruct = on_destruct,
|
on_destruct = on_destruct,
|
||||||
allow_metadata_inventory_take = allow_take,
|
allow_metadata_inventory_take = allow_take,
|
||||||
allow_metadata_inventory_put = allow_put,
|
allow_metadata_inventory_put = allow_put,
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
# textdomain: mcl_brewing
|
||||||
|
Brewing Stand=Stand de elaboración de cervexa
|
||||||
|
Inventory=Inventario
|
||||||
|
To use a brewing stand, rightclick it.=Para usar un soporte de elaboración, fai clic co botón dereito nel.
|
||||||
|
To brew, you need blaze powder as fuel, a brewing material and at least 1 glass bottle filled with a liquid.=Para elaborar a cervexa, necesitas po de lume como combustible, un material de elaboración e polo menos 1 botella de vidro chea dun líquido.
|
||||||
|
Place the blaze powder in the left slot, the brewing material in the middle slot and 1-3 bottles in the remaining slots.=Coloque o po de lume na rañura esquerda, o material de cervexa na rañura central e 1-3 botellas nas rañuras restantes.
|
||||||
|
When you have found a good combination, the brewing will commence automatically and steam starts to appear, using up the fuel and brewing material. The potions will soon be ready.=Cando atopes unha boa combinación, a elaboración comezará automaticamente e comeza a aparecer vapor, esgotando o combustible e o material de elaboración. As pocións pronto estarán listas.
|
||||||
|
Different combinations of brewing materials and liquids will give different results. Try to experiment!=As diferentes combinacións de materiais de elaboración e líquidos darán resultados diferentes ¡Tenta experimentar!
|
||||||
|
The stand allows you to brew potions!=¡O soporte permítelle preparar pocións!
|
||||||
|
Brew Potions=Pocións de preparación
|
|
@ -0,0 +1,25 @@
|
||||||
|
# textdomain: mcl_buckets
|
||||||
|
Empty Bucket=Cubo vacío
|
||||||
|
A bucket can be used to collect and release liquids.=Podese empregar un caldeiro para recoller e liberar líquidos.
|
||||||
|
Punch a liquid source to collect it. You can then use the filled bucket to place the liquid somewhere else.=Golpea unha fonte de líquido para recolleitala. Despois pode empregar o caldeiro che para colocar o líquido noutro lugar.
|
||||||
|
Lava Bucket=Caldeiro con lava
|
||||||
|
A bucket can be used to collect and release liquids. This one is filled with hot lava, safely contained inside. Use with caution.=Podese empregar un caldeiro para recoller e liberar líquidos. Este está cheo de lava quente, contida de forma segura no interior. Empregar con precaución.
|
||||||
|
Get in a safe distance and place the bucket to empty it and create a lava source at this spot. Don't burn yourself!=Alonxate a unha distancia segura e coloca o caldeiro para baleiralo e crea unha fonte de lava nese lugar. ¡Non te queimes!
|
||||||
|
Water Bucket=Caldeiro con auga
|
||||||
|
A bucket can be used to collect and release liquids. This one is filled with water.=Podese empregar un caldeiro para recoller e liberar líquidos. Este está cheo de auga.
|
||||||
|
Place it to empty the bucket and create a water source.=Colócao para baleirar o caldeiro e crear unha fonte de auga.
|
||||||
|
River Water Bucket=Caldeiro de auga de río
|
||||||
|
A bucket can be used to collect and release liquids. This one is filled with river water.=Podese empregar un caldeiro para recoller e liberar líquidos. Este está cheo de auga de río.
|
||||||
|
Place it to empty the bucket and create a river water source.=Colócao para baleirar o caldeiro e crear una fonte de auga de río.
|
||||||
|
Collects liquids=Recolle líquidos
|
||||||
|
Places a lava source=Coloca unha fonte de lava
|
||||||
|
Places a water source=Coloca unha fonte de auga
|
||||||
|
Places a river water source=Coloca unha fonte de auga fluvial
|
||||||
|
Axolotl=Axolotl
|
||||||
|
Cod=Cod
|
||||||
|
Salmon=salmón
|
||||||
|
Tropical Fish=Peixe tropical
|
||||||
|
Bucket of @1=Caldeiro de @1
|
||||||
|
This bucket is filled with water and @1.=Este Caldeiro está cheo de auga e @1.
|
||||||
|
Place it to empty the bucket and place a @1. Obtain by right clicking on a @2 with a bucket of water.=Colócao para baleirar o Caldeiro e coloca un @1. Obter facendo clic co botón dereito nun @2 cun Caldeiro de auga.
|
||||||
|
Places a water source and a @1.=Coloca unha fonte de auga e un @1.
|
|
@ -0,0 +1,12 @@
|
||||||
|
# textdomain: mcl_cake
|
||||||
|
Cake=Tarta
|
||||||
|
Cakes can be placed and eaten to restore hunger points. A cake has 7 slices. Each slice restores 2 hunger points and 0.4 saturation points. Cakes will be destroyed when dug or when the block below them is broken.=Os pasteis podense colocar e comer para restaurar os puntos de fame. Un pastel ten 7 anacos. Cada anaco restaura 2 puntos de fame e 0.4 puntos de saturación. Os pasteis destruiranse cando se caven ou cando se rompa o bloque debaixo deles.
|
||||||
|
Place the cake anywhere, then rightclick it to eat a single slice. You can't eat from the cake when your hunger bar is full.=Coloque o pastel en calquer lugar, despois faga clic dereito para comer un só anaco. Non podes comer do pastel cando a tua barra de fame está chea.
|
||||||
|
Cake (6 Slices Left)=Pastel (Quedan 6 anacos)
|
||||||
|
Cake (5 Slices Left)=Pastel (Quedan 5 anacos)
|
||||||
|
Cake (4 Slices Left)=Pastel (Quedan 4 anacos)
|
||||||
|
Cake (3 Slices Left)=Pastel (Quedan 3 anacos)
|
||||||
|
Cake (2 Slices Left)=Pastel (Quedan 2 anacos)
|
||||||
|
Cake (1 Slice Left)=Pastel (Queda 1 anaco)
|
||||||
|
With 7 tasty slices!=¡Con 7 deliciosas rebandas!
|
||||||
|
Hunger points: +@1 per slice=Puntos de fame: +@1 por rebanda
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_campfires
|
||||||
|
Campfire=Cacharela
|
||||||
|
Soul Campfire=Cacharela de almas
|
||||||
|
Cooks food and keeps bees happy.=Cociña comida e mantén as abellas ledas.
|
||||||
|
Campfires have multiple uses, including keeping bees happy, cooking raw meat and fish, and as a trap.=As cacharelas teñen múltiples usos, incluindo manter as abellas ledas, cociñar carne crúa e pescado, e como trampa.
|
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: mcl_cartography_table
|
||||||
|
Cartography Table=Mesa de Cartografia
|
||||||
|
Used to create or copy maps=Empregada para criar ou copiar mapas
|
||||||
|
Is used to create or copy maps for use..=É usada para criar ou copiar mapas para o seu uso..
|
|
@ -0,0 +1,11 @@
|
||||||
|
# textdomain: mcl_cauldrons
|
||||||
|
Cauldron=Caldeiro
|
||||||
|
Cauldrons are used to store water and slowly fill up under rain.=Os caldeiros empreganse para almacenar auga e énchense lentamente coa choiva.
|
||||||
|
Place a water bucket into the cauldron to fill it with water. Place an empty bucket on a full cauldron to retrieve the water. Place a water bottle into the cauldron to fill the cauldron to one third with water. Place a glass bottle in a cauldron with water to retrieve one third of the water.=Os caldeiros empréganse para almacenar auga e énchense lentamente coa choiva. Coloca un caldeiro de auga no caldeiro para enchelo de auga. Coloca un caldeiro baleiro nun caldeiro cheo para recoller a auga. Coloca unha botella de auga no caldeiro para enchelo nun terzo de auga. Coloca unha botella de vidro nun caldeiro con auga para recoller un terzo da auga.
|
||||||
|
Cauldron (1/3 Water)=Caldeiro (1/3 de agua)
|
||||||
|
Cauldron (2/3 Water)=Caldeiro (2/3 de agua)
|
||||||
|
Cauldron (3/3 Water)=Caldera (3/3 de agua)
|
||||||
|
Cauldron (1/3 River Water)=Caldeiro (1/3 de auga de río)
|
||||||
|
Cauldron (2/3 River Water)=Caldeiro (2/3 de auga de río)
|
||||||
|
Cauldron (3/3 River Water)=Caldeiro (3/3 de auga de río)
|
||||||
|
Stores water=Almacena auga
|
|
@ -19,6 +19,6 @@ Cherry Slab=Dalle en cerisier
|
||||||
Double Cherry Slab=Double Dalle en cerisier
|
Double Cherry Slab=Double Dalle en cerisier
|
||||||
Cherry Sign=Panneau de cerisier
|
Cherry Sign=Panneau de cerisier
|
||||||
Cherry Fence=Barrière en cerisier
|
Cherry Fence=Barrière en cerisier
|
||||||
Cherry Gate=Portillion en cerisier
|
Cherry Fence Gate=Portillion en cerisier
|
||||||
Cherry Pressure Plate=Plaque de pression en cerisier
|
Cherry Pressure Plate=Plaque de pression en cerisier
|
||||||
Cherry Button=Bouton de Cerisier
|
Cherry Button=Bouton de Cerisier
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
# textdomain: mcl_cherry_blossom
|
||||||
|
Cherry Log=Tronco de Cerdeira
|
||||||
|
The trunk of a cherry blossom tree.=O tronco dunha cerdeira en flor.
|
||||||
|
Stripped Cherry Log=Tronco de cereixeira descascado
|
||||||
|
The stripped trunk of a cherry blossom tree.=O tronco descascado dunha cerdeira en flor.
|
||||||
|
Cherry Bark=Cortiza de Cerdeira
|
||||||
|
This is a decorative block surrounded by the bark of a tree trunk.=Esto e un bloque decorativo rodeado pola cortiza dun tronco de árbore.
|
||||||
|
Stripped Cherry Wood=Madeira de Cerdeira Descascada
|
||||||
|
The stripped wood of a cherry blossom tree.=A madeira descascada dunha cerdeira en flor.
|
||||||
|
Cherry Wood Planks="Táboas de madeira de cerdeira"
|
||||||
|
Cherry Leaves=Follas de Cerdeira
|
||||||
|
Cherry blossom leaves are grown from cherry blossom trees.="As follas das cerdeiras en flor medran das cerdeiras.""
|
||||||
|
Cherry Sapling=Planta de Cereixa
|
||||||
|
Cherry blossom sapling can be planted to grow cherry trees.=Follas de cerdeira pódense plantar para cultivar cerdeiras.
|
||||||
|
Cherry Door=Porta de Cerdeira
|
||||||
|
Cherry Trapdoor="Porta-trampa de Cerdeira"
|
||||||
|
Cherry Stairs=Escada de Cerdeira
|
||||||
|
Cherry Slab=Lousa de cerdeira
|
||||||
|
Double Cherry Slab=Lousa de Cerdeira Dobre
|
||||||
|
Cherry Sign="Sinal de cerdeira"
|
||||||
|
Cherry Fence=Cerca de Cerdeira
|
||||||
|
Cherry Gate=Porta de Cerdeira
|
||||||
|
Cherry Pressure Plate=Placa de presión de cerdeira
|
||||||
|
Cherry Button=Botón de Cerdeira
|
|
@ -19,6 +19,6 @@ Cherry Slab=Laje de Cerejeira
|
||||||
Double Cherry Slab=Laje Dupla de Cerejeira
|
Double Cherry Slab=Laje Dupla de Cerejeira
|
||||||
Cherry Sign=Placa de Cerejeira
|
Cherry Sign=Placa de Cerejeira
|
||||||
Cherry Fence=Cerca de Cerejeira
|
Cherry Fence=Cerca de Cerejeira
|
||||||
Cherry Gate=Portão de Cerejeira
|
Cherry Fence Gate=Portão de Cerejeira
|
||||||
Cherry Pressure Plate=Placa de Pressão de Cerejeira
|
Cherry Pressure Plate=Placa de Pressão de Cerejeira
|
||||||
Cherry Button=Botão de Cerejeira
|
Cherry Button=Botão de Cerejeira
|
||||||
|
|
|
@ -19,6 +19,6 @@ Cherry Slab=Вишнёвая плита
|
||||||
Double Cherry Slab=Двойная вишнёвая плита
|
Double Cherry Slab=Двойная вишнёвая плита
|
||||||
Cherry Sign=Вишнёвая табличка
|
Cherry Sign=Вишнёвая табличка
|
||||||
Cherry Fence=Вишнёвый забор
|
Cherry Fence=Вишнёвый забор
|
||||||
Cherry Gate=Вишнёвая калитка
|
Cherry Fence Gate=Вишнёвая калитка
|
||||||
Cherry Pressure Plate=Вишнёвая нажимная плита
|
Cherry Pressure Plate=Вишнёвая нажимная плита
|
||||||
Cherry Button=Вишнёвая кнопка
|
Cherry Button=Вишнёвая кнопка
|
||||||
|
|
|
@ -19,6 +19,6 @@ Cherry Slab=
|
||||||
Double Cherry Slab=
|
Double Cherry Slab=
|
||||||
Cherry Sign=
|
Cherry Sign=
|
||||||
Cherry Fence=
|
Cherry Fence=
|
||||||
Cherry Gate=
|
Cherry Fence Gate=
|
||||||
Cherry Pressure Plate=
|
Cherry Pressure Plate=
|
||||||
Cherry Button=
|
Cherry Button=
|
||||||
|
|
|
@ -51,13 +51,13 @@ mcl_stairs.register_stair("cherrywood", "mcl_cherry_blossom:cherrywood",
|
||||||
{handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
{handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||||
{"mcl_cherry_blossom_planks.png"},
|
{"mcl_cherry_blossom_planks.png"},
|
||||||
S("Cherry Stairs"),
|
S("Cherry Stairs"),
|
||||||
mcl_sounds.node_sound_wood_defaults(), 3, 2,
|
mcl_sounds.node_sound_wood_defaults(), nil, nil,
|
||||||
"woodlike")
|
"woodlike")
|
||||||
mcl_stairs.register_slab("cherrywood", "mcl_cherry_blossom:cherrywood",
|
mcl_stairs.register_slab("cherrywood", "mcl_cherry_blossom:cherrywood",
|
||||||
{handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
{handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||||
{"mcl_cherry_blossom_planks.png"},
|
{"mcl_cherry_blossom_planks.png"},
|
||||||
S("Cherry Slab"),
|
S("Cherry Slab"),
|
||||||
mcl_sounds.node_sound_wood_defaults(), 3, 2,
|
mcl_sounds.node_sound_wood_defaults(), nil, nil,
|
||||||
S("Double Cherry Slab"))
|
S("Double Cherry Slab"))
|
||||||
|
|
||||||
-- Signs
|
-- Signs
|
||||||
|
@ -69,7 +69,7 @@ mcl_signs.register_sign_custom("mcl_cherry_blossom", "_cherrywood",
|
||||||
mcl_fences.register_fence_and_fence_gate(
|
mcl_fences.register_fence_and_fence_gate(
|
||||||
"cherry_fence",
|
"cherry_fence",
|
||||||
S("Cherry Fence"),
|
S("Cherry Fence"),
|
||||||
S("Cherry Gate"),
|
S("Cherry Fence Gate"),
|
||||||
"mcl_cherry_blossom_planks.png",
|
"mcl_cherry_blossom_planks.png",
|
||||||
{handy=1, axey=1, flammable=2, fence_wood=1, fire_encouragement=5, fire_flammability=20},
|
{handy=1, axey=1, flammable=2, fence_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||||
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
|
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
|
||||||
|
|
|
@ -0,0 +1,233 @@
|
||||||
|
# `mcl_chests` API
|
||||||
|
|
||||||
|
When reading through this documentation, please keep in mind that the chest
|
||||||
|
animations are achieved by giving each chest node an entity, as Minetest (as of
|
||||||
|
5.8.1) doesn't support giving nodes animated meshes, only static ones.
|
||||||
|
|
||||||
|
Because of that, a lot of parameters passed through the exposed functions are
|
||||||
|
be related to nodes and entities.
|
||||||
|
|
||||||
|
Please refer to [Minetest documentation](http://api.minetest.net/) and the code
|
||||||
|
comments in `api.lua`.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.register_chest(basename, definition)`
|
||||||
|
|
||||||
|
This function allows for simple chest registration, used by both regular and
|
||||||
|
trapped chests.
|
||||||
|
|
||||||
|
* `basename` is a string that will be concatenated to form full nodenames for
|
||||||
|
chests, for example `"mcl_chests:basename_small"`.
|
||||||
|
* `definition` is a key-value table, with the following fields:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
{
|
||||||
|
desc = S("Stone Chest"),
|
||||||
|
-- Equivalent to `description` field of Item/Node definition.
|
||||||
|
-- Will be shown as chest's name in the inventory.
|
||||||
|
|
||||||
|
title = {
|
||||||
|
small = S("Stone Chest") -- the same as `desc` if not specified
|
||||||
|
double = S("Large Stone Chest") -- defaults to `"Large " .. desc`
|
||||||
|
}
|
||||||
|
-- These will be shown when opening the chest (in formspecs).
|
||||||
|
|
||||||
|
longdesc = S(
|
||||||
|
"Stone Chests are containers which provide 27 inventory slots. Stone Chests can be turned into" ..
|
||||||
|
"large stone chests with double the capacity by placing two stone chests next to each other."
|
||||||
|
),
|
||||||
|
usagehelp = S("To access its inventory, rightclick it. When broken, the items will drop out."),
|
||||||
|
tt_help = S("27 inventory slots") .. "\n" .. S("Can be combined to a large stone chest"),
|
||||||
|
-- Equivalent to `_doc_items_longdesc`, `_doc_items_usagehelp` and
|
||||||
|
-- `_tt_help` fields of Item/Node definition. Shown in the tooltip and wiki.
|
||||||
|
|
||||||
|
tiles = {
|
||||||
|
small = { "vl_stone_chests_small.png" },
|
||||||
|
double = { "vl_stone_chests_double.png" },
|
||||||
|
inv = {
|
||||||
|
"vl_stone_chests_top.png",
|
||||||
|
"vl_stone_chests_bottom.png",
|
||||||
|
"vl_stone_chests_right.png",
|
||||||
|
"vl_stone_chests_left.png",
|
||||||
|
"vl_stone_chests_back.png",
|
||||||
|
"vl_stone_chests_front.png"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- `small` and `double` fields contain the textures that will be applied to
|
||||||
|
-- chest entities.
|
||||||
|
-- `inv` field contains table of textures (6 in total, for each cube side),
|
||||||
|
-- that will be used to render the chest "node" in the inventory.
|
||||||
|
|
||||||
|
groups = {
|
||||||
|
pickaxey = 1,
|
||||||
|
stone = 1,
|
||||||
|
material_stone = 1,
|
||||||
|
},
|
||||||
|
-- Equivalent to `groups` field of Item/Node definition. There is some table
|
||||||
|
-- merging occuring internally, but it is purely for entity rendering.
|
||||||
|
|
||||||
|
sounds = {
|
||||||
|
mcl_sounds.node_sound_stone_defaults(), -- defaults to `nil`
|
||||||
|
"vl_stone_chests_sound" -- defaults to `"default_chest"`
|
||||||
|
},
|
||||||
|
-- First value is equivalent to `sounds` field of Item/Node definition.
|
||||||
|
-- Second value is a sound prefix, from which the actual sounds will be
|
||||||
|
-- concatenated (e.g. `vl_stone_chests_sound_open.ogg`). See `api.lua`.
|
||||||
|
|
||||||
|
hardness = 4.0,
|
||||||
|
-- Equivalent to `_mcl_blast_resistance` and `_mcl_hardness` fields of
|
||||||
|
-- Item/Node definition. They are always equal for chests.
|
||||||
|
|
||||||
|
hidden = false,
|
||||||
|
-- Equivalent to `_doc_items_hidden` field of Item/Node definition.
|
||||||
|
|
||||||
|
mesecons = {
|
||||||
|
receptor = {
|
||||||
|
state = mesecon.state.on,
|
||||||
|
rules = mesecon.rules.pplate,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Equivalent to `mesecons` field of Item/Node definition.
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
mcl_util.deal_damage(clicker, 2)
|
||||||
|
end,
|
||||||
|
-- If provided, will be executed at the end of the actual `on_rightclick`
|
||||||
|
-- function of the chest node.
|
||||||
|
-- If `on_rightclick_left` or `on_rightclick_right` are not provided, this
|
||||||
|
-- will also be what is executed for left and right double chest nodes,
|
||||||
|
-- respectively.
|
||||||
|
|
||||||
|
drop = "chest",
|
||||||
|
-- If provided, the chest will not drop itself, but the item of the chest
|
||||||
|
-- with that basename.
|
||||||
|
|
||||||
|
canonical_basename = "chest",
|
||||||
|
-- If provided, the chest will turn into chest with that basename in
|
||||||
|
-- `on_construct`.
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For usage examples, see `chests.lua` and `example.lua`.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.create_entity(pos, node_name, textures, param2, double, sound_prefix, mesh_prefix, animation_type, dir, entity_pos)`
|
||||||
|
|
||||||
|
This function creates a chest entity based on the parameters:
|
||||||
|
|
||||||
|
* `pos` is the position vector.
|
||||||
|
* `node_name` is a string used in initialization data for the entity.
|
||||||
|
* `textures` is the entity textures.
|
||||||
|
* `param2` is a node param2, which then will be converted to entity direction.
|
||||||
|
* `double` is a boolean value for whether the chest is double or not.
|
||||||
|
* `sound_prefix` is a string, from which the actual sounds for the entity will
|
||||||
|
be concatenated.
|
||||||
|
* `mesh_prefix` is the same thing as `sound_prefix`, but for meshes.
|
||||||
|
* `animation_type` is a string that will be used in `set_animation` method of
|
||||||
|
chest entity.
|
||||||
|
* `dir` and `entity_pos` are number and vector values used to get entity info.
|
||||||
|
|
||||||
|
Returned value is either a luaentity, or `nil` if failed (in which case a
|
||||||
|
warning message gets written into the console).
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.find_or_create_entity(pos, node_name, textures, param2, double, sound_prefix, mesh_prefix, animation_type, dir, entity_pos)`
|
||||||
|
|
||||||
|
This function finds an existing entity, or creates one if failed. Parameters:
|
||||||
|
|
||||||
|
* `pos` is the position vector.
|
||||||
|
* `node_name` is a string used in initialization data for the entity.
|
||||||
|
* `textures` is the entity textures.
|
||||||
|
* `param2` is a node param2, which then will be converted to entity direction.
|
||||||
|
* `double` is a boolean value for whether the chest is double or not.
|
||||||
|
* `sound_prefix` is a string, from which the actual sounds for the entity will
|
||||||
|
be concatenated.
|
||||||
|
* `mesh_prefix` is the same thing as `sound_prefix`, but for meshes.
|
||||||
|
* `animation_type` is a string that will be used in `set_animation` method of
|
||||||
|
chest entity.
|
||||||
|
* `dir` and `entity_pos` are number and vector values used to get entity info.
|
||||||
|
|
||||||
|
Returned value is either a luaentity, or `nil` if failed (in which case a
|
||||||
|
warning message gets written into the console).
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.select_and_spawn_entity(pos, node)`
|
||||||
|
|
||||||
|
This function is a simple wrapper for `mcl_chests.find_or_create_entity`,
|
||||||
|
getting most of the fields from node definition.
|
||||||
|
|
||||||
|
* `pos` is the position vector.
|
||||||
|
* `node` is a NodeRef.
|
||||||
|
|
||||||
|
Returned value is either a luaentity, or `nil` if failed (in which case a
|
||||||
|
warning message gets written into the console).
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.no_rotate`
|
||||||
|
|
||||||
|
This function is equivalent to `screwdriver.disallow` and is used when a chest
|
||||||
|
can't be rotated, and is applied in `on_rotate` field of Node definition.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.simple_rotate(pos, node, user, mode, new_param2)`
|
||||||
|
|
||||||
|
This function allows for simple rotation with the entity being affected as well,
|
||||||
|
and is applied in `on_rotate` field of Node definition.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.open_chests`
|
||||||
|
|
||||||
|
This table contains all currently open chests, indexed by player name.
|
||||||
|
|
||||||
|
`nil` if player is not using a chest, and `{ pos = <chest node position> }`
|
||||||
|
otherwise (where position is a vector value).
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.protection_check_move(pos, from_list, from_index, to_list, to_index, count, player)`
|
||||||
|
|
||||||
|
This function is called in `allow_metadata_inventory_move` field of Node
|
||||||
|
definition.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.protection_check_put_take(pos, listname, index, stack, player)`
|
||||||
|
|
||||||
|
This function is called in `allow_metadata_inventory_put` and
|
||||||
|
`allow_metadata_inventory_take` fields of Node definition.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.player_chest_open(player, pos, node_name, textures, param2, double, sound, mesh, shulker)`
|
||||||
|
|
||||||
|
This function opens a chest based on the parameters:
|
||||||
|
|
||||||
|
* `player` is an ObjectRef.
|
||||||
|
* `pos` is the position vector.
|
||||||
|
* `node_name` is a string used in initialization data for the entity.
|
||||||
|
* `textures` is the entity textures.
|
||||||
|
* `param2` is a node param2, which then will be converted to entity direction.
|
||||||
|
* `double` is a boolean value for whether the chest is double or not.
|
||||||
|
* `sound` is a prefix string, from which the actual sounds for the entity will
|
||||||
|
be concatenated.
|
||||||
|
* `mesh` is the same thing as `sound`, but for meshes.
|
||||||
|
* `shulker` is a boolean value for whether the chest is a shulker or not.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.player_chest_close(player)`
|
||||||
|
|
||||||
|
This function has to be called when a player closes a chest.
|
||||||
|
|
||||||
|
* `player` is an ObjectRef.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.chest_update_after_close(pos)`
|
||||||
|
|
||||||
|
This function is called when a chest is closed by `player_chest_close`.
|
||||||
|
|
||||||
|
* `pos` is the chest's position vector.
|
||||||
|
|
||||||
|
|
||||||
|
## `mcl_chests.is_not_shulker_box(stack)`
|
||||||
|
|
||||||
|
This function checks for whether `stack` is a shulker box, and returns `false`
|
||||||
|
if it is. Used internally to disallow putting shulker boxes into shulker boxes.
|
||||||
|
|
||||||
|
* `stack` is an ItemStack.
|
|
@ -0,0 +1,19 @@
|
||||||
|
# `mcl_chests`
|
||||||
|
|
||||||
|
This mod adds normal and large chests, trapped chests, ender chests and
|
||||||
|
shulkers, providing an API for mods to register their own chests.
|
||||||
|
|
||||||
|
The API is documented in `API.md`.
|
||||||
|
|
||||||
|
|
||||||
|
## License of source code
|
||||||
|
|
||||||
|
Copyright (C) 2011-2012 celeron55, Perttu Ahola <celeron55@gmail.com>\
|
||||||
|
Copyright (C) 2024 rudzik8, Mikita Wiśniewski <rudzik8@protonmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
http://www.gnu.org/licenses/lgpl-2.1.html
|
|
@ -0,0 +1,966 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
local F = minetest.formspec_escape
|
||||||
|
local C = minetest.colorize
|
||||||
|
|
||||||
|
local get_double_container_neighbor_pos = mcl_util.get_double_container_neighbor_pos
|
||||||
|
|
||||||
|
local string = string
|
||||||
|
local table = table
|
||||||
|
|
||||||
|
local sf = string.format
|
||||||
|
|
||||||
|
-- Recursively merge tables with eachother
|
||||||
|
local function table_merge(tbl, ...)
|
||||||
|
local t = table.copy(tbl)
|
||||||
|
for k,v in pairs(...) do
|
||||||
|
if type(t[k]) == "table" and type(v) == "table" then
|
||||||
|
table_merge(t[k], v)
|
||||||
|
else
|
||||||
|
t[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Chest Entity
|
||||||
|
-- ------------
|
||||||
|
-- This is necessary to show the chest as an animated mesh, as Minetest doesn't support assigning animated meshes to
|
||||||
|
-- nodes directly. We're bypassing this limitation by giving each chest its own entity, and making the chest node
|
||||||
|
-- itself fully transparent.
|
||||||
|
local animated_chests = (minetest.settings:get_bool("animated_chests") ~= false)
|
||||||
|
local entity_animations = {
|
||||||
|
shulker = {
|
||||||
|
speed = 50,
|
||||||
|
open = { x = 45, y = 95 },
|
||||||
|
close = { x = 95, y = 145 },
|
||||||
|
},
|
||||||
|
chest = {
|
||||||
|
speed = 25,
|
||||||
|
open = { x = 0, y = 7 },
|
||||||
|
close = { x = 13, y = 20 },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.register_entity("mcl_chests:chest", {
|
||||||
|
initial_properties = {
|
||||||
|
visual = "mesh",
|
||||||
|
pointable = false,
|
||||||
|
physical = false,
|
||||||
|
static_save = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
set_animation = function(self, animname)
|
||||||
|
local anim_table = entity_animations[self.animation_type]
|
||||||
|
local anim = anim_table[animname]
|
||||||
|
if not anim then return end
|
||||||
|
self.object:set_animation(anim, anim_table.speed, 0, false)
|
||||||
|
end,
|
||||||
|
|
||||||
|
open = function(self, playername)
|
||||||
|
self.players[playername] = true
|
||||||
|
if not self.is_open then
|
||||||
|
self:set_animation("open")
|
||||||
|
minetest.sound_play(self.sound_prefix .. "_open", { pos = self.node_pos, gain = 0.5, max_hear_distance = 16 },
|
||||||
|
true)
|
||||||
|
self.is_open = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
close = function(self, playername)
|
||||||
|
local playerlist = self.players
|
||||||
|
playerlist[playername] = nil
|
||||||
|
if self.is_open then
|
||||||
|
if next(playerlist) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
self:set_animation("close")
|
||||||
|
minetest.sound_play(self.sound_prefix .. "_close",
|
||||||
|
{ pos = self.node_pos, gain = 0.3, max_hear_distance = 16 },
|
||||||
|
true)
|
||||||
|
self.is_open = false
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
initialize = function(self, node_pos, node_name, textures, dir, double, sound_prefix, mesh_prefix, animation_type)
|
||||||
|
self.node_pos = node_pos
|
||||||
|
self.node_name = node_name
|
||||||
|
self.sound_prefix = sound_prefix
|
||||||
|
self.animation_type = animation_type
|
||||||
|
local obj = self.object
|
||||||
|
obj:set_armor_groups({ immortal = 1 })
|
||||||
|
obj:set_properties({
|
||||||
|
textures = textures,
|
||||||
|
mesh = mesh_prefix .. (double and "_double" or "") .. ".b3d",
|
||||||
|
})
|
||||||
|
self:set_yaw(dir)
|
||||||
|
self.players = {}
|
||||||
|
end,
|
||||||
|
|
||||||
|
reinitialize = function(self, node_name)
|
||||||
|
self.node_name = node_name
|
||||||
|
end,
|
||||||
|
|
||||||
|
set_yaw = function(self, dir)
|
||||||
|
self.object:set_yaw(minetest.dir_to_yaw(dir))
|
||||||
|
end,
|
||||||
|
|
||||||
|
check = function(self)
|
||||||
|
local node_pos, node_name = self.node_pos, self.node_name
|
||||||
|
if not node_pos or not node_name then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
local node = minetest.get_node(node_pos)
|
||||||
|
if node.name ~= node_name then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_activate = function(self, initialization_data)
|
||||||
|
if initialization_data and initialization_data:find("\"###mcl_chests:chest###\"") then
|
||||||
|
self:initialize(unpack(minetest.deserialize(initialization_data)))
|
||||||
|
else
|
||||||
|
minetest.log("warning",
|
||||||
|
"[mcl_chests] on_activate called without proper initialization_data ... removing entity")
|
||||||
|
self.object:remove()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_step = function(self, dtime)
|
||||||
|
if not self:check() then
|
||||||
|
self.object:remove()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
local function get_entity_pos(pos, dir, double)
|
||||||
|
pos = vector.copy(pos)
|
||||||
|
if double then
|
||||||
|
local add, mul, vec, cross = vector.add, vector.multiply, vector.new, vector.cross
|
||||||
|
pos = add(pos, mul(cross(dir, vec(0, 1, 0)), -0.5))
|
||||||
|
end
|
||||||
|
return pos
|
||||||
|
end
|
||||||
|
|
||||||
|
local function find_entity(pos)
|
||||||
|
for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0)) do
|
||||||
|
local luaentity = obj:get_luaentity()
|
||||||
|
if luaentity and luaentity.name == "mcl_chests:chest" then
|
||||||
|
return luaentity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_entity_info(pos, param2, double, dir, entity_pos)
|
||||||
|
dir = dir or minetest.facedir_to_dir(param2)
|
||||||
|
return dir, get_entity_pos(pos, dir, double)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function create_entity(pos, node_name, textures, param2, double, sound_prefix, mesh_prefix, animation_type, dir,
|
||||||
|
entity_pos)
|
||||||
|
dir, entity_pos = get_entity_info(pos, param2, double, dir, entity_pos)
|
||||||
|
local initialization_data = minetest.serialize({pos, node_name, textures, dir, double, sound_prefix,
|
||||||
|
mesh_prefix, animation_type, "###mcl_chests:chest###"})
|
||||||
|
local obj = minetest.add_entity(entity_pos, "mcl_chests:chest", initialization_data)
|
||||||
|
if obj and obj:get_pos() then
|
||||||
|
return obj:get_luaentity()
|
||||||
|
else
|
||||||
|
minetest.log("warning", "[mcl_chests] Failed to create entity at " ..
|
||||||
|
(entity_pos and minetest.pos_to_string(entity_pos, 1) or "nil"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.create_entity = create_entity
|
||||||
|
|
||||||
|
local function find_or_create_entity(pos, node_name, textures, param2, double, sound_prefix, mesh_prefix,
|
||||||
|
animation_type, dir, entity_pos)
|
||||||
|
dir, entity_pos = get_entity_info(pos, param2, double, dir, entity_pos)
|
||||||
|
return find_entity(entity_pos) or
|
||||||
|
create_entity(pos, node_name, textures, param2, double, sound_prefix, mesh_prefix, animation_type, dir,
|
||||||
|
entity_pos)
|
||||||
|
end
|
||||||
|
mcl_chests.find_or_create_entity = find_or_create_entity
|
||||||
|
|
||||||
|
local function select_and_spawn_entity(pos, node)
|
||||||
|
local node_name = node.name
|
||||||
|
local node_def = minetest.registered_nodes[node_name]
|
||||||
|
local double_chest = minetest.get_item_group(node_name, "double_chest") > 0
|
||||||
|
find_or_create_entity(pos, node_name, node_def._chest_entity_textures, node.param2, double_chest,
|
||||||
|
node_def._chest_entity_sound, node_def._chest_entity_mesh, node_def._chest_entity_animation_type)
|
||||||
|
end
|
||||||
|
mcl_chests.select_and_spawn_entity = select_and_spawn_entity
|
||||||
|
|
||||||
|
local no_rotate, simple_rotate
|
||||||
|
if screwdriver then
|
||||||
|
no_rotate = screwdriver.disallow
|
||||||
|
simple_rotate = function(pos, node, user, mode, new_param2)
|
||||||
|
if screwdriver.rotate_simple(pos, node, user, mode, new_param2) ~= false then
|
||||||
|
local nodename = node.name
|
||||||
|
local nodedef = minetest.registered_nodes[nodename]
|
||||||
|
local dir = minetest.facedir_to_dir(new_param2)
|
||||||
|
find_or_create_entity(pos, nodename, nodedef._chest_entity_textures, new_param2, false,
|
||||||
|
nodedef._chest_entity_sound,
|
||||||
|
nodedef._chest_entity_mesh, nodedef._chest_entity_animation_type, dir):set_yaw(dir)
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.no_rotate, mcl_chests.simple_rotate = no_rotate, simple_rotate
|
||||||
|
|
||||||
|
-- List of open chests
|
||||||
|
-- -------------------
|
||||||
|
-- Key: Player name
|
||||||
|
-- Value:
|
||||||
|
-- If player is using a chest: { pos = <chest node position> }
|
||||||
|
-- Otherwise: nil
|
||||||
|
local open_chests = {}
|
||||||
|
mcl_chests.open_chests = open_chests
|
||||||
|
|
||||||
|
-- To be called if a player opened a chest
|
||||||
|
local function player_chest_open(player, pos, node_name, textures, param2, double, sound, mesh, shulker)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
open_chests[name] = {
|
||||||
|
pos = pos,
|
||||||
|
node_name = node_name,
|
||||||
|
textures = textures,
|
||||||
|
param2 = param2,
|
||||||
|
double = double,
|
||||||
|
sound = sound,
|
||||||
|
mesh = mesh,
|
||||||
|
shulker = shulker
|
||||||
|
}
|
||||||
|
if animated_chests then
|
||||||
|
local dir = minetest.facedir_to_dir(param2)
|
||||||
|
find_or_create_entity(pos, node_name, textures, param2, double, sound, mesh,
|
||||||
|
shulker and "shulker" or "chest", dir):open(name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.player_chest_open = player_chest_open
|
||||||
|
|
||||||
|
-- Simple protection checking functions
|
||||||
|
local function protection_check_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
if minetest.is_protected(pos, name) then
|
||||||
|
minetest.record_protection_violation(pos, name)
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return count
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.protection_check_move = protection_check_move
|
||||||
|
|
||||||
|
local function protection_check_take(pos, listname, index, stack, player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
if minetest.is_protected(pos, name) then
|
||||||
|
minetest.record_protection_violation(pos, name)
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return stack:get_count()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.protection_check_put_take = protection_check_take
|
||||||
|
|
||||||
|
-- Logging functions
|
||||||
|
local function log_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" moves stuff to chest at " .. minetest.pos_to_string(pos))
|
||||||
|
end
|
||||||
|
|
||||||
|
local function log_inventory_put(pos, listname, index, stack, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" moves stuff to chest at " .. minetest.pos_to_string(pos))
|
||||||
|
-- BEGIN OF LISTRING WORKAROUND
|
||||||
|
if listname == "input" then
|
||||||
|
local inv = minetest.get_inventory({ type = "node", pos = pos })
|
||||||
|
inv:add_item("main", stack)
|
||||||
|
end
|
||||||
|
-- END OF LISTRING WORKAROUND
|
||||||
|
end
|
||||||
|
|
||||||
|
local function log_inventory_take(pos, listname, index, stack, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" takes stuff from chest at " .. minetest.pos_to_string(pos))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- To be called when a chest is closed (only relevant for trapped chest atm)
|
||||||
|
local function chest_update_after_close(pos)
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
|
||||||
|
if node.name == "mcl_chests:trapped_chest_on_small" then
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_small", param2 = node.param2 })
|
||||||
|
find_or_create_entity(pos, "mcl_chests:trapped_chest_small", { "mcl_chests_trapped.png" }, node.param2, false,
|
||||||
|
"default_chest", "mcl_chests_chest", "chest"):reinitialize("mcl_chests:trapped_chest_small")
|
||||||
|
mesecon.receptor_off(pos, mesecon.rules.pplate)
|
||||||
|
elseif node.name == "mcl_chests:trapped_chest_on_left" then
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_left", param2 = node.param2 })
|
||||||
|
find_or_create_entity(pos, "mcl_chests:trapped_chest_left", mcl_chests.tiles.chest_trapped_double, node.param2, true,
|
||||||
|
"default_chest", "mcl_chests_chest", "chest"):reinitialize("mcl_chests:trapped_chest_left")
|
||||||
|
mesecon.receptor_off(pos, mesecon.rules.pplate)
|
||||||
|
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "left")
|
||||||
|
minetest.swap_node(pos_other, { name = "mcl_chests:trapped_chest_right", param2 = node.param2 })
|
||||||
|
mesecon.receptor_off(pos_other, mesecon.rules.pplate)
|
||||||
|
elseif node.name == "mcl_chests:trapped_chest_on_right" then
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_right", param2 = node.param2 })
|
||||||
|
mesecon.receptor_off(pos, mesecon.rules.pplate)
|
||||||
|
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "right")
|
||||||
|
minetest.swap_node(pos_other, { name = "mcl_chests:trapped_chest_left", param2 = node.param2 })
|
||||||
|
find_or_create_entity(pos_other, "mcl_chests:trapped_chest_left", mcl_chests.tiles.chest_trapped_double,
|
||||||
|
node.param2, true, "default_chest", "mcl_chests_chest", "chest")
|
||||||
|
:reinitialize("mcl_chests:trapped_chest_left")
|
||||||
|
mesecon.receptor_off(pos_other, mesecon.rules.pplate)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mcl_chests.chest_update_after_close = chest_update_after_close
|
||||||
|
|
||||||
|
-- To be called if a player closed a chest
|
||||||
|
local function player_chest_close(player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
local open_chest = open_chests[name]
|
||||||
|
if open_chest == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if animated_chests then
|
||||||
|
find_or_create_entity(open_chest.pos, open_chest.node_name, open_chest.textures, open_chest.param2,
|
||||||
|
open_chest.double, open_chest.sound, open_chest.mesh, open_chest.shulker and "shulker" or "chest")
|
||||||
|
:close(name)
|
||||||
|
end
|
||||||
|
chest_update_after_close(open_chest.pos)
|
||||||
|
|
||||||
|
open_chests[name] = nil
|
||||||
|
end
|
||||||
|
mcl_chests.player_chest_close = player_chest_close
|
||||||
|
|
||||||
|
local function double_chest_add_item(top_inv, bottom_inv, listname, stack)
|
||||||
|
if not stack or stack:is_empty() then return end
|
||||||
|
|
||||||
|
local name = stack:get_name()
|
||||||
|
|
||||||
|
local function top_off(inv, stack)
|
||||||
|
for c, chest_stack in ipairs(inv:get_list(listname)) do
|
||||||
|
if stack:is_empty() then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
if chest_stack:get_name() == name and chest_stack:get_free_space() > 0 then
|
||||||
|
stack = chest_stack:add_item(stack)
|
||||||
|
inv:set_stack(listname, c, chest_stack)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return stack
|
||||||
|
end
|
||||||
|
|
||||||
|
stack = top_off(top_inv, stack)
|
||||||
|
stack = top_off(bottom_inv, stack)
|
||||||
|
|
||||||
|
if not stack:is_empty() then
|
||||||
|
stack = top_inv:add_item(listname, stack)
|
||||||
|
if not stack:is_empty() then
|
||||||
|
bottom_inv:add_item(listname, stack)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_chest_blast(pos)
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
local drop_items_chest = mcl_util.drop_items_from_meta_container("main")
|
||||||
|
drop_items_chest(pos, node)
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function limit_put_list(stack, list)
|
||||||
|
for _, other in ipairs(list) do
|
||||||
|
stack = other:add_item(stack)
|
||||||
|
if stack:is_empty() then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return stack
|
||||||
|
end
|
||||||
|
|
||||||
|
local function limit_put(stack, top_inv, bottom_inv)
|
||||||
|
local leftover = ItemStack(stack)
|
||||||
|
leftover = limit_put_list(leftover, top_inv:get_list("main"))
|
||||||
|
leftover = limit_put_list(leftover, bottom_inv:get_list("main"))
|
||||||
|
return stack:get_count() - leftover:get_count()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function close_forms(canonical_basename, pos)
|
||||||
|
local players = minetest.get_connected_players()
|
||||||
|
for p = 1, #players do
|
||||||
|
if vector.distance(players[p]:get_pos(), pos) <= 30 then
|
||||||
|
minetest.close_formspec(players[p]:get_player_name(),
|
||||||
|
"mcl_chests:" .. canonical_basename .. "_" .. pos.x .. "_" .. pos.y .. "_" .. pos.z)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_chest_inventories(pos, side)
|
||||||
|
local inv = minetest.get_inventory({ type = "node", pos = pos })
|
||||||
|
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, side)
|
||||||
|
local inv_other = minetest.get_inventory({ type = "node", pos = pos_other })
|
||||||
|
|
||||||
|
local top_inv, bottom_inv
|
||||||
|
if side == "left" then
|
||||||
|
top_inv = inv
|
||||||
|
bottom_inv = inv_other
|
||||||
|
else
|
||||||
|
top_inv = inv_other
|
||||||
|
bottom_inv = inv
|
||||||
|
end
|
||||||
|
return top_inv, bottom_inv
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Functions used in double chest registration code
|
||||||
|
-- ------------------------------------------------
|
||||||
|
-- The `return function` wrapping is necessary to avoid stacking up parameters.
|
||||||
|
-- `side` is either "left" or "right".
|
||||||
|
local function hopper_pull_double(side) return function(pos, hop_pos, hop_inv, hop_list)
|
||||||
|
local top_inv, bottom_inv = get_chest_inventories(pos, side)
|
||||||
|
|
||||||
|
local stack_id = mcl_util.select_stack(top_inv, "main", hop_inv, hop_list)
|
||||||
|
if stack_id ~= nil then
|
||||||
|
return top_inv, "main", stack_id
|
||||||
|
end
|
||||||
|
|
||||||
|
stack_id = mcl_util.select_stack(bottom_inv, "main", hop_inv, hop_list)
|
||||||
|
return bottom_inv, "main", stack_id
|
||||||
|
end end
|
||||||
|
|
||||||
|
local function hopper_push_double(side) return function(pos, hop_pos, hop_inv, hop_list)
|
||||||
|
local top_inv, bottom_inv = get_chest_inventories(pos, side)
|
||||||
|
|
||||||
|
local stack_id = mcl_util.select_stack(hop_inv, hop_list, top_inv, "main", nil, 1)
|
||||||
|
if stack_id ~= nil then
|
||||||
|
return top_inv, "main", stack_id
|
||||||
|
end
|
||||||
|
|
||||||
|
stack_id = mcl_util.select_stack(hop_inv, hop_list, bottom_inv, "main", nil, 1)
|
||||||
|
return bottom_inv, "main", stack_id
|
||||||
|
end end
|
||||||
|
|
||||||
|
local function construct_double_chest(side, names) return function(pos)
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local param2 = n.param2
|
||||||
|
local p = get_double_container_neighbor_pos(pos, param2, side)
|
||||||
|
-- Turn into a small chest if the neighbor is gone
|
||||||
|
if not p or minetest.get_node(p).name ~= names[side].cr then
|
||||||
|
n.name = names.small.a
|
||||||
|
minetest.swap_node(pos, n)
|
||||||
|
end
|
||||||
|
end end
|
||||||
|
|
||||||
|
local function destruct_double_chest(side, names, canonical_basename, small_textures, sound_prefix) return function(pos)
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
if n.name == names.small.a then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
close_forms(canonical_basename, pos)
|
||||||
|
|
||||||
|
local param2 = n.param2
|
||||||
|
local p = get_double_container_neighbor_pos(pos, param2, side)
|
||||||
|
if not p or minetest.get_node(p).name ~= names[side].r then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
close_forms(canonical_basename, p)
|
||||||
|
|
||||||
|
minetest.swap_node(p, { name = names.small.a, param2 = param2 })
|
||||||
|
create_entity(p, names.small.a, small_textures, param2, false, sound_prefix, "mcl_chests_chest", "chest")
|
||||||
|
end end
|
||||||
|
|
||||||
|
-- Small chests use `protection_check_take` for both put and take actions.
|
||||||
|
local function protection_check_put(side) return function(pos, listname, index, stack, player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
if minetest.is_protected(pos, name) then
|
||||||
|
minetest.record_protection_violation(pos, name)
|
||||||
|
return 0
|
||||||
|
-- BEGIN OF LISTRING WORKAROUND
|
||||||
|
elseif listname == "input" then
|
||||||
|
local top_inv, bottom_inv = get_chest_inventories(pos, side)
|
||||||
|
return limit_put(stack, top_inv, bottom_inv)
|
||||||
|
-- END OF LISTRING WORKAROUND
|
||||||
|
else
|
||||||
|
return stack:get_count()
|
||||||
|
end
|
||||||
|
end end
|
||||||
|
|
||||||
|
local function log_inventory_put_double(side) return function(pos, listname, index, stack, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" moves stuff to chest at " .. minetest.pos_to_string(pos))
|
||||||
|
-- BEGIN OF LISTRING WORKAROUND
|
||||||
|
if listname == "input" then
|
||||||
|
local top_inv, bottom_inv = get_chest_inventories(pos, side)
|
||||||
|
|
||||||
|
top_inv:set_stack("input", 1, nil)
|
||||||
|
bottom_inv:set_stack("input", 1, nil)
|
||||||
|
|
||||||
|
double_chest_add_item(top_inv, bottom_inv, "main", stack)
|
||||||
|
end
|
||||||
|
-- END OF LISTRING WORKAROUND
|
||||||
|
end end
|
||||||
|
|
||||||
|
-- This is a helper function to register regular chests (both small and double variants).
|
||||||
|
-- Some parameters here are only utilized by trapped chests.
|
||||||
|
function mcl_chests.register_chest(basename, d)
|
||||||
|
-- If this passes without crash, we know for a fact that d = {...}
|
||||||
|
assert((d and type(d) == "table"), "Second argument to mcl_chests.register_chest must be a table")
|
||||||
|
|
||||||
|
-- Fallback for when there is no `title` field
|
||||||
|
if not d.title then d.title = {} end
|
||||||
|
d.title.small = d.title.small or d.desc
|
||||||
|
d.title.double = d.title.double or ("Large " .. d.title.small)
|
||||||
|
|
||||||
|
if not d.drop then
|
||||||
|
d.drop = "mcl_chests:" .. basename
|
||||||
|
else
|
||||||
|
d.drop = "mcl_chests:" .. d.drop
|
||||||
|
end
|
||||||
|
|
||||||
|
local drop_items_chest = mcl_util.drop_items_from_meta_container("main")
|
||||||
|
|
||||||
|
if not d.groups then d.groups = {} end
|
||||||
|
|
||||||
|
if not d.on_rightclick_left then
|
||||||
|
d.on_rightclick_left = d.on_rightclick
|
||||||
|
end
|
||||||
|
if not d.on_rightclick_right then
|
||||||
|
d.on_rightclick_right = d.on_rightclick
|
||||||
|
end
|
||||||
|
--[[local on_rightclick_side = {
|
||||||
|
left = d.on_rightclick_left or d.on_rightclick,
|
||||||
|
right = d.on_rightclick_right or d.on_rightclick,
|
||||||
|
}]]
|
||||||
|
|
||||||
|
if not d.sounds or type(d.sounds) ~= "table" then
|
||||||
|
d.sounds = { nil, "default_chest" }
|
||||||
|
end
|
||||||
|
|
||||||
|
if not d.sounds[2] then
|
||||||
|
d.sounds[2] = "default_chest"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The basename of the "canonical" version of the node, if set (e.g.: trapped_chest_on → trapped_chest).
|
||||||
|
-- Used to get a shared formspec ID and to swap the node back to the canonical version in on_construct.
|
||||||
|
if not d.canonical_basename then
|
||||||
|
d.canonical_basename = basename
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Names table
|
||||||
|
-- -----------
|
||||||
|
-- Accessed through names["kind"].x (names.kind.x), where x can be:
|
||||||
|
-- a = "actual"
|
||||||
|
-- c = canonical
|
||||||
|
-- r = reverse (only for double chests)
|
||||||
|
-- cr = canonical, reverse (only for double chests)
|
||||||
|
local names = {
|
||||||
|
small = {
|
||||||
|
a = "mcl_chests:" .. basename .. "_small",
|
||||||
|
c = "mcl_chests:" .. d.canonical_basename .. "_small",
|
||||||
|
},
|
||||||
|
left = {
|
||||||
|
a = "mcl_chests:" .. basename .. "_left",
|
||||||
|
c = "mcl_chests:" .. d.canonical_basename .. "_left",
|
||||||
|
},
|
||||||
|
right = {
|
||||||
|
a = "mcl_chests:" .. basename .. "_right",
|
||||||
|
c = "mcl_chests:" .. d.canonical_basename .. "_right",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
names.left.r = names.right.a
|
||||||
|
names.right.r = names.left.a
|
||||||
|
names.left.cr = names.right.c
|
||||||
|
names.right.cr = names.left.c
|
||||||
|
|
||||||
|
local small_textures = d.tiles.small
|
||||||
|
local double_textures = d.tiles.double
|
||||||
|
|
||||||
|
-- Construct groups
|
||||||
|
local groups_inv = table_merge({ deco_block = 1 }, d.groups)
|
||||||
|
local groups_small = table_merge(groups_inv, {
|
||||||
|
container = 2,
|
||||||
|
deco_block = 1,
|
||||||
|
chest_entity = 1,
|
||||||
|
not_in_creative_inventory = 1
|
||||||
|
}, d.groups)
|
||||||
|
local groups_left = table_merge(groups_small, {
|
||||||
|
double_chest = 1
|
||||||
|
}, d.groups)
|
||||||
|
local groups_right = table_merge(groups_small, {
|
||||||
|
-- In a double chest, the entity is assigned to the left side, but not the right one.
|
||||||
|
chest_entity = 0,
|
||||||
|
double_chest = 2
|
||||||
|
}, d.groups)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Dummy inventory node
|
||||||
|
-- Will turn into names.small.a when placed down
|
||||||
|
minetest.register_node("mcl_chests:" .. basename, {
|
||||||
|
description = d.desc,
|
||||||
|
_tt_help = d.tt_help,
|
||||||
|
_doc_items_longdesc = d.longdesc,
|
||||||
|
_doc_items_usagehelp = d.usagehelp,
|
||||||
|
_doc_items_hidden = d.hidden,
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcl_chests_chest.b3d",
|
||||||
|
tiles = small_textures,
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
sounds = d.sounds[1],
|
||||||
|
groups = groups_inv,
|
||||||
|
on_construct = function(pos, node)
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
node.name = names.small.a
|
||||||
|
minetest.set_node(pos, node)
|
||||||
|
end,
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
minetest.get_meta(pos):set_string("name", itemstack:get_meta():get_string("name"))
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(names.small.a, {
|
||||||
|
description = d.desc,
|
||||||
|
_tt_help = d.tt_help,
|
||||||
|
_doc_items_longdesc = d.longdesc,
|
||||||
|
_doc_items_usagehelp = d.usagehelp,
|
||||||
|
_doc_items_hidden = d.hidden,
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.4375, -0.5, -0.4375, 0.4375, 0.375, 0.4375 },
|
||||||
|
},
|
||||||
|
tiles = { "blank.png^[resize:16x16" },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
|
_chest_entity_textures = small_textures,
|
||||||
|
_chest_entity_sound = d.sounds[2],
|
||||||
|
_chest_entity_mesh = "mcl_chests_chest",
|
||||||
|
_chest_entity_animation_type = "chest",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
drop = d.drop,
|
||||||
|
groups = groups_small,
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = d.sounds[1],
|
||||||
|
on_construct = function(pos)
|
||||||
|
local param2 = minetest.get_node(pos).param2
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
|
||||||
|
--[[ This is a workaround for Minetest issue 5894
|
||||||
|
<https://github.com/minetest/minetest/issues/5894>.
|
||||||
|
Apparently if we don't do this, large chests initially don't work when
|
||||||
|
placed at chunk borders, and some chests randomly don't work after
|
||||||
|
placing. ]]
|
||||||
|
-- FIXME: Remove this workaround when the bug has been fixed.
|
||||||
|
-- BEGIN OF WORKAROUND --
|
||||||
|
meta:set_string("workaround", "ignore_me")
|
||||||
|
meta:set_string("workaround", "") -- Done to keep metadata clean
|
||||||
|
-- END OF WORKAROUND --
|
||||||
|
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("main", 9 * 3)
|
||||||
|
|
||||||
|
--[[ The "input" list is *another* workaround (hahahaha!) around the fact that Minetest
|
||||||
|
does not support listrings to put items into an alternative list if the first one
|
||||||
|
happens to be full. See <https://github.com/minetest/minetest/issues/5343>.
|
||||||
|
This list is a hidden input-only list and immediately puts items into the appropriate chest.
|
||||||
|
It is only used for listrings and hoppers. This workaround is not that bad because it only
|
||||||
|
requires a simple “inventory allows” check for large chests.]]
|
||||||
|
-- FIXME: Refactor the listrings as soon Minetest supports alternative listrings
|
||||||
|
-- BEGIN OF LISTRING WORKAROUND
|
||||||
|
inv:set_size("input", 1)
|
||||||
|
-- END OF LISTRING WORKAROUND
|
||||||
|
|
||||||
|
-- Combine into a double chest if neighbouring another small chest
|
||||||
|
if minetest.get_node(get_double_container_neighbor_pos(pos, param2, "right")).name ==
|
||||||
|
names.small.a then
|
||||||
|
minetest.swap_node(pos, { name = names.right.a, param2 = param2 })
|
||||||
|
local p = get_double_container_neighbor_pos(pos, param2, "right")
|
||||||
|
minetest.swap_node(p, { name = names.left.a, param2 = param2 })
|
||||||
|
create_entity(p, names.left.a, double_textures, param2, true, d.sounds[2],
|
||||||
|
"mcl_chests_chest", "chest")
|
||||||
|
elseif minetest.get_node(get_double_container_neighbor_pos(pos, param2, "left")).name ==
|
||||||
|
names.small.a then
|
||||||
|
minetest.swap_node(pos, { name = names.left.a, param2 = param2 })
|
||||||
|
create_entity(pos, names.left.a, double_textures, param2, true, d.sounds[2],
|
||||||
|
"mcl_chests_chest", "chest")
|
||||||
|
local p = get_double_container_neighbor_pos(pos, param2, "left")
|
||||||
|
minetest.swap_node(p, { name = names.right.a, param2 = param2 })
|
||||||
|
else
|
||||||
|
minetest.swap_node(pos, { name = names.small.a, param2 = param2 })
|
||||||
|
create_entity(pos, names.small.a, small_textures, param2, false, d.sounds[2],
|
||||||
|
"mcl_chests_chest", "chest")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
minetest.get_meta(pos):set_string("name", itemstack:get_meta():get_string("name"))
|
||||||
|
end,
|
||||||
|
after_dig_node = drop_items_chest,
|
||||||
|
on_blast = on_chest_blast,
|
||||||
|
allow_metadata_inventory_move = protection_check_move,
|
||||||
|
allow_metadata_inventory_take = protection_check_take,
|
||||||
|
allow_metadata_inventory_put = protection_check_take,
|
||||||
|
on_metadata_inventory_move = log_inventory_move,
|
||||||
|
on_metadata_inventory_put = log_inventory_put,
|
||||||
|
on_metadata_inventory_take = log_inventory_take,
|
||||||
|
_mcl_blast_resistance = d.hardness,
|
||||||
|
_mcl_hardness = d.hardness,
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
local topnode = minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z })
|
||||||
|
if topnode and topnode.name and minetest.registered_nodes[topnode.name] then
|
||||||
|
if minetest.registered_nodes[topnode.name].groups.opaque == 1 then
|
||||||
|
-- won't open if there is no space from the top
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local name = minetest.get_meta(pos):get_string("name")
|
||||||
|
if name == "" then
|
||||||
|
name = d.title.small
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.show_formspec(clicker:get_player_name(),
|
||||||
|
sf("mcl_chests:%s_%s_%s_%s", d.canonical_basename, pos.x, pos.y, pos.z),
|
||||||
|
table.concat({
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[11.75,10.425]",
|
||||||
|
|
||||||
|
"label[0.375,0.375;" .. F(C(mcl_formspec.label_color, name)) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
|
||||||
|
sf("list[nodemeta:%s,%s,%s;main;0.375,0.75;9,3;]", pos.x, pos.y, pos.z),
|
||||||
|
"label[0.375,4.7;" .. F(C(mcl_formspec.label_color, S("Inventory"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 5.1, 9, 3),
|
||||||
|
"list[current_player;main;0.375,5.1;9,3;9]",
|
||||||
|
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 9.05, 9, 1),
|
||||||
|
"list[current_player;main;0.375,9.05;9,1;]",
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;main]", pos.x, pos.y, pos.z),
|
||||||
|
"listring[current_player;main]",
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
if d.on_rightclick then
|
||||||
|
d.on_rightclick(pos, node, clicker)
|
||||||
|
end
|
||||||
|
|
||||||
|
player_chest_open(clicker, pos, names.small.a, small_textures, node.param2, false, d.sounds[2],
|
||||||
|
"mcl_chests_chest")
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_destruct = function(pos)
|
||||||
|
close_forms(d.canonical_basename, pos)
|
||||||
|
end,
|
||||||
|
mesecons = d.mesecons,
|
||||||
|
on_rotate = simple_rotate,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(names.left.a, {
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.4375, -0.5, -0.4375, 0.5, 0.375, 0.4375 },
|
||||||
|
},
|
||||||
|
tiles = { "blank.png^[resize:16x16" },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
|
_chest_entity_textures = double_textures,
|
||||||
|
_chest_entity_sound = d.sounds[2],
|
||||||
|
_chest_entity_mesh = "mcl_chests_chest",
|
||||||
|
_chest_entity_animation_type = "chest",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = groups_left,
|
||||||
|
drop = d.drop,
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = d.sounds[1],
|
||||||
|
on_construct = construct_double_chest("left", names),
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
minetest.get_meta(pos):set_string("name", itemstack:get_meta():get_string("name"))
|
||||||
|
end,
|
||||||
|
on_destruct = destruct_double_chest("left", names, d.canonical_basename, small_textures, d.sounds[2]),
|
||||||
|
after_dig_node = drop_items_chest,
|
||||||
|
on_blast = on_chest_blast,
|
||||||
|
allow_metadata_inventory_move = protection_check_move,
|
||||||
|
allow_metadata_inventory_take = protection_check_take,
|
||||||
|
allow_metadata_inventory_put = protection_check_put("left"),
|
||||||
|
on_metadata_inventory_move = log_inventory_move,
|
||||||
|
on_metadata_inventory_put = log_inventory_put_double("left"),
|
||||||
|
on_metadata_inventory_take = log_inventory_take,
|
||||||
|
_mcl_blast_resistance = d.hardness,
|
||||||
|
_mcl_hardness = d.hardness,
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "left")
|
||||||
|
local above_def = minetest.registered_nodes[
|
||||||
|
minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z }).name
|
||||||
|
]
|
||||||
|
local above_def_other = minetest.registered_nodes[
|
||||||
|
minetest.get_node({ x = pos_other.x, y = pos_other.y + 1, z = pos_other.z }).name
|
||||||
|
]
|
||||||
|
|
||||||
|
if (not above_def or above_def.groups.opaque == 1 or not above_def_other
|
||||||
|
or above_def_other.groups.opaque == 1) then
|
||||||
|
-- won't open if there is no space from the top
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local name = minetest.get_meta(pos):get_string("name")
|
||||||
|
if name == "" then -- if empty after that ^
|
||||||
|
name = minetest.get_meta(pos_other):get_string("name")
|
||||||
|
end if name == "" then -- if STILL empty after that ^
|
||||||
|
name = d.title.double
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.show_formspec(clicker:get_player_name(),
|
||||||
|
sf("mcl_chests:%s_%s_%s_%s", d.canonical_basename, pos.x, pos.y, pos.z),
|
||||||
|
table.concat({
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[11.75,14.15]",
|
||||||
|
|
||||||
|
"label[0.375,0.375;" .. F(C(mcl_formspec.label_color, name)) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
|
||||||
|
sf("list[nodemeta:%s,%s,%s;main;0.375,0.75;9,3;]", pos.x, pos.y, pos.z),
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 4.5, 9, 3),
|
||||||
|
sf("list[nodemeta:%s,%s,%s;main;0.375,4.5;9,3;]", pos_other.x, pos_other.y, pos_other.z),
|
||||||
|
"label[0.375,8.45;" .. F(C(mcl_formspec.label_color, S("Inventory"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 8.825, 9, 3),
|
||||||
|
"list[current_player;main;0.375,8.825;9,3;9]",
|
||||||
|
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 12.775, 9, 1),
|
||||||
|
"list[current_player;main;0.375,12.775;9,1;]",
|
||||||
|
|
||||||
|
--BEGIN OF LISTRING WORKAROUND
|
||||||
|
"listring[current_player;main]",
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;input]", pos.x, pos.y, pos.z),
|
||||||
|
--END OF LISTRING WORKAROUND
|
||||||
|
|
||||||
|
"listring[current_player;main]" ..
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;main]", pos.x, pos.y, pos.z),
|
||||||
|
"listring[current_player;main]",
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;main]", pos_other.x, pos_other.y, pos_other.z),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
if d.on_rightclick_left then
|
||||||
|
d.on_rightclick_left(pos, node, clicker)
|
||||||
|
end
|
||||||
|
|
||||||
|
player_chest_open(clicker, pos, names.left.a, double_textures, node.param2, true, d.sounds[2],
|
||||||
|
"mcl_chests_chest")
|
||||||
|
end,
|
||||||
|
mesecons = d.mesecons,
|
||||||
|
on_rotate = no_rotate,
|
||||||
|
_mcl_hoppers_on_try_pull = hopper_pull_double("left"),
|
||||||
|
_mcl_hoppers_on_try_push = hopper_push_double("left"),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(names.right.a, {
|
||||||
|
drawtype = "nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.5, -0.5, -0.4375, 0.4375, 0.375, 0.4375 },
|
||||||
|
},
|
||||||
|
tiles = { "blank.png^[resize:16x16" },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
|
groups = groups_right,
|
||||||
|
drop = d.drop,
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = d.sounds[1],
|
||||||
|
on_construct = construct_double_chest("right", names),
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
minetest.get_meta(pos):set_string("name", itemstack:get_meta():get_string("name"))
|
||||||
|
end,
|
||||||
|
on_destruct = destruct_double_chest("right", names, d.canonical_basename, small_textures, d.sounds[2]),
|
||||||
|
after_dig_node = drop_items_chest,
|
||||||
|
on_blast = on_chest_blast,
|
||||||
|
allow_metadata_inventory_move = protection_check_move,
|
||||||
|
allow_metadata_inventory_take = protection_check_take,
|
||||||
|
allow_metadata_inventory_put = protection_check_put("right"),
|
||||||
|
on_metadata_inventory_move = log_inventory_move,
|
||||||
|
on_metadata_inventory_put = log_inventory_put_double("right"),
|
||||||
|
on_metadata_inventory_take = log_inventory_take,
|
||||||
|
_mcl_blast_resistance = d.hardness,
|
||||||
|
_mcl_hardness = d.hardness,
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "right")
|
||||||
|
local above_def = minetest.registered_nodes[
|
||||||
|
minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z }).name
|
||||||
|
]
|
||||||
|
local above_def_other = minetest.registered_nodes[
|
||||||
|
minetest.get_node({ x = pos_other.x, y = pos_other.y + 1, z = pos_other.z }).name
|
||||||
|
]
|
||||||
|
|
||||||
|
if (not above_def or above_def.groups.opaque == 1 or not above_def_other
|
||||||
|
or above_def_other.groups.opaque == 1) then
|
||||||
|
-- won't open if there is no space from the top
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local name = minetest.get_meta(pos):get_string("name")
|
||||||
|
if name == "" then -- if empty after that ^
|
||||||
|
name = minetest.get_meta(pos_other):get_string("name")
|
||||||
|
end if name == "" then -- if STILL empty after that ^
|
||||||
|
name = d.title.double
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.show_formspec(clicker:get_player_name(),
|
||||||
|
sf("mcl_chests:%s_%s_%s_%s", d.canonical_basename, pos.x, pos.y, pos.z),
|
||||||
|
table.concat({
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[11.75,14.15]",
|
||||||
|
|
||||||
|
"label[0.375,0.375;" .. F(C(mcl_formspec.label_color, name)) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
|
||||||
|
sf("list[nodemeta:%s,%s,%s;main;0.375,0.75;9,3;]", pos_other.x, pos_other.y, pos_other.z),
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 4.5, 9, 3),
|
||||||
|
sf("list[nodemeta:%s,%s,%s;main;0.375,4.5;9,3;]", pos.x, pos.y, pos.z),
|
||||||
|
"label[0.375,8.45;" .. F(C(mcl_formspec.label_color, S("Inventory"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 8.825, 9, 3),
|
||||||
|
"list[current_player;main;0.375,8.825;9,3;9]",
|
||||||
|
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 12.775, 9, 1),
|
||||||
|
"list[current_player;main;0.375,12.775;9,1;]",
|
||||||
|
|
||||||
|
--BEGIN OF LISTRING WORKAROUND
|
||||||
|
"listring[current_player;main]",
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;input]", pos.x, pos.y, pos.z),
|
||||||
|
--END OF LISTRING WORKAROUND
|
||||||
|
|
||||||
|
"listring[current_player;main]" ..
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;main]", pos_other.x, pos_other.y, pos_other.z),
|
||||||
|
"listring[current_player;main]",
|
||||||
|
sf("listring[nodemeta:%s,%s,%s;main]", pos.x, pos.y, pos.z),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
if d.on_rightclick_right then
|
||||||
|
d.on_rightclick_right(pos, node, clicker)
|
||||||
|
end
|
||||||
|
|
||||||
|
player_chest_open(clicker, pos_other, names.left.a, double_textures, node.param2, true, d.sounds[2],
|
||||||
|
"mcl_chests_chest")
|
||||||
|
end,
|
||||||
|
mesecons = d.mesecons,
|
||||||
|
on_rotate = no_rotate,
|
||||||
|
_mcl_hoppers_on_try_pull = hopper_pull_double("right"),
|
||||||
|
_mcl_hoppers_on_try_push = hopper_push_double("right"),
|
||||||
|
})
|
||||||
|
|
||||||
|
if doc then
|
||||||
|
doc.add_entry_alias("nodes", names.small.a, "nodes", names.left.a)
|
||||||
|
doc.add_entry_alias("nodes", names.small.a, "nodes", names.right.a)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns false if itemstack is a shulker box
|
||||||
|
function mcl_chests.is_not_shulker_box(stack)
|
||||||
|
local g = minetest.get_item_group(stack:get_name(), "shulker_box")
|
||||||
|
return g == 0 or g == nil
|
||||||
|
end
|
|
@ -0,0 +1,165 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
local get_double_container_neighbor_pos = mcl_util.get_double_container_neighbor_pos
|
||||||
|
|
||||||
|
local chestusage = S("To access its inventory, rightclick it. When broken, the items will drop out.")
|
||||||
|
|
||||||
|
mcl_chests.register_chest("chest", {
|
||||||
|
desc = S("Chest"),
|
||||||
|
longdesc = S(
|
||||||
|
"Chests are containers which provide 27 inventory slots. Chests can be turned into large chests with " ..
|
||||||
|
"double the capacity by placing two chests next to each other."
|
||||||
|
),
|
||||||
|
usagehelp = chestusage,
|
||||||
|
tt_help = S("27 inventory slots") .. "\n" .. S("Can be combined to a large chest"),
|
||||||
|
tiles = {
|
||||||
|
small = mcl_chests.tiles.chest_normal_small,
|
||||||
|
double = mcl_chests.tiles.chest_normal_double,
|
||||||
|
inv = { "default_chest_top.png", "mcl_chests_chest_bottom.png",
|
||||||
|
"mcl_chests_chest_right.png", "mcl_chests_chest_left.png",
|
||||||
|
"mcl_chests_chest_back.png", "default_chest_front.png" },
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
handy = 1,
|
||||||
|
axey = 1,
|
||||||
|
material_wood = 1,
|
||||||
|
flammable = -1,
|
||||||
|
},
|
||||||
|
sounds = { mcl_sounds.node_sound_wood_defaults() },
|
||||||
|
hardness = 2.5,
|
||||||
|
hidden = false,
|
||||||
|
})
|
||||||
|
|
||||||
|
local traptiles = {
|
||||||
|
small = mcl_chests.tiles.chest_trapped_small,
|
||||||
|
double = mcl_chests.tiles.chest_trapped_double,
|
||||||
|
}
|
||||||
|
|
||||||
|
mcl_chests.register_chest("trapped_chest", {
|
||||||
|
desc = S("Trapped Chest"),
|
||||||
|
title = {
|
||||||
|
small = S("Chest"),
|
||||||
|
double = S("Large Chest")
|
||||||
|
},
|
||||||
|
longdesc = S(
|
||||||
|
"A trapped chest is a container which provides 27 inventory slots. When it is opened, it sends a redstone " ..
|
||||||
|
"signal to its adjacent blocks as long it stays open. Trapped chests can be turned into large trapped " ..
|
||||||
|
"chests with double the capacity by placing two trapped chests next to each other."
|
||||||
|
),
|
||||||
|
usagehelp = chestusage,
|
||||||
|
tt_help = S("27 inventory slots") ..
|
||||||
|
"\n" .. S("Can be combined to a large chest") .. "\n" .. S("Emits a redstone signal when opened"),
|
||||||
|
tiles = traptiles,
|
||||||
|
groups = {
|
||||||
|
handy = 1,
|
||||||
|
axey = 1,
|
||||||
|
material_wood = 1,
|
||||||
|
flammable = -1,
|
||||||
|
mesecon = 2,
|
||||||
|
},
|
||||||
|
sounds = { mcl_sounds.node_sound_wood_defaults() },
|
||||||
|
hardness = 2.5,
|
||||||
|
hidden = false,
|
||||||
|
mesecons = {
|
||||||
|
receptor = {
|
||||||
|
state = mesecon.state.off,
|
||||||
|
rules = mesecon.rules.pplate,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_on_small", param2 = node.param2 })
|
||||||
|
mcl_chests.find_or_create_entity(pos, "mcl_chests:trapped_chest_on_small", { "mcl_chests_trapped.png" },
|
||||||
|
node.param2, false, "default_chest", "mcl_chests_chest", "chest")
|
||||||
|
:reinitialize("mcl_chests:trapped_chest_on_small")
|
||||||
|
mesecon.receptor_on(pos, mesecon.rules.pplate)
|
||||||
|
end,
|
||||||
|
on_rightclick_left = function(pos, node, clicker)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_int("players", 1)
|
||||||
|
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_on_left", param2 = node.param2 })
|
||||||
|
mcl_chests.find_or_create_entity(pos, "mcl_chests:trapped_chest_on_left",
|
||||||
|
mcl_chests.tiles.chest_trapped_double, node.param2, true, "default_chest", "mcl_chests_chest",
|
||||||
|
"chest"):reinitialize("mcl_chests:trapped_chest_on_left")
|
||||||
|
mesecon.receptor_on(pos, mesecon.rules.pplate)
|
||||||
|
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "left")
|
||||||
|
minetest.swap_node(pos_other, { name = "mcl_chests:trapped_chest_on_right", param2 = node.param2 })
|
||||||
|
mesecon.receptor_on(pos_other, mesecon.rules.pplate)
|
||||||
|
end,
|
||||||
|
on_rightclick_right = function(pos, node, clicker)
|
||||||
|
local pos_other = get_double_container_neighbor_pos(pos, node.param2, "right")
|
||||||
|
|
||||||
|
minetest.swap_node(pos, { name = "mcl_chests:trapped_chest_on_right", param2 = node.param2 })
|
||||||
|
mesecon.receptor_on(pos, mesecon.rules.pplate)
|
||||||
|
|
||||||
|
minetest.swap_node(pos_other, { name = "mcl_chests:trapped_chest_on_left", param2 = node.param2 })
|
||||||
|
mcl_chests.find_or_create_entity(pos_other, "mcl_chests:trapped_chest_on_left",
|
||||||
|
mcl_chests.tiles.chest_trapped_double, node.param2, true, "default_chest", "mcl_chests_chest",
|
||||||
|
"chest"):reinitialize("mcl_chests:trapped_chest_on_left")
|
||||||
|
mesecon.receptor_on(pos_other, mesecon.rules.pplate)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
mcl_chests.register_chest("trapped_chest_on", {
|
||||||
|
title = {
|
||||||
|
small = S("Chest"),
|
||||||
|
double = S("Large Chest")
|
||||||
|
},
|
||||||
|
tiles = traptiles,
|
||||||
|
groups = {
|
||||||
|
handy = 1,
|
||||||
|
axey = 1,
|
||||||
|
material_wood = 1,
|
||||||
|
flammable = -1,
|
||||||
|
mesecon = 2,
|
||||||
|
},
|
||||||
|
sounds = { mcl_sounds.node_sound_wood_defaults() },
|
||||||
|
hardness = 2.5,
|
||||||
|
hidden = true,
|
||||||
|
mesecons = {
|
||||||
|
receptor = {
|
||||||
|
state = mesecon.state.on,
|
||||||
|
rules = mesecon.rules.pplate,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
drop = "trapped_chest",
|
||||||
|
canonical_basename = "trapped_chest"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_chests:chest",
|
||||||
|
recipe = {
|
||||||
|
{ "group:wood", "group:wood", "group:wood" },
|
||||||
|
{ "group:wood", "", "group:wood" },
|
||||||
|
{ "group:wood", "group:wood", "group:wood" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mcl_chests:chest",
|
||||||
|
burntime = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mcl_chests:trapped_chest",
|
||||||
|
burntime = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Disable active/open trapped chests when loaded because nobody could have them open at loading time.
|
||||||
|
-- Fixes redstone weirdness.
|
||||||
|
minetest.register_lbm({
|
||||||
|
label = "Disable active trapped chests",
|
||||||
|
name = "mcl_chests:reset_trapped_chests",
|
||||||
|
nodenames = {
|
||||||
|
"mcl_chests:trapped_chest_on_small",
|
||||||
|
"mcl_chests:trapped_chest_on_left",
|
||||||
|
"mcl_chests:trapped_chest_on_right"
|
||||||
|
},
|
||||||
|
run_at_every_load = true,
|
||||||
|
action = function(pos, node)
|
||||||
|
minetest.log("action", "[mcl_chests] Disabled active trapped chest on load: " .. minetest.pos_to_string(pos))
|
||||||
|
mcl_chests.chest_update_after_close(pos)
|
||||||
|
end,
|
||||||
|
})
|
|
@ -0,0 +1,138 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
local F = minetest.formspec_escape
|
||||||
|
local C = minetest.colorize
|
||||||
|
|
||||||
|
local longdesc = S(
|
||||||
|
"Ender chests grant you access to a single personal interdimensional inventory with 27 slots. This " ..
|
||||||
|
"inventory is the same no matter from which ender chest you access it from. If you put one item into one " ..
|
||||||
|
"ender chest, you will find it in all other ender chests. Each player will only see their own items, but " ..
|
||||||
|
"not the items of other players."
|
||||||
|
)
|
||||||
|
|
||||||
|
minetest.register_node("mcl_chests:ender_chest", {
|
||||||
|
description = S("Ender Chest"),
|
||||||
|
_tt_help = S("27 interdimensional inventory slots") ..
|
||||||
|
"\n" .. S("Put items inside, retrieve them from any ender chest"),
|
||||||
|
_doc_items_longdesc = longdesc,
|
||||||
|
_doc_items_usagehelp = S("Rightclick the ender chest to access your personal interdimensional inventory."),
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcl_chests_chest.b3d",
|
||||||
|
tiles = mcl_chests.tiles.chest_ender_small,
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = { deco_block = 1 },
|
||||||
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
on_construct = function(pos)
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
node.name = "mcl_chests:ender_chest_small"
|
||||||
|
minetest.set_node(pos, node)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
local formspec_ender_chest = table.concat({
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[11.75,10.425]",
|
||||||
|
|
||||||
|
"label[0.375,0.375;" .. F(C(mcl_formspec.label_color, S("Ender Chest"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
|
||||||
|
"list[current_player;enderchest;0.375,0.75;9,3;]",
|
||||||
|
"label[0.375,4.7;" .. F(C(mcl_formspec.label_color, S("Inventory"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 5.1, 9, 3),
|
||||||
|
"list[current_player;main;0.375,5.1;9,3;9]",
|
||||||
|
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 9.05, 9, 1),
|
||||||
|
"list[current_player;main;0.375,9.05;9,1;]",
|
||||||
|
|
||||||
|
"listring[current_player;enderchest]",
|
||||||
|
"listring[current_player;main]",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcl_chests:ender_chest_small", {
|
||||||
|
description = S("Ender Chest"),
|
||||||
|
_tt_help = S("27 interdimensional inventory slots") ..
|
||||||
|
"\n" .. S("Put items inside, retrieve them from any ender chest"),
|
||||||
|
_doc_items_longdesc = longdesc,
|
||||||
|
_doc_items_usagehelp = S("Rightclick the ender chest to access your personal interdimensional inventory."),
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.4375, -0.5, -0.4375, 0.4375, 0.375, 0.4375 },
|
||||||
|
},
|
||||||
|
_chest_entity_textures = mcl_chests.tiles.ender_chest_texture,
|
||||||
|
_chest_entity_sound = "mcl_chests_enderchest",
|
||||||
|
_chest_entity_mesh = "mcl_chests_chest",
|
||||||
|
_chest_entity_animation_type = "chest",
|
||||||
|
tiles = { "blank.png^[resize:16x16" },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
|
-- Note: The “container” group is missing here because the ender chest does not
|
||||||
|
-- have an inventory on its own
|
||||||
|
groups = { pickaxey = 1, deco_block = 1, material_stone = 1, chest_entity = 1, not_in_creative_inventory = 1 },
|
||||||
|
is_ground_content = false,
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 7,
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
drop = "mcl_core:obsidian 8",
|
||||||
|
on_construct = function(pos)
|
||||||
|
mcl_chests.create_entity(pos, "mcl_chests:ender_chest_small", mcl_chests.tiles.ender_chest_texture,
|
||||||
|
minetest.get_node(pos).param2, false, "mcl_chests_enderchest", "mcl_chests_chest", "chest")
|
||||||
|
end,
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
if minetest.registered_nodes[minetest.get_node(vector.offset(pos, 0, 1, 0)).name].groups.opaque == 1 then
|
||||||
|
-- won't open if there is no space from the top
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
minetest.show_formspec(clicker:get_player_name(), "mcl_chests:ender_chest_" .. clicker:get_player_name(),
|
||||||
|
formspec_ender_chest)
|
||||||
|
mcl_chests.player_chest_open(clicker, pos, "mcl_chests:ender_chest_small",
|
||||||
|
mcl_chests.tiles.ender_chest_texture, node.param2, false, "mcl_chests_enderchest",
|
||||||
|
"mcl_chests_chest")
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if fields.quit then
|
||||||
|
mcl_chests.player_chest_close(sender)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
_mcl_blast_resistance = 600,
|
||||||
|
_mcl_hardness = 22.5,
|
||||||
|
_mcl_silk_touch_drop = { "mcl_chests:ender_chest" },
|
||||||
|
on_rotate = mcl_chests.simple_rotate,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
local inv = player:get_inventory()
|
||||||
|
inv:set_size("enderchest", 9 * 3)
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_allow_player_inventory_action(function(player, action, inv, info)
|
||||||
|
if inv:get_location().type == "player" and (
|
||||||
|
action == "move" and (info.from_list == "enderchest" or info.to_list == "enderchest")
|
||||||
|
or action == "put" and info.listname == "enderchest"
|
||||||
|
or action == "take" and info.listname == "enderchest") then
|
||||||
|
local def = player:get_wielded_item():get_definition()
|
||||||
|
local range = (def and def.range or player:get_inventory():get_stack("hand", 1):get_definition().range) + 1
|
||||||
|
if not minetest.find_node_near(player:get_pos(), range, "mcl_chests:ender_chest_small", true) then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_chests:ender_chest",
|
||||||
|
recipe = {
|
||||||
|
{ "mcl_core:obsidian", "mcl_core:obsidian", "mcl_core:obsidian" },
|
||||||
|
{ "mcl_core:obsidian", "mcl_end:ender_eye", "mcl_core:obsidian" },
|
||||||
|
{ "mcl_core:obsidian", "mcl_core:obsidian", "mcl_core:obsidian" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_lbm({
|
||||||
|
label = "Upgrade old ender chest formspec",
|
||||||
|
name = "mcl_chests:replace_old_ender_form",
|
||||||
|
nodenames = { "mcl_chests:ender_chest_small" },
|
||||||
|
run_at_every_load = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("formspec", "")
|
||||||
|
end,
|
||||||
|
})
|
|
@ -0,0 +1,50 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
mcl_chests.register_chest("stone_chest", {
|
||||||
|
desc = S("Stone Chest"),
|
||||||
|
title = {
|
||||||
|
small = S("Stone Chest"),
|
||||||
|
double = S("Large Stone Chest")
|
||||||
|
},
|
||||||
|
longdesc = S(
|
||||||
|
"Stone Chests are containers which provide 27 inventory slots. Stone Chests can be turned into" ..
|
||||||
|
"large stone chests with double the capacity by placing two stone chests next to each other."
|
||||||
|
),
|
||||||
|
usagehelp = S("To access its inventory, rightclick it. When broken, the items will drop out."),
|
||||||
|
tt_help = S("27 inventory slots") .. "\n" .. S("Can be combined to a large stone chest"),
|
||||||
|
tiles = {
|
||||||
|
small = { mcl_chests.tiles.chest_normal_small[1] .. "^[hsl:-15:-80:-20" },
|
||||||
|
double = { mcl_chests.tiles.chest_normal_double[1] .. "^[hsl:-15:-80:-20" },
|
||||||
|
inv = { "default_chest_top.png^[hsl:-15:-80:-20",
|
||||||
|
"mcl_chests_chest_bottom.png^[hsl:-15:-80:-20",
|
||||||
|
"mcl_chests_chest_right.png^[hsl:-15:-80:-20",
|
||||||
|
"mcl_chests_chest_left.png^[hsl:-15:-80:-20",
|
||||||
|
"mcl_chests_chest_back.png^[hsl:-15:-80:-20",
|
||||||
|
"default_chest_front.png^[hsl:-15:-80:-20"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
pickaxey = 1,
|
||||||
|
stone = 1,
|
||||||
|
material_stone = 1,
|
||||||
|
},
|
||||||
|
sounds = {
|
||||||
|
mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
"mcl_chests_enderchest"
|
||||||
|
},
|
||||||
|
hardness = 4.0,
|
||||||
|
hidden = false,
|
||||||
|
-- It bites!
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
mcl_util.deal_damage(clicker, 2)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_chests:stone_chest",
|
||||||
|
recipe = {
|
||||||
|
{ "mcl_core:stone", "mcl_core:stone", "mcl_core:stone" },
|
||||||
|
{ "mcl_core:stone", "", "mcl_core:stone" },
|
||||||
|
{ "mcl_core:stone", "mcl_core:stone", "mcl_core:stone" },
|
||||||
|
},
|
||||||
|
})
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,36 @@
|
||||||
|
# textdomain: mcl_chests
|
||||||
|
Chest=Cofre
|
||||||
|
Chests are containers which provide 27 inventory slots. Chests can be turned into large chests with double the capacity by placing two chests next to each other.=Os cofres son recipientes que ofrecen 27 ranuras de inventario. Os cofres pódense converter en cofres grandes co dobre de capacidade colocando dous cofres un ao carón do outro.
|
||||||
|
To access its inventory, rightclick it. When broken, the items will drop out.=Para acceder ao seu inventario, fai clic co botón dereito nel. Cando se rompan, os elementos caerán.
|
||||||
|
Trapped Chest=Cofre trampa
|
||||||
|
A trapped chest is a container which provides 27 inventory slots. When it is opened, it sends a redstone signal to its adjacent blocks as long it stays open. Trapped chests can be turned into large trapped chests with double the capacity by placing two trapped chests next to each other.=Un cofre trampa é un recipiente que ofrece 27 espazos de inventario. Cando se abre, envía un sinal de pedra vermella aos seus bloques adxacentes mentres permaneza aberto. Os cofres trampa pódense converter en grandes cofres trampa con o dobre de capacidade colocando dous cofres trampa un ao carón do outro.
|
||||||
|
Ender Chest=Cofre de ender
|
||||||
|
Ender chests grant you access to a single personal interdimensional inventory with 27 slots. This inventory is the same no matter from which ender chest you access it from. If you put one item into one ender chest, you will find it in all other ender chests. Each player will only see their own items, but not the items of other players.=Os cofres Ender danche acceso a un único inventario interdimensional persoal con 27 espazos. Este inventario é o mesmo sen importar o cofre desde o que accedas a el. Se metes un elemento nun cofre ender, atoparao en todos os outros cofres ender. Cada xogador só verá os seus propios elementos, pero non os dos outros xogadores.
|
||||||
|
Rightclick the ender chest to access your personal interdimensional inventory.=Fai clic co botón dereito no cofre final para acceder ao teu inventario interdimensional persoal.
|
||||||
|
White Shulker Box=Caixa Shulker Branca
|
||||||
|
Light Grey Shulker Box=Caixa Shulker gris claro
|
||||||
|
Orange Shulker Box=Caixa Shulker laranxa
|
||||||
|
Cyan Shulker Box=Caixa shulker cian
|
||||||
|
Magenta Shulker Box=Caixa shulker maxenta
|
||||||
|
Purple Shulker Box=Caixa shulker morada
|
||||||
|
Light Blue Shulker Box=Caixa shulker azul claro
|
||||||
|
Blue Shulker Box=Caixa shulker azul
|
||||||
|
Yellow Shulker Box=Caixa shulker amarela
|
||||||
|
Brown Shulker Box=Caixa shulker marrón
|
||||||
|
Lime Shulker Box=Caixa shulker verde lima
|
||||||
|
Green Shulker Box=Caixa shulker verde
|
||||||
|
Pink Shulker Box=Caixa shulker rosa
|
||||||
|
Red Shulker Box=Caixa shulker vermella
|
||||||
|
Grey Shulker Box=Caixa shulker gris
|
||||||
|
Black Shulker Box=Caixa shulker negra
|
||||||
|
A shulker box is a portable container which provides 27 inventory slots for any item except shulker boxes. Shulker boxes keep their inventory when broken, so shulker boxes as well as their contents can be taken as a single item. Shulker boxes come in many different colors.=Unha caixa de shulker é un recipiente portátil que ofrece 27 espazos de inventario para calquera artigo, excepto caixas shulker. As caixas de shulker manteñen o seu inventario cando se rompen, polo que as caixas de shulker e o seu contido pódense tomar como un único elemento. As caixas Shulker veñen en moitas cores diferentes.
|
||||||
|
To access the inventory of a shulker box, place and right-click it. To take a shulker box and its contents with you, just break and collect it, the items will not fall out.=Para acceder ao inventario dunha caixa de shulker, colócaa e fai clic co botón dereito. Para levar unha caixa shulker e o seu contido contigo, só tes que rompela e recollela, os elementos non se caerán. Coloca de novo a caixa shulker para poder recuperar o seu contido.
|
||||||
|
Shulker Box=Caixa Shulker
|
||||||
|
Large Chest=Cofre grande
|
||||||
|
Inventory=Inventario
|
||||||
|
27 inventory slots=27 espazos de inventario
|
||||||
|
Can be carried around with its contents=Pódese transportar co seu contido
|
||||||
|
Can be combined to a large chest=Pódese combinar a un cofre grande
|
||||||
|
27 interdimensional inventory slots=27 rañuras de inventario interdimensional
|
||||||
|
Put items inside, retrieve them from any ender chest=Coloca elementos dentro, recuperaos de calqueira cofre de ender
|
||||||
|
Emits a redstone signal when opened=Emite un sinal de pedra vermella cando se abre
|
|
@ -0,0 +1,358 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
local F = minetest.formspec_escape
|
||||||
|
local C = minetest.colorize
|
||||||
|
|
||||||
|
-- Shulker boxes
|
||||||
|
local boxtypes = {
|
||||||
|
white = S("White Shulker Box"),
|
||||||
|
grey = S("Light Grey Shulker Box"),
|
||||||
|
orange = S("Orange Shulker Box"),
|
||||||
|
cyan = S("Cyan Shulker Box"),
|
||||||
|
magenta = S("Magenta Shulker Box"),
|
||||||
|
violet = S("Purple Shulker Box"),
|
||||||
|
lightblue = S("Light Blue Shulker Box"),
|
||||||
|
blue = S("Blue Shulker Box"),
|
||||||
|
yellow = S("Yellow Shulker Box"),
|
||||||
|
brown = S("Brown Shulker Box"),
|
||||||
|
green = S("Lime Shulker Box"),
|
||||||
|
dark_green = S("Green Shulker Box"),
|
||||||
|
pink = S("Pink Shulker Box"),
|
||||||
|
red = S("Red Shulker Box"),
|
||||||
|
dark_grey = S("Grey Shulker Box"),
|
||||||
|
black = S("Black Shulker Box"),
|
||||||
|
}
|
||||||
|
|
||||||
|
local shulker_mob_textures = {
|
||||||
|
white = "mobs_mc_shulker_white.png",
|
||||||
|
grey = "mobs_mc_shulker_silver.png",
|
||||||
|
orange = "mobs_mc_shulker_orange.png",
|
||||||
|
cyan = "mobs_mc_shulker_cyan.png",
|
||||||
|
magenta = "mobs_mc_shulker_magenta.png",
|
||||||
|
violet = "mobs_mc_shulker_purple.png",
|
||||||
|
lightblue = "mobs_mc_shulker_light_blue.png",
|
||||||
|
blue = "mobs_mc_shulker_blue.png",
|
||||||
|
yellow = "mobs_mc_shulker_yellow.png",
|
||||||
|
brown = "mobs_mc_shulker_brown.png",
|
||||||
|
green = "mobs_mc_shulker_lime.png",
|
||||||
|
dark_green = "mobs_mc_shulker_green.png",
|
||||||
|
pink = "mobs_mc_shulker_pink.png",
|
||||||
|
red = "mobs_mc_shulker_red.png",
|
||||||
|
dark_grey = "mobs_mc_shulker_gray.png",
|
||||||
|
black = "mobs_mc_shulker_black.png",
|
||||||
|
}
|
||||||
|
|
||||||
|
local canonical_shulker_color = "violet"
|
||||||
|
local normal_canonical_name = "mcl_chests:" .. canonical_shulker_color .. "_shulker_box"
|
||||||
|
local small_canonical_name = normal_canonical_name .. "_small"
|
||||||
|
|
||||||
|
--WARNING: after formspec v4 update, old shulker boxes will need to be placed again to get the new formspec
|
||||||
|
local function formspec_shulker_box(name)
|
||||||
|
if not name or name == "" then
|
||||||
|
name = S("Shulker Box")
|
||||||
|
end
|
||||||
|
|
||||||
|
return table.concat({
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[11.75,10.425]",
|
||||||
|
|
||||||
|
"label[0.375,0.375;" .. F(C(mcl_formspec.label_color, name)) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
|
||||||
|
"list[context;main;0.375,0.75;9,3;]",
|
||||||
|
"label[0.375,4.7;" .. F(C(mcl_formspec.label_color, S("Inventory"))) .. "]",
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 5.1, 9, 3),
|
||||||
|
"list[current_player;main;0.375,5.1;9,3;9]",
|
||||||
|
|
||||||
|
mcl_formspec.get_itemslot_bg_v4(0.375, 9.05, 9, 1),
|
||||||
|
"list[current_player;main;0.375,9.05;9,1;]",
|
||||||
|
|
||||||
|
"listring[context;main]",
|
||||||
|
"listring[current_player;main]",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
local function set_shulkerbox_meta(nmeta, imeta)
|
||||||
|
local name = imeta:get_string("name")
|
||||||
|
nmeta:set_string("description", imeta:get_string("description"))
|
||||||
|
nmeta:set_string("name", name)
|
||||||
|
nmeta:set_string("formspec", formspec_shulker_box(name))
|
||||||
|
end
|
||||||
|
|
||||||
|
for color, desc in pairs(boxtypes) do
|
||||||
|
local mob_texture = shulker_mob_textures[color]
|
||||||
|
local is_canonical = color == canonical_shulker_color
|
||||||
|
local longdesc, usagehelp, create_entry, entry_name
|
||||||
|
if doc then
|
||||||
|
if is_canonical then
|
||||||
|
longdesc = S(
|
||||||
|
"A shulker box is a portable container which provides 27 inventory slots for any item " ..
|
||||||
|
"except shulker boxes. Shulker boxes keep their inventory when broken, so shulker boxes " ..
|
||||||
|
"as well as their contents can be taken as a single item. Shulker boxes come in many " ..
|
||||||
|
"different colors."
|
||||||
|
)
|
||||||
|
usagehelp = S(
|
||||||
|
"To access the inventory of a shulker box, place and right-click it. To take a shulker " ..
|
||||||
|
"box and its contents with you, just break and collect it, the items will not fall out. " ..
|
||||||
|
"Place the shulker box again to be able to retrieve its contents."
|
||||||
|
)
|
||||||
|
entry_name = S("Shulker Box")
|
||||||
|
else
|
||||||
|
create_entry = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local normal_name = "mcl_chests:" .. color .. "_shulker_box"
|
||||||
|
local small_name = normal_name .. "_small"
|
||||||
|
|
||||||
|
minetest.register_node(normal_name, {
|
||||||
|
description = desc,
|
||||||
|
_tt_help = S("27 inventory slots") .. "\n" .. S("Can be carried around with its contents"),
|
||||||
|
_doc_items_create_entry = create_entry,
|
||||||
|
_doc_items_entry_name = entry_name,
|
||||||
|
_doc_items_longdesc = longdesc,
|
||||||
|
_doc_items_usagehelp = usagehelp,
|
||||||
|
tiles = { mob_texture },
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcl_chests_shulker.b3d",
|
||||||
|
groups = {
|
||||||
|
handy = 1,
|
||||||
|
pickaxey = 1,
|
||||||
|
container = 2,
|
||||||
|
deco_block = 1,
|
||||||
|
dig_by_piston = 1,
|
||||||
|
shulker_box = 1,
|
||||||
|
old_shulker_box_node = 1
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
stack_max = 1,
|
||||||
|
drop = "",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
on_construct = function(pos)
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
node.name = small_name
|
||||||
|
minetest.set_node(pos, node)
|
||||||
|
end,
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
local nmeta = minetest.get_meta(pos)
|
||||||
|
local imeta = itemstack:get_meta()
|
||||||
|
|
||||||
|
-- Convert old itemstacks to not use get_metadata()
|
||||||
|
if not imeta:contains("inv") and
|
||||||
|
(itemstack:get_metadata() ~= "") then
|
||||||
|
imeta:set_string("inv", itemstack:get_metadata())
|
||||||
|
itemstack:set_metadata("") -- clear
|
||||||
|
end
|
||||||
|
|
||||||
|
local iinv_main = minetest.deserialize(imeta:get_string("inv"))
|
||||||
|
local ninv = nmeta:get_inventory()
|
||||||
|
ninv:set_list("main", iinv_main)
|
||||||
|
ninv:set_size("main", 9 * 3)
|
||||||
|
set_shulkerbox_meta(nmeta, imeta)
|
||||||
|
|
||||||
|
if minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
if not ninv:is_empty("main") then
|
||||||
|
return nil
|
||||||
|
else
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
_on_dispense = function(stack, pos, droppos, dropnode, dropdir)
|
||||||
|
-- Place shulker box as node
|
||||||
|
if minetest.registered_nodes[dropnode.name].buildable_to then
|
||||||
|
minetest.set_node(droppos, { name = small_name, param2 = minetest.dir_to_facedir(dropdir) })
|
||||||
|
local ninv = minetest.get_inventory({ type = "node", pos = droppos })
|
||||||
|
local imeta = stack:get_meta()
|
||||||
|
local iinv_main = minetest.deserialize(imeta:get_string("inv"))
|
||||||
|
ninv:set_list("main", iinv_main)
|
||||||
|
ninv:set_size("main", 9 * 3)
|
||||||
|
set_shulkerbox_meta(minetest.get_meta(droppos), imeta)
|
||||||
|
stack:take_item()
|
||||||
|
end
|
||||||
|
return stack
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(small_name, {
|
||||||
|
description = desc,
|
||||||
|
_tt_help = S("27 inventory slots") .. "\n" .. S("Can be carried around with its contents"),
|
||||||
|
_doc_items_create_entry = create_entry,
|
||||||
|
_doc_items_entry_name = entry_name,
|
||||||
|
_doc_items_longdesc = longdesc,
|
||||||
|
_doc_items_usagehelp = usagehelp,
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.48, -0.5, -0.48, 0.48, 0.489, 0.48 },
|
||||||
|
},
|
||||||
|
tiles = { "blank.png^[resize:16x16" },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
|
_chest_entity_textures = { mob_texture },
|
||||||
|
_chest_entity_sound = "mcl_chests_shulker",
|
||||||
|
_chest_entity_mesh = "mcl_chests_shulker",
|
||||||
|
_chest_entity_animation_type = "shulker",
|
||||||
|
groups = {
|
||||||
|
handy = 1,
|
||||||
|
pickaxey = 1,
|
||||||
|
container = 2,
|
||||||
|
deco_block = 1,
|
||||||
|
dig_by_piston = 1,
|
||||||
|
shulker_box = 1,
|
||||||
|
chest_entity = 1,
|
||||||
|
not_in_creative_inventory = 1
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
stack_max = 1,
|
||||||
|
drop = "",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", formspec_shulker_box(nil))
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("main", 9 * 3)
|
||||||
|
mcl_chests.create_entity(pos, small_name, { mob_texture }, minetest.get_node(pos).param2, false,
|
||||||
|
"mcl_chests_shulker", "mcl_chests_shulker", "shulker")
|
||||||
|
end,
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
local nmeta = minetest.get_meta(pos)
|
||||||
|
local imeta = itemstack:get_meta()
|
||||||
|
|
||||||
|
-- Convert old itemstacks to not use get_metadata()
|
||||||
|
if not imeta:contains("inv") and
|
||||||
|
(itemstack:get_metadata() ~= "") then
|
||||||
|
imeta:set_string("inv", itemstack:get_metadata())
|
||||||
|
itemstack:set_metadata("") -- clear
|
||||||
|
end
|
||||||
|
|
||||||
|
local iinv_main = minetest.deserialize(imeta:get_string("inv"))
|
||||||
|
local ninv = nmeta:get_inventory()
|
||||||
|
ninv:set_list("main", iinv_main)
|
||||||
|
ninv:set_size("main", 9 * 3)
|
||||||
|
set_shulkerbox_meta(nmeta, imeta)
|
||||||
|
|
||||||
|
if minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
if not ninv:is_empty("main") then
|
||||||
|
return nil
|
||||||
|
else
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_rightclick = function(pos, node, clicker)
|
||||||
|
mcl_chests.player_chest_open(clicker, pos, small_name, { mob_texture }, node.param2, false,
|
||||||
|
"mcl_chests_shulker", "mcl_chests_shulker", true)
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if fields.quit then
|
||||||
|
mcl_chests.player_chest_close(sender)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_destruct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local items = {}
|
||||||
|
for i = 1, inv:get_size("main") do
|
||||||
|
local stack = inv:get_stack("main", i)
|
||||||
|
items[i] = stack:to_string()
|
||||||
|
end
|
||||||
|
local data = minetest.serialize(items)
|
||||||
|
local boxitem = ItemStack("mcl_chests:" .. color .. "_shulker_box")
|
||||||
|
local boxitem_meta = boxitem:get_meta()
|
||||||
|
boxitem_meta:set_string("description", meta:get_string("description"))
|
||||||
|
boxitem_meta:set_string("name", meta:get_string("name"))
|
||||||
|
boxitem_meta:set_string("inv", data)
|
||||||
|
|
||||||
|
if minetest.is_creative_enabled("") then
|
||||||
|
if not inv:is_empty("main") then
|
||||||
|
minetest.add_item(pos, boxitem)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
minetest.add_item(pos, boxitem)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
allow_metadata_inventory_move = mcl_chests.protection_check_move,
|
||||||
|
allow_metadata_inventory_take = mcl_chests.protection_check_put_take,
|
||||||
|
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
if minetest.is_protected(pos, name) then
|
||||||
|
minetest.record_protection_violation(pos, name)
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
-- Do not allow to place shulker boxes into shulker boxes
|
||||||
|
local group = minetest.get_item_group(stack:get_name(), "shulker_box")
|
||||||
|
if group == 0 or group == nil then
|
||||||
|
return stack:get_count()
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_rotate = mcl_chests.simple_rotate,
|
||||||
|
_mcl_blast_resistance = 2,
|
||||||
|
_mcl_hardness = 2,
|
||||||
|
_mcl_hoppers_on_try_push = function(pos, hop_pos, hop_inv, hop_list)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
return inv, "main",
|
||||||
|
mcl_util.select_stack(hop_inv, hop_list, inv, "main", mcl_chests.is_not_shulker_box, 1)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
if doc and not is_canonical then
|
||||||
|
doc.add_entry_alias("nodes", normal_canonical_name, "nodes", normal_name)
|
||||||
|
doc.add_entry_alias("nodes", small_canonical_name, "nodes", small_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = normal_name,
|
||||||
|
recipe = { "group:shulker_box", "mcl_dye:" .. color },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_chests:violet_shulker_box",
|
||||||
|
recipe = {
|
||||||
|
{ "mcl_mobitems:shulker_shell" },
|
||||||
|
{ "mcl_chests:chest" },
|
||||||
|
{ "mcl_mobitems:shulker_shell" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Save metadata of shulker box when used in crafting
|
||||||
|
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||||
|
if minetest.get_item_group(itemstack:get_name(), "shulker_box") ~= 1 then return end
|
||||||
|
|
||||||
|
local original
|
||||||
|
for i = 1, #old_craft_grid do
|
||||||
|
local item = old_craft_grid[i]:get_name()
|
||||||
|
if minetest.get_item_group(item, "shulker_box") == 1 then
|
||||||
|
original = old_craft_grid[i]
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if original then
|
||||||
|
local ometa = original:get_meta():to_table()
|
||||||
|
local nmeta = itemstack:get_meta()
|
||||||
|
nmeta:from_table(ometa)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_lbm({
|
||||||
|
label = "Update shulker box formspecs (0.72.0)",
|
||||||
|
name = "mcl_chests:update_shulker_box_formspecs_0_72_0",
|
||||||
|
nodenames = { "group:shulker_box" },
|
||||||
|
run_at_every_load = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", formspec_shulker_box(meta:get_string("name")))
|
||||||
|
end,
|
||||||
|
})
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_clock
|
||||||
|
Clocks are tools which shows the current time of day in the Overworld.=Os reloxos son ferramentas que amosan a hora do día no mundo.
|
||||||
|
The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.=O reloxo conten un disco xiratorio cun símbolo do sol (disco amarelo) e un símbolo da lua e un pequeno "punteiro" que amosa a hora actual do día ao estimala posición real do sol e a lua no ceo. O mediodía está representado polo símbolo do sol e a medianoite está representada polo símbolo da lua.
|
||||||
|
Clock=Reloxo
|
||||||
|
Displays the time of day in the Overworld=Amosa a hora do día no mundo.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue