IT | Update to latest commits
This commit is contained in:
parent
dc54e0786e
commit
bca09bd7ab
@ -14,7 +14,7 @@ Questo capitolo mostra come registrare nuovi biomi, come controllarne la distrib
|
|||||||
|
|
||||||
- [Cosa sono i biomi?](#cosa-sono-i-biomi)
|
- [Cosa sono i biomi?](#cosa-sono-i-biomi)
|
||||||
- [Collocare un bioma](#collocare-un-bioma)
|
- [Collocare un bioma](#collocare-un-bioma)
|
||||||
- [Calore e umidità](#calore-e-umidita)
|
- [Calore e umidità](#calore-e-umidità)
|
||||||
- [Visualizzare i confini usando i diagrammi di Voronoi](#visualizzare-i-confini-usando-i-diagrammi-di-voronoi)
|
- [Visualizzare i confini usando i diagrammi di Voronoi](#visualizzare-i-confini-usando-i-diagrammi-di-voronoi)
|
||||||
- [Creare un diagramma di Voronoi usando Geogebra](#creare-un-diagramma-di-voronoi-usando-geogebra)
|
- [Creare un diagramma di Voronoi usando Geogebra](#creare-un-diagramma-di-voronoi-usando-geogebra)
|
||||||
- [Registrare un bioma](#registrare-un-bioma)
|
- [Registrare un bioma](#registrare-un-bioma)
|
||||||
|
@ -16,13 +16,11 @@ Capire la struttura base della cartella di una mod è un requisito essenziale pe
|
|||||||
- [Cosa sono i giochi e le mod?](#cosa-sono-i-giochi-e-le-mod)
|
- [Cosa sono i giochi e le mod?](#cosa-sono-i-giochi-e-le-mod)
|
||||||
- [Dove vengono salvate le mod?](#dove-vengono-salvate-le-mod)
|
- [Dove vengono salvate le mod?](#dove-vengono-salvate-le-mod)
|
||||||
- [Cartella mod](#cartella-mod)
|
- [Cartella mod](#cartella-mod)
|
||||||
- [Dipendenze](#dipendenze)
|
- [mod.conf](#modconf)
|
||||||
- [mod.conf](#modconf)
|
- [Dipendenze](#dipendenze)
|
||||||
- [depends.txt](#dependstxt)
|
|
||||||
- [Pacchetti mod](#pacchetti-mod-mod-pack)
|
- [Pacchetti mod](#pacchetti-mod-mod-pack)
|
||||||
- [Esempio](#esempio)
|
- [Esempio](#esempio)
|
||||||
- [Cartella mod](#cartella-mod-1)
|
- [Cartella mod](#cartella-mod-1)
|
||||||
- [depends.txt](#dependstxt-1)
|
|
||||||
- [init.lua](#initlua)
|
- [init.lua](#initlua)
|
||||||
- [mod.conf](#modconf-1)
|
- [mod.conf](#modconf-1)
|
||||||
|
|
||||||
@ -101,7 +99,17 @@ Solo il file init.lua è necessario in una mod per eseguirla al lanciare un gioc
|
|||||||
tuttavia, mod.conf è consigliato e altri componenti potrebbero essere richiesti a
|
tuttavia, mod.conf è consigliato e altri componenti potrebbero essere richiesti a
|
||||||
seconda di quello che si vuole fare.
|
seconda di quello che si vuole fare.
|
||||||
|
|
||||||
## Dipendenze
|
## mod.conf
|
||||||
|
|
||||||
|
Questo file è utilizzato per i metadati della mod, che includono il suo nome, la descrizione e altre informazioni.
|
||||||
|
|
||||||
|
Per esempio:
|
||||||
|
|
||||||
|
name = lamiamod
|
||||||
|
description = Aggiunge X, Y, e Z
|
||||||
|
depends = mod1, mod2
|
||||||
|
|
||||||
|
### Dipendenze
|
||||||
|
|
||||||
Una dipendenza avviene quando una mod ne richiede un'altra da avviare prima di essa.
|
Una dipendenza avviene quando una mod ne richiede un'altra da avviare prima di essa.
|
||||||
Una mod potrebbe infatti richiedere il codice di quest'ultima, i suoi oggetti o altre risorse.
|
Una mod potrebbe infatti richiedere il codice di quest'ultima, i suoi oggetti o altre risorse.
|
||||||
@ -111,28 +119,11 @@ Entrambe richiedono che la mod richiesta venga caricata prima, con la differenza
|
|||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
Le dipendenze vanno elencate in mod.conf.
|
Le dipendenze sono specificate in un elenco separato da virgole in mod.conf.
|
||||||
|
|
||||||
### mod.conf
|
|
||||||
|
|
||||||
Questo file è utilizzato per i metadati della mod, che includono il suo nome, la descrizione e altre informazioni.
|
|
||||||
Per esempio:
|
|
||||||
|
|
||||||
name = lamiamod
|
|
||||||
description = Aggiunge X, Y, e Z.
|
|
||||||
depends = mod1, mod2
|
depends = mod1, mod2
|
||||||
optional_depends = mod3
|
optional_depends = mod3
|
||||||
|
|
||||||
### depends.txt
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
mod1
|
|
||||||
mod2
|
|
||||||
mod3?
|
|
||||||
|
|
||||||
Ogni nome mod occupa una riga, e quelli seguiti da un punto di domanda indicano una dipendenza opzionale.
|
|
||||||
|
|
||||||
## Pacchetti mod (mod pack)
|
## Pacchetti mod (mod pack)
|
||||||
|
|
||||||
Le mod possono essere raggruppate in pacchetti che permettono di confezionarne e spostarne più alla volta.
|
Le mod possono essere raggruppate in pacchetti che permettono di confezionarne e spostarne più alla volta.
|
||||||
@ -155,13 +146,9 @@ Segue un esempio che mette insieme tutto ciò discusso finora:
|
|||||||
lamiamod
|
lamiamod
|
||||||
├── textures
|
├── textures
|
||||||
│ └── lamiamod_nodo.png
|
│ └── lamiamod_nodo.png
|
||||||
├── depends.txt
|
|
||||||
├── init.lua
|
├── init.lua
|
||||||
└── mod.conf
|
└── mod.conf
|
||||||
|
|
||||||
### depends.txt
|
|
||||||
default
|
|
||||||
|
|
||||||
### init.lua
|
### init.lua
|
||||||
```lua
|
```lua
|
||||||
print("Questo file parte al caricamento!")
|
print("Questo file parte al caricamento!")
|
||||||
@ -178,7 +165,7 @@ minetest.register_node("lamiamod:nodo", {
|
|||||||
descriptions = Aggiunge un nodo
|
descriptions = Aggiunge un nodo
|
||||||
depends = default
|
depends = default
|
||||||
|
|
||||||
Questa mod ha come nome "lamiamod". Ha tre file di testo: init.lua, mod.conf e depends.txt.\\
|
Questa mod ha come nome "lamiamod". Ha due file di testo: init.lua e mod.conf.\\
|
||||||
Lo script stampa un messaggio e poi registra un nodo – che sarà spiegato nel prossimo capitolo.\\
|
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
|
C'è una sola dipendenza, la [mod default](https://content.minetest.net/metapackages/default/), che
|
||||||
si trova solitamente nel Minetest Game.\\
|
si trova solitamente nel Minetest Game.\\
|
||||||
|
@ -9,10 +9,10 @@ idx: 7.1
|
|||||||
|
|
||||||
Il punto forte di Minetest è quello di poter sviluppare giochi con facilità senza il bisogno di costruirsi il proprio motore grafico voxel, i propri algoritmi voxel, o la propria parte network.
|
Il punto forte di Minetest è quello di poter sviluppare giochi con facilità senza il bisogno di costruirsi il proprio motore grafico voxel, i propri algoritmi voxel, o la propria parte network.
|
||||||
|
|
||||||
- [Cos'è un gioco?](#cose-un-gioco)
|
- [Cos'è un gioco?](#cosè-un-gioco)
|
||||||
- [Cartella di un gioco](#cartella-di-un-gioco)
|
- [Cartella di un gioco](#cartella-di-un-gioco)
|
||||||
- [Compatibilità tra giochi](#compatibilita-tra-giochi)
|
- [Compatibilità tra giochi](#compatibilità-tra-giochi)
|
||||||
- [Compatibilità delle API](#compatibilita-delle-api)
|
- [Compatibilità delle API](#compatibilità-delle-api)
|
||||||
- [Gruppi e alias](#gruppi-e-alias)
|
- [Gruppi e alias](#gruppi-e-alias)
|
||||||
- [Il tuo turno](#il-tuo-turno)
|
- [Il tuo turno](#il-tuo-turno)
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Saper registrare nuovi nodi, oggetti fabbricabili e conseguenti ricette, è un r
|
|||||||
- [Informi (shapeless)](#informi-shapeless)
|
- [Informi (shapeless)](#informi-shapeless)
|
||||||
- [Cottura (cooking) e Carburante (fuel)](#cottura-cooking-e-carburante-fuel)
|
- [Cottura (cooking) e Carburante (fuel)](#cottura-cooking-e-carburante-fuel)
|
||||||
- [Gruppi](#gruppi)
|
- [Gruppi](#gruppi)
|
||||||
- [Strumenti, Capacità e Friabilità](#strumenti-capacita-e-friabilita)
|
- [Strumenti, Capacità e Friabilità](#strumenti-capacità-e-friabilità)
|
||||||
|
|
||||||
## Cosa sono i nodi e gli oggetti?
|
## Cosa sono i nodi e gli oggetti?
|
||||||
|
|
||||||
|
@ -86,18 +86,6 @@ Come mostrato nella prossima sezione, le entità possono avere delle proprietà
|
|||||||
Un'entità ha una tabella di definizione che ricorda quella degli oggetti (intesi come *items*).
|
Un'entità ha una tabella di definizione che ricorda quella degli oggetti (intesi come *items*).
|
||||||
Questa tabella può contenere metodi di callback, proprietà iniziali e membri personalizzati.
|
Questa tabella può contenere metodi di callback, proprietà iniziali e membri personalizzati.
|
||||||
|
|
||||||
Tuttavia, c'è una differenza sostanziale tra le due; perché quando un'entità appare (come quando viene creata o caricata) una nuova tabella viene generata per quell'entità, *ereditando* le proprietà dalla tabella originaria tramite una metatabella.
|
|
||||||
Ci si riferisce solitamente a questa nuova tabella con Tabella di Entità Lua e può essere usata per immagazzinare variabili per quella specifica entità.
|
|
||||||
|
|
||||||
Le metatabelle rappresentano un aspetto importante di Lua, che bisogna tenere bene a mente in quanto sono una parte essenziale del linguaggio.
|
|
||||||
|
|
||||||
In parole povere, le metatabelle permettono di controllare come si comporta una tabella quando viene usata una certa sintassi in Lua.
|
|
||||||
Vengono usate soprattutto per la loro abilità di usare un'altra tabella come prototipo, fungendo da valori di base di quest'ultima quando essa non contiene le proprietà e i metodi richiesti.
|
|
||||||
|
|
||||||
Mettiamo che si voglia accedere al campo X della tabella A.
|
|
||||||
Se la tabella A ha quel campo, allora ritornerà normalmente.
|
|
||||||
Tuttavia, se X non esiste ma esiste una metatabella B associata ad A, B verrà ispezionata alla ricerca di un eventuale X prima di ritornare (eventualmente) nil.
|
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
local MiaEntita = {
|
local MiaEntita = {
|
||||||
initial_properties = {
|
initial_properties = {
|
||||||
@ -120,6 +108,19 @@ function MiaEntita:imposta_messaggio(msg)
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Tuttavia, c'è una differenza sostanziale tra entità e oggetti; perché quando un'entità appare (come quando viene creata o caricata) una nuova tabella viene generata per quell'entità, *ereditando* le proprietà dalla tabella originaria tramite una metatabella.
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Questa eredità avviene usando una metatabella. Le metatabelle rappresentano un aspetto importante di Lua, che bisogna tenere bene a mente in quanto sono una parte essenziale del linguaggio.
|
||||||
|
|
||||||
|
In parole povere, le metatabelle permettono di controllare come si comporta una tabella quando viene usata una certa sintassi in Lua.
|
||||||
|
Vengono usate soprattutto per la loro abilità di usare un'altra tabella come prototipo, fungendo da valori di base di quest'ultima quando essa non contiene le proprietà e i metodi richiesti.
|
||||||
|
|
||||||
|
Mettiamo che si voglia accedere al campo `x` della tabella `a` (`a.x`).
|
||||||
|
Se la tabella `a` ha quel campo, allora ritornerà normalmente.
|
||||||
|
Tuttavia, se `a.x` non esiste ma esiste una metatabella `b` associata ad `a`, `b` verrà ispezionata alla ricerca di un eventuale `b.x` da ritornare al posto di `nil`.
|
||||||
|
-->
|
||||||
|
|
||||||
Sia la tabella di un ObjectRef che quella di un'entità forniscono modi per ottenerne la controparte:
|
Sia la tabella di un ObjectRef che quella di un'entità forniscono modi per ottenerne la controparte:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
|
@ -107,7 +107,7 @@ data = minetest.deserialize(minetest:get_string("foo"))
|
|||||||
|
|
||||||
### Metadati privati
|
### Metadati privati
|
||||||
|
|
||||||
Le voci nei metadati di un nodo possono essere segnate come private, senza venire quindi inviate al client (al contrario delle normali).
|
Di base, tutti i metadati dei nodi sono inviati al client. Rendendo le loro chiavi private, questo invece non succede.
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
meta:set_string("segreto", "asd34dn")
|
meta:set_string("segreto", "asd34dn")
|
||||||
|
@ -48,6 +48,8 @@ Il modo in cui elementi diversi venivano posizionati nel formspec variava in man
|
|||||||
Da Minetest 5.1.0, tuttavia, è stata introdotta una funzione chiamata Coordinate Reali (*real coordinates*), la quale punta a correggere questo comportamento tramite l'introduzione di un sistema di coordinate coerente.
|
Da Minetest 5.1.0, tuttavia, è stata introdotta una funzione chiamata Coordinate Reali (*real coordinates*), la quale punta a correggere questo comportamento tramite l'introduzione di un sistema di coordinate coerente.
|
||||||
L'uso delle coordinate reali è caldamente consigliato, onde per cui questo capitolo non tratterà di quelle vecchie.
|
L'uso delle coordinate reali è caldamente consigliato, onde per cui questo capitolo non tratterà di quelle vecchie.
|
||||||
|
|
||||||
|
Usando una versione del formspec maggiore o uguale a 2, esse saranno abilitate di base.
|
||||||
|
|
||||||
## Anatomia di un formspec
|
## Anatomia di un formspec
|
||||||
|
|
||||||
### Elementi
|
### Elementi
|
||||||
@ -72,12 +74,12 @@ L'intestazione di un formspec contiene informazioni che devono apparire prima di
|
|||||||
Questo include la grandezza del formspec, la posizione, l'ancoraggio, e se il tema specifico del gioco debba venir applicato.
|
Questo include la grandezza del formspec, la posizione, l'ancoraggio, e se il tema specifico del gioco debba venir applicato.
|
||||||
|
|
||||||
Gli elementi nell'intestazione devono essere definiti in un ordine preciso, altrimenti ritorneranno un errore.
|
Gli elementi nell'intestazione devono essere definiti in un ordine preciso, altrimenti ritorneranno un errore.
|
||||||
L'ordine è dato nel paragrafo qui in alto e, come sempre, documentato inlua_api.txt.
|
L'ordine è dato nel paragrafo qui in alto e, come sempre, documentato in lua_api.txt.
|
||||||
|
|
||||||
La grandezza è in caselle formspec - un'unità di misura che è circa 64 pixel, ma varia a seconda della densità dello schermo e delle impostazioni del client.
|
La grandezza è in caselle formspec - un'unità di misura che è circa 64 pixel, ma varia a seconda della densità dello schermo e delle impostazioni del client.
|
||||||
Ecco un formspec di 2x2:
|
Ecco un formspec di 2x2:
|
||||||
|
|
||||||
formspec_version[3]
|
formspec_version[4]
|
||||||
size[2,2]
|
size[2,2]
|
||||||
|
|
||||||
Notare come è stata esplicitamente definita la versione del linguaggio: senza di essa, il sistema datato sarebbe stato usato di base - che avrebbe impossibilitato il posizionamento coerente degli elementi e altre nuove funzioni.
|
Notare come è stata esplicitamente definita la versione del linguaggio: senza di essa, il sistema datato sarebbe stato usato di base - che avrebbe impossibilitato il posizionamento coerente degli elementi e altre nuove funzioni.
|
||||||
@ -86,9 +88,8 @@ La posizione e l'ancoraggio degli elementi sono usati per collocare il formspec
|
|||||||
La posizione imposta dove si troverà (con valore predefinito al centro, `0.5,0.5`), mentre l'ancoraggio da dove partire, permettendo di allineare il formspec con i bordi dello schermo.
|
La posizione imposta dove si troverà (con valore predefinito al centro, `0.5,0.5`), mentre l'ancoraggio da dove partire, permettendo di allineare il formspec con i bordi dello schermo.
|
||||||
Per esempio, lo si può posizionare ancorato a sinistra in questo modo:
|
Per esempio, lo si può posizionare ancorato a sinistra in questo modo:
|
||||||
|
|
||||||
formspec_version[3]
|
formspec_version[4]
|
||||||
size[2,2]
|
size[2,2]
|
||||||
real_coordinates[true]
|
|
||||||
position[0,0.5]
|
position[0,0.5]
|
||||||
anchor[0,0.5]
|
anchor[0,0.5]
|
||||||
|
|
||||||
@ -120,6 +121,7 @@ function indovina.prendi_formspec(nome)
|
|||||||
local testo = "Sto pensando a un numero... Prova a indovinare!"
|
local testo = "Sto pensando a un numero... Prova a indovinare!"
|
||||||
|
|
||||||
local formspec = {
|
local formspec = {
|
||||||
|
"formspec_version[4]",
|
||||||
"size[6,3.476]",
|
"size[6,3.476]",
|
||||||
"label[0.375,0.5;", minetest.formspec_escape(testo), "]",
|
"label[0.375,0.5;", minetest.formspec_escape(testo), "]",
|
||||||
"field[0.375,1.25;5.25,0.8;numero;Numero;]",
|
"field[0.375,1.25;5.25,0.8;numero;Numero;]",
|
||||||
@ -295,7 +297,7 @@ minetest.register_node("miamod:tastodestro", {
|
|||||||
|
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec",
|
meta:set_string("formspec",
|
||||||
"formspec_version[3]" ..
|
"formspec_version[4]" ..
|
||||||
"size[5,5]"..
|
"size[5,5]"..
|
||||||
"label[1,1;Questo è mostrato al premere col destro]"..
|
"label[1,1;Questo è mostrato al premere col destro]"..
|
||||||
"field[1,2;2,1;x;x;]")
|
"field[1,2;2,1;x;x;]")
|
||||||
|
@ -10,51 +10,26 @@ redirect_from: /it/chapters/common_mistakes.html
|
|||||||
|
|
||||||
Questo capitolo illustra gli errori più comuni e come evitarli.
|
Questo capitolo illustra gli errori più comuni e come evitarli.
|
||||||
|
|
||||||
- [Non salvare mai ObjectRef (giocatori ed entità)](#non-salvare-mai-objectref-giocatori-ed-entita)
|
- [Fai attenzione quando salvi gli ObjectRef in delle variabili (giocatori ed entità)](#fai-attenzione-quando-salvi-gli-objectref-in-delle-variabili-giocatori-ed-entità)
|
||||||
- [Non fidarti dei campi dei formspec](#non-fidarti-dei-campi-dei-formspec)
|
- [Non fidarti dei campi dei formspec](#non-fidarti-dei-campi-dei-formspec)
|
||||||
- [Imposta gli ItemStack dopo averli modificati](#imposta-gli-itemstack-dopo-averli-modificati)
|
- [Imposta gli ItemStack dopo averli modificati](#imposta-gli-itemstack-dopo-averli-modificati)
|
||||||
|
|
||||||
## Non salvare mai ObjectRef (giocatori ed entità)
|
## Fai attenzione quando salvi gli ObjectRef in delle variabili (giocatori ed entità)
|
||||||
|
|
||||||
Se l'oggetto rappresentato da un ObjectRef viene rimosso - per esempio quando il giocatore si disconnette o un'entità viene rimossa dalla memoria - chiamare metodi su quell'oggetto causerà la chiusura improvvisa del server (*crash*).
|
Un ObjectRef viene invalidato quando il giocatore o l'entità che esso rappresenta abbandona il gioco.
|
||||||
|
Ciò si verifica quando un giocatore si disconnette, o quando un'entità viene rimossa dalla memoria.
|
||||||
|
|
||||||
Sbagliato:
|
Da Minetest 5.2, i metodi degli ObjectRef ritorneranno sempre `nil` quando non validi.
|
||||||
|
In altre parole, ogni chiamata verrà ignorata.
|
||||||
|
|
||||||
|
Si dovrebbe evitare quanto possibile di immagazzinare gli ObjectRef in delle variabili.
|
||||||
|
Se ciò tuttavia accade, assicurati di controllare se esiste ancora, come illustrato qui di seguito:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
minetest.register_on_joinplayer(function(player)
|
-- questo codice funziona solo da Minetest 5.2 in poi
|
||||||
local function func()
|
if obj:get_pos() then
|
||||||
local pos = player:get_pos() -- MALE!
|
-- è valido!
|
||||||
-- `player` viene salvato per essere utilizzato dopo.
|
end
|
||||||
-- Se il giocatore si disconnette, il server crasha
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.after(1, func)
|
|
||||||
|
|
||||||
foobar[player:get_player_name()] = player
|
|
||||||
-- RISCHIOSO
|
|
||||||
-- Non è consigliato fare così.
|
|
||||||
-- Usa invece minetest.get_connected_players() e minetest.get_player_by_name().
|
|
||||||
end)
|
|
||||||
```
|
|
||||||
|
|
||||||
Giusto:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
local function func(name)
|
|
||||||
-- Tenta di ottenere il riferimento
|
|
||||||
local player = minetest.get_player_by_name(name)
|
|
||||||
|
|
||||||
-- Controlla che il giocatore sia online
|
|
||||||
if player then
|
|
||||||
-- è online, procedo
|
|
||||||
local pos = player:get_pos()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Passa il nome nella funzione
|
|
||||||
minetest.after(1, func, player:get_player_name())
|
|
||||||
end)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Non fidarti dei campi dei formspec
|
## Non fidarti dei campi dei formspec
|
||||||
|
@ -11,21 +11,21 @@ redirect_from: /it/chapters/releasing.html
|
|||||||
Rilasciare (o pubblicare) una mod permette ad altre persone di poterne usufruire.
|
Rilasciare (o pubblicare) una mod permette ad altre persone di poterne usufruire.
|
||||||
Una volta che una mod è stata rilasciata potrebbe venir usata nelle partite locali (a giocatore singolo) o nei server, inclusi quelli pubblici.
|
Una volta che una mod è stata rilasciata potrebbe venir usata nelle partite locali (a giocatore singolo) o nei server, inclusi quelli pubblici.
|
||||||
|
|
||||||
- [Scegliere la licenza](#scegliere-la-licenza)
|
- [Scegliere una licenza](#scegliere-una-licenza)
|
||||||
- [LGPL e CC-BY-SA](#lgpl-e-cc-by-sa)
|
- [LGPL e CC-BY-SA](#lgpl-e-cc-by-sa)
|
||||||
- [CC0](#cc0)
|
- [CC0](#cc0)
|
||||||
- [MIT](#mit)
|
- [MIT](#mit)
|
||||||
- [Impacchettare](#impacchettare)
|
- [Impacchettare](#impacchettare)
|
||||||
- [README.txt](#readmetxt)
|
- [README.txt](#readmetxt)
|
||||||
- [description.txt](#descriptiontxt)
|
- [mod.conf / game.conf](#modconf--gameconf)
|
||||||
- [screenshot.png](#screenshotpng)
|
- [screenshot.png](#screenshotpng)
|
||||||
- [Caricare](#caricare)
|
- [Caricare](#caricare)
|
||||||
- [Sistemi di Controllo Versione](#sistemi-di-controllo-versione)
|
- [Sistemi di Controllo Versione](#sistemi-di-controllo-versione)
|
||||||
- [Allegati sul forum](#allegati-sul-forum)
|
- [Allegati sul forum](#allegati-sul-forum)
|
||||||
|
- [Rilasciare su ContentDB](#rilasciare-su-contentdb)
|
||||||
- [Creare la discussione sul forum](#creare-la-discussione-sul-forum)
|
- [Creare la discussione sul forum](#creare-la-discussione-sul-forum)
|
||||||
- [Titolo](#titolo)
|
|
||||||
|
|
||||||
## Scegliere la licenza
|
## Scegliere una licenza
|
||||||
|
|
||||||
Avrai bisogno di specificare una licenza per la tua mod.
|
Avrai bisogno di specificare una licenza per la tua mod.
|
||||||
Questo è importante perché dice alle altre persone cosa possono e non possono fare col tuo lavoro.
|
Questo è importante perché dice alle altre persone cosa possono e non possono fare col tuo lavoro.
|
||||||
@ -73,18 +73,18 @@ Il README dovrebbe dichiarare:
|
|||||||
* Versione corrente della mod;
|
* Versione corrente della mod;
|
||||||
* Eventualmente, dove segnalare i problemi o comunque richiedere aiuto.
|
* Eventualmente, dove segnalare i problemi o comunque richiedere aiuto.
|
||||||
|
|
||||||
### description.txt
|
### mod.conf / game.conf
|
||||||
|
|
||||||
Questo file spiega cosa fa la mod.
|
Assicurati di aggiungere una descrizione che spieghi cosa fa la mod, usando la chiave `description`.
|
||||||
Cerca di essere preciso e coinciso: dovrebbe essere breve perché il contenuto verrà mostrato nell'installer del motore di gioco, che ha uno spazio limitato.
|
Cerca di essere preciso e coinciso: dovrebbe essere breve perché il contenuto verrà mostrato nell'installer del motore di gioco, che ha uno spazio limitato.
|
||||||
|
|
||||||
Per esempio, consigliato:
|
Per esempio, consigliato:
|
||||||
|
|
||||||
Aggiunge zuppa, torte, pane e succhi.
|
description = Aggiunge zuppa, torte, pane e succhi
|
||||||
|
|
||||||
Sconsigliato:
|
Sconsigliato:
|
||||||
|
|
||||||
Cibo per Minetest.
|
description = Cibo per Minetest
|
||||||
|
|
||||||
### screenshot.png
|
### screenshot.png
|
||||||
|
|
||||||
@ -95,84 +95,44 @@ Lo screen verrà mostrato nel bazar delle mod (sono tutte gratuite).
|
|||||||
## Caricare
|
## Caricare
|
||||||
|
|
||||||
Per far sì che un potenziale utente possa scaricare la tua mod, c'è bisogno di caricarla in uno spazio pubblico.
|
Per far sì che un potenziale utente possa scaricare la tua mod, c'è bisogno di caricarla in uno spazio pubblico.
|
||||||
Ci sono svariati modi per fare ciò quindi usa l'approccio che ritieni più opportuno; l'importante è che esso rispetti i requisiti qui elencati, ed eventuale richieste aggiuntive aggiunta dai moderatori del forum:
|
Ci sono svariati modi per fare ciò quindi usa l'approccio che ritieni più opportuno; l'importante è che esso rispetti i requisiti qui elencati, ed eventuale richieste aggiuntive dei moderatori del forum:
|
||||||
|
|
||||||
* **Stabile** - Il sito che conterrà il file non dovrebbe essere propenso a morire da un momento all'altro senza preavviso;
|
* **Stabile** - Il sito che conterrà il file non dovrebbe essere propenso a chiudere i battenti da un momento all'altro senza preavviso;
|
||||||
* **Link diretto** - Dovresti essere in grado di cliccare su un link sul forum e scaricare il file senza il bisogno di dover passare per altre pagine;
|
* **Link diretto** - Dovresti essere in grado di cliccare su un link e scaricare il file senza il bisogno di dover passare per altre pagine;
|
||||||
* **Senza virus** - Le mod con contenuti malevoli saranno rimosse dal forum.
|
* **Senza virus** - Le mod con contenuti malevoli saranno rimosse dal forum.
|
||||||
|
|
||||||
|
ContentDB soddisfa questi requisiti, richiedendo giusto un file .zip.
|
||||||
|
|
||||||
### Sistemi di Controllo Versione
|
### Sistemi di Controllo Versione
|
||||||
|
|
||||||
È consigliato usare un sistema di controllo versione che:
|
Un Sistema di Controllo Versione (VCS, *Version Control System*) è un programma che gestisce i cambiamenti di altri programmi, spesso facilitandone la distribuzione e la collaborazione.
|
||||||
|
|
||||||
* Permetta agli altri sviluppatori di inviare le loro modifiche facilmente;
|
La maggior parte dei creatori di mod su Minetest usa Git e un sito per ospitare il loro codice come GitHub o GitLab.
|
||||||
* Permetta al codice di essere visualizzato prima di essere scaricato;
|
|
||||||
* Permetta agli utenti di fare segnalazioni (bug, domande ecc).
|
|
||||||
|
|
||||||
La maggior parte dei creatori di mod su Minetest usa GitHub o GitLab come sito per ospitare il loro codice, ma esistono anche altre opzioni.
|
Usare git può essere difficile all'inizio.
|
||||||
|
|
||||||
Usare siti come GitHub e GitLab può essere difficile all'inizio.
|
|
||||||
Se hai bisogno di una mano e mastichi l'inglese, prova a dare un occhio a [Pro Git book](http://git-scm.com/book/en/v1/Getting-Started) - gratis da leggere online.
|
Se hai bisogno di una mano e mastichi l'inglese, prova a dare un occhio a [Pro Git book](http://git-scm.com/book/en/v1/Getting-Started) - gratis da leggere online.
|
||||||
|
|
||||||
### Allegati sul forum
|
## Rilasciare su ContentDB
|
||||||
|
|
||||||
Un'alternativa all'usare un sistema di controllo versione è il caricare le mod come allegati sul forum.
|
ContentDB è il luogo ufficiale dove trovare e distribuire mod, giochi e pacchetti texture.
|
||||||
Questo può essere fatto alla creazione della discussione nella sezione delle mod (spiegato sotto).
|
Gli utenti possono manualmente andare alla ricerca di contenuti tramite il sito, o scaricarli e installarli direttamente dall'integrazione presente nel menù principale di Minetest.
|
||||||
|
|
||||||
Prima di tutto, avrai bisogno di creare uno zip con i file della mod (il procedimento varia da sistema operativo a sistema operativo, ma solitamente si parla di premere il tasto destro su uno dei file dopo averli selezionati tutti).
|
Iscriviti su [ContentDB](https://content.minetest.net) e aggiungi il tuo lavoro.
|
||||||
|
Assicurati di leggere le linee guida (in inglese) nella sezione d'aiuto (*Help*).
|
||||||
Quando crei una discussione sul forum - nella pagina "Create a Topic" illustrata sotto - vai alla "Upload Attachment" situata in basso.
|
|
||||||
Clicca poi su "Browse", selezionando il file zip.
|
|
||||||
È inoltre consigliato specificare la versione della mod nel campo dei commenti ("File comment").
|
|
||||||
|
|
||||||
<figure>
|
|
||||||
<img src="{{ page.root }}/static/releasing_attachments.png" alt="Upload Attachment">
|
|
||||||
<figcaption>
|
|
||||||
La scheda Upload Attachment.
|
|
||||||
</figcaption>
|
|
||||||
</figure>
|
|
||||||
|
|
||||||
## Creare la discussione sul forum
|
## Creare la discussione sul forum
|
||||||
|
|
||||||
|
Puoi anche creare una discussione sul forum per far in modo che gli utenti possano discutere ciò che hai fatto.
|
||||||
|
|
||||||
|
Per le mod usa la sezione ["WIP Mods"](https://forum.minetest.net/viewforum.php?f=9) (*Work In Progress*), per i giochi invece ["WIP Games"](https://forum.minetest.net/viewforum.php?f=50).
|
||||||
|
|
||||||
|
|
||||||
Puoi ora creare la discussione nella sezione ["WIP Mods"](https://forum.minetest.net/viewforum.php?f=9) (WIP sta per *Work In Progress*, lavori in corso).\\
|
Puoi ora creare la discussione nella sezione ["WIP Mods"](https://forum.minetest.net/viewforum.php?f=9) (WIP sta per *Work In Progress*, lavori in corso).\\
|
||||||
Quando ritieni che la tua mod abbia raggiunto la sua prima versione ufficiale, puoi [richiedere (in inglese) che venga spostata](https://forum.minetest.net/viewtopic.php?f=11&t=10418) in "Mod Releases".
|
Quando ritieni che la tua mod abbia raggiunto la sua prima versione ufficiale, puoi [richiedere (in inglese) che venga spostata](https://forum.minetest.net/viewtopic.php?f=11&t=10418) in "Mod Releases".
|
||||||
|
|
||||||
La discussione dovrebbe contenere contenuti simili al README, con giusto un po' più di coinvolgimento e il link per scaricare la mod.
|
La discussione dovrebbe contenere contenuti simili al README, con giusto un po' più di coinvolgimento e il link per scaricare la mod.
|
||||||
È buona cosa aggiungere anche degli eventuali screenshot per far capire al volo cosa fa la mod, se possibile.
|
È buona cosa aggiungere anche degli eventuali screenshot per far capire al volo cosa fa la mod, se possibile.
|
||||||
|
|
||||||
La formattazione del forum di Minetest è in bbcode.
|
|
||||||
Segue un esempio di una mod chiamata "superspecial" (si è tenuto l'esempio in inglese dato che bisogna scrivere appunto in inglese sul forum, NdT):
|
|
||||||
|
|
||||||
|
|
||||||
Adds magic, rainbows and other special things.
|
|
||||||
|
|
||||||
See download attached.
|
|
||||||
|
|
||||||
[b]Version:[/b] 1.1
|
|
||||||
[b]License:[/b] LGPL 2.1 or later
|
|
||||||
|
|
||||||
Dependencies: default mod (found in minetest_game)
|
|
||||||
|
|
||||||
Report bugs or request help on the forum topic.
|
|
||||||
|
|
||||||
[h]Installation[/h]
|
|
||||||
|
|
||||||
Unzip the archive, rename the folder to superspecial and
|
|
||||||
place it in minetest/mods/
|
|
||||||
|
|
||||||
( GNU/Linux: If you use a system-wide installation place
|
|
||||||
it in ~/.minetest/mods/. )
|
|
||||||
|
|
||||||
( If you only want this to be used in a single world, place
|
|
||||||
the folder in worldmods/ in your world directory. )
|
|
||||||
|
|
||||||
For further information or help see:
|
|
||||||
[url]https://wiki.minetest.net/Installing_Mods[/url]
|
|
||||||
|
|
||||||
Se hai intenzione di usare questo esempio per la tua mod, ricordati ovviamente di cambiare "superspecial" con il nome vero e proprio.
|
|
||||||
|
|
||||||
### Titolo
|
|
||||||
|
|
||||||
Il titolo della discussione deve seguire uno dei seguenti formati:
|
Il titolo della discussione deve seguire uno dei seguenti formati:
|
||||||
|
|
||||||
* [Mod] Nome mod [nomemod]
|
* [Mod] Nome mod [nomemod]
|
||||||
|
@ -12,7 +12,7 @@ La sicurezza è molto importante per evitare che una mod permetta di far perdere
|
|||||||
- [Concetti fondamentali](#concetti-fondamentali)
|
- [Concetti fondamentali](#concetti-fondamentali)
|
||||||
- [Formspec](#formspec)
|
- [Formspec](#formspec)
|
||||||
- [Non fidarsi mai dei campi dei formspec](#non-fidarsi-mai-dei-campi-dei-formspec)
|
- [Non fidarsi mai dei campi dei formspec](#non-fidarsi-mai-dei-campi-dei-formspec)
|
||||||
- [Il momento per controllare non è il momento dell'uso (Time of Check is not Time of Use)](#il-momento-per-controllare-non-e-il-momento-delluso-time-of-check-is-not-time-of-use)
|
- [Il momento per controllare non è il momento dell'uso (Time of Check is not Time of Use)](#il-momento-per-controllare-non-è-il-momento-delluso-time-of-check-is-not-time-of-use)
|
||||||
- [Ambienti (non sicuri)](#ambienti-non-sicuri)
|
- [Ambienti (non sicuri)](#ambienti-non-sicuri)
|
||||||
|
|
||||||
## Concetti fondamentali
|
## Concetti fondamentali
|
||||||
|
Loading…
Reference in New Issue
Block a user