Controllare, impacchettare e pubblicare
oa-tool mutator check e pack, una prova a secco, cosa mostra la pagina del catalogo, l'icona e come offrire il pacchetto a Core Prime.
Questo capitolo riassume docs/mutators/authoring.md e docs/mutators/oamut-standard.md.
Controlla il .oamut
Un mutatore si impacchetta e si controlla con oa-tool mutator pack e oa-tool mutator check. oa-tool pack e oa-tool check sono i comandi per un .oamap o un .oamod. check legge un .oamut, non una cartella. Compila il Lua e analizza ogni .sm, e non li esegue. L'ultima riga è result: ok o result: refused.
$ oa-tool mutator pack commander-radar
$ oa-tool mutator check commander-radar-1.oamut
Un rifiuto nomina il file e la riga. Correggilo prima di proporre il pacchetto. Il nome impacchettato di Commander Radar è commander-radar-1.oamut, e quel controllo finisce con result: ok.
Impacchetta da fuori della cartella
Lancia pack con il nome della cartella, da fuori. Senza altro, scrive <id>-<version>.oamut nella cartella corrente. --out deve nominare un .oamut: ogni altra desinenza viene rifiutata. --force sostituisce un file già presente. Non impacchettare . da dentro la cartella, e non lasciarci il .oamut: un pacchetto non può contenere quel file. --game-dir è un errore d'uso su questo comando.
La prova a secco
oa-tool mutator diff fa passare una cartella di pacchetto per la pipeline di mutazione del gioco, su una cartella di gioco, ed elenca che cosa è cambiato. Le opzioni seguono gli ultimi due punti, come strength=lite su uber-comm. Un hook maps gira solo con --map NAME. Su 3.1c senza mod, le righe del rapporto dopo la sua intestazione # sono queste:
$ oa-tool mutator diff --game-dir DIR --mutator ./uber-comm:strength=lite
field units/armcom.fbi [unitinfo] acceleration: 0.15 -> 0.3375 by uber-comm
field units/armcom.fbi [unitinfo] brakerate: 0.3 -> 0.675 by uber-comm
field units/armcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/armcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/armcom.fbi [unitinfo] maxvelocity: 1.2 -> 1.8 by uber-comm
field units/armcom.fbi [unitinfo] turnrate: 1044 -> 1566 by uber-comm
field units/armcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
field units/corcom.fbi [unitinfo] acceleration: 0.16 -> 0.36 by uber-comm
field units/corcom.fbi [unitinfo] brakerate: 0.32 -> 0.72 by uber-comm
field units/corcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/corcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/corcom.fbi [unitinfo] maxvelocity: 1.07 -> 1.605 by uber-comm
field units/corcom.fbi [unitinfo] turnrate: 1030 -> 1545 by uber-comm
field units/corcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
La prova a secco della Libreria è la stessa pipeline su un archivio suo, senza partita. Non imposta una mappa, quindi un hook maps lì non gira. La Libreria ricorda la risposta, e la sua riga Controllato è una di queste. check non applica il mutatore. La prova a secco e il diff sì.
| Verdetto | Che cosa mostra la Libreria |
|---|---|
compatible | Funziona con quella mod, e la riga porta un riassunto di che cosa è cambiato. |
no-effect | Funziona, e non cambia nulla di ciò che il controllo conta. |
incompatible | Non funziona con quella mod. Il motivo segue. |
failed | Si è fermato. Il motivo segue. |
| ancora in corso | Il controllo con quella mod è ancora in corso. |
| non ancora eseguito | Non ancora controllato con quella mod. |
Che cosa mostra la pagina del catalogo
La pagina mostra l'icona, o, quando il manifesto non ne nomina una, l'icona del primo tag se quel tag è uno degli otto. Poi il nome, l'autore, la versione e la release, il riassunto (la prima riga di description), i tag e una pillola del motore da requires.engine. Richiede elenca requires.mutators. Opzioni elenca ogni opzione. Cosa cambia elenca gli strati. Funziona con elenca works-with. Segue una tabella delle release, poi Prendilo nel gioco. Questo sito non collega mai il file del pacchetto. I download avvengono nel gioco.
L'icona
Un PNG quadrato, almeno 1 pixel di lato, al massimo 256 pixel e 256 KiB. Disegnalo a 128 pixel. icon nel manifesto nomina il percorso, e quel nome finisce in .png. Senza icona, il badge usa l'icona del primo tag quando quell'id è uno degli otto. Un tag successivo non viene provato.
Proponilo a Core Prime
La libreria dei contenuti di Core Prime viene pubblicata dal computer di un manutentore: il catalogo è firmato con una chiave che non lo lascia mai. Per far elencare un mutatore:
- Apri una issue sul repository di Open Annihilation con il .oamut (o un link), l'autore e la licenza.
- Un manutentore esegue i controlli contro la cartella di gioco e lo aggiunge ai record dei pacchetti della libreria.
- La pubblicazione successiva carica il file con il suo hash, firma il nuovo catalogo e ne alza la sequenza.
- Pochi minuti dopo è nella Libreria di ogni giocatore e su questo sito.
Un pacchetto di mappe o una mod si propone allo stesso modo. Vedi Pubblicare su Core Prime.