2020-04-27 16:11:54 +03:00
|
|
|
|
---
|
|
|
|
|
title: Getting Started
|
|
|
|
|
layout: default
|
|
|
|
|
root: ../..
|
|
|
|
|
idx: 1.1
|
|
|
|
|
description: Learn how to make a mod folder, including init.lua, mod.conf and more.
|
|
|
|
|
redirect_from:
|
|
|
|
|
- /en/chapters/folders.html
|
|
|
|
|
- /en/basics/folders.html
|
|
|
|
|
---
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Introduzione <!-- omit in toc -->
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Capire la struttura base della cartella di una mod è un requisito essenziale per creare mod.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
- [Cosa sono i giochi e le mod?](#cosa-sono-i-giochi-e-le-mod)
|
|
|
|
|
- [Dove vengono salvate le mod?](#dove-vengono-salvate-le-mod)
|
|
|
|
|
- [Cartella mod](#cartella-mod)
|
|
|
|
|
- [Dipendenze](#dipendenze)
|
2020-04-27 16:11:54 +03:00
|
|
|
|
- [mod.conf](#modconf)
|
|
|
|
|
- [depends.txt](#dependstxt)
|
2020-04-27 16:13:39 +03:00
|
|
|
|
- [Pacchetti mod](#pacchetti-mod-mod-pack)
|
|
|
|
|
- [Esempio](#esempio)
|
|
|
|
|
- [Cartella mod](#cartella-mod-1)
|
2020-04-27 16:11:54 +03:00
|
|
|
|
- [depends.txt](#dependstxt-1)
|
|
|
|
|
- [init.lua](#initlua)
|
|
|
|
|
- [mod.conf](#modconf-1)
|
|
|
|
|
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Cosa sono i giochi e le mod?
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Il punto forte di Minetest è l'abilità di sviluppare facilmente giochi senza il bisogno
|
|
|
|
|
di crearti da zero il motore grafico, gli algoritmi voxel o tutta la parte network.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
In Minetest, un gioco è una collezione di moduli che lavorano insieme per fornire il contenuto
|
|
|
|
|
e il comportamento di un gioco.
|
|
|
|
|
Un modulo, solitamente conosciuto come "mod" (femminile), è una collezione di script e risorse.
|
|
|
|
|
È possibile creare un gioco usando semplicemente una mod, ma questo non accade spesso perché
|
|
|
|
|
riduce la comodità di poter sostituire o calibrare alcune parti del gioco in maniera indipendente
|
|
|
|
|
dalle altre.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
È anche possibile distribuire le mod al di fuori di un gioco, nel qual caso sono sempre mod
|
|
|
|
|
nel senso più tradizionale del termine: modifiche. Queste mod calibrano o espandono le proprietà
|
|
|
|
|
di un gioco.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Sia le mod presenti in un gioco che quelle a sé stanti usano la stessa API.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Questo libro coprirà le parti principali della API di Minetest,
|
|
|
|
|
ed è applicabile sia per gli sviluppatori che per i creatori di mod.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Dove vengono salvate le mod?
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
<a name="mod-locations"></a>
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Ogni mod ha la sua cartella personale dove viene messo il suo codice in Lua, le sue texture,
|
|
|
|
|
i suoi modelli e i suoi file audio. Minetest fa un check in più punti per le mod. Questi punti
|
|
|
|
|
sono generalmente chiamati *percorsi di caricamento mod* (in inglese *mod load paths*).
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Per un dato mondo/salvataggio, vengono controllati tre punti.
|
|
|
|
|
Essi sono, in ordine:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
1. Mod di gioco. Queste sono le mod che compongono il gioco che il mondo sta eseguendo.
|
|
|
|
|
Es: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/`
|
|
|
|
|
2. Mod globali. Il luogo dove le mod vengono quasi sempre installate. Se si è in dubbio,
|
|
|
|
|
le si metta qui.
|
|
|
|
|
Es: `minetest/mods/`
|
|
|
|
|
3. Mod del mondo. Il luogo dove mettere le mod che sono specifiche di un dato mondo.
|
|
|
|
|
Es: `minetest/worlds/world/worldmods/`
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Minetest controllerà questi punti nell'ordine sopraelencato. Se incontra una mod con lo
|
|
|
|
|
stesso nome di una incontrata in precedenza, l'ultima verrà caricata al posto della prima.
|
|
|
|
|
Questo significa che si può sovrascrivere le mod di gioco piazzando una mod con lo stesso
|
|
|
|
|
nome nella cartella delle mod globali.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
La posizione di ogni percorso di caricamento mod dipende da quale sistema operativo si sta
|
|
|
|
|
usando, e come è stato installato Minetest.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
* **Windows:**
|
2020-04-27 16:13:39 +03:00
|
|
|
|
* Per le build portatili, per esempio da un file .zip, vai dove hai estratto lo zip e
|
|
|
|
|
cerca le cartelle `games`, `mods` e `worlds`.
|
|
|
|
|
* Per le build installate, per esempio da un setup.exe,
|
|
|
|
|
guarda in C:\\\\Minetest o C:\\\\Games\\Minetest.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
* **GNU/Linux:**
|
2020-04-27 16:13:39 +03:00
|
|
|
|
* Per le installazioni di sistema, guarda in `~/.minetest`.
|
|
|
|
|
Attenzione che `~` equivale alla cartella home dell'utente, e che i file e le cartelle
|
|
|
|
|
che iniziano con un punto (`.`) sono nascosti di default.
|
|
|
|
|
* Per le installazioni portatili, guarda nella cartella di build.
|
|
|
|
|
* Per installazioni Flatpak, guarda in `~/.var/app/net.minetest.Minetest/.minetest/mods/`.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
* **MacOS**
|
2020-04-27 16:13:39 +03:00
|
|
|
|
* Guarda in `~/Library/Application Support/minetest/`.
|
|
|
|
|
Attenzione che `~` equivale alla cartella home dell'utente, per esempio `/Users/USERNAME/`.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Cartella mod
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
![Find the mod's directory]({{ page.root }}/static/folder_modfolder.jpg)
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Il *nome mod* è usato per riferirsi a una mod. Ogni mod dovrebbe avere un nome unico.
|
|
|
|
|
I nomi mod possono includere lettere, numeri e trattini bassi. Un buon nome dovrebbe
|
|
|
|
|
descrivere cosa fa la mod, e la cartella che contiene i componenti di una mod deve avere
|
|
|
|
|
lo stesso nome del nome mod.
|
|
|
|
|
Per scoprire se un nome mod è disponibile, prova a cercarlo su
|
2020-04-27 16:11:54 +03:00
|
|
|
|
[content.minetest.net](https://content.minetest.net).
|
|
|
|
|
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
mymod
|
|
|
|
|
├── init.lua (necessario) - Viene eseguito al lancio del gioco.
|
|
|
|
|
├── mod.conf (consigliato) - Contiene la descrizione e le dipendneze.
|
|
|
|
|
├── textures (opzionale)
|
|
|
|
|
│ └── ... qualsiasi texture o immagine
|
|
|
|
|
├── sounds (opzionale)
|
|
|
|
|
│ └── ... qualsiasi file audio
|
|
|
|
|
└── ... qualsiasi altro tipo di file o cartelle
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Solo il file init.lua è necessario in una mod per eseguirla al lanciare un gioco;
|
|
|
|
|
tuttavia, mod.conf è consigliato e altri componenti potrebbero essere richiesti a
|
|
|
|
|
seconda della funzione della mod.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Dipendenze
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Una dipendenza avviene quando una mod richiede che un'altra mod sia avviata prima di essa.
|
|
|
|
|
Una mod potrebbe infatti richiedere il codice di quest'ultima, i suoi oggetti o altre risorse.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Ci sono due tipi di dipendenze: forti e opzionali.
|
|
|
|
|
Entrambe richiedono che la mod richiesta venga caricata prima, con la differenza che se la
|
|
|
|
|
dipendenza è forte e la mod non viene trovata, l'altra fallirà nel caricare, mentre se è opzionale,
|
|
|
|
|
verranno semplicemente caricate meno feature.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Una dipendenza opzionale è utile se si vuole integrare opzionalmente un'altra mod; può abilitare
|
|
|
|
|
contenuti extra se l'utente desidera usare entrambe le mod in contemporanea.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Le dipendenze vanno elencate in mod.conf.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
### mod.conf
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Questo file è utilizzato per i metadati della mod, che includono il suo nome, la descrizione e
|
|
|
|
|
altre informazioni. Per esempio:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
name = lamiamod
|
|
|
|
|
description = Aggiunge X, Y, e Z.
|
|
|
|
|
depends = mod1, mod2
|
|
|
|
|
optional_depends = mod3
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
### depends.txt
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Per questioni di compatibilità con le versioni 0.4.x di Minetest, al posto di specificare le
|
|
|
|
|
dipendenze solamente in mod.conf, c'è bisogno di fornire un file depends.txt nel quale vanno
|
|
|
|
|
elencate tutte le dipendenze:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
mod1
|
|
|
|
|
mod2
|
|
|
|
|
mod3?
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Ogni nome mod occupa una riga, e i nomi mod seguiti da un punto di domanda indicano una dipendenza
|
|
|
|
|
opzionale.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Pacchetti mod (mod pack)
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Le mod possono essere raggruppate in pacchetti che permettono a più mod di essere confezionate
|
|
|
|
|
e spostate insieme. Sono comodi se si vogliono fornire più mod al giocatore, ma non si vuole al
|
|
|
|
|
tempo stesso fargliele scaricare una per una.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
pacchettomod1
|
|
|
|
|
├── modpack.lua (necessario) - segnala che è un pacchetto mod
|
2020-04-27 16:11:54 +03:00
|
|
|
|
├── mod1
|
2020-04-27 16:13:39 +03:00
|
|
|
|
│ └── ... file mod
|
|
|
|
|
└── mymod (opzionale)
|
|
|
|
|
└── ... file mod
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Attenzione che un pacchetto mod non equivale a un *gioco*.
|
|
|
|
|
I giochi hanno una propria struttura organizzativa che verrà spiegata nel loro apposito capitolo.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
## Esempio
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
|
|
Here is an example which puts all of this together:
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
### Cartella mod
|
|
|
|
|
lamiamod
|
2020-04-27 16:11:54 +03:00
|
|
|
|
├── textures
|
2020-04-27 16:13:39 +03:00
|
|
|
|
│ └── lamiamod_nodo.png
|
2020-04-27 16:11:54 +03:00
|
|
|
|
├── depends.txt
|
|
|
|
|
├── init.lua
|
|
|
|
|
└── mod.conf
|
|
|
|
|
|
|
|
|
|
### depends.txt
|
|
|
|
|
default
|
|
|
|
|
|
|
|
|
|
### init.lua
|
|
|
|
|
```lua
|
2020-04-27 16:13:39 +03:00
|
|
|
|
print("Questo file parte al caricamento!")
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
minetest.register_node("mymod:nodo", {
|
|
|
|
|
description = "Questo è un nodo",
|
|
|
|
|
tiles = {"mymod_nodo.png"},
|
2020-04-27 16:11:54 +03:00
|
|
|
|
groups = {cracky = 1}
|
|
|
|
|
})
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### mod.conf
|
2020-04-27 16:13:39 +03:00
|
|
|
|
name = lamiamod
|
|
|
|
|
descriptions = Aggiunge un nodo
|
2020-04-27 16:11:54 +03:00
|
|
|
|
depends = default
|
|
|
|
|
|
2020-04-27 16:13:39 +03:00
|
|
|
|
Questa mod ha il nome "lamiamod". Ha tre file di testo: init.lua, mod.conf e depends.txt.\\
|
|
|
|
|
Lo script stampa un messaggio e poi registra un nodo – che sarà spiegato nel prossimo capitolo.\\
|
|
|
|
|
C'è una sola dipendenza, la [mod default](https://content.minetest.net/metapackages/default/), che
|
|
|
|
|
si trova solitamente nel Minetest Game.\\
|
|
|
|
|
C'è anche una texture in textures/ per il nodo.
|