forked from VoxeLibre/VoxeLibre
Compare commits
218 Commits
release/0.
...
master
Author | SHA1 | Date |
---|---|---|
0ldude | b2cf4636df | |
0ldude | df2616b60c | |
0ldude | ba0612f3fa | |
syl | 21dbc25f13 | |
Eliy21 | 7bfbaac772 | |
the-real-herowl | 87abd0f4dc | |
the-real-herowl | 03b8ad15e3 | |
the-real-herowl | fc6fe3f1ed | |
the-real-herowl | 3fa4cf6d52 | |
the-real-herowl | 3d799266c3 | |
AFCMS | caa82c40c9 | |
the-real-herowl | 8c19d4b9b8 | |
the-real-herowl | c31226041f | |
the-real-herowl | b3bcd949b9 | |
the-real-herowl | a8ad631864 | |
the-real-herowl | 1478960b7f | |
the-real-herowl | f41990c1d0 | |
José Douglas da Silva Souza | 77a6ac1ef3 | |
José Douglas da Silva Souza | 9b9271e5df | |
the-real-herowl | 1175be45fb | |
the-real-herowl | f444efbb03 | |
chmodsayshello | a2a38b7b3d | |
Eliy21 | aa4f8ba6cc | |
Eliy21 | b645a2ab67 | |
Eliy21 | d41d29be58 | |
Eliy21 | 434bb33f72 | |
Eliy21 | d37840e022 | |
Eliy21 | aea5c6f7be | |
Eliy21 | 5154dce8d0 | |
Eliy21 | c0a5c63601 | |
Eliy21 | 473c85c543 | |
Eliy21 | 86c10002a6 | |
Eliy21 | b56424a0b6 | |
Eliy21 | 93dff87a5e | |
Eliy21 | be711ea727 | |
Eliy21 | 7b42779fe2 | |
Eliy21 | 11d0062255 | |
Eliy21 | 4dd04b4c91 | |
Eliy21 | 109aed75df | |
James Clarke | 184f1575ee | |
Eliy21 | 7561e1dc95 | |
Eliy21 | bee44f41b6 | |
Eliy21 | b2b2dc4090 | |
Eliy21 | a78b308a75 | |
Eliy21 | cc7a2e0b41 | |
Eliy21 | 996a5a6d47 | |
Eliy21 | 4c8efca4e6 | |
SmokeyDope | 2d2b64006b | |
emptyshore | 8e103cf615 | |
the-real-herowl | d1ac98a019 | |
codiac | d3c591915f | |
the-real-herowl | b507838e13 | |
Doods | b944a70059 | |
Doods | 9397e736a8 | |
Doods | b7ea609422 | |
Doods | 23a3d53ca6 | |
Doods | 7e31f015fe | |
Doods | f1fda9b412 | |
James Clarke | 1a2b9e5930 | |
Doods | bb29dade32 | |
James Clarke | 961ee13ba1 | |
James Clarke | efd19bd0ee | |
James Clarke | fe8612d944 | |
James Clarke | c586e480ed | |
James Clarke | 0da8428eef | |
James Clarke | ddfbd331c9 | |
James Clarke | 47b6bd5539 | |
James Clarke | 16cdc9fd12 | |
James Clarke | 2904e3119f | |
James Clarke | e04f4d3b2a | |
James Clarke | 0584fc4ebf | |
James Clarke | 1147a9715a | |
James Clarke | e05e46bc59 | |
Doods | 7793a31f0e | |
James Clarke | a6753806cc | |
Doods | a25bdfbc90 | |
James Clarke | 254fe4d98e | |
James Clarke | 6324c805eb | |
James Clarke | 3103969bdc | |
Doods | 7cb17eefa1 | |
James Clarke | 4f0ad6de6d | |
James Clarke | 59ffda6e86 | |
James Clarke | 1b7cde697a | |
James Clarke | bae95fea09 | |
James Clarke | 5f6173b999 | |
James Clarke | bd113dd902 | |
James Clarke | 557ea75c5d | |
James Clarke | 98a5f07ef8 | |
James Clarke | 29fe5e5b40 | |
James Clarke | a5573aab26 | |
James Clarke | 17da379269 | |
James Clarke | 566bc8a02b | |
Eliy21 | 44bd1c7b71 | |
the-real-herowl | ac8ff800ec | |
JoseDouglas26 | 3b60a8eb18 | |
the-real-herowl | 681175c463 | |
the-real-herowl | 3dafeb7505 | |
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | 4c0bad754e | |
PrWalterB | 899c45534f | |
the-real-herowl | cfd41d458a | |
the-real-herowl | 41c6773fd4 | |
the-real-herowl | 27c3760da1 | |
James Clarke | aa4d5738c7 | |
the-real-herowl | 59ad110e6b | |
James Clarke | ee24b24c68 | |
James Clarke | f94e7fc52f | |
chmodsayshello | 45c84b1f1d | |
chmodsayshello | 96dbcc45d0 | |
chmodsayshello | bfe333ef60 | |
chmodsayshello | 89eb0f9b3e | |
chmodsayshello | 146b0ade37 | |
chmodsayshello | 0f91b763e9 | |
chmodsayshello | aeccc94687 | |
the-real-herowl | d3881fc1d1 | |
chmodsayshello | b47fae0ed4 | |
chmodsayshello | 180c8fb73e | |
the-real-herowl | c70ae8e535 | |
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | c1115c9cef | |
pineaulo | 7af5e79afc | |
the-real-herowl | 12b3e34f88 | |
bakawun | 4d90dfab0e | |
bakawun | b2b63266b7 | |
bakawun | d151e79fb9 | |
bakawun | e419e6d63b | |
cora | 55517154bd | |
bakawun | 402e4e7b79 | |
the-real-herowl | 59c5d54cbe | |
tuxilio | 4b5afee4bb | |
the-real-herowl | 3c2247d7c8 | |
the-real-herowl | 324fd0dc4a | |
bakawun | cd033aa4ff | |
bakawun | 1f3c7913dd | |
the-real-herowl | 18db66c431 | |
JoseDouglas26 | cc3f092185 | |
the-real-herowl | 9f64facbf9 | |
JoseDouglas26 | 6694babbde | |
SmokeyDope | fc204c8717 | |
SmokeyDope | c664216104 | |
SmokeyDope | cd3426b5ce | |
the-real-herowl | 9867c73eb3 | |
the-real-herowl | 3db02bb022 | |
SmokeyDope | 3c7597b75e | |
SmokeyDope | 7bf3fbf13c | |
SmokeyDope | fc7133f1a8 | |
SmokeyDope | 05eb3bb8aa | |
SmokeyDope | 7583caca9b | |
pineaulo | 411e3e161f | |
the-real-herowl | 882531b9fc | |
the-real-herowl | 0b5c15d05f | |
the-real-herowl | cd930365b0 | |
the-real-herowl | ce56f396b1 | |
the-real-herowl | ba297001b4 | |
the-real-herowl | 24eca01c3f | |
the-real-herowl | 4e3cf9e04b | |
the-real-herowl | d285a48fed | |
the-real-herowl | d3d1bdf8d2 | |
the-real-herowl | f306d3768e | |
the-real-herowl | 7463b97c69 | |
the-real-herowl | d11526f8e8 | |
the-real-herowl | 8021a6a723 | |
the-real-herowl | 1bad5659cf | |
the-real-herowl | befd98b83e | |
the-real-herowl | 13341df20b | |
José M | 4a407679c0 | |
cora | 29d40ef553 | |
Eliy21 | 10dcdb7d6b | |
José M | ec8f3f5530 | |
José M | 74ab3ffeee | |
José M | 9d62c4ca5e | |
José M | c9d221976b | |
José M | 0d1a6d91e9 | |
José M | 0f82c623d5 | |
Eliy21 | 96fa6c251e | |
Eliy21 | e19de85990 | |
Eliy21 | 76bff2b540 | |
Eliy21 | ff882707de | |
Eliy21 | d7ed37ef25 | |
Eliy21 | 44c656502f | |
Eliy21 | fe90424ee4 | |
Eliy21 | 14cec16c63 | |
bakawun | cc470b9d88 | |
bakawun | ee51a500b2 | |
bakawun | 7f823f0155 | |
bakawun | f5ba0b7981 | |
bakawun | e202f20869 | |
bakawun | 692b101212 | |
Eliy21 | 12109e7f44 | |
Eliy21 | 200f7451eb | |
Eliy21 | c39e55e2d4 | |
Eliy21 | 6d7ae8ba2d | |
Eliy21 | 8612350fa7 | |
Eliy21 | 0a8874ecad | |
Eliy21 | e8ee9c4463 | |
Eliy21 | 32e91b45ae | |
Eliy21 | 8fbd72c142 | |
Eliy21 | cfab59d68a | |
Eliy21 | 33e8337bbb | |
Eliy21 | f799596db9 | |
Eliy21 | 9b9747b3d8 | |
Eliy21 | c9692c6224 | |
Eliy21 | cd83305f07 | |
Eliy21 | d7b10d18d8 | |
Eliy21 | 8e2c5249f5 | |
Eliy21 | ca556c052f | |
Eliy21 | 60367cdbe0 | |
Eliy21 | 6b439fd1de | |
Eliy21 | bf9e487fa9 | |
Eliy21 | 49af5d2013 | |
Eliy21 | ed507d8509 | |
Eliy21 | b2507c3640 | |
Eliy21 | 85b1f5247a | |
Eliy21 | 2b71462c1e | |
Eliy21 | b0e33793ec | |
Eliy21 | 96aaf89036 | |
Eliy21 | a8c2d4534a | |
Eliy21 | a8806fe04e | |
Bakawun | 5f3c901f11 | |
bakawun | 25fa21ddbd |
|
@ -5,4 +5,6 @@
|
|||
*.blend3
|
||||
/.idea/
|
||||
*.xcf
|
||||
.Rproj.user
|
||||
.Rproj.user
|
||||
prompt.txt
|
||||
__pycache__
|
||||
|
|
|
@ -0,0 +1,201 @@
|
|||
# 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
|
|
@ -0,0 +1,2 @@
|
|||
# textdomain:mcl_explosions
|
||||
@1 was caught in an explosion.=@1 è esploso(a)
|
|
@ -0,0 +1,2 @@
|
|||
# textdomain:mcl_explosions
|
||||
@1 was caught in an explosion.=@1 z-es mòrt dins una explosion
|
|
@ -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 then
|
||||
if undef and undef.on_rightclick and not invert_wall then
|
||||
undef.on_rightclick(pointed_thing.under, unode, placer,
|
||||
itemstack, pointed_thing)
|
||||
return
|
||||
|
@ -198,25 +198,11 @@ function mcl_util.rotate_axis_and_place(itemstack, placer, pointed_thing, infini
|
|||
|
||||
local p2
|
||||
if is_y then
|
||||
if invert_wall then
|
||||
if fdir == 3 or fdir == 1 then
|
||||
p2 = 12
|
||||
else
|
||||
p2 = 6
|
||||
end
|
||||
end
|
||||
p2 = 0
|
||||
elseif is_x then
|
||||
if invert_wall then
|
||||
p2 = 0
|
||||
else
|
||||
p2 = 12
|
||||
end
|
||||
p2 = 12
|
||||
elseif is_z then
|
||||
if invert_wall then
|
||||
p2 = 0
|
||||
else
|
||||
p2 = 6
|
||||
end
|
||||
p2 = 6
|
||||
end
|
||||
minetest.set_node(pos, {name = wield_name, param2 = p2})
|
||||
|
||||
|
@ -1075,7 +1061,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)
|
||||
minetest.log("error", vector.to_string(v))
|
||||
mcl_util.mcl_log("item velocity calculated "..vector.to_string(v), "[mcl_util]")
|
||||
end
|
||||
if not insta_collect then
|
||||
obj:get_luaentity()._insta_collect = false
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# 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
|
|
@ -0,0 +1,21 @@
|
|||
# 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
|
|
@ -0,0 +1,3 @@
|
|||
# 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.
|
|
@ -0,0 +1,3 @@
|
|||
# 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
|
|
@ -0,0 +1,36 @@
|
|||
# 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
|
|
@ -0,0 +1,36 @@
|
|||
# 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
|
|
@ -35,14 +35,19 @@ function mob_class:day_docile()
|
|||
end
|
||||
end
|
||||
|
||||
-- attack player/mob
|
||||
function mob_class:do_attack(player)
|
||||
-- get this mob to attack the object
|
||||
function mob_class:do_attack(object)
|
||||
|
||||
if self.state == "attack" or self.state == "die" then
|
||||
return
|
||||
end
|
||||
|
||||
self.attack = player
|
||||
|
||||
if object:is_player() and not minetest.settings:get_bool("enable_damage") then
|
||||
return
|
||||
end
|
||||
|
||||
self.attack = object
|
||||
self.state = "attack"
|
||||
|
||||
-- TODO: Implement war_cry sound without being annoying
|
||||
|
@ -522,7 +527,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?
|
||||
|
|
|
@ -362,12 +362,13 @@ 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 150,
|
||||
_lifetime = def._lifetime or 7,
|
||||
owner_id = def.owner_id,
|
||||
rotate = def.rotate,
|
||||
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})
|
||||
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
|
||||
end,
|
||||
collisionbox = def.collisionbox or {0, 0, 0, 0, 0, 0},
|
||||
automatic_face_movement_dir = def.rotate
|
||||
|
@ -377,7 +378,7 @@ function mcl_mobs.register_arrow(name, def)
|
|||
|
||||
on_step = def.on_step or function(self, dtime)
|
||||
|
||||
self.timer = self.timer + 1
|
||||
self.timer = self.timer + dtime
|
||||
|
||||
local pos = self.object:get_pos()
|
||||
|
||||
|
@ -443,24 +444,24 @@ function mcl_mobs.register_arrow(name, def)
|
|||
|
||||
if self.hit_player or self.hit_mob or self.hit_object then
|
||||
|
||||
for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
|
||||
for _,object in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
|
||||
|
||||
if self.hit_player
|
||||
and player:is_player() then
|
||||
and object:is_player() then
|
||||
|
||||
self.hit_player(self, player)
|
||||
self.hit_player(self, object)
|
||||
self.object:remove();
|
||||
return
|
||||
end
|
||||
|
||||
local entity = player:get_luaentity()
|
||||
local entity = object:get_luaentity()
|
||||
|
||||
if entity
|
||||
and self.hit_mob
|
||||
and entity.is_mob == true
|
||||
and tostring(player) ~= self.owner_id
|
||||
and (tostring(object) ~= self.owner_id or self.timer > 2)
|
||||
and entity.name ~= self.object:get_luaentity().name then
|
||||
self.hit_mob(self, player)
|
||||
self.hit_mob(self, object)
|
||||
self.object:remove();
|
||||
return
|
||||
end
|
||||
|
@ -468,9 +469,9 @@ function mcl_mobs.register_arrow(name, def)
|
|||
if entity
|
||||
and self.hit_object
|
||||
and (not entity.is_mob)
|
||||
and tostring(player) ~= self.owner_id
|
||||
and (tostring(object) ~= self.owner_id or self.timer > 2)
|
||||
and entity.name ~= self.object:get_luaentity().name then
|
||||
self.hit_object(self, player)
|
||||
self.hit_object(self, object)
|
||||
self.object:remove();
|
||||
return
|
||||
end
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# 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
|
|
@ -0,0 +1,13 @@
|
|||
# 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
|
|
@ -761,6 +761,61 @@ 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
|
||||
|
|
|
@ -16,7 +16,6 @@ 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
|
||||
|
@ -97,19 +96,6 @@ 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!
|
||||
|
@ -446,7 +432,6 @@ 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
|
||||
|
@ -508,7 +493,6 @@ 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)
|
||||
|
@ -612,10 +596,8 @@ 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.
|
||||
|
@ -875,8 +857,6 @@ minetest.register_chatcommand("spawn_mob",{
|
|||
|
||||
if mobs_spawn then
|
||||
|
||||
local perlin_noise
|
||||
|
||||
-- Get pos to spawn, x and z are randomised, y is range
|
||||
|
||||
|
||||
|
@ -973,9 +953,21 @@ 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
|
||||
|
@ -988,22 +980,25 @@ if mobs_spawn then
|
|||
--output_mob_stats(mob_counts_wide)
|
||||
|
||||
--grab mob that fits into the spawning location
|
||||
--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
|
||||
--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
|
||||
|
||||
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
|
||||
while spawn_loop_counter > 0 do
|
||||
table.shuffle(mob_library_worker_table)
|
||||
local mob_chance_offset = math_random(1, cumulative_chance)
|
||||
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
|
||||
mob_chance = mob_library_worker_table[mob_index].chance
|
||||
step_chance = step_chance + mob_chance
|
||||
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
|
||||
end
|
||||
--minetest.log(mob_def.name.." "..step_chance.. " "..mob_chance)
|
||||
|
||||
|
@ -1088,8 +1083,7 @@ if mobs_spawn then
|
|||
end
|
||||
|
||||
end
|
||||
current_summary_chance = current_summary_chance - mob_chance
|
||||
table_remove(mob_library_worker_table, mob_index)
|
||||
spawn_loop_counter = spawn_loop_counter - 1
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1101,6 +1095,7 @@ 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()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# textdomain:mcl_paintings
|
||||
Painting=Quadre
|
|
@ -0,0 +1,2 @@
|
|||
# textdomain:mcl_paintings
|
||||
Painting=Quadro
|
|
@ -305,6 +305,9 @@ 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.
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
4000,
|
||||
100,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -150,7 +150,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
maxlight,
|
||||
20,
|
||||
5000,
|
||||
100,
|
||||
2,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mobs_mc.water_level-1)
|
||||
|
|
|
@ -151,7 +151,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
5000,
|
||||
1000,
|
||||
3,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
|
|
@ -157,7 +157,7 @@ mcl_mobs:spawn_specific(
|
|||
},
|
||||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30, 17000,
|
||||
30, 100,
|
||||
3,
|
||||
mobs_mc.water_level,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -266,7 +266,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
4000,
|
||||
750,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -207,7 +207,7 @@ mcl_mobs:spawn_specific(
|
|||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
17000,
|
||||
80,
|
||||
10,
|
||||
mobs_mc.water_level,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
@ -225,7 +225,7 @@ mcl_mobs:spawn_specific(
|
|||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
17000,
|
||||
80,
|
||||
5,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -407,7 +407,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
20,
|
||||
16500,
|
||||
1000,
|
||||
2,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -244,7 +244,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
4000,
|
||||
70,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -668,7 +668,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
3000,
|
||||
100,
|
||||
12,
|
||||
mcl_vars.mg_end_min,
|
||||
mcl_vars.mg_end_max)
|
||||
|
@ -816,7 +816,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
19000,
|
||||
100,
|
||||
2,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
@ -833,7 +833,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
11,
|
||||
30,
|
||||
27500,
|
||||
100,
|
||||
4,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -849,7 +849,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
11,
|
||||
30,
|
||||
5000,
|
||||
100,
|
||||
4,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
|
|
@ -20,7 +20,7 @@ mcl_mobs.register_mob("mobs_mc:ghast", {
|
|||
hp_max = 10,
|
||||
xp_min = 5,
|
||||
xp_max = 5,
|
||||
collisionbox = {-2, 5, -2, 2, 9, 2},
|
||||
collisionbox = {-2, 0, -2, 2, 4, 2, rotate=true},
|
||||
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 = 16,
|
||||
distance = 80,
|
||||
-- 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 = 100,
|
||||
view_range = 64,
|
||||
attack_type = "dogshoot",
|
||||
arrow = "mobs_mc:fireball",
|
||||
shoot_interval = 3.5,
|
||||
shoot_offset = -5,
|
||||
shoot_interval = 5,
|
||||
shoot_offset = -0.5,
|
||||
dogshoot_switch = 1,
|
||||
dogshoot_count_max =1,
|
||||
passive = false,
|
||||
|
@ -97,7 +97,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
72000,
|
||||
400,
|
||||
2,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -107,8 +107,9 @@ mcl_mobs.register_arrow("mobs_mc:fireball", {
|
|||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"mcl_fire_fire_charge.png"},
|
||||
velocity = 15,
|
||||
velocity = 5,
|
||||
collisionbox = {-.5, -.5, -.5, .5, .5, .5},
|
||||
_lifetime = 10,
|
||||
_is_fireball = true,
|
||||
|
||||
hit_player = function(self, player)
|
||||
|
@ -130,6 +131,10 @@ 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)
|
||||
|
|
|
@ -237,7 +237,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX + 1,
|
||||
30,
|
||||
10000,
|
||||
100,
|
||||
3,
|
||||
water - 16,
|
||||
water)
|
||||
|
|
|
@ -31,8 +31,9 @@ local hoglin = {
|
|||
} },
|
||||
visual_size = {x=3, y=3},
|
||||
sounds = {
|
||||
random = "extra_mobs_hoglin",
|
||||
random = "extra_mobs_hoglin.1",
|
||||
damage = "extra_mobs_hoglin_hurt",
|
||||
death = "extra_mobs_hoglin_hurt",
|
||||
distance = 16,
|
||||
},
|
||||
jump = true,
|
||||
|
@ -92,6 +93,12 @@ 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
|
||||
|
@ -129,7 +136,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
6000,
|
||||
200,
|
||||
3,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
|
|
@ -609,7 +609,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
40,
|
||||
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,
|
||||
15000,
|
||||
10,
|
||||
4,
|
||||
mobs_mc.water_level+3,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -291,7 +291,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
50,
|
||||
5,
|
||||
mobs_mc.water_level+15,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
# 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
|
|
@ -0,0 +1,73 @@
|
|||
# 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
|
Binary file not shown.
|
@ -186,7 +186,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
300,
|
||||
5,
|
||||
mobs_mc.water_level+15,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -235,7 +235,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
7,
|
||||
30000,
|
||||
400,
|
||||
1,
|
||||
mobs_mc.water_level+7,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -258,7 +258,7 @@ mcl_mobs:spawn_specific(
|
|||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
100,
|
||||
8,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -61,8 +61,10 @@ local piglin = {
|
|||
} },
|
||||
visual_size = {x=1, y=1},
|
||||
sounds = {
|
||||
random = "extra_mobs_piglin",
|
||||
damage = "extra_mobs_piglin_hurt",
|
||||
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",
|
||||
distance = 16,
|
||||
},
|
||||
jump = true,
|
||||
|
@ -397,7 +399,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
6000,
|
||||
150,
|
||||
3,
|
||||
mcl_vars.mg_lava_nether_max,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -413,7 +415,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
6000,
|
||||
150,
|
||||
3,
|
||||
mcl_vars.mg_lava_nether_max,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -429,7 +431,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
6000,
|
||||
1000,
|
||||
3,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -446,7 +448,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
100000,
|
||||
50,
|
||||
4,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
|
|
@ -86,7 +86,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
7000,
|
||||
50,
|
||||
3,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -148,7 +148,7 @@ mcl_mobs:spawn_specific(
|
|||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
40,
|
||||
8,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -220,7 +220,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
4000,
|
||||
260,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -379,7 +379,7 @@ mcl_mobs:spawn_specific(
|
|||
9,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
120,
|
||||
3,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -299,7 +299,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
20,
|
||||
17000,
|
||||
800,
|
||||
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,
|
||||
10000,
|
||||
800,
|
||||
3,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
@ -336,7 +336,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
20,
|
||||
19000,
|
||||
1200,
|
||||
2,
|
||||
mobs_mc.water_level,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -116,7 +116,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
5000,
|
||||
500,
|
||||
5,
|
||||
mcl_vars.mg_nether_min,
|
||||
mcl_vars.mg_nether_max)
|
||||
|
|
|
@ -6,6 +6,7 @@ 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
|
||||
|
||||
|
@ -166,11 +167,11 @@ local swamp_light_max = 7
|
|||
local function slime_spawn_check(pos, environmental_light, artificial_light, sky_light)
|
||||
local maxlight = swamp_light_max
|
||||
|
||||
if is_slime_chunk(pos) then
|
||||
if pos.y <= slime_chunk_spawn_max and is_slime_chunk(pos) then
|
||||
maxlight = minetest.LIGHT_MAX + 1
|
||||
end
|
||||
|
||||
return artificial_light <= maxlight
|
||||
return math.max(artificial_light, sky_light) <= maxlight
|
||||
end
|
||||
|
||||
-- Slime
|
||||
|
@ -321,7 +322,7 @@ cave_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
12000,
|
||||
1000,
|
||||
4,
|
||||
cave_min,
|
||||
cave_max,
|
||||
|
@ -335,7 +336,7 @@ swampy_biomes,
|
|||
0,
|
||||
swamp_light_max,
|
||||
30,
|
||||
12000,
|
||||
1000,
|
||||
4,
|
||||
swamp_min,
|
||||
swamp_max)
|
||||
|
@ -348,7 +349,7 @@ cave_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
8500,
|
||||
1000,
|
||||
4,
|
||||
cave_min,
|
||||
cave_max,
|
||||
|
@ -362,7 +363,7 @@ swampy_biomes,
|
|||
0,
|
||||
swamp_light_max,
|
||||
30,
|
||||
8500,
|
||||
1000,
|
||||
4,
|
||||
swamp_min,
|
||||
swamp_max)
|
||||
|
@ -375,7 +376,7 @@ cave_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
10000,
|
||||
1000,
|
||||
4,
|
||||
cave_min,
|
||||
cave_max,
|
||||
|
@ -389,7 +390,7 @@ swampy_biomes,
|
|||
0,
|
||||
swamp_light_max,
|
||||
30,
|
||||
10000,
|
||||
1000,
|
||||
4,
|
||||
swamp_min,
|
||||
swamp_max)
|
||||
|
@ -512,7 +513,7 @@ magma_cube_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15000,
|
||||
100,
|
||||
4,
|
||||
nether_min,
|
||||
nether_max)
|
||||
|
@ -525,7 +526,7 @@ magma_cube_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
15500,
|
||||
100,
|
||||
4,
|
||||
nether_min,
|
||||
nether_max)
|
||||
|
@ -538,7 +539,7 @@ magma_cube_biomes,
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
16000,
|
||||
100,
|
||||
4,
|
||||
nether_min,
|
||||
nether_max)
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -287,7 +287,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
17000,
|
||||
1000,
|
||||
2,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -211,7 +211,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
5500,
|
||||
80,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -225,7 +225,7 @@ mcl_mobs:spawn_setup({
|
|||
},
|
||||
min_height = mcl_vars.mg_nether_min,
|
||||
max_height = mcl_vars.mg_nether_max,
|
||||
chance = 2000,
|
||||
chance = 200,
|
||||
})
|
||||
|
||||
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 = 100,
|
||||
chance = 20,
|
||||
})
|
||||
|
||||
-- spawn eggs
|
||||
|
|
|
@ -183,7 +183,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
4000,
|
||||
750,
|
||||
3,
|
||||
water-16,
|
||||
water+1)
|
||||
|
|
|
@ -2336,7 +2336,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
20,
|
||||
2,
|
||||
4,
|
||||
mobs_mc.water_level+1,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -225,7 +225,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
4090,
|
||||
50,
|
||||
4,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -463,7 +463,7 @@ mcl_mobs.register_arrow("mobs_mc:wither_skull", {
|
|||
},
|
||||
velocity = 7,
|
||||
rotate = 90,
|
||||
_lifetime = 350,
|
||||
_lifetime = 15,
|
||||
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 = 500,
|
||||
_lifetime = 25,
|
||||
on_punch = function(self) end,
|
||||
|
||||
-- direct hit
|
||||
|
|
|
@ -224,7 +224,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
minetest.LIGHT_MAX+1,
|
||||
30,
|
||||
9000,
|
||||
80,
|
||||
7,
|
||||
mobs_mc.water_level+3,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -243,7 +243,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
6000,
|
||||
1000,
|
||||
4,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
@ -332,7 +332,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
60000,
|
||||
50,
|
||||
4,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
@ -348,7 +348,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
6500,
|
||||
2400,
|
||||
4,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
@ -362,7 +362,7 @@ mcl_mobs:spawn_specific(
|
|||
0,
|
||||
7,
|
||||
30,
|
||||
65000,
|
||||
120,
|
||||
4,
|
||||
mcl_vars.mg_overworld_min,
|
||||
mcl_vars.mg_overworld_max)
|
||||
|
|
|
@ -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
|
||||
Unknown item (@1)=Item desconhecido (@1)
|
||||
• @1: @2=
|
||||
• @1: @2 HP=
|
||||
• @1: @2, @3=
|
||||
|
|
|
@ -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 Creatif
|
||||
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 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 :
|
||||
• 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
# 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
|
|
@ -550,6 +550,13 @@ 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"),
|
||||
|
|
|
@ -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 augmentation de niveau
|
||||
Getting an Upgrade=Obtenir une amélioration
|
||||
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
|
||||
|
|
|
@ -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 = {name="mcl_experience_orb.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}},
|
||||
textures = {"mcl_experience_orb.png"},
|
||||
spritediv = {x = 1, y = 14},
|
||||
initial_sprite_basepos = {x = 0, y = 0},
|
||||
is_visible = true,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -3,6 +3,19 @@ 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)
|
||||
|
@ -73,12 +86,14 @@ end)
|
|||
|
||||
---@param player mt.PlayerObjectRef
|
||||
function mcl_inventory.update_inventory(player)
|
||||
local player_gamemode = mcl_gamemode.get_gamemode(player)
|
||||
if player_gamemode == "creative" then
|
||||
local player_name = player:get_player_name()
|
||||
local is_gamemode_creative = minetest.is_creative_enabled(player_name)
|
||||
if is_gamemode_creative then
|
||||
mcl_inventory.set_creative_formspec(player)
|
||||
elseif player_gamemode == "survival" then
|
||||
elseif not is_gamemode_creative 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)
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
---@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 much tabs registered!")
|
||||
error("Too many tabs registered!")
|
||||
end
|
||||
|
||||
assert(def.id)
|
||||
|
@ -134,10 +131,10 @@ local main_page_static = table.concat({
|
|||
|
||||
--Listring
|
||||
"listring[current_player;main]",
|
||||
"listring[current_player;armor]",
|
||||
"listring[current_player;main]",
|
||||
"listring[current_player;craft]",
|
||||
"listring[current_player;main]",
|
||||
"listring[current_player;armor]",
|
||||
"listring[current_player;main]",
|
||||
})
|
||||
|
||||
mcl_inventory.register_survival_inventory_tab({
|
||||
|
@ -204,13 +201,14 @@ 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
|
||||
mcl_gamemode.get_gamemode(player) == "survival" then
|
||||
not minetest.is_creative_enabled(player_name) 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)
|
||||
return
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -2,7 +2,24 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
|||
|
||||
local light = minetest.LIGHT_MAX
|
||||
|
||||
minetest.register_node("mesecons_lightstone:lightstone_off", {
|
||||
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 = {
|
||||
tiles = {"jeija_lightstone_gray_off.png"},
|
||||
groups = {handy=1, mesecon_effector_off = 1, mesecon = 2},
|
||||
is_ground_content = false,
|
||||
|
@ -11,16 +28,16 @@ minetest.register_node("mesecons_lightstone:lightstone_off", {
|
|||
_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 = function(pos, node)
|
||||
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_on", param2 = node.param2})
|
||||
end,
|
||||
action_on = generate_action_on(),
|
||||
rules = mesecon.rules.alldirs,
|
||||
}},
|
||||
_mcl_blast_resistance = 0.3,
|
||||
_mcl_hardness = 0.3,
|
||||
})
|
||||
}
|
||||
minetest.register_node(ls_off_name, ls_off_def)
|
||||
|
||||
minetest.register_node("mesecons_lightstone:lightstone_on", {
|
||||
local ls_on_name = "mesecons_lightstone:lightstone_on"
|
||||
local ls_on_def = {
|
||||
tiles = {"jeija_lightstone_gray_on.png"},
|
||||
groups = {handy=1, not_in_creative_inventory=1, mesecon = 2, opaque = 1},
|
||||
drop = "node mesecons_lightstone:lightstone_off",
|
||||
|
@ -29,14 +46,59 @@ minetest.register_node("mesecons_lightstone:lightstone_on", {
|
|||
light_source = light,
|
||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
||||
mesecons = {effector = {
|
||||
action_off = function(pos, node)
|
||||
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_off", param2 = node.param2})
|
||||
end,
|
||||
action_off = generate_action_off(),
|
||||
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",
|
||||
|
|
|
@ -2,3 +2,19 @@
|
|||
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
|
||||
|
|
|
@ -2,3 +2,19 @@
|
|||
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
|
||||
|
|
|
@ -2,3 +2,19 @@
|
|||
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=
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# 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.
|
|
@ -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,6 +129,7 @@ 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]
|
||||
|
@ -326,12 +327,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)
|
||||
|
||||
|
@ -339,4 +340,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
|
||||
|
|
|
@ -71,5 +71,6 @@ 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")
|
||||
|
|
|
@ -0,0 +1,207 @@
|
|||
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,
|
||||
})
|
|
@ -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
|
||||
|
|
|
@ -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_grindstone
|
||||
depends = mcl_core, mcl_player, mcl_enchanting, mcl_damage, mcl_colors, mcl_grindstone
|
||||
optional_depends = mcl_fire, ethereal, bakedclay
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
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",
|
||||
|
@ -227,5 +208,27 @@ 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 = "mcl_armor_elytra.png"
|
||||
_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
|
||||
})
|
||||
|
|
|
@ -280,31 +280,7 @@ 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 = 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,
|
||||
on_place = mcl_util.rotate_axis,
|
||||
}
|
||||
|
||||
minetest.register_node("mcl_bamboo:bamboo_block", bamboo_block_def)
|
||||
|
|
|
@ -316,10 +316,15 @@ 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
|
||||
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)
|
||||
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
|
||||
end
|
||||
return itemstack
|
||||
else
|
||||
|
|
|
@ -57,7 +57,9 @@ 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 * 21
|
||||
knockback = enchantments.punch * 24
|
||||
else
|
||||
knockback = 4.875
|
||||
end
|
||||
if enchantments.flame then
|
||||
mcl_burning.set_on_fire(obj, math.huge)
|
||||
|
|
|
@ -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
|
||||
local knockback = 4.875
|
||||
if crossbow_stack then
|
||||
local enchantments = mcl_enchanting.get_enchantments(crossbow_stack)
|
||||
if enchantments.piercing then
|
||||
|
|
|
@ -94,6 +94,14 @@ 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
|
||||
|
|
|
@ -4,27 +4,28 @@ local doc_mod = minetest.get_modpath("doc")
|
|||
local block = {}
|
||||
|
||||
block.dyes = {
|
||||
{"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"},
|
||||
{"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"},
|
||||
}
|
||||
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")
|
||||
|
@ -57,8 +58,9 @@ 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_cp = row[4]
|
||||
local sdesc_c = row[5]
|
||||
local sdesc_gtp = row[4]
|
||||
local sdesc_cp = row[5]
|
||||
local sdesc_c = row[6]
|
||||
local ldesc_hc, ldesc_gt, ldesc_cp, ldesc_c
|
||||
local create_entry
|
||||
local ename_hc, ename_gt, ename_cp, ename_c
|
||||
|
@ -66,16 +68,18 @@ 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[6]
|
||||
local craft_color_group = row[7]
|
||||
-- Node Definition
|
||||
minetest.register_node("mcl_colorblocks:hardened_clay_"..name, {
|
||||
description = sdesc_hc,
|
||||
|
@ -162,6 +166,22 @@ 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)
|
||||
|
@ -196,6 +216,16 @@ 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
|
||||
|
||||
|
|
|
@ -1,76 +1,94 @@
|
|||
# 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
|
||||
|
|
|
@ -1,76 +1,94 @@
|
|||
# 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=
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
dofile(modpath.."/nodes.lua")
|
||||
dofile(modpath.."/recipes.lua")
|
|
@ -0,0 +1,5 @@
|
|||
name = mcl_compressed_blocks
|
||||
depends = mcl_core
|
||||
description = adds compressed blocks to mineclone2
|
||||
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
--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,
|
||||
})
|
|
@ -0,0 +1,127 @@
|
|||
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.
After Width: | Height: | Size: 217 B |
Binary file not shown.
After Width: | Height: | Size: 206 B |
Binary file not shown.
After Width: | Height: | Size: 173 B |
Binary file not shown.
After Width: | Height: | Size: 250 B |
Binary file not shown.
After Width: | Height: | Size: 296 B |
Binary file not shown.
After Width: | Height: | Size: 244 B |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue