Regolare i valori di calore e umidità risulta più facile se si riesce a visualizzare come i biomi entrano in relazione l’un con l’altro. Questo è importante soprattutto se si sta creando un set completo di nuovi biomi personalizzati, ma può essere utile anche quando se ne vuole aggiungere soltanto uno a un set già predefinito.
Il modo più semplice per vedere quali biomi potrebbero condividere un confine è creare un diagramma di Voronoi, che può essere usato per mostrare in un diagramma 2D quali sono, date più posizioni (in nero nell’immagine), i punti nello spazio a loro più vicini (i bordi delle aree colorate).
Un diagramma di Voronoi è utile sia per rivelare eventuali accoppiamenti non desiderati che per dar un’idea generale della distribuzione dei biomi.
Per far ciò, viene segnato un punto per ogni bioma basandosi sui valori di calore e umidità, dove l’asse X è il calore e l’asse Y l’umidità. Il diagramma è poi suddiviso in aree, in modo che ogni posizione in un’area specifica sia più vicina a un punto che a tutti gli altri.
Ogni area rappresenta un bioma. Se due aree condividono un confine, i biomi a loro associati possono essere trovati a confinare in gioco. La lunghezza del confine condiviso tra due aree, comparata alla lunghezza condivisa con le altre, ti dirà quanto frequentemente due biomi sono propensi a essere trovati vicini.
Oltre che farli a mano, per creare dei diagrammi di Voronoi si possono usare programmi come Geogebra.
Crea dei punti selezionando lo strumento per i punti dall’apposita interfaccia (l’icona del punto con la A) e cliccando per il piano. Puoi trascinare i punti dove vuoi o impostare la loro posizione dal menù laterale a sinistra. Dovresti anche rinominare ogni punto per rendere il tutto più chiaro.
Poi, crea il voronoi inserendo la seguente funzione nel menù laterale a sinistra, sotto i punti:
Voronoi({ A, B, C, D, E })
Dove ogni punto è contenuto nelle graffe, separato da virgole.
Tadaan! Dovresti ora avere un diagramma di Voronoi con tutti i punti trascinabili.
Il seguente codice registra un semplice bioma chiamato “distesa_erbosa”:
core.register_biome({
name = "distesa_erbosa",
node_top = "default:dirt_with_grass",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 3,
y_max = 1000,
y_min = -3,
heat_point = 50,
humidity_point = 50,
})
Questo bioma ha uno strato di “Dirt with Grass” sulla superficie, e tre strati di terra al di sotto. Non specifica tuttavia un nodo di pietra, quindi il nodo definito nella registrazione dell’alias del generatore della mappa (mapgen) in mapgen_stone
sarà presente sotto la terra.
Ci sono molte opzioni da personalizzare quando si registra un bioma, e le si possono trovare documentate nella API come al solito.
Non c’è bisogno di definire tutte le opzioni ogni volta che si crea un bioma, seppur in certi casi il dimenticarsi un’opzione specifica o un’alias di generazione della mappa appropriato porti a deli errori nella generazione.
Le decorazioni sono o dei nodi o degli insiemi di nodi (schematic) che possono essere piazzati nella mappa durante la generazione. Alcuni esempi comuni sono i fiori, i cespugli e gli alberi. Altri usi più creativi possono includere stalattiti e stalagmiti nelle grotte, formazione di cristalli sottoterra o addirittura la collocazione di piccoli edifici.
Le decorazioni possono essere limitate a biomi o ad altezze specifiche, o ancora a determinati nodi. Sono spesso usate per sviluppare l’atmosfera di un bioma, inserendo piante, alberi o altre caratteristiche che lo rendono particolare.
Le decorazioni semplici sono usate per piazzare un singolo nodo nella mappa durante la generazione. Ricordati che devi specificare il nodo che vuoi usare in quanto decorazione, i dettagli di dove può essere piazzato, e quanto di frequente deve apparire.
Per esempio:
core.register_decoration({
deco_type = "simple",
place_on = {"base:dirt_with_grass"},
sidelen = 16,
fill_ratio = 0.1,
biomes = {"distesa_erbosa"},
y_max = 200,
y_min = 1,
decoration = "piante:erba",
})
In questo caso, il nodo chiamato piante:erba
verrà piazzato nel bioma “distesa_erbosa” in cima ai nodi a mo’ di prato (base:dirt_with_grass
) tra altitudine y = 1
e y = 20
.
Il valore fill_ratio
determina quanto di frequente dovrà apparire, con valori più alti di 1 equivalenti a un grande numero di decorazioni piazzate. È possibile, sennò, usare i parametri di disturbo (noise parameters) per determinare la collocazione.
Le schematic sono molto simili alle decorazioni semplici, solo che piazzano più nodi invece che uno solo. Per esempio:
core.register_decoration({
deco_type = "schematic",
place_on = {"base:desert_sand"},
sidelen = 16,
fill_ratio = 0.0001,
biomes = {"desert"},
y_max = 200,
y_min = 1,
schematic = core.get_modpath("plants") .. "/schematics/cactus.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
In quest’esempio, viene piazzata la schematic cactus.mts nel bioma del deserto. C’è bisogno di fornire il percorso nel quale andare a pescare il file, che in questo caso si trova in una cartella chiamata “schematics” all’interno della mod.
Sempre nell’esempio, inoltre, vengono impostati i contrassegni (le flag) per centrare il posizionamento della schematic, e la rotazione è impostata randomicamente. Quest’ultima opzione agevola l’introduzione di una maggior variazione quando vengono usate schematic asimmetriche.
I giochi disponibili dovrebbero già includere un alias del generatore mappa (mapgen) adeguato, quindi devi solo prendere in considerazione se registrarne di personali alla creazione di un nuovo gioco.
Gli alias del generatore mappa forniscono informazioni al generatore principale, e possono essere registrati secondo lo schema:
core.register_alias("mapgen_stone", "base:smoke_stone")
Almeno almeno dovresti registrare:
Se non stai definendo nodi liquidi per le caverne di tutti i biomi, dovresti aggiungere anche: