1
0
Fork 0

Compare commits

..

1 Commits

Author SHA1 Message Date
the-real-herowl 257717e58a Update game.conf for hotfix release 0.86.1
Signed-off-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
2023-12-27 19:47:05 +00:00
240 changed files with 1861 additions and 5569 deletions

4
.gitignore vendored
View File

@ -5,6 +5,4 @@
*.blend3
/.idea/
*.xcf
.Rproj.user
prompt.txt
__pycache__
.Rproj.user

View File

@ -1,201 +0,0 @@
# MineClone2
Un gioco Minecraft-like non ufficiale per Minetest. Derivato da MineClone di davedevilis.
Sviluppato da molte persone. Non sviluppato o sponsorizzato da Mojang AB.
### Gameplay
Cominci in un mondo generato casualmente, fatto interamente di cubi. Puoi esplorare
il mondo e scavare e costruire quasi ogni blocco nel mondo per creare nuove
strutture. Puoi scegliere di giocare in "modalità sopravvivenza" nella quale dovrai
combattere i mostri e la fame per sopravvivere e progredire lentamente attraverso
vari aspetti del gioco, come le miniere, l'agricoltura, costruire dei meccanismi, e così via
O puoi giocare in "modalità creativa" nella quale puoi costruire quasi qualunque cosa istantaneamente.
#### Sintesi del Gameplay
* Gameplay sandbox, nessun obiettivo
* Sopravvivenza: Combatti contro i mostri ostili e la fame
* Scava in cerca di materiali e altri tesori
* Magia: Guadagna esperienza e incanta i tuoi attrezzi
* Usa i blocchi che hai collezionato per creare grandiose costruzioni, l'unico limite sarà la tua immaginazione
* Colleziona fiori (e altre risorse per coloranti) e colora il tuo mondo
* Trova dei semi e inizia a coltivare
* Trova o costruisci uno di centinaia di oggetti
* Costruisci complessi macchinari con i circuiti di redstone
* In modalità creativa puoi costruire quasi qualunque cosa gratis e senza limiti
## Come giocare (quick start)
### Per cominciare
* **Colpisci il tronco di un albero** affinchè si rompa e raccogli il legno
* Piazza il **legno nella griglia 2x2** (la tua "griglia da fabbricazione" nel tuo inventario) e costruisci 4 assi di legno
* Piazza le 4 assi di legno in una forma 2x2 nella griglia da fabbricazione per **creare un banco da lavoro**
* **Fai click destro sul banco da lavoro** per sfruttare una griglia 3x3 per costruire cose più complesse
* Usa la **guida da fabbricazione** (icona del libro) per apprendere tuttle le possibili ricette
* **Costruisci una piccozza di legno** per poter scavare la pietra
* Diversi strumenti rompono diversi tipi di blocco. Provali tutti!
* Continua a giocare come preferisci. Divertiti!
### Agricoltura
* Trova dei semi
* Costruisci una zappa
* Fai click destro sulla terra o un blocco simile con la zappa per renderla coltivabile
* Piazza dei semi sulla terra lavorata e guardali crescere
* Raccogli le piante quando maturano completamente
* Se vicino all'acqua, la terra lavorata si bagna e accelera la maturazione
### Fornace
* Costruisci una fornace
* La fornace ti permette di ottenere più oggetti
* Lo slot superiore deve contenere un oggetto fondibile (esempio: minerale di ferro)
* Lo slot inferiore deve contenere un carburante (esempio: carbone)
* Leggi i consigli nella guida di fabbricazione per saperne di più sui carburanti e gli oggetti fondibili
### Aiuti aggiuntivi
More help about the gameplay, blocks items and much more can be found from inside
the game. You can access the help from your inventory menu.
Ulteriore aiuto sul gameplay, i blocchi, gli oggetti e molto altro possono essere
trovati all'interno del gioco. Puoi accedere alla schermata di aiuti dall'inventario.
### Oggetti speciali
The following items are interesting for Creative Mode and for adventure
map builders. They can not be obtained in-game or in the creative inventory.
I seguenti oggetti sono interessanti per la Modalità Creativa e per i costruttori
di mappe da avventura. Non possono essere ottenuti in gioco o dall'inventario
della modalità creativa.
* Barriera: `mcl_core:barrier`
Usa il comando `/giveme` nella per ottenerli. Vedi gli aiuti in gioco per ottenere
una spiegazione
## Installazione
Questo gioco richiede [Minetest](http://minetest.net) per avviarsi (versione 5.4.1 e superiori).
Quindi come prima cosa installa Minetest. Solo le versioni stable di Minetest
sono ufficialmente supportate.
Non è supportato l'avvio di MineClone2 su versioni da sviluppatore di Minetest.
Per installare MineClone2 (se non lo hai già fatto), sposta questa cartella dentro
la cartella "games" nella tua cartella dei dati di Minetest. Consulta la wiki di
Minetest per saperne di più.
## Link utili
La repo di MineClone2 è su Mesehub. Per contribuire o comunicare dei problemi, procedi là.
* Mesehub: <https://git.minetest.land/MineClone2/MineClone2>
* Discord: <https://discord.gg/xE4z8EEpDC>
* YouTube: <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A>
* ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/>
* OpenCollective: <https://opencollective.com/mineclone2>
* Mastodon: <https://fosstodon.org/@MineClone2>
* Lemmy: <https://lemmy.world/c/mineclone2>
* Matrix space: <https://app.element.io/#/room/#mcl2:matrix.org>
* Minetest forums: <https://forum.minetest.net/viewtopic.php?f=50&t=16407>
* Reddit: <https://www.reddit.com/r/MineClone2/>
* IRC (barely used): <https://web.libera.chat/#mineclone2>
## Obiettivi
- Creare un gioco basato su Minecraft, sul motore di gioco di Minetest
che sia libero, stabile e moddabile, con funzioni perfezionate, usabile sia in
giocatore singolo che in multigiocatore. Al momento, molte funzionalità della versione
Java di Minecraft sono state implementate e il perfezionamento di quelle già esistenti
è prioritario rispetto all'aggiungta di nuove funzionalità.
- Implementare funzionalità comprese nella versione corrente di Minecraft + OptiFine
(OptiFine solo come supportato dal motore di gioco di Minetest).
- Creare un'esperienza performante che giri relativamente su computer poco prestanti.
## Stato dello sviluppo
Questo gioco è in fase di **beta** al momento.
È giocabile, ma non ancora completo per quanto riguarda le funzionalità.
Compatibilità con versioni precedenti di Minetest non è garantita, aggiornare il tuo mondo
potrebbe causare dei piccoli bug.
Se desideri usare le versioni da sviluppatore di MineClone2 in produzione, il branch master è solitamente relativamente stabile.
Le seguenti funzionalità principali sono disponibili:
* Strumenti e armi
* Armature
* Sistema di fabbricazione: griglia 2x2, banco da lavoro (griglia 3x3), fornace e guida di fabbricazione
* Bauli, bauli grandi, bauli di ender, scatole di shulker
* Fornaci, tramoggie
* Fame
* La maggior parte dei mostri e degli animali
* Tutti i minerali di Minecraft
* La maggior parte dei blocchi dell'overworld
* Acqua e lava
* Meteo
* 28 biomi + 5 biomi del Nether
* Il Nether, un ardente sotterraneo in un'altra dimensione
* Circuiti di Redstone (parziale)
* Carrelli da miniera (parziale)
* Effetti di stato (parziale)
* Esperienza
* Incantamento
* Alchimia, pozioni, frecce imbevute (parziale)
* Barche
* Fuoco
* Blocchi da costruzione: Scale, lastre, porte, botole, staccionate, cancelli (staccionate), muri
* Orologio
* Bussola
* Spugna
* Blocco di slime
* Piccole piante e alberelli
* Coloranti
* Stendardi
* Blocchi decorativi: Vetro, vetro colorato, pannelli di vetro, terracotta (e colori), teste e tanto altro
* Cornici
* Jukeboxes
* Letti
* Menu dell'inventario
* Inventario modalità creativa
* Agricoltura
* Libri scrivibili
* Comandi
* Villaggi
* The End
* E tanto altro!
Le seguenti funzionalità sono incomplete:
* Alcuni mostri e animali
* Cose relative all redstone
* Alcuni carrelli da miniera particolari (i carrelli da miniera con tramoggia e con baule funzionano)
* Alcuni blocchi e oggetti non banali
Funzionalità bonus (non incluse in Minecraft):
* Guida da fabbricazione inclusa che mostra ricette di fabbricazione e di forgiatura
* Sistema di aiuti in gioco contenente informazioni estese su basi del gameplay, blocchi, oggetti e altro
* Ricette di fabbricazione temporanee. Esistono solamente per rendere disponibili oggetti altrimenti non ottenibili quando non sei in modalità creativa. Queste ricette verranno rimosse man mano che lo sviluppo avanza e più funzionalità vengono implementate.
* Alberelli nei bauli con [mapgen v6](https://wiki.minetest.net/Map_generator#v6)
* Completamente moddabile (grazie alla potente API Lua di Minetest)
* Nuovi blocchi e oggetti:
* Strumento informativo, ti mostra l'aiuto per ciò che colpisci
* Più lastre e scale
* Cancello di Mattoni del Nether
* Staccionata di Mattoni Rossi del Nether
* Cancello di Mattoni Rossi del Nether
* Strutture di rimpiazzo - queste piccole varianti dell strutture di Minecraft servono come rimpiazzo finchè faremo funzionare strutture più grandi:
* Cabina dei boschi (Ville)
* Avamposto del Nether (Fortezza)
Technical differences from Minecraft:
Differenze tecniche da Minecraft:
* Limite di altezza di circa 31000 blocchi (molto più alto che in Minecraft)
* Limite orizzontale del mondo di circa 62000x62000 blocchi (molto più piccolo che in Minecraft, ma comunque molto ampio)
* Ancora molto incompleto e buggato
* Blocchi, oggett, nemici e altre funzionalità mancano
* Alcuni oggetti hanno nomi leggermente diversi per renderli più facili da distinguere
* Diverse musiche per il jukebox
* Diverse texture (Pixel Perfection)
* Diversi suoni (varie fonti)
* Diverso motore di gioco (Minetest)
* Diversi easter eggs
… e infine, MineClone2 è software libero!
## Altri file readme
* `LICENSE.txt`: Il testo della licenza GPLv3
* `CONTRIBUTING.md`: Informazioni per coloro che vogliono contribuire
* `API.md`: Per i modder di Minetest che vogliono moddare questo gioco
* `LEGAL.md`: Informazioni legali
* `CREDITS.md`: List di tutti coloro che hanno contribuito

View File

@ -1,4 +1,4 @@
title = MineClone 2
description = A survival sandbox game. Survive, gather, hunt, build, explore, and do much more.
disallowed_mapgens = v6
version=0.87.0-SNAPSHOT
version=0.86.1

View File

@ -1,2 +0,0 @@
# textdomain:mcl_explosions
@1 was caught in an explosion.=@1 è esploso(a)

View File

@ -1,2 +0,0 @@
# textdomain:mcl_explosions
@1 was caught in an explosion.=@1 z-es mòrt dins una explosion

View File

@ -160,7 +160,7 @@ function mcl_util.rotate_axis_and_place(itemstack, placer, pointed_thing, infini
return
end
local undef = minetest.registered_nodes[unode.name]
if undef and undef.on_rightclick and not invert_wall then
if undef and undef.on_rightclick then
undef.on_rightclick(pointed_thing.under, unode, placer,
itemstack, pointed_thing)
return
@ -198,11 +198,25 @@ function mcl_util.rotate_axis_and_place(itemstack, placer, pointed_thing, infini
local p2
if is_y then
p2 = 0
if invert_wall then
if fdir == 3 or fdir == 1 then
p2 = 12
else
p2 = 6
end
end
elseif is_x then
p2 = 12
if invert_wall then
p2 = 0
else
p2 = 12
end
elseif is_z then
p2 = 6
if invert_wall then
p2 = 0
else
p2 = 6
end
end
minetest.set_node(pos, {name = wield_name, param2 = p2})
@ -1061,7 +1075,7 @@ function mcl_util.move_list(src_inv, src_listname, out_inv, out_listname, pos, d
v.y = v.y * 4 + 2
v.z = v.z * 4
obj:set_velocity(v)
mcl_util.mcl_log("item velocity calculated "..vector.to_string(v), "[mcl_util]")
minetest.log("error", vector.to_string(v))
end
if not insta_collect then
obj:get_luaentity()._insta_collect = false

View File

@ -1,23 +0,0 @@
# textdomain: mcl_boats
Acacia Boat=Barca d'Acacia
Birch Boat=Barca di Betulla
Boat=Barca
Boats are used to travel on the surface of water.=Le barche vengono usate per viaggiare sulla superficie dell'acqua.
Dark Oak Boat=Barca di Quercia Scura
Jungle Boat=Barca di Giungla
Oak Boat=Barca di Quercia
Rightclick on a water source to place the boat. Rightclick the boat to enter it. Use [Left] and [Right] to steer, [Forwards] to speed up and [Backwards] to slow down or move backwards. Use [Sneak] to leave the boat, punch the boat to make it drop as an item.=Click Destro su una fonte d'acqua per piazzare la barca. Click Destro sulla barca per salire a bordo. Usa [Sinistra] e [Destra] per girare, [Avanti] per accelerare e [Indietro] per rallentare o muoverti indietro. Usa [Accovacciati] per scendere dalla barca, colpisci la barca per rilasciarla come oggetto.
Spruce Boat=Barca d'Abete
Water vehicle=Veicolo acquatico
Sneak to dismount=Accovacciati per scendere
Obsidian Boat=Barca d'Ossidiana
Mangrove Boat=Barca di Mangrovia
Cherry Boat=Barca di Ciliegio
Oak Chest Boat=Barca di Quercia con Baule
Spruce Chest Boat=Barca d'Abete con Baule
Birch Chest Boat=Barca di Betulla con Baule
Jungle Chest Boat=Barca di Giungla con Baule
Acacia Chest Boat=Barca d'Acacia con Baule
Dark Oak Chest Boat=Barca di Quercia Scura con Baule
Mangrove Chest Boat=Barca di Mangrovia con Baule
Cherry Chest Boat=Barca di Ciliegio con Baule

View File

@ -1,21 +0,0 @@
# textdomain: mcl_boats
Acacia Boat=Barca de Cacèir
Birch Boat=Barca de Beç
Boat=Barca
Boats are used to travel on the surface of water.=Las barcas son utilizadas per voiatja per aigas.
Dark Oak Boat=Barca de Ròure Nèir
Jungle Boat=Barca d'Acajó
Oak Boat=Barca de Ròure
Rightclick on a water source to place the boat. Rightclick the boat to enter it. Use [Left] and [Right] to steer, [Forwards] to speed up and [Backwards] to slow down or move backwards. Use [Sneak] to leave the boat, punch the boat to make it drop as an item.=Fasetz un clic dreit sobre una sorça d'aiga per plaça la barca. Fasetz un clic dreit sobre la barca per rintrar. Utilizatz [Gaucha] e [Dreita] per menar, [Davant] per accelerar e [Darrèir] per ralentir o racuolar. Utilizatz [Sneak] per z-o quitar, tustatz la barca per z-o faire tombar coma objècte.
Spruce Boat=Barca de Sap
Water vehicle=Veïcule per aiga
Sneak to dismount=Se baissar per descendre
Obsidian Boat=Barca d'Obsidiana
Mangrove Boat=Barca de Paletuvèir
Oak Chest Boat=Barca de Ròure embei una Mala
Spruce Chest Boat=Barca de Sap embei una Mala
Birch Chest Boat=Barca de Beç embei una Mala
Jungle Chest Boat=Barca d'Acajó embei una Mala
Acacia Chest Boat=Barca de Cacèir embei una Mala
Dark Oak Chest Boat=Barca de Ròure Nèir embei una Mala
Mangrove Chest Boat=Barca de Paletuvèir embei una Mala

View File

@ -1,3 +0,0 @@
# textdomain: mcl_falling_nodes
@1 was smashed by a falling anvil.=Un'incudine caduta ha schiacciato @1.
@1 was smashed by a falling block.=Un blocco caduto ha schiacciato @1.

View File

@ -1,3 +0,0 @@
# textdomain: mcl_falling_nodes
@1 was smashed by a falling anvil.=@1 a estat espotit per un enclutge
@1 was smashed by a falling block.=@1 a estat espotit per un blòc

View File

@ -1,36 +0,0 @@
# textdomain: mcl_minecarts
Minecart=Carrello da miniera
Minecarts can be used for a quick transportion on rails.=I carrelli da miniera possono essere usati per viaggiare rapidamente su binari.
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.=I carrelli da miniera viaggiano solo su binari e seguono sempre il tracciato. Ad un incrocio a T senza via frontale, girano a sinistra. La velocità è influenzata dal tipo di binari.
You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Puoi piazzare il carrello da miniera sui binari. Click destro sul carrello per salire a bordo.
To obtain the minecart, punch it while holding down the sneak key.=Per ottenere il carrello da miniera, colpiscilo mentre premi il pulsante per accovacciarti.
A minecart with TNT is an explosive vehicle that travels on rail.=Un carrello da miniera con la TNT è un veicolo esplosivo che viaggia su binari.
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.=Piazzalo sui binari. Colpiscilo per spostarlo. La TNT viene accesa con l'acciarino o quando il carrello passa su un binario attivatore
To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.=Per ottenere il carrello da miniera e la TNT, colpiscili tenendo premuto il tasto per accovacciarti. Non puoi farlo se la TNT è stata accesa.
A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.=Un carrello ca miniera con fornace è un veicolo che viaggia su binari. Può essere alimentato con del carburante.
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.=Piazzalo su binari. Se gli darai del carbone, la fornace inizierà a bruciare per un lungo periodo e il carrello da miniera sarà in grado di muoversi da solo. Colpiscilo per avviarlo.
To obtain the minecart and furnace, punch them while holding down the sneak key.=Per ottenere il carrello e la fornace, colpiscili tenendo premuto il pulsante per accovacciarti.
Minecart with Chest=Carrello da miniera con Baule
Minecart with Furnace=Carrello da miniera con Fornace
Minecart with Command Block=Carrello da miniera con Blocco Comandi
Minecart with Hopper=Carrello da miniera con Tramoggia
Minecart with TNT=Carrello da miniera con TNT
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.=Piazzali sul terreno per costruire la tua ferrovia, i binari si collegheranno automaticamente tra di loro, cambiando in curve, incroci a T, incroci e pendenze quando necessario.
Rail=Binario
Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction.=I binari possono essere usati per costruire percorsi per i carrelli da miniera. I binari semplici rallentano leggermente i carrelli da miniera per via dell'attrito.
Powered Rail=Binario Alimentato
Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts.=I binari possono essere usati per costruire percorsi per i carrelli da miniera. I binari alimentati possono accelerare e frenare i carrelli da miniera.
Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power.=Senza alimentazione da redstone, il binario romperà il carrello da miniera. Per far sì che questo binario acceleri i carrelli da miniera, alimentalo con della redstone.
Activator Rail=Binario Attivatore
Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts.=I binari possono essere usati per costruire percorsi per i carrelli da miniera. I binari attivatori sono usati per attivare particolari carrelli da miniera.
To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail.=Per far sì che questo binario attivi i carrelli da miniera, alimentalo con della redstone e manda un carrello da miniera su questo pezzo di binario.
Detector Rail=Binario rilevatore
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.=I binari possono essere usati per costruire percorsi per i carrelli da miniera. Un binario rilevatore è in grado di rilevare il passaggio di un carrello da miniera e attivare un circuito di redstone.
To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Per rilevare un carrello da miniera e fornire energia di redstone, collagalo a delle tracce di redstone o dei meccanismi di redstone e manda un carrello da miniera sopra il binario.
Track for minecarts=Tracciato per carrelli da miniera
Speed up when powered, slow down when not powered=Accelera quando alimentato, rallenta quando non alimentato
Activates minecarts when powered=Attiva i carrelli da miniera quando alimentato
Emits redstone power when a minecart is detected=Emette energia di redstone quando una carrello da miniera è rilevato
Vehicle for fast travel on rails=Veicolo per viaggio rapido su binari
Can be ignited by tools or powered activator rail=Può essere acceso da strumenti o binari attivatori
Sneak to dismount=Accovacciati per scendere

View File

@ -1,36 +0,0 @@
# textdomain: mcl_minecarts
Minecart=Vagonet
Minecarts can be used for a quick transportion on rails.=Los vagonet pòdon èsser utilizats per un transpòrt rapide per ralhs.
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.=Los vagonets ròtlon mas per ralhs e seguisson totjorn la pista. A una joncion T embei ren davant, tòrnon a gaucha.
You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Podètz plaçar le vagonet per ralhs. Fasetz un clic dreit dessobre per çai rentrar. Tustatz z-o per z-o faire bojar.
To obtain the minecart, punch it while holding down the sneak key.=Per aver le vagonet, tustatz z-o embei la tocha sneak enfonçada.
A minecart with TNT is an explosive vehicle that travels on rail.=Un vagonet embei TNT z-es un vagonet explosiu que voiatja per ralhs.
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.=Plaçatz z-o per ralhs. Tustatz z-o per z-o desplaçar. La TNT z-es atubada embei un batifuòc o quand le vagonet z-es per un ralh d'activacion atubat.
To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.=Per obtenèr le vagonet e la TNT, tustatz z-o embei la tocha sneak enfonçada. Podètz pas faire quo si la TNT z-es atubada.
A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.=Un vagonet embei un fornil z-es un veïcule que voiatja per ralhs. Pòt se propulsar embei dau carburant.
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.=Plaçatz z-o per ralhs. Si li balhatz dau charbon, le fornil vai començar de borlar lòngtemps e porà rotlar. Tustatz z-o per z-o faire bojar.
To obtain the minecart and furnace, punch them while holding down the sneak key.=Per obtener le vagonet e le fornil, tustatz z-o embei la tocha sneak enfonçada.
Minecart with Chest=Vagonet embei una Mala
Minecart with Furnace=Vagonet embei un Fornil
Minecart with Command Block=Vagonet embei un Blòc de Comandas
Minecart with Hopper=Vagonet embei un Embure
Minecart with TNT=Vagonet embei de la TNT
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.=Plaçatz z-o per sòu per construrre vostre chamin de fèrre, los ralhs se conectaron entre ilhs e faron de las corbas, de las junccions en T, en traversadas et en pentas au besonh.
Rail=Ralh
Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction.=Los ralhs pòdon èsser utilizats per construrre los chamins de transpòrt per los vagonets. Los ralhs normaus ralentissons gentament los vagonet per causa de friccion.
Powered Rail=Ralh Atubat
Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts.=Los ralhs pòdon èsser utilizats per construrre los chamins de transpòrt per los vagonets. Los ralhs atubats son per faire accelerar o frenar los vagonets.
Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power.=Sens energia de pèirotge, le ralh vai frenar los vagonets. Per que le ralh accelera los vagonets, alimentatz z-o embei de l'energia de pèirotge.
Activator Rail=Ralh d'Activacion
Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts.=Los ralhs pòdon èsser utilizats per construrre los chamins de transpòrt per los vagonets. Los ralhs d'activacion son utilizats per activar daus vagonets speciaus.
To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail.=Per activar le ralh, alimentatz z-o embei de l'energia de pèirotge e fasetz rotlar un vagonet per aqueste ralh.
Detector Rail=Ralh de Deteccion
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.=Los ralhs pòdon èsser utilizats per construirre los chamins de transpòrt per los vagonets. Los ralhs de deteccion pòdon detectar un vagonet per ilhs e atubar un mecanisme de pèirotge.
To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Per detectar un vagonet e produrre de l'energia de pèirotge, conectatz le ralh a de la pèirotge e fasetz rotlar un vagonet per i-aul.
Track for minecarts=Pista per vagonets
Speed up when powered, slow down when not powered=Acceleratz quand z-es atubat, ralentissetz quand z-es pas atubat.
Activates minecarts when powered=Activa los vagonets quand pas atubat.
Emits redstone power when a minecart is detected=Emeta de l'energia de pèirotge quand un vagonet z-es detectat.
Vehicle for fast travel on rails=Veicule per voiatjar vistament per ralhs.
Can be ignited by tools or powered activator rail=Pòt èsser atubat embei daus otilhs o un ralh d'activacion
Sneak to dismount=Se baissar per descendre

View File

@ -35,19 +35,14 @@ function mob_class:day_docile()
end
end
-- get this mob to attack the object
function mob_class:do_attack(object)
-- attack player/mob
function mob_class:do_attack(player)
if self.state == "attack" or self.state == "die" then
return
end
if object:is_player() and not minetest.settings:get_bool("enable_damage") then
return
end
self.attack = object
self.attack = player
self.state = "attack"
-- TODO: Implement war_cry sound without being annoying
@ -527,7 +522,7 @@ function mob_class:on_punch(hitter, tflp, tool_capabilities, dir)
if is_player then
-- is mob out of reach?
if vector.distance(mob_pos, player_pos) > 3 then
if vector.distance(mob_pos, player_pos) > 3 then
return
end
-- is mob protected?

View File

@ -362,13 +362,12 @@ function mcl_mobs.register_arrow(name, def)
collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows
timer = 0,
switch = 0,
_lifetime = def._lifetime or 7,
_lifetime = def._lifetime or 150,
owner_id = def.owner_id,
rotate = def.rotate,
on_punch = def.on_punch or function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage)
local vel = self.object:get_velocity():length()
self.object:set_velocity({x=dir.x * vel, y=dir.y * vel, z=dir.z * vel})
self._puncher = puncher
on_punch = def.on_punch or function(self)
local vel = self.object:get_velocity()
self.object:set_velocity({x=vel.x * -1, y=vel.y * -1, z=vel.z * -1})
end,
collisionbox = def.collisionbox or {0, 0, 0, 0, 0, 0},
automatic_face_movement_dir = def.rotate
@ -378,7 +377,7 @@ function mcl_mobs.register_arrow(name, def)
on_step = def.on_step or function(self, dtime)
self.timer = self.timer + dtime
self.timer = self.timer + 1
local pos = self.object:get_pos()
@ -444,24 +443,24 @@ function mcl_mobs.register_arrow(name, def)
if self.hit_player or self.hit_mob or self.hit_object then
for _,object in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
if self.hit_player
and object:is_player() then
and player:is_player() then
self.hit_player(self, object)
self.hit_player(self, player)
self.object:remove();
return
end
local entity = object:get_luaentity()
local entity = player:get_luaentity()
if entity
and self.hit_mob
and entity.is_mob == true
and (tostring(object) ~= self.owner_id or self.timer > 2)
and tostring(player) ~= self.owner_id
and entity.name ~= self.object:get_luaentity().name then
self.hit_mob(self, object)
self.hit_mob(self, player)
self.object:remove();
return
end
@ -469,9 +468,9 @@ function mcl_mobs.register_arrow(name, def)
if entity
and self.hit_object
and (not entity.is_mob)
and (tostring(object) ~= self.owner_id or self.timer > 2)
and tostring(player) ~= self.owner_id
and entity.name ~= self.object:get_luaentity().name then
self.hit_object(self, object)
self.hit_object(self, player)
self.object:remove();
return
end

View File

@ -1,13 +0,0 @@
# textdomain: mcl_mobs
Peaceful mode active! No monsters will spawn.=Modalità pacifica attiva! Non nascerà nessun mostro.
This allows you to place a single mob.=Questo ti permette di piazzare un singolo 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.=Piazzalo dove desideri far nascere il mob. Gli animali nasceranno domati, a meno chè tu tenga premuto il tasto per accovacciarti mentre lo piazzi. Se lo piazzi su un generatore di mob, puoi cambiare il mob che genera.
You need the “maphack” privilege to change the mob spawner.=Necessiti del privilegio "maphack" per cambiare il generatore di mob.
Name Tag=Targhetta
A name tag is an item to name a mob.=Una targhetta è un oggetto per dare un nome a un mob.
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.=Prima di usare la targhetta, devi impostare un nome usando l'incudine. Allora puoi usare la targhetta per dare quel nome a un mob. Ciò consuma la targhetta
Only peaceful mobs allowed!=Sono permessi solo mob pacifici!
Give names to mobs=Dai un nome ai mob
Set name at anvil=Imposta un nome nell'incudine
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.=Rimuove i mob specificati eccetto quelli con un nome e quelli addomesticati. Come secondo parametro, usa nametagged/tamed per selezionare solo i mob con un nome o quelli addomesticati, o un numero per specificare la distanza massima dal giocatore.
Default usage. Clearing hostile mobs. For more options please type: /help clearmobs=Uso standard. Eliminare i mob ostili. Per altre opzioni digita: /help clearmobs

View File

@ -1,13 +0,0 @@
# textdomain: mcl_mobs
Peaceful mode active! No monsters will spawn.=Mòde tranquile actiu! Gis de mostre vai aparèisser.
This allows you to place a single mob.=Quo permet de plaça una creatura.
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.=Plaçatz z-o a l'endreit que volètz veire la creatura aparèisser. Las bèstias seron dejà domesticadas, defòra si laissatz la tocha se baissar enfonçada. Si z-o plaçatz sobre un generator de creaturas, chamjatz la creatura generada.
You need the “maphack” privilege to change the mob spawner.=Avètz besonh dau privilègi "maphack" per chamjar le generator de creaturas.
Name Tag=Étiquette de nom
A name tag is an item to name a mob.=Una etiqueta z-es un otilh per chamjar le nom de la creatura.
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.=Davant d'utilizar l'etiqueta, vos fau li botar un nom embei una enclutge. Après, podètz utilizar l'etiqueta per nomar una creatura. L'etiqueta pòt èsser utilizada un còp.
Only peaceful mobs allowed!=Mas las creaturas pacificas son autorizadas!
Give names to mobs=Balha daus noms a las creaturas
Set name at anvil=Botar le nom embei l'enclutge
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.=Lèva las creaturas specifiadas defòra de las que son nomadas o domesticadas. Per le paramètre segònd, utilizar nomat/domesticat per mas seleccionar las creaturas nomadas/domesticadas, o una distança per specifiar la distança maximum embei li joairi.
Default usage. Clearing hostile mobs. For more options please type: /help clearmobs=Usage par défaut. Lèva las creaturas ostilas. Per mai d'opcions, escriure : /help clearmobs

View File

@ -761,61 +761,6 @@ function mob_class:do_env_damage()
end
end
-- Cactus damage
local near = minetest.find_node_near(pos, 1, "mcl_core:cactus", true)
if not near and near ~= nil then
near = find_node_near({x=pos.x, y=pos.y-1, z=pos.z}, 1, "mcl_core:cactus", true)
end
if near then
-- is mob touching the cactus?
local dist = vector.distance(pos, near)
local dist_feet = vector.distance({x=pos.x, y=pos.y-1, z=pos.z}, near)
local large_mob = false
local medium_mob = false
if self.name == "mobs_mc:ender_dragon" or
self.name == "mobs_mc:ghast" or
self.name == "mobs_mc:guardian_elder" or
self.name == "mobs_mc:slime_big" or
self.name == "mobs_mc:magma_cube_big" or
self.name == "mobs_mc:wither" then
large_mob = true
elseif self.name == "mobs_mc:hoglin" or
self.name == "mobs_mc:zoglin" or
self.name == "mobs_mc:horse" or
self.name == "mobs_mc:skeleton_horse" or
self.name == "mobs_mc:zombie_horse" or
self.name == "mobs_mc:donkey" or
self.name == "mobs_mc:mule" or
self.name == "mobs_mc:iron_golem" or
self.name == "mobs_mc:polar_bear" or
self.name == "mobs_mc:spider" or
self.name == "mobs_mc:cave_spider" or
self.name == "mobs_mc:strider" then
medium_mob = true
end
if (not large_mob and not medium_mob and (dist < 1.03 or dist_feet < 1.6)) or (medium_mob and (dist < 1.165 or dist_feet < 1.73)) or (large_mob and (dist < 1.25 or dist_feet < 1.9)) then
if self.health ~= 0 then
self:damage_mob("cactus", 2)
if self:check_for_death("cactus", {type = "environment",
pos = pos, node = self.standing_in}) then
return true
end
end
end
end
-- is mob standing on the cactus?
if self.standing_on == "mcl_core:cactus" or self.standing_in == "mcl_core:cactus" or self.standing_under == "mcl_core:cactus" then
self:damage_mob("cactus", 2)
if self:check_for_death("cactus", {type = "environment",
pos = pos, node = self.standing_in}) then
return true
end
end
-- Drowning damage
if self.breath_max ~= -1 then
local drowning = false

63
mods/ENTITIES/mcl_mobs/spawning.lua Executable file → Normal file
View File

@ -16,6 +16,7 @@ local find_nodes_in_area_under_air = minetest.find_nodes_in_area_under_air
local get_biome_name = minetest.get_biome_name
local get_objects_inside_radius = minetest.get_objects_inside_radius
local get_connected_players = minetest.get_connected_players
local minetest_get_perlin = minetest.get_perlin
local math_random = math.random
local math_floor = math.floor
@ -96,6 +97,19 @@ local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
local logging = minetest.settings:get_bool("mcl_logging_mobs_spawn",true)
local noise_params = {
offset = 0,
scale = 3,
spread = {
x = 301,
y = 50,
z = 304,
},
seed = 100,
octaves = 3,
persistence = 0.5,
}
-- THIS IS THE BIG LIST OF ALL BIOMES - used for programming/updating mobs
-- Also used for missing parameter
-- Please update the list when adding new biomes!
@ -432,6 +446,7 @@ WARNING: BIOME INTEGRATION NEEDED -> How to get biome through lua??
local spawn_dictionary = {}
--this is where all of the spawning information is kept for mobs that don't naturally spawn
local non_spawn_dictionary = {}
local summary_chance = 0
function mcl_mobs:spawn_setup(def)
if not mobs_spawn then return end
@ -493,6 +508,7 @@ function mcl_mobs:spawn_setup(def)
check_position = check_position,
on_spawn = on_spawn,
}
summary_chance = summary_chance + chance
end
function mcl_mobs:mob_light_lvl(mob_name, dimension)
@ -596,8 +612,10 @@ function mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_
spawn_dictionary[key]["day_toggle"] = day_toggle
spawn_dictionary[key]["check_position"] = check_position
summary_chance = summary_chance + chance
end
local two_pi = 2 * math.pi
local function get_next_mob_spawn_pos(pos)
-- TODO We should consider spawning something a little further away sporadically.
@ -857,6 +875,8 @@ minetest.register_chatcommand("spawn_mob",{
if mobs_spawn then
local perlin_noise
-- Get pos to spawn, x and z are randomised, y is range
@ -953,21 +973,9 @@ if mobs_spawn then
return spawning_position
end
local cumulative_chance = nil
local mob_library_worker_table = nil
local function initialize_spawn_data()
if not mob_library_worker_table then
mob_library_worker_table = table_copy(spawn_dictionary)
end
if not cumulative_chance then
cumulative_chance = 0
for k, v in pairs(mob_library_worker_table) do
cumulative_chance = cumulative_chance + v.chance
end
end
end
local function spawn_a_mob(pos, cap_space_hostile, cap_space_non_hostile)
--create a disconnected clone of the spawn dictionary, prevents memory leak
local mob_library_worker_table = table_copy(spawn_dictionary)
local spawning_position = find_spawning_position(pos, FIND_SPAWN_POS_RETRIES)
if not spawning_position then
@ -980,25 +988,22 @@ if mobs_spawn then
--output_mob_stats(mob_counts_wide)
--grab mob that fits into the spawning location
--use random weighted choice with replacement to grab a mob, don't exclude any possibilities
--shuffle table once every loop to provide equal inclusion probability to all mobs
--repeat grabbing a mob to maintain existing spawn rates
local spawn_loop_counter = #mob_library_worker_table
--randomly grab a mob, don't exclude any possibilities
perlin_noise = perlin_noise or minetest_get_perlin(noise_params)
local noise = perlin_noise:get_3d(spawning_position)
local current_summary_chance = summary_chance
while spawn_loop_counter > 0 do
table.shuffle(mob_library_worker_table)
local mob_chance_offset = math_random(1, cumulative_chance)
table.shuffle(mob_library_worker_table)
while #mob_library_worker_table > 0 do
local mob_chance_offset = (math_round(noise * current_summary_chance + 12345) % current_summary_chance) + 1
local mob_index = 1
local mob_chance = mob_library_worker_table[mob_index].chance
local step_chance = mob_chance
while step_chance < mob_chance_offset do
mob_index = mob_index + 1
if mob_index <= #mob_library_worker_table then
mob_chance = mob_library_worker_table[mob_index].chance
step_chance = step_chance + mob_chance
else
break
end
mob_chance = mob_library_worker_table[mob_index].chance
step_chance = step_chance + mob_chance
end
--minetest.log(mob_def.name.." "..step_chance.. " "..mob_chance)
@ -1083,7 +1088,8 @@ if mobs_spawn then
end
end
spawn_loop_counter = spawn_loop_counter - 1
current_summary_chance = current_summary_chance - mob_chance
table_remove(mob_library_worker_table, mob_index)
end
end
@ -1095,7 +1101,6 @@ if mobs_spawn then
timer = timer + dtime
if timer < WAIT_FOR_SPAWN_ATTEMPT then return end
initialize_spawn_data()
timer = 0
local players = get_connected_players()

View File

@ -1,2 +0,0 @@
# textdomain:mcl_paintings
Painting=Quadre

View File

@ -1,2 +0,0 @@
# textdomain:mcl_paintings
Painting=Quadro

View File

@ -305,9 +305,6 @@ Origin of those models:
* `mobs_mc_rabbit_random.*.ogg` (CC0)
* Changes were made.
* Source: <https://freesound.org/people/Alshred/>
* [epCode]
* `extra_mobs_hoglin*.ogg` (LGPL 3.0)
* Source: <https://git.minetest.land/epCode/extra_mobs/src/branch/master/sounds>
Note: Many of these sounds have been more or less modified to fit the game.

View File

@ -171,7 +171,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
100,
4000,
3,
water-16,
water+1)

View File

@ -150,7 +150,7 @@ mcl_mobs:spawn_specific(
0,
maxlight,
20,
100,
5000,
2,
mcl_vars.mg_overworld_min,
mobs_mc.water_level-1)

View File

@ -151,7 +151,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
1000,
5000,
3,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)

View File

@ -157,7 +157,7 @@ mcl_mobs:spawn_specific(
},
9,
minetest.LIGHT_MAX+1,
30, 100,
30, 17000,
3,
mobs_mc.water_level,
mcl_vars.mg_overworld_max)

View File

@ -266,7 +266,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
750,
4000,
3,
water-16,
water+1)

View File

@ -207,7 +207,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
80,
17000,
10,
mobs_mc.water_level,
mcl_vars.mg_overworld_max)
@ -225,7 +225,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
80,
17000,
5,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -407,7 +407,7 @@ mcl_mobs:spawn_specific(
0,
7,
20,
1000,
16500,
2,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -244,7 +244,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
70,
4000,
3,
water-16,
water+1)

View File

@ -668,7 +668,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
100,
3000,
12,
mcl_vars.mg_end_min,
mcl_vars.mg_end_max)
@ -816,7 +816,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
100,
19000,
2,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
@ -833,7 +833,7 @@ mcl_mobs:spawn_specific(
0,
11,
30,
100,
27500,
4,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
@ -849,7 +849,7 @@ mcl_mobs:spawn_specific(
0,
11,
30,
100,
5000,
4,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)

View File

@ -20,7 +20,7 @@ mcl_mobs.register_mob("mobs_mc:ghast", {
hp_max = 10,
xp_min = 5,
xp_max = 5,
collisionbox = {-2, 0, -2, 2, 4, 2, rotate=true},
collisionbox = {-2, 5, -2, 2, 9, 2},
visual = "mesh",
mesh = "mobs_mc_ghast.b3d",
spawn_in_group = 1,
@ -33,7 +33,7 @@ mcl_mobs.register_mob("mobs_mc:ghast", {
death = "mobs_mc_zombie_death",
attack = "mobs_fireball",
random = "mobs_eerie",
distance = 80,
distance = 16,
-- TODO: damage
-- TODO: better death
},
@ -50,11 +50,11 @@ mcl_mobs.register_mob("mobs_mc:ghast", {
run_start = 0, run_end = 40,
},
fall_damage = 0,
view_range = 64,
view_range = 100,
attack_type = "dogshoot",
arrow = "mobs_mc:fireball",
shoot_interval = 5,
shoot_offset = -0.5,
shoot_interval = 3.5,
shoot_offset = -5,
dogshoot_switch = 1,
dogshoot_count_max =1,
passive = false,
@ -97,7 +97,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
400,
72000,
2,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
@ -107,9 +107,8 @@ mcl_mobs.register_arrow("mobs_mc:fireball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"mcl_fire_fire_charge.png"},
velocity = 5,
velocity = 15,
collisionbox = {-.5, -.5, -.5, .5, .5, .5},
_lifetime = 10,
_is_fireball = true,
hit_player = function(self, player)
@ -131,10 +130,6 @@ mcl_mobs.register_arrow("mobs_mc:fireball", {
damage_groups = {fleshy = 6},
}, nil)
mcl_mobs.mob_class.boom(self,self.object:get_pos(), 1, true)
local ent = mob:get_luaentity()
if not ent or ent.health <= 0 then
awards.unlock(self._puncher:get_player_name(), "mcl:fireball_redir_serv")
end
end,
hit_node = function(self, pos, node)

View File

@ -237,7 +237,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX + 1,
30,
100,
10000,
3,
water - 16,
water)

View File

@ -31,9 +31,8 @@ local hoglin = {
} },
visual_size = {x=3, y=3},
sounds = {
random = "extra_mobs_hoglin.1",
random = "extra_mobs_hoglin",
damage = "extra_mobs_hoglin_hurt",
death = "extra_mobs_hoglin_hurt",
distance = 16,
},
jump = true,
@ -93,12 +92,6 @@ local zoglin = table.copy(hoglin)
zoglin.description = S("Zoglin")
zoglin.fire_resistant = 1
zoglin.textures = {"extra_mobs_zoglin.png"}
sounds = {
random = "extra_mobs_hoglin.2",
damage = "extra_mobs_hoglin_hurt",
death = "extra_mobs_hoglin_hurt",
distance = 16,
}
zoglin.do_custom = function()
return
end
@ -136,7 +129,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
200,
6000,
3,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)

View File

@ -609,7 +609,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
40,
15000,
4,
mobs_mc.water_level+3,
mcl_vars.mg_overworld_max)
@ -632,7 +632,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
10,
15000,
4,
mobs_mc.water_level+3,
mcl_vars.mg_overworld_max)

View File

@ -291,7 +291,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
50,
15000,
5,
mobs_mc.water_level+15,
mcl_vars.mg_overworld_max)

View File

@ -1,83 +0,0 @@
# textdomain: mobs_mc
Agent=Agente
Axolotl=Axolotl
Bat=Pipistrello
Blaze=Blaze
Chicken=Gallina
Cow=Mucca
Mooshroom=Mooshroom
Creeper=Creeper
Ender Dragon=Enderdrago
Enderman=Enderman
Endermite=Endermite
Ghast=Ghast
Elder Guardian=Guardiano Antico
Guardian=Guardiano
Horse=Cavallo
Skeleton Horse=Cavallo Scheletro
Zombie Horse=Cavallo Zombi
Donkey=Asino
Mule=Mulo
Iron Golem=Golem di Ferro
Llama=Lama
Ocelot=Ocelot
Cat=Gatto
Parrot=Pappagallo
Pig=Maiale
Polar Bear=Orso Polare
Rabbit=Coniglio
Killer Bunny=Coniglio Assassino
Sheep=Pecora
Shulker=Shulker
Silverfish=Pesciolino d'argento
Skeleton=Scheletro
Stray=Errante
Wither Skeleton=Scheletro Wither
Magma Cube=Cubo di Magma
Slime=Slime
Snow Golem=Golem di Neve
Spider=Ragno
Cave Spider=Ragno delle Caverne
Squid=Calamaro
Vex=Vessante
Evoker=Evocatore
Illusioner=Illusionista
Villager=Villico
Vindicator=Vendicatore
Zombie Villager=Villico Zombi
Witch=Strega
Wither=Wither
Wolf=Lupo
Husk=Zombi Secco
Baby Husk=Zombi Secco Bambino
Zombie=Zombi
Baby Zombie=Zombi Bambino
Piglin=Piglin
Baby Piglin=Piglin Bambino
Zombie Piglin=Piglin Zombi
Baby Zombie Piglin=Piglin Zombi Bambino
Sword Piglin=Piglin Spadaccino
Piglin Brute=Piglin Bruto
Farmer=Agricoltore
Fisherman=Pescatore
Fletcher=Fabbricante di freccie
Shepherd=Pastore
Librarian=Bibliotecario
Cartographer=Cartografo
Armorer=Corazzaio
Leatherworker=Cuoiaio
Butcher=Macellaio
Weapon Smith=Armaiolo
Tool Smith=Fabbro di attrezzi
Cleric=Chierico
Nitwit=Fesso
Cod=Merluzzo
Salmon=Salmone
Dolphin=Delfino
Pillager=Predone
Tropical fish=Pesce pagliaccio
Hoglin=Hoglin
Baby hoglin=Hoglin Bambino
Zoglin=Zoglin
Strider=Strider
Glow Squid=Calamaro luminescente

View File

@ -1,73 +0,0 @@
# textdomain: mobs_mc
Agent=Agent
Axolotl=Axolòtl
Bat=Ratapenada
Blaze=Flamor
Chicken=Polet
Cow=Vacha
Mooshroom=Vachairòla
Creeper=Creeper
Ender Dragon=Dragon de Finuèit
Enderman=Finuèairi
Endermite=Finuèibau
Ghast=Òrra
Elder Guardian=Ancian Gardian
Guardian=Gardian
Horse=Ega
Skeleton Horse=Ega Squeleta
Zombie Horse=Ega Zombia
Donkey=Asne
Mule=Miule
Iron Golem=Golem de Fèrre
Llama=Lamà
Ocelot=Ocelòt
Parrot=Papagai
Pig=Cochon
Polar Bear=Ors Blanc
Rabbit=Lapin
Killer Bunny=Lapin Tuaire
Sheep=Moton
Shulker=Coirafin
Silverfish=Peiçon d'Argent
Skeleton=Squeleta
Stray=Trainabiaça
Wither Skeleton=Squeleta Sechaire
Magma Cube=Cube de Magmà
Slime=Slime
Snow Golem=Golem d'Ivèrn
Spider=Aranha
Cave Spider=Aranha Venimósa
Squid=Pofre
Vex=Vex
Evoker=Invocataire
Illusioner=Fisiciaire
Villager=Vialatgés
Vindicator=Vindicataire
Zombie Villager=Vialatgés Zombia
Witch=Fachinèira
Wither=Le Sechaire
Wolf=Lop
Husk=Zombia Momificat
Zombie=Zombia
Zombie Piglin=Porcadés Zombia
Farmer=Boriaire
Fisherman=Peschaire
Fletcher=Archèir
Shepherd=Bergèir
Librarian=Bibliotecaire
Cartographer=Cartografe
Armorer=Armurèir
Leatherworker=Tanaire
Butcher=Maselèir
Weapon Smith=Farjaire d'Armas
Tool Smith=Farjaire d'Otilhs
Cleric=Clerc
Nitwit=Simple
Cod=Merluça
Salmon=Saumon
Dolphin=Daufin
Pillager=Pilhard
Tropical fish=Peiçon tropicau
Hoglin=Porcard
Strider=Trèva
Glow Squid=Pofre Lusent

View File

@ -186,7 +186,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
300,
15000,
5,
mobs_mc.water_level+15,
mcl_vars.mg_overworld_max)

View File

@ -235,7 +235,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
7,
400,
30000,
1,
mobs_mc.water_level+7,
mcl_vars.mg_overworld_max)

View File

@ -258,7 +258,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
100,
15000,
8,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -61,10 +61,8 @@ local piglin = {
} },
visual_size = {x=1, y=1},
sounds = {
random = "mobs_mc_zombiepig_random",
war_cry = "mobs_mc_zombiepig_war_cry", death = "mobs_mc_zombiepig_death",
damage = "mobs_mc_zombiepig_hurt.2",
death = "mobs_mc_zombiepig_death.2",
random = "extra_mobs_piglin",
damage = "extra_mobs_piglin_hurt",
distance = 16,
},
jump = true,
@ -399,7 +397,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
150,
6000,
3,
mcl_vars.mg_lava_nether_max,
mcl_vars.mg_nether_max)
@ -415,7 +413,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
150,
6000,
3,
mcl_vars.mg_lava_nether_max,
mcl_vars.mg_nether_max)
@ -431,7 +429,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
1000,
6000,
3,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
@ -448,7 +446,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
50,
100000,
4,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)

View File

@ -86,7 +86,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
50,
7000,
3,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -148,7 +148,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
40,
15000,
8,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -220,7 +220,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
260,
4000,
3,
water-16,
water+1)

View File

@ -379,7 +379,7 @@ mcl_mobs:spawn_specific(
9,
minetest.LIGHT_MAX+1,
30,
120,
15000,
3,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -299,7 +299,7 @@ mcl_mobs:spawn_specific(
0,
7,
20,
800,
17000,
2,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
@ -316,7 +316,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
800,
10000,
3,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
@ -336,7 +336,7 @@ mcl_mobs:spawn_specific(
0,
7,
20,
1200,
19000,
2,
mobs_mc.water_level,
mcl_vars.mg_overworld_max)

View File

@ -116,7 +116,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
500,
5000,
5,
mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)

View File

@ -6,7 +6,6 @@ local MAPBLOCK_SIZE = 16
local seed = minetest.get_mapgen_setting("seed")
local slime_chunk_match
local slime_chunk_spawn_max = mcl_worlds.layer_to_y(40)
local x_modifier
local z_modifier
@ -167,11 +166,11 @@ local swamp_light_max = 7
local function slime_spawn_check(pos, environmental_light, artificial_light, sky_light)
local maxlight = swamp_light_max
if pos.y <= slime_chunk_spawn_max and is_slime_chunk(pos) then
if is_slime_chunk(pos) then
maxlight = minetest.LIGHT_MAX + 1
end
return math.max(artificial_light, sky_light) <= maxlight
return artificial_light <= maxlight
end
-- Slime
@ -322,7 +321,7 @@ cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
1000,
12000,
4,
cave_min,
cave_max,
@ -336,7 +335,7 @@ swampy_biomes,
0,
swamp_light_max,
30,
1000,
12000,
4,
swamp_min,
swamp_max)
@ -349,7 +348,7 @@ cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
1000,
8500,
4,
cave_min,
cave_max,
@ -363,7 +362,7 @@ swampy_biomes,
0,
swamp_light_max,
30,
1000,
8500,
4,
swamp_min,
swamp_max)
@ -376,7 +375,7 @@ cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
1000,
10000,
4,
cave_min,
cave_max,
@ -390,7 +389,7 @@ swampy_biomes,
0,
swamp_light_max,
30,
1000,
10000,
4,
swamp_min,
swamp_max)
@ -513,7 +512,7 @@ magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
100,
15000,
4,
nether_min,
nether_max)
@ -526,7 +525,7 @@ magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
100,
15500,
4,
nether_min,
nether_max)
@ -539,7 +538,7 @@ magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
100,
16000,
4,
nether_min,
nether_max)

View File

@ -287,7 +287,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
1000,
17000,
2,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -211,7 +211,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
80,
5500,
3,
water-16,
water+1)

View File

@ -225,7 +225,7 @@ mcl_mobs:spawn_setup({
},
min_height = mcl_vars.mg_nether_min,
max_height = mcl_vars.mg_nether_max,
chance = 200,
chance = 2000,
})
mcl_mobs:spawn_setup({
@ -241,7 +241,7 @@ mcl_mobs:spawn_setup({
},
min_height = mcl_vars.mg_nether_min,
max_height = mcl_vars.mg_nether_max,
chance = 20,
chance = 100,
})
-- spawn eggs

View File

@ -183,7 +183,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
750,
4000,
3,
water-16,
water+1)

View File

@ -2336,7 +2336,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
2,
20,
4,
mobs_mc.water_level+1,
mcl_vars.mg_overworld_max)

View File

@ -225,7 +225,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
50,
4090,
4,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -463,7 +463,7 @@ mcl_mobs.register_arrow("mobs_mc:wither_skull", {
},
velocity = 7,
rotate = 90,
_lifetime = 15,
_lifetime = 350,
on_punch = function(self) end,
-- direct hit
@ -516,7 +516,7 @@ mcl_mobs.register_arrow("mobs_mc:wither_skull_strong", {
},
velocity = 4,
rotate = 90,
_lifetime = 25,
_lifetime = 500,
on_punch = function(self) end,
-- direct hit

View File

@ -224,7 +224,7 @@ mcl_mobs:spawn_specific(
0,
minetest.LIGHT_MAX+1,
30,
80,
9000,
7,
mobs_mc.water_level+3,
mcl_vars.mg_overworld_max)

View File

@ -243,7 +243,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
1000,
6000,
4,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
@ -332,7 +332,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
50,
60000,
4,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
@ -348,7 +348,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
2400,
6500,
4,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
@ -362,7 +362,7 @@ mcl_mobs:spawn_specific(
0,
7,
30,
120,
65000,
4,
mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)

View File

@ -53,8 +53,8 @@ Range: 4=Range: 4
Rating @1=Classificação @1
# @1 is minimal rating, @2 is maximum rating
Rating @1-@2=Classificação @1-@2
The fall damage on this block is increased by @1%.=O dano por queda nesse bloco é aumentado em @1%.
The fall damage on this block is reduced by @1%.=O dano por queda nesse bloco é reduzido em @1%.
The fall damage on this block is increased by @1%.=O dano por queda nesse bloco é aumentado em @ 1%.
The fall damage on this block is reduced by @1%.=O dano por queda nesse bloco é reduzido em @ 1%.
This block allows light to propagate with a small loss of brightness, and sunlight can even go through losslessly.=Esse bloco permite que a luz se propague com uma pequena perda de brilho, e a luz solar pode até passar sem perdas.
This block allows light to propagate with a small loss of brightness.=Esse bloco permite que a luz se propague com uma pequena perda de brilho.
This block allows sunlight to propagate without loss in brightness.=Esse bloco permite que a luz solar se propague sem perda de brilho.
@ -78,7 +78,7 @@ This block connects to this block: @1.=Esse bloco se conecta a esse bloco: @1.
This block decreases your breath and causes a drowning damage of @1 hit point every 2 seconds.=Esse bloco diminui a sua respiração e causa um dano por afogamento de @1 ponto de vida a cada 2 segundos.
This block decreases your breath and causes a drowning damage of @1 hit points every 2 seconds.=Esse bloco diminui a sua respiração e causa um dano por afogamento de @1 pontos de vida a cada 2 segundos.
This block is a light source with a light level of @1.=Esse bloco é uma fonte de luz com um nível de luz de @1.
This block glows faintly with a light level of @1.=Esse bloco tem um brilho fraco com um nível de luz de @1.
This block glows faintly with a light level of @1.=Esse bloco tem um brilho fraco com um nível de luz de @ 1.
This block is a building block for creating various buildings.=Esse bloco é um bloco de construção para criar vários edifícios.
This block is a liquid with these properties:=Esse bloco é um líquido com as seguintes propriedades:
This block is affected by gravity and can fall.=Esse bloco é afetado pela gravidade e pode cair.
@ -123,7 +123,7 @@ any level=qualquer nível
level 0=nível 0
level 0-@1=nivel 0-@1
unknown=desconhecido
Unknown item (@1)=Item desconhecido (@1)
Unknown item (@1)=Item desconhecido
• @1: @2=
• @1: @2 HP=
• @1: @2, @3=

View File

@ -447,8 +447,8 @@ The values for X, Y and Z work like this:=Les valeurs pour X, Y et Z fonctionnen
You can view your current position in the debug screen (open with [F5]).=Vous pouvez afficher votre position actuelle dans l'écran de débogage (ouvrir avec [F5]).
# MCL2 extensions
Creative Mode=Mode créatif
Enabling Creative Mode in MineClone 2 applies the following changes:=L'activation du mode créatif dans MineClone 2 applique les modifications suivantes :
Creative Mode=Mode Creatif
Enabling Creative Mode in MineClone 2 applies the following changes:=L'activation du mode créatif dans MineClone 2 applique les modifications suivantes:
• You keep the things you've placed=• Vous gardez les choses que vous avez placées
• Creative inventory is available to obtain most items easily=• Un inventaire créatif est disponible pour obtenir facilement la plupart des objets
• Hand breaks all default blocks instantly=• La main brise instantanément tous les blocs par défaut

View File

@ -25,7 +25,7 @@ Minetest is a free software game engine for games based on voxel gameplay, inspi
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 (also called “subgames”) can, however, be much more complex than this.=L'utente è gettat* in un enorme mondo fatto di cubi o blocchi. Questi cubi normalmente compongono il panorama e possono essere tolti o messi quasi completamente liberamente. Usando gli oggetti raccolti, si possono assemblare nuovi strumenti e altri oggetti. I giochi in Minetest (chiamati anche "subgame") possono, comunque, essere molto più complessi.
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.=Una caratteristica centrale di Minetest è la capacità integrata di usare moduli. I moduli modificano l'esperienza di gioco esistente. Possono essere tanto semplici da aggiungere qualche blocco decorativo o essere molto complessi, per esempio introducendo concetti di gioco totalmente nuovi, generare un tipo di mondo completamente diverso, e molte altre cose.
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 può essere giocato localmente o in rete assieme a più utenti. Il gioco in rete funzionerà immediatamente senza nessun modulo, senza bisogno di programmi aggiuntivi perché interamente forniti dal server.
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 generalmente include un gioco predefinito semplice, chiamato "Minetest Game" (mostrato nelle immagini 1 e 2). Probabilmente lo avete già. Altri giochi per Minetest possono essere scaricati dai forum ufficiali di Minetest <https://forum.minetest.net/viewforum.php?f@=48>.
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 generalmente include un gioco predefinito semplice, chiamato "Minetest Game" (mostrato nelle immagini 1 e 2). Probabilmente lo avete già. Altri giochi per Minetest possono essere scaricati dai forum ufficiali di Minetest <https://forum.minetest.net/viewforum.php?f=48>.
Sneaking=Strisciare
Sneaking makes you walk slower and prevents you from falling off the edge of a block.=Strisciare vi fa camminare più lentamente e vi impedisce di cadere dal bordo di un blocco.
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!=Per strisciare, tenete premuto il tasto per strisciare (predefinito [Maiusc]). Quando lo rilasciate, smettete di strisciare. Fate attenzione: quando rilasciate il tasto per strisciare vicino a un orlo, potreste cadere!
@ -396,7 +396,7 @@ Note that “transparency” here only means that the block is able to carry bri
Coordinates=Coordinate
The Minetest 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.=Il mondo di Minetest è un grande cubo. E per questo, una posizione nel mondo può essere facilmente espressa tramite coordinate Cartesiane. Cioè, per ogni posizione nel mondo, esistono tre valori: X, Y e Z.
Like this: (5, 45, -12)=Come questi: (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.=Ciò si riferisce alla posizione dove X@=5 (si legga “X vale 5”, NdT), Y@=45 e Z@=-12. Le tre lettere sono chiamate “assi”: Y si riferisce all'altezza. X e Z si riferiscono alla posizione orizzontale.
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.=Ciò si riferisce alla posizione dove X=5 (si legga “X vale 5”, NdT), Y=45 e Z=-12. Le tre lettere sono chiamate “assi”: Y si riferisce all'altezza. X e Z si riferiscono alla posizione orizzontale.
The values for X, Y and Z work like this:=I valori di X, Y e Z funzionano così:
• If you go up, Y increases=• Se salite, Y aumenta
• If you go down, Y decreases=• Se scendete, Y diminuisce

View File

@ -1,48 +0,0 @@
# textdomain: mcl_tt
Head armor=Armadura para la cabeza
Torso armor=Armadura para el torso
Legs armor=Armadura para las piernas
Feet armor=Armadura para los pies
Armor points: @1=Puntos de armadura: @1
Armor durability: @1=Durabilidad de armadura: @1
Protection: @1%=Protección: @1%
Hunger points: +@1=Puntos de hambre: +@1
Saturation points: +@1=Puntos de saturación: +@1
Deals damage when falling=Causa daño al caer
Grows on grass blocks or dirt=Crece sobre bloques de pasto o tierra
Grows on grass blocks, podzol, dirt or coarse dirt=Crece sobre bloques de pasto, podsol, tierra o tierra estéril
Flammable=Inflamable
Zombie view range: -50%=Rango de visión zombie: -50%
Skeleton view range: -50%=Rango de visión de esqueleto: -50%
Creeper view range: -50%=Rango de visión de creeper: -50%
Damage: @1=Daño: @1
Damage (@1): @2=Daño (@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=Daño por contacto: @1 por segundo
Contact healing: @1 per second=Curación por contacto: @1 por segundo
Drowning damage: @1=Dañor por ahogamiento: @1
Bouncy (@1%)=Rebota (@1%)
Luminance: @1=Luminancia: @1
Slippery=Resbaladizo
Climbable=Escalable
Climbable (only downwards)=Escalable (solo hacia abajo)
No jumping=No saltar
No swimming upwards=No nadar hacia arriba
No rising=No levantar
Fall damage: @1%=Daño por caída: @1%
Fall damage: +@1%=Daño por caída: @1%
No fall damage=Sin daño por caída
Mining speed: @1=Velocidad de minado: @1
Very fast=Muy rápido
Extremely fast=Extremadamente rápido
Fast=Rápido
Slow=Lento
Very slow=Muy lento
Painfully slow=Dolorosamente lento
Mining durability: @1=Durabilidad de minería: @1
Block breaking strength: @1=Fuerza para romper bloques: @1
@1 uses=@1 usos
Unlimited uses=Usos ilimitados
Durability: @1=Durabilidad: @1

View File

@ -550,13 +550,6 @@ awards.register_achievement("mcl:obsidian", {
type = "Advancement",
group = "Overworld",
})
awards.register_achievement("mcl:fireball_redir_serv", {
title = S("Fireball Redirection Service"),
description = S("Defeat a ghast with his own weapon."),
icon = "mcl_fire_fire_charge.png",
type = "Advancement",
group = "Nether",
})
awards.register_achievement("mcl:hero_of_the_village", {
title = S("Hero of the Village"),

View File

@ -15,7 +15,7 @@ Eat a cooked porkchop.=Mangez du porc cuit.
Eat a cooked rabbit.=Mangez du lapin cuit.
Get really desperate and eat rotten flesh.=Soyez vraiment désespéré et mangez de la chair pourrie.
Getting Wood=Obtenir du bois
Getting an Upgrade=Obtenir une amélioration
Getting an Upgrade=Obtenir une augmentation de niveau
Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters.=Frappez un squelette, wither squelette ou stray à l'arc et à la flèche à une distance d'au moins 20 mètres.
Hot Topic=Sujet brûlant
Into Fire=Dans le feu

View File

@ -155,7 +155,7 @@ minetest.register_entity("mcl_experience:orb", {
collisionbox = {-0.2, -0.2, -0.2, 0.2, 0.2, 0.2},
visual = "sprite",
visual_size = {x = 0.4, y = 0.4},
textures = {"mcl_experience_orb.png"},
textures = {name="mcl_experience_orb.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}},
spritediv = {x = 1, y = 14},
initial_sprite_basepos = {x = 0, y = 0},
is_visible = true,

View File

@ -1,4 +1,4 @@
# textdomain: mcl_info
Set debug bit mask: 0 @= disable, 1 @= biome name, 2 @= coordinates, 3 @= all=Régler le masque de bits pour débuguer : 0 @= pour désactiver, 1 @= nom du biome, 2 @= coordonnées, 3 @= tout
Set debug bit mask: 0 @= disable, 1 @= biome name, 2 @= coordinates, 3 @= all=Régler le masque de bits pour débuguer : 0 @= pour désactiver, 1 @= nom du biome, 2 @= coordonnées, 3 @= tout=
Error! Possible values are integer numbers from @1 to @2=Erreur ! Les valeurs possibles sont des nombres entiers de @1 à @2
Debug bit mask set to @1=Masque de bits de débuguage réglé à @1

View File

@ -3,19 +3,6 @@ mcl_inventory = {}
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/creative.lua")
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/survival.lua")
local old_is_creative_enabled = minetest.is_creative_enabled
function minetest.is_creative_enabled(name)
if old_is_creative_enabled(name) then return true end
if not name then return false end
assert(type(name) == "string", "minetest.is_creative_enabled requires a string (the playername) argument.")
local p = minetest.get_player_by_name(name)
if p then
return p:get_meta():get_string("gamemode") == "creative"
end
return false
end
---@param player mt.PlayerObjectRef
---@param armor_change_only? boolean
local function set_inventory(player, armor_change_only)
@ -86,14 +73,12 @@ end)
---@param player mt.PlayerObjectRef
function mcl_inventory.update_inventory(player)
local player_name = player:get_player_name()
local is_gamemode_creative = minetest.is_creative_enabled(player_name)
if is_gamemode_creative then
local player_gamemode = mcl_gamemode.get_gamemode(player)
if player_gamemode == "creative" then
mcl_inventory.set_creative_formspec(player)
elseif not is_gamemode_creative then
elseif player_gamemode == "survival" then
player:set_inventory_formspec(mcl_inventory.build_survival_formspec(player))
end
mcl_meshhand.update_player(player)
end
mcl_gamemode.register_on_gamemode_change(function(player, old_gamemode, new_gamemode)

View File

@ -1,15 +1,18 @@
---@diagnostic disable need-check-nil
local table = table
local ipairs = ipairs
local S = minetest.get_translator("mcl_inventory")
local F = minetest.formspec_escape
---@type {id: string, description: string, item_icon: string, build: (fun(player: ObjectRef): string), handle: fun(player: ObjectRef, fields: table), access: (fun(player): boolean), show_inventory: boolean}[]
mcl_inventory.registered_survival_inventory_tabs = {}
---@param def {id: string, description: string, item_icon: string, build: (fun(player: ObjectRef): string), handle: fun(player: ObjectRef, fields: table), access: (fun(player): boolean), show_inventory: boolean}
function mcl_inventory.register_survival_inventory_tab(def)
if #mcl_inventory.registered_survival_inventory_tabs == 7 then
error("Too many tabs registered!")
error("Too much tabs registered!")
end
assert(def.id)
@ -131,10 +134,10 @@ local main_page_static = table.concat({
--Listring
"listring[current_player;main]",
"listring[current_player;craft]",
"listring[current_player;main]",
"listring[current_player;armor]",
"listring[current_player;main]",
"listring[current_player;craft]",
"listring[current_player;main]",
})
mcl_inventory.register_survival_inventory_tab({
@ -201,14 +204,13 @@ function mcl_inventory.build_survival_formspec(player)
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
local player_name = player:get_player_name()
if formname == "" and #mcl_inventory.registered_survival_inventory_tabs ~= 1 and
not minetest.is_creative_enabled(player_name) then
mcl_gamemode.get_gamemode(player) == "survival" then
for _, d in ipairs(mcl_inventory.registered_survival_inventory_tabs) do
if fields["tab_" .. d.id] and d.access(player) then
player_current_tab[player] = d.id
mcl_inventory.update_inventory(player)
break
return
end
end

View File

@ -1,7 +1,7 @@
# 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.=Error: el comando "@1" no existe; su bloque de comando no ha sido cambiado. Utilice el comando de chat "help" para obtener una lista de los comandos disponibles.
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.=Error: el comando "@1" no existe; su bloque de comando no ha sido cambiado. Utilice el comando de chat "help" para obtener una lista de los comandos disponibles. Sugerencia: intente eliminar la barra diagonal inicial.
Error: You have insufficient privileges to use the command “@1” (missing privilege: @2)! The command block has not been changed.=Error: ¡No tiene suficientes privilegios para usar el comando “@1” (faltan privilegios: @2)! El bloque de comando no ha sido cambiado.
Error: You have insufficient privileges to use the command “@1” (missing privilege: @2)! The command block has not been changed.=Error: ¡No tiene suficientes privilegios para usar el comando “@ 1” (faltan privilegios: @ 2)! El bloque de comando no ha sido cambiado.
Error: No commander! Block must be replaced.=Error: ¡Sin dueño! El bloque debe ser reemplazado.
Commander: @1=Dueño: @1
Submit=Aceptar

View File

@ -2,24 +2,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
local light = minetest.LIGHT_MAX
local function generate_action_on(color)
local n = "mesecons_lightstone:lightstone_on"
if color then n = n .. "_" .. color end
return function(pos, node)
minetest.swap_node(pos, {name=n, param2 = node.param2})
end
end
local function generate_action_off(color)
local n = "mesecons_lightstone:lightstone_off"
if color then n = n .. "_" .. color end
return function(pos, node)
minetest.swap_node(pos, {name=n, param2 = node.param2})
end
end
local ls_off_name = "mesecons_lightstone:lightstone_off"
local ls_off_def = {
minetest.register_node("mesecons_lightstone:lightstone_off", {
tiles = {"jeija_lightstone_gray_off.png"},
groups = {handy=1, mesecon_effector_off = 1, mesecon = 2},
is_ground_content = false,
@ -28,16 +11,16 @@ local ls_off_def = {
_doc_items_longdesc = S("Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.", light),
sounds = mcl_sounds.node_sound_glass_defaults(),
mesecons = {effector = {
action_on = generate_action_on(),
action_on = function(pos, node)
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_on", param2 = node.param2})
end,
rules = mesecon.rules.alldirs,
}},
_mcl_blast_resistance = 0.3,
_mcl_hardness = 0.3,
}
minetest.register_node(ls_off_name, ls_off_def)
})
local ls_on_name = "mesecons_lightstone:lightstone_on"
local ls_on_def = {
minetest.register_node("mesecons_lightstone:lightstone_on", {
tiles = {"jeija_lightstone_gray_on.png"},
groups = {handy=1, not_in_creative_inventory=1, mesecon = 2, opaque = 1},
drop = "node mesecons_lightstone:lightstone_off",
@ -46,59 +29,14 @@ local ls_on_def = {
light_source = light,
sounds = mcl_sounds.node_sound_glass_defaults(),
mesecons = {effector = {
action_off = generate_action_off(),
action_off = function(pos, node)
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_off", param2 = node.param2})
end,
rules = mesecon.rules.alldirs,
}},
_mcl_blast_resistance = 0.3,
_mcl_hardness = 0.3,
}
minetest.register_node(ls_on_name, ls_on_def)
local colored_lamps = {
{"white", S("White Redstone Lamp"), "white"},
{"grey", S("Grey Redstone Lamp"), "dark_grey"},
{"silver", S("Light Grey Redstone Lamp"), "grey"},
{"black", S("Black Redstone Lamp"), "black"},
{"red", S("Red Redstone Lamp"), "red"},
{"yellow", S("Yellow Redstone Lamp"), "yellow"},
{"green", S("Green Redstone Lamp"), "dark_green"},
{"cyan", S("Cyan Redstone Lamp"), "cyan"},
{"blue", S("Blue Redstone Lamp"), "blue"},
{"magenta", S("Magenta Redstone Lamp"), "magenta"},
{"orange", S("Orange Redstone Lamp"), "orange"},
{"purple", S("Purple Redstone Lamp"), "violet"},
{"brown", S("Brown Redstone Lamp"), "brown"},
{"pink", S("Pink Redstone Lamp"), "pink"},
{"lime", S("Lime Redstone Lamp"), "green"},
{"lightblue", S("Light Blue Redstone Lamp"), "lightblue"},
}
for _, row in ipairs(colored_lamps) do
local name = row[1]
local desc = row[2]
local dye = row[3]
local mask = "^[hsl:0:-100^(mcl_lightstone_mask.png^[multiply:" .. name .. "^[opacity:100)"
if name == "lightblue" then
mask = "^[hsl:0:-100^(mcl_lightstone_mask.png^[multiply:" .. name .. "^[hsl:0:200^[opacity:100)"
end
local name_off = ls_off_name .. "_" .. name
local def_off = table.copy(ls_off_def)
def_off.description = desc
def_off._doc_items_longdesc = nil
def_off._doc_items_create_entry = false
def_off.mesecons.effector.action_on = generate_action_on(name)
def_off.tiles[1] = def_off.tiles[1] .. mask
local def_on = table.copy(ls_on_def)
def_on.drop = name_off
def_on.tiles[1] = def_on.tiles[1] .. mask
def_on.mesecons.effector.action_off = generate_action_off(name)
minetest.register_node(name_off, def_off)
minetest.register_node(ls_on_name.."_"..name, def_on)
minetest.register_craft({
type = "shapeless",
output = name_off,
recipe = {ls_off_name, "mcl_dye:" .. dye}
})
end
})
minetest.register_craft({
output = "mesecons_lightstone:lightstone_off",

View File

@ -2,19 +2,3 @@
Redstone Lamp=Redstonelampe
Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=Redstonelampen sind einfache Redstonekomponenten, die hell aufleuchten (Helligkeitspegel von @1), wenn sie Redstoneenergie erhalten.
Glows when powered by redstone power=Leuchtet, wenn mit Redstoneenergie versorgt
White Redstone Lamp=Weiße Redstonelampe
Grey Redstone Lamp=Graue Redstonelampe
Light Grey Redstone Lamp=Hellgraue Redstonelampe
Black Redstone Lamp=Schwartze Redstonelampe
Red Redstone Lamp=Rote Redstonelampe
Yellow Redstone Lamp=Gelbe Redstonelampe
Green Redstone Lamp=Grüne Redstonelampe
Cyan Redstone Lamp=Türkise Redstonelampe
Blue Redstone Lamp=Blaue Redstonelampe
Magenta Redstone Lamp=Magenta Redstonelampe
Orange Redstone Lamp=Orange Redstonelampe
Purple Redstone Lamp=Violette Redstonelampe
Brown Redstone Lamp=Braune Redstonelampe
Pink Redstone Lamp=Rosa Redstonelampe
Lime Redstone Lamp=Lindgrüne Redstonelampe
Light Blue Redstone Lamp=Hellblaue Redstonelampe

View File

@ -2,19 +2,3 @@
Redstone Lamp=Lampa czerwienitowa
Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=Lampy czerwienitowe to mechanizmy czerwienitowe, które jasno świecą (poziom światła @1), gdy są zasilone energią czerwienitową.
Glows when powered by redstone power=Świeci gdy zasilana czerwienitem
White Redstone Lamp=Biała lampa czerwienitowa
Grey Redstone Lamp=Szara lampa czerwienitowa
Light Grey Redstone Lamp=Jasnoszara lampa czerwienitowa
Black Redstone Lamp=Czarna lampa czerwienitowa
Red Redstone Lamp=Czerwona lampa czerwienitowa
Yellow Redstone Lamp=Żółta lampa czerwienitowa
Green Redstone Lamp=Zielona lampa czerwienitowa
Cyan Redstone Lamp=Błękitna lampa czerwienitowa
Blue Redstone Lamp=Niebieska lampa czerwienitowa
Magenta Redstone Lamp=Karmazynowa lampa czerwienitowa
Orange Redstone Lamp=Pomarańczowa lampa czerwienitowa
Purple Redstone Lamp=Fioletowa lampa czerwienitowa
Brown Redstone Lamp=Brązowa lampa czerwienitowa
Pink Redstone Lamp=Różowa lampa czerwienitowa
Lime Redstone Lamp=Jasnozielona lampa czerwienitowa
Light Blue Redstone Lamp=Jasnoniebieska lampa czerwienitowa

View File

@ -2,19 +2,3 @@
Redstone Lamp=
Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=
Glows when powered by redstone power=
White Redstone Lamp=
Grey Redstone Lamp=
Light Grey Redstone Lamp=
Black Redstone Lamp=
Red Redstone Lamp=
Yellow Redstone Lamp=
Green Redstone Lamp=
Cyan Redstone Lamp=
Blue Redstone Lamp=
Magenta Redstone Lamp=
Orange Redstone Lamp=
Purple Redstone Lamp=
Brown Redstone Lamp=
Pink Redstone Lamp=
Lime Redstone Lamp=
Light Blue Redstone Lamp=

View File

@ -1,19 +0,0 @@
# textdomain: mcl_amethyst
Amethyst Cluster=Amethysthaufen
Amethyst Cluster is the final growth of amethyst bud.=Der Amethysthaufen ist das endgültige Wachstum der Amethystknospe.
Amethyst Shard=Amethystsplitter
An amethyst shard is a crystalline mineral.=Ein Amethystsplitter ist ein kristallines Mineral.
Block of Amethyst=Amethystblock
Budding Amethyst=Amethystknospe
Calcite=Kalzit
Calcite can be found as part of amethyst geodes.=Kalzit kann als Teil von Amethystgeoden gefunden werden.
Large Amethyst Bud=Große Amethystknospe
Large Amethyst Bud is the third growth of amethyst bud.=Die große Amethystknospe ist die dritte Wachstumsstufe der Amethystknospe.
Medium Amethyst Bud=Mittelgroße Amethystknospe
Medium Amethyst Bud is the second growth of amethyst bud.=Die mittelgroße Amethystknospe ist die zweite Wachstumsstufe der Amethystknospe.
Small Amethyst Bud=Kleine Amethystknospe
Small Amethyst Bud is the first growth of amethyst bud.=Die kleine Amethystknospe ist die erste Wachstumsstufe der Amethystknospe.
The Block of Amethyst is a decoration block crafted from amethyst shards.=Der Amethystblock ist ein aus Amethystsplittern gefertigter Dekorationsblock.
The Budding Amethyst can grow amethyst=Knospender Amethyst kann Amethyst wachsen lassen.
Tinted Glass=Getöntes Glas
Tinted Glass is a type of glass which blocks lights while it is visually transparent.=Getöntes Glas ist eine Art von Glas, das Licht blockiert, während es visuell transparent ist.

View File

@ -103,10 +103,10 @@ local function get_armor_texture(textures, name, modname, itemname, itemstring)
end
if overlay == "" then return core_armor_texture end -- key not present; armor not trimmed
return core_armor_texture .. overlay
end
return func
end
@ -129,7 +129,6 @@ function mcl_armor.register_set(def)
local groups = table.copy(groups)
groups["armor_" .. name] = 1
groups["combat_armor_" .. name] = 1
groups["armor_" .. def.name] = 1
groups.armor = 1
groups.combat_armor = 1
groups.mcl_armor_points = def.points[name]
@ -327,12 +326,12 @@ end
tt.register_snippet(function(itemstring, toolcaps, stack)
if not stack then return nil end
local meta = stack:get_meta()
if not mcl_armor.is_trimmed(stack) then return nil end
if not mcl_armor.is_trimmed(stack) then return nil end
-- we need to get the part of the overlay image between the overlay begin ( and the trim name end _
-- we COULD easily store this info in meta, but that would bloat the meta storage, as the same few values would be stored over and over again on every trimmed item
-- this is fine here as this code gets only executed when you put armor and a trim in a smithing table
local full_overlay = meta:get_string("mcl_armor:trim_overlay")
local trim_name = full_overlay:match("%((.-)%_")
local trim_name = full_overlay:match("%((.-)%_")
return "Upgrade:\n " .. trim_name:gsub("^%l", string.upper) .. " Armor Trim"
end)
@ -340,4 +339,4 @@ function mcl_armor.is_trimmed(itemstack)
-- this meta value will be there for every trimmed armor piece
-- remember, get_string returns "" if the key doesn't exist
return itemstack:get_meta():get_string("mcl_armor:trim_overlay") ~= ""
end
end

View File

@ -71,6 +71,5 @@ dofile(modpath .. "/api.lua")
dofile(modpath .. "/player.lua")
dofile(modpath .. "/damage.lua")
dofile(modpath .. "/register.lua")
dofile(modpath .. "/leather.lua")
dofile(modpath .. "/alias.lua")
dofile(modpath .. "/trims.lua")

View File

@ -1,207 +0,0 @@
local C = minetest.colorize
local colors = {
-- { ID, decription, wool, dye }
{ "red", "Red", "mcl_dye:red", "#951d1d" },
{ "blue", "Blue", "mcl_dye:blue", "#2a2c94" },
{ "cyan", "Cyan", "mcl_dye:cyan", "#0d7d8e" },
{ "grey", "Grey", "mcl_dye:dark_grey", "#363a3f" },
{ "silver", "Light Grey", "mcl_dye:grey", "#818177" },
{ "black", "Black", "mcl_dye:black", "#020307" },
{ "yellow", "Yellow", "mcl_dye:yellow", "#f2b410" },
{ "green", "Green", "mcl_dye:dark_green", "#495d20" },
{ "magenta", "Magenta", "mcl_dye:magenta", "#ae2ea4" },
{ "orange", "Orange", "mcl_dye:orange", "#e36501" },
{ "purple", "Purple", "mcl_dye:violet", "#681ba1" },
{ "brown", "Brown", "mcl_dye:brown", "#623b1a" },
{ "pink", "Pink", "mcl_dye:pink", "#d66691" },
{ "lime", "Lime", "mcl_dye:green", "#60ad13" },
{ "light_blue", "Light Blue", "mcl_dye:lightblue", "#1f8eca" },
{ "white", "White", "mcl_dye:white", "#d1d7d8" },
}
local function color_string_to_table(colorstring)
return {
r = tonumber(colorstring:sub(2,3), 16), -- 16 as second parameter allows hexadecimal
g = tonumber(colorstring:sub(4,5), 16),
b = tonumber(colorstring:sub(6,7), 16),
}
end
local function av(a, b)
return (a + b)/2
end
local function calculate_color(first, last)
return {
r = av(first.r, last.r),
g = av(first.g, last.g),
b = av(first.b, last.b),
}
end
local function get_texture_function(texture)
local function get_texture(_, itemstack)
local out
local color = itemstack:get_meta():get_string("mcl_armor:color")
if color == "" or color == nil then
out = texture
else
out = texture.."^[hsl:0:100:50^[multiply:"..color
end
if mcl_enchanting.is_enchanted(itemstack:get_name()) then
return out..mcl_enchanting.overlay
else
return out
end
end
return get_texture
end
function mcl_armor.colorize_leather_armor(itemstack, colorstring)
if not itemstack or minetest.get_item_group(itemstack:get_name(), "armor_leather") == 0 then
return
end
local color = color_string_to_table(colorstring)
colorstring = minetest.colorspec_to_colorstring(color)
local meta = itemstack:get_meta()
local old_color = meta:get_string("mcl_armor:color")
if old_color == colorstring then return
elseif old_color ~= "" then
color = calculate_color(
color_string_to_table(minetest.colorspec_to_colorstring(old_color)),
color
)
colorstring = minetest.colorspec_to_colorstring(color)
end
meta:set_string("mcl_armor:color", colorstring)
meta:set_string("inventory_image",
itemstack:get_definition().inventory_image .. "^[hsl:0:100:50^[multiply:" .. colorstring
)
tt.reload_itemstack_description(itemstack)
return itemstack
end
function mcl_armor.wash_leather_armor(itemstack)
if not itemstack or minetest.get_item_group(itemstack:get_name(), "armor_leather") == 0 then
return
end
local meta = itemstack:get_meta()
meta:set_string("mcl_armor:color", "")
meta:set_string("inventory_image", "")
tt.reload_itemstack_description(itemstack)
return itemstack
end
mcl_armor.register_set({
name = "leather",
description = "Leather",
descriptions = {
head = "Cap",
torso = "Tunic",
legs = "Pants",
},
durability = 80,
enchantability = 15,
points = {
head = 1,
torso = 3,
legs = 2,
feet = 1,
},
textures = {
head = get_texture_function("mcl_armor_helmet_leather.png"),
torso = get_texture_function("mcl_armor_chestplate_leather.png"),
legs = get_texture_function("mcl_armor_leggings_leather.png"),
feet = get_texture_function("mcl_armor_boots_leather.png"),
},
craft_material = "mcl_mobitems:leather",
})
tt.register_priority_snippet(function(_, _, itemstack)
if not itemstack or minetest.get_item_group(itemstack:get_name(), "armor_leather") == 0 then
return
end
local color = itemstack:get_meta():get_string("mcl_armor:color")
if color and color ~= "" then
local text = C(mcl_colors.GRAY, "Dyed: "..color)
return text, false
end
end)
for name, element in pairs(mcl_armor.elements) do
local modname = minetest.get_current_modname()
local itemname = modname .. ":" .. element.name .. "_leather"
minetest.register_craft({
type = "shapeless",
output = itemname,
recipe = {
itemname,
"group:dye",
},
})
local ench_itemname = itemname .. "_enchanted"
minetest.register_craft({
type = "shapeless",
output = ench_itemname,
recipe = {
ench_itemname,
"group:dye",
},
})
end
local function colorizing_crafting(itemstack, player, old_craft_grid, craft_inv)
if minetest.get_item_group(itemstack:get_name(), "armor_leather") == 0 then
return
end
local found_la = nil
local dye_color = nil
for _, item in pairs(old_craft_grid) do
local name = item:get_name()
if name == "" then
-- continue
elseif minetest.get_item_group(name, "armor_leather") > 0 then
if found_la then return end
found_la = item
elseif minetest.get_item_group(name, "dye") > 0 then
if dye_color then return end
for _, row in pairs(colors) do
if row[3] == name then dye_color = row[4] end
end
else return end
end
return mcl_armor.colorize_leather_armor(found_la, dye_color) or ItemStack()
end
minetest.register_craft_predict(colorizing_crafting)
minetest.register_on_craft(colorizing_crafting)
minetest.register_chatcommand("color_leather", {
params = "<color>",
description = "Colorize a piece of leather armor, or wash it",
privs = {debug = true},
func = function(name, param)
local player = minetest.get_player_by_name(name)
if player then
local item = player:get_wielded_item()
if not item or minetest.get_item_group(item:get_name(), "armor_leather") == 0 then
return false, "Not leather armor."
end
if param == "wash" then
player:set_wielded_item(mcl_armor.wash_leather_armor(item))
return true, "Washed."
end
local colorstring = minetest.colorspec_to_colorstring(param)
if not colorstring then return false, "Invalid color" end
player:set_wielded_item(mcl_armor.colorize_leather_armor(item, colorstring))
return true, "Done: " .. colorstring
else
return false, "Player isn't online"
end
end,
})

View File

@ -1,6 +1,6 @@
# textdomain: mcl_armor
This is a piece of equippable armor which reduces the amount of damage you receive.=Dies ist ein Teil einer tragbaren Rüstung, die die Menge an Schaden, den Sie erleiden, reduziert.
To equip it, put it on the corresponding armor slot in your inventory menu.=Um es zu tragen, legen Sie es in den passenden Rüstungsplatz in Ihrem Inventarmenü.
To equip it, put it on the corresponding armor slot in your inventory menu.=Um es zu tragen, legen Sie es in den passenden Rüstungsplatz in ihrem Inventarmenü.
Leather Cap=Lederkappe
Iron Helmet=Eisenhelm
Golden Helmet=Goldhelm

View File

@ -1,5 +1,5 @@
name = mcl_armor
author = stu
description = Adds craftable armor that is visible to other players.
depends = mcl_core, mcl_player, mcl_enchanting, mcl_damage, mcl_colors, mcl_grindstone
depends = mcl_core, mcl_player, mcl_enchanting, mcl_damage, mcl_grindstone
optional_depends = mcl_fire, ethereal, bakedclay

View File

@ -1,5 +1,24 @@
local S = minetest.get_translator(minetest.get_current_modname())
mcl_armor.register_set({
name = "leather",
description = "Leather",
descriptions = {
head = "Cap",
torso = "Tunic",
legs = "Pants",
},
durability = 80,
enchantability = 15,
points = {
head = 1,
torso = 3,
legs = 2,
feet = 1,
},
craft_material = "mcl_mobitems:leather",
})
mcl_armor.register_set({
name = "gold",
description = "Golden",
@ -208,27 +227,5 @@ minetest.register_tool("mcl_armor:elytra", {
on_place = mcl_armor.equip_on_use,
on_secondary_use = mcl_armor.equip_on_use,
_mcl_armor_element = "torso",
_mcl_armor_texture = function(obj, itemstack)
if obj:is_player() then
local cape = mcl_skins.player_skins[obj].cape
if cape ~= "blank.png" then
return cape:gsub("_body", "_elytra")
end
end
return "mcl_armor_elytra.png"
end,
_on_equip = function(obj, itemstack)
if not obj:is_player() then return end
local cape = mcl_skins.player_skins[obj].cape
if cape ~= "blank.png" then
local skinval = mcl_player.player_get_skin(obj)
skinval = skinval:gsub("%^" .. cape, "")
mcl_player.player_set_skin(obj, skinval)
-- this doesn't mess with the data mcl_skins has, so when mcl_skins reloads (which happens when the elytra is unequipped), the normal cape returns
end
end,
_on_unequip = function(obj, itemstack)
if not obj:is_player() then return end
mcl_skins.update_player_skin(obj)
end
_mcl_armor_texture = "mcl_armor_elytra.png"
})

View File

@ -280,7 +280,31 @@ local bamboo_block_def = {
_mcl_blast_resistance = 3,
_mcl_hardness = 2,
_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 = function(itemstack, placer, pointed_thing)
if not pointed_thing then
return itemstack
end
if pointed_thing.type ~= "node" then -- make sure that pointed_thing is not null and is pointing at a node.
return itemstack
end
local pos = pointed_thing.under
if mcl_bamboo.is_protected(pos, placer) then
return
end
-- Use pointed node's on_rightclick function first, if present
local node = minetest.get_node(pointed_thing.under)
if placer and not placer:get_player_control().sneak then
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack
end
end
return minetest.item_place(itemstack, placer, pointed_thing, minetest.dir_to_facedir(vector.direction(pointed_thing.above, pointed_thing.under)))
end,
}
minetest.register_node("mcl_bamboo:bamboo_block", bamboo_block_def)

View File

@ -316,15 +316,10 @@ minetest.register_node(SCAFFOLDING_NAME, {
-- A quick check, that may or may not work, to attempt to prevent placing things on the side of other nodes.
local dir = vector.subtract(pointed.under, pointed.above)
local wdir = minetest.dir_to_wallmounted(dir)
local anode = minetest.get_node(pointed.above).name
if wdir == 1 then
if (anode == "air" or minetest.registered_nodes[anode].buildable_to) and not mcl_bamboo.is_protected(pointed.above, placer) then
minetest.set_node(pointed.above, { name = SCAFFOLDING_NAME, param2 = 0 })
if not minetest.is_creative_enabled(placer:get_player_name()) then
itemstack:take_item(1)
end
else
return
minetest.set_node(pointed.above, { name = SCAFFOLDING_NAME, param2 = 0 })
if not minetest.is_creative_enabled(placer:get_player_name()) then
itemstack:take_item(1)
end
return itemstack
else

View File

@ -57,9 +57,7 @@ function mcl_bows.shoot_arrow(arrow_item, pos, dir, yaw, shooter, power, damage,
damage = damage + (enchantments.power + 1) / 4
end
if enchantments.punch then
knockback = enchantments.punch * 24
else
knockback = 4.875
knockback = enchantments.punch * 21
end
if enchantments.flame then
mcl_burning.set_on_fire(obj, math.huge)

View File

@ -48,7 +48,7 @@ function mcl_bows_s.shoot_arrow_crossbow(arrow_item, pos, dir, yaw, shooter, pow
if damage == nil then
damage = 3
end
local knockback = 4.875
local knockback
if crossbow_stack then
local enchantments = mcl_enchanting.get_enchantments(crossbow_stack)
if enchantments.piercing then

View File

@ -94,14 +94,6 @@ local function register_filled_cauldron(water_level, description, liquid)
drop = "mcl_cauldrons:cauldron",
_mcl_hardness = 2,
_mcl_blast_resistance = 2,
on_rightclick = function(pos, node, player, itemstack)
local outcome = mcl_armor.wash_leather_armor(itemstack)
if outcome then
minetest.sound_play("mcl_potions_bottle_pour",
{pos=pos, gain=0.5, max_hear_range=16},true)
end
return outcome
end,
})
-- Add entry aliases for the Help

View File

@ -4,28 +4,27 @@ local doc_mod = minetest.get_modpath("doc")
local block = {}
block.dyes = {
{"white", S("White Terracotta"), S("White Glazed Terracotta"), S("White Glazed Terracotta Pillar"), S("White Concrete Powder"), S("White Concrete"), "white"},
{"grey", S("Grey Terracotta"), S("Grey Glazed Terracotta"), S("Grey Glazed Terracotta Pillar"), S("Grey Concrete Powder"), S("Grey Concrete"), "dark_grey"},
{"silver", S("Light Grey Terracotta"), S("Light Grey Glazed Terracotta"), S("Light Grey Glazed Terracotta Pillar"), S("Light Grey Concrete Powder"), S("Light Grey Concrete"), "grey"},
{"black", S("Black Terracotta"), S("Black Glazed Terracotta"), S("Black Glazed Terracotta Pillar"), S("Black Concrete Powder"), S("Black Concrete"), "black"},
{"red", S("Red Terracotta"), S("Red Glazed Terracotta"), S("Red Glazed Terracotta Pillar"), S("Red Concrete Powder"), S("Red Concrete"), "red"},
{"yellow", S("Yellow Terracotta"), S("Yellow Glazed Terracotta"), S("Yellow Glazed Terracotta Pillar"), S("Yellow Concrete Powder"), S("Yellow Concrete"), "yellow"},
{"green", S("Green Terracotta"), S("Green Glazed Terracotta"), S("Green Glazed Terracotta Pillar"), S("Green Concrete Powder"), S("Green Concrete"), "dark_green"},
{"cyan", S("Cyan Terracotta"), S("Cyan Glazed Terracotta"), S("Cyan Glazed Terracotta Pillar"), S("Cyan Concrete Powder"), S("Cyan Concrete"), "cyan"},
{"blue", S("Blue Terracotta"), S("Blue Glazed Terracotta"), S("Blue Glazed Terracotta Pillar"), S("Blue Concrete Powder"), S("Blue Concrete"), "blue"},
{"magenta", S("Magenta Terracotta"), S("Magenta Glazed Terracotta"), S("Magenta Glazed Terracotta Pillar"), S("Magenta Concrete Powder"), S("Magenta Concrete"), "magenta"},
{"orange", S("Orange Terracotta"), S("Orange Glazed Terracotta"), S("Orange Glazed Terracotta Pillar"), S("Orange Concrete Powder"), S("Orange Concrete"), "orange"},
{"purple", S("Purple Terracotta"), S("Purple Glazed Terracotta"), S("Purple Glazed Terracotta Pillar"), S("Purple Concrete Powder"), S("Purple Concrete"), "violet"},
{"brown", S("Brown Terracotta"), S("Brown Glazed Terracotta"), S("Brown Glazed Terracotta Pillar"), S("Brown Concrete Powder"), S("Brown Concrete"), "brown"},
{"pink", S("Pink Terracotta"), S("Pink Glazed Terracotta"), S("Pink Glazed Terracotta Pillar"), S("Pink Concrete Powder"), S("Pink Concrete"), "pink"},
{"lime", S("Lime Terracotta"), S("Lime Glazed Terracotta"), S("Lime Glazed Terracotta Pillar"), S("Lime Concrete Powder"), S("Lime Concrete"), "green"},
{"light_blue", S("Light Blue Terracotta"), S("Light Blue Glazed Terracotta"), S("Light Blue Glazed Terracotta Pillar"), S("Light Blue Concrete Powder"), S("Light Blue Concrete"), "lightblue"},
{"white", S("White Terracotta"), S("White Glazed Terracotta"), S("White Concrete Powder"), S("White Concrete"), "white"},
{"grey", S("Grey Terracotta"), S("Grey Glazed Terracotta"), S("Grey Concrete Powder"), S("Grey Concrete"), "dark_grey"},
{"silver", S("Light Grey Terracotta"), S("Light Grey Glazed Terracotta"), S("Light Grey Concrete Powder"), S("Light Grey Concrete"), "grey"},
{"black", S("Black Terracotta"), S("Black Glazed Terracotta"), S("Black Concrete Powder"), S("Black Concrete"), "black"},
{"red", S("Red Terracotta"), S("Red Glazed Terracotta"), S("Red Concrete Powder"), S("Red Concrete"), "red"},
{"yellow", S("Yellow Terracotta"), S("Yellow Glazed Terracotta"), S("Yellow Concrete Powder"), S("Yellow Concrete"), "yellow"},
{"green", S("Green Terracotta"), S("Green Glazed Terracotta"), S("Green Concrete Powder"), S("Green Concrete"), "dark_green"},
{"cyan", S("Cyan Terracotta"), S("Cyan Glazed Terracotta"), S("Cyan Concrete Powder"), S("Cyan Concrete"), "cyan"},
{"blue", S("Blue Terracotta"), S("Blue Glazed Terracotta"), S("Blue Concrete Powder"), S("Blue Concrete"), "blue"},
{"magenta", S("Magenta Terracotta"), S("Magenta Glazed Terracotta"), S("Magenta Concrete Powder"), S("Magenta Concrete"), "magenta"},
{"orange", S("Orange Terracotta"), S("Orange Glazed Terracotta"), S("Orange Concrete Powder"), S("Orange Concrete"), "orange"},
{"purple", S("Purple Terracotta"), S("Purple Glazed Terracotta"), S("Purple Concrete Powder"), S("Purple Concrete"), "violet"},
{"brown", S("Brown Terracotta"), S("Brown Glazed Terracotta"), S("Brown Concrete Powder"), S("Brown Concrete"), "brown"},
{"pink", S("Pink Terracotta"), S("Pink Glazed Terracotta"), S("Pink Concrete Powder"), S("Pink Concrete"), "pink"},
{"lime", S("Lime Terracotta"), S("Lime Glazed Terracotta"), S("Lime Concrete Powder"), S("Lime Concrete"), "green"},
{"light_blue", S("Light Blue Terracotta"), S("Light Blue Glazed Terracotta"), S("Light Blue Concrete Powder"), S("Light Blue Concrete"), "lightblue"},
}
local canonical_color = "yellow"
local hc_desc = S("Terracotta is a basic building material. It comes in many different colors.")
local gt_desc = S("Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.")
local gtp_desc = S("Glazed terracotta pillar is a decorative block with a complex pattern. It can be used with Glazed terracotta to make uneven patterns.")
local cp_desc = S("Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.")
local c_desc = S("Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.")
local cp_tt = S("Turns into concrete on water contact")
@ -58,9 +57,8 @@ for _, row in ipairs(block.dyes) do
local is_canonical = name == canonical_color
local sdesc_hc = row[2]
local sdesc_gt = row[3]
local sdesc_gtp = row[4]
local sdesc_cp = row[5]
local sdesc_c = row[6]
local sdesc_cp = row[4]
local sdesc_c = row[5]
local ldesc_hc, ldesc_gt, ldesc_cp, ldesc_c
local create_entry
local ename_hc, ename_gt, ename_cp, ename_c
@ -68,18 +66,16 @@ for _, row in ipairs(block.dyes) do
if is_canonical then
ldesc_hc = hc_desc
ldesc_gt = gt_desc
ldesc_gtp = gtp_desc
ldesc_cp = cp_desc
ldesc_c = c_desc
ename_hc = S("Colored Terracotta")
ename_gt = S("Glazed Terracotta")
ename_gtp = S("Glazed Terracotta Pillar")
ename_cp = S("Concrete Powder")
ename_c = S("Concrete")
else
create_entry = false
end
local craft_color_group = row[7]
local craft_color_group = row[6]
-- Node Definition
minetest.register_node("mcl_colorblocks:hardened_clay_"..name, {
description = sdesc_hc,
@ -166,22 +162,6 @@ for _, row in ipairs(block.dyes) do
_mcl_hardness = 1.4,
on_rotate = on_rotate,
})
minetest.register_node("mcl_colorblocks:glazed_terracotta_pillar_"..name, {
description = sdesc_gtp,
_doc_items_longdesc = ldesc_gtp,
_doc_items_create_entry = create_entry,
_doc_items_entry_name = ename_gtp,
tiles = {"mcl_colorblocks_glazed_terracotta_pillar_top_"..name..".png", "mcl_colorblocks_glazed_terracotta_pillar_top_"..name..".png", "mcl_colorblocks_glazed_terracotta_pillar_side_"..name..".png"},
groups = {handy=1,pickaxey=1, glazed_terracotta=1,building_block=1, material_stone=1},
paramtype2 = "facedir",
stack_max = 64,
is_ground_content = false,
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4.2,
_mcl_hardness = 1.4,
on_place = mcl_util.rotate_axis,
on_rotate = on_rotate,
})
if not is_canonical and doc_mod then
doc.add_entry_alias("nodes", "mcl_colorblocks:hardened_clay_"..canonical_color, "nodes", "mcl_colorblocks:hardened_clay_"..name)
@ -216,16 +196,6 @@ for _, row in ipairs(block.dyes) do
recipe = "mcl_colorblocks:hardened_clay_"..name,
cooktime = 10,
})
minetest.register_craft({
output = "mcl_colorblocks:glazed_terracotta_pillar_"..name.." 2",
recipe = {
{"mcl_colorblocks:glazed_terracotta_"..name},
{"mcl_colorblocks:glazed_terracotta_"..name},
}
})
mcl_stonecutter.register_recipe("mcl_colorblocks:glazed_terracotta_"..name, "mcl_colorblocks:glazed_terracotta_pillar_"..name)
end
end

View File

@ -1,94 +1,76 @@
# textdomain: mcl_colorblocks
White Terracotta=Terre cuite blanche
White Glazed Terracotta=Terre cuite emaillée blanche
White Glazed Terracotta Pillar=Pilier de terre cuite emaillée blanche
White Concrete Powder=Béton en poudre blanc
White Concrete=Béton blanc
Grey Terracotta=Terre cuite grise
Grey Glazed Terracotta=Terre cuite emaillée grise
Grey Glazed Terracotta Pillar=Pilier de terre cuite emaillée grise
Grey Concrete Powder=Béton en goudre gris
Grey Concrete=Béton gris
Light Grey Terracotta=Terre cuite gris clair
Light Grey Glazed Terracotta=Terre cuite emaillée gris clair
Light Grey Glazed Terracotta Pillar=Pilier de terre cuite emaillée gris clair
Light Grey Concrete Powder=Béton en poudre gris clair
Light Grey Concrete=Béton gris clair
Black Terracotta=Terre cuite noir
Black Glazed Terracotta=Terre cuite emaillée noir
Black Glazed Terracotta Pillar=Pilier de terre cuite emaillée noir
Black Concrete Powder=Béton en poudre noir
Black Concrete=Béton noir
Red Terracotta=Terre cuite rouge
Red Glazed Terracotta=Terre cuite emaillée rouge
Red Glazed Terracotta Pillar=Pilier de terre cuite emaillée rouge
Red Concrete Powder=Béton en poudre rouge
Red Concrete=Béton rouge
Yellow Terracotta=Terre cuite jaune
Yellow Glazed Terracotta=Terre cuite emaillée jaune
Yellow Glazed Terracotta Pillar=Pilier de terre cuite emaillée jaune
Yellow Concrete Powder=Béton en poudre jaune
Yellow Concrete=Béton jaune
Green Terracotta=Terre cuite verte
Green Glazed Terracotta=Terre cuite emaillée verte
Green Glazed Terracotta Pillar=Pilier de terre cuite emaillée verte
Green Concrete Powder=Béton en poudre vert
Green Concrete=Béton vert
Cyan Terracotta=Terre cuite cyan
Cyan Glazed Terracotta=Terre cuite emaillée cyan
Cyan Glazed Terracotta Pillar=Pilier de terre cuite emaillée cyan
Cyan Concrete Powder=Béton en poudre cyan
Cyan Concrete=Béton cyan
Blue Terracotta=Terre cuite bleue
Blue Glazed Terracotta=Terre cuite emaillée bleue
Blue Glazed Terracotta Pillar=Pilier de terre cuite emaillée bleue
Blue Concrete Powder=Béton en poudre bleu
Blue Concrete=Béton bleu
Magenta Terracotta=Terre cuite magenta
Magenta Glazed Terracotta=Terre cuite emaillée magenta
Magenta Glazed Terracotta Pillar=Pilier de terre cuite emaillée magenta
Magenta Concrete Powder=Béton en poudre magenta
Magenta Concrete=Béton magenta
Orange Terracotta=Terre cuite orange
Orange Glazed Terracotta=Terre cuite emaillée orange
Orange Glazed Terracotta Pillar=Pilier de terre cuite emaillée orange
Orange Concrete Powder=Béton en poudre orange
Orange Concrete=Béton orange
Purple Terracotta=Terre cuite violette
Purple Glazed Terracotta=Terre cuite emaillée violette
Purple Glazed Terracotta Pillar=Pilier de terre cuite emaillée violette
Purple Concrete Powder=Béton en poudre violet
Purple Concrete=Béton violet
Brown Terracotta=Terre cuite marron
Brown Glazed Terracotta=Terre cuite emaillée marron
Brown Glazed Terracotta Pillar=Pilier de terre cuite emaillée marron
Brown Concrete Powder=Béton en poudre marron
Brown Concrete=Béton marron
Pink Terracotta=Terre cuite rose
Pink Glazed Terracotta=Terre cuite emaillée rose
Pink Glazed Terracotta Pillar=Pilier de terre cuite emaillée rose
Pink Concrete Powder=Béton en poudre rose
Pink Concrete=Béton rose
Lime Terracotta=Terre cuite verte clair
Lime Glazed Terracotta=Terre cuite emaillée verte clair
Lime Glazed Terracotta Pillar=Pilier de terre cuite emaillée verte clair
Lime Concrete Powder=Béton en poudre vert clair
Lime Concrete=Béton vert clair
Light Blue Terracotta=Terre cuite bleu clair
Light Blue Glazed Terracotta=Terre cuite emaillée bleu clair
Light Blue Glazed Terracotta Pillar=Pilier de terre cuite emaillée bleu clair
Light Blue Concrete Powder=Béton en poudre bleu clair
Light Blue Concrete=Béton bleu clair
Terracotta is a basic building material. It comes in many different colors.=La terre cuite est un matériau de construction de base. Il est disponible dans de nombreuses couleurs différentes.
Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.=La terre cuite émaillée est un bloc décoratif au motif complexe. Il peut être tourné en le plaçant dans différentes directions.
Glazed terracotta pillar is a decorative block with a complex pattern. It can be used with Glazed terracotta to make uneven patterns.=Le pilier de terre cuite émaillée est un bloc décoratif au motif complexe. Il peut être utilisé avec la terre cuite émaillée pour réaliser des motifs impairs.
Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.=La poudre de béton est utilisée pour créer du béton, mais elle peut également être utilisée comme décoration elle-même. Il est disponible en différentes couleurs. La poudre de béton se transforme en béton de la même couleur au contact de l'eau.
Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.=Le béton est un bloc décoratif qui se décline en de nombreuses couleurs différentes. Il est remarquable pour avoir une couleur très forte et propre.
Terracotta=Terre cuite
Terracotta is a basic building material which comes in many different colors. This particular block is uncolored.=La terre cuite est un matériau de construction de base qui se décline en de nombreuses couleurs différentes. Ce bloc particulier n'est pas coloré.
Colored Terracotta=Terre cuite colorée
Glazed Terracotta=Terre cuite emaillée
Glazed Terracotta Pillar=Pilier de terre cuite emaillée
Concrete Powder=Béton en poudre
Concrete=Béton
Turns into concrete on water contact=Se transforme en béton au contact de l'eau

View File

@ -1,94 +1,76 @@
# textdomain: mcl_colorblocks
White Terracotta=
White Glazed Terracotta=
White Glazed Terracotta Pillar=
White Concrete Powder=
White Concrete=
Grey Terracotta=
Grey Glazed Terracotta=
Grey Glazed Terracotta Pillar=
Grey Concrete Powder=
Grey Concrete=
Light Grey Terracotta=
Light Grey Glazed Terracotta=
Light Grey Glazed Terracotta Pillar=
Light Grey Concrete Powder=
Light Grey Concrete=
Black Terracotta=
Black Glazed Terracotta=
Black Glazed Terracotta Pillar=
Black Concrete Powder=
Black Concrete=
Red Terracotta=
Red Glazed Terracotta=
Red Glazed Terracotta Pillar=
Red Concrete Powder=
Red Concrete=
Yellow Terracotta=
Yellow Glazed Terracotta=
Yellow Glazed Terracotta Pillar=
Yellow Concrete Powder=
Yellow Concrete=
Green Terracotta=
Green Glazed Terracotta=
Green Glazed Terracotta Pillar=
Green Concrete Powder=
Green Concrete=
Cyan Terracotta=
Cyan Glazed Terracotta=
Cyan Glazed Terracotta Pillar=
Cyan Concrete Powder=
Cyan Concrete=
Blue Terracotta=
Blue Glazed Terracotta=
Blue Glazed Terracotta Pillar=
Blue Concrete Powder=
Blue Concrete=
Magenta Terracotta=
Magenta Glazed Terracotta=
Magenta Glazed Terracotta Pillar=
Magenta Concrete Powder=
Magenta Concrete=
Orange Terracotta=
Orange Glazed Terracotta=
Orange Glazed Terracotta Pillar=
Orange Concrete Powder=
Orange Concrete=
Purple Terracotta=
Purple Glazed Terracotta=
Purple Glazed Terracotta Pillar=
Purple Concrete Powder=
Purple Concrete=
Brown Terracotta=
Brown Glazed Terracotta=
Brown Glazed Terracotta Pillar=
Brown Concrete Powder=
Brown Concrete=
Pink Terracotta=
Pink Glazed Terracotta=
Pink Glazed Terracotta Pillar=
Pink Concrete Powder=
Pink Concrete=
Lime Terracotta=
Lime Glazed Terracotta=
Lime Glazed Terracotta Pillar=
Lime Concrete Powder=
Lime Concrete=
Light Blue Terracotta=
Light Blue Glazed Terracotta=
Light Blue Glazed Terracotta Pillar=
Light Blue Concrete Powder=
Light Blue Concrete=
Terracotta is a basic building material. It comes in many different colors.=
Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.=
Glazed terracotta pillar is a decorative block with a complex pattern. It can be used with Glazed terracotta to make uneven patterns.=
Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.=
Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.=
Terracotta=
Terracotta is a basic building material which comes in many different colors. This particular block is uncolored.=
Colored Terracotta=
Glazed Terracotta=
Glazed Terracotta Pillar=
Concrete Powder=
Concrete=
Turns into concrete on water contact=

View File

@ -1,5 +0,0 @@
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
dofile(modpath.."/nodes.lua")
dofile(modpath.."/recipes.lua")

View File

@ -1,5 +0,0 @@
name = mcl_compressed_blocks
depends = mcl_core
description = adds compressed blocks to mineclone2

View File

@ -1,121 +0,0 @@
--Compressed Cobblestone
minetest.register_node("mcl_compressed_blocks:compressed_cobblestone", {
description = "Compressed Cobblestone",
_doc_items_longdesc = ("Compressed Cobblestone is a decorative block made from 9 Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 11,
_mcl_hardness = 3,
})
--Double Compressed Cobble
minetest.register_node("mcl_compressed_blocks:double_compressed_cobblestone", {
description = "Double Compressed Cobblestone",
_doc_items_longdesc = ("Double Compressed Cobblestone is a decorative block made from 9 Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_double_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 19,
_mcl_hardness = 4,
})
--Triple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:triple_compressed_cobblestone", {
description = "Triple Compressed Cobblestone",
_doc_items_longdesc = ("Triple Compressed Cobblestone is a decorative block made from 9 Double Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_triple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 33,
_mcl_hardness = 5,
})
--Quadruple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:quadruple_compressed_cobblestone", {
description = "Quadruple Compressed Cobblestone",
_doc_items_longdesc = ("Quadruple Compressed Cobblestone is a decorative block made from 9 Triple Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_quadruple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 58,
_mcl_hardness = 7,
})
--Quintuple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:quintuple_compressed_cobblestone", {
description = "Quintuple Compressed Cobblestone",
_doc_items_longdesc = ("Quintuple Compressed Cobblestone is a decorative block made from 9 Quadruple Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_quintuple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 102,
_mcl_hardness = 9,
})
--Sextuple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:sextuple_compressed_cobblestone", {
description = "Sextuple Compressed Cobblestone",
_doc_items_longdesc = ("Sextuple Compressed Cobblestone is a decorative block made from 9 Quintuple Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_sextuple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 179,
_mcl_hardness = 12,
})
--Septuple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:septuple_compressed_cobblestone", {
description = "Septuple Compressed Cobblestone",
_doc_items_longdesc = ("Septuple Compressed Cobblestone is a decorative block made from 9 Sextuple Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_septuple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 313,
_mcl_hardness = 16,
})
--Ocutple Compressed Cobble
minetest.register_node("mcl_compressed_blocks:octuple_compressed_cobblestone", {
description = "Octuple Compressed Cobblestone",
_doc_items_longdesc = ("Octuple Compressed Cobblestone is a decorative block made from 9 Septuple Compressed Cobblestone. It is useful for saving space in your inventories."),
_doc_items_hidden = false,
tiles = {"mcl_compressed_blocks_octuple_compressed_cobblestone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1},
drop = {
max_items = 2,
items = {
{items = {"mcl_core:diamond 9"}},
{items = {"mcl_nether:netherite_scrap 18"}},
},
},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 548,
_mcl_hardness = 21,
_mcl_silk_touch_drop = true,
})

View File

@ -1,127 +0,0 @@
minetest.register_craft({
output = "mcl_compressed_blocks:compressed_cobblestone",
recipe = {
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
},
})
minetest.register_craft({
output = "mcl_core:cobble 9",
recipe = {
{ "mcl_compressed_blocks:compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:double_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:double_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:triple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:double_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:triple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:quadruple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:triple_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:quintuple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:quadruple_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:sextuple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:quintuple_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:septuple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:sextuple_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:septuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:octuple_compressed_cobblestone",
recipe = {
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
},
})
minetest.register_craft({
output = "mcl_compressed_blocks:septuple_compressed_cobblestone 9",
recipe = {
{ "mcl_compressed_blocks:octuple_compressed_cobblestone" },
},
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Some files were not shown because too many files have changed in this diff Show More