Lalyan Cosmetic Core
Documentazione
Sezione intitolata “Documentazione”Un’API per registrare e personalizzare cosmetici senza usare gli slot dell’armatura
Modello e texture del Custom Wardrobe sono fatti da EtherealShigure.
Introduzione
Sezione intitolata “Introduzione”Questo plugin permette ai giocatori di personalizzare quale cosmetico hanno equipaggiato, senza dover usare i loro slot dell’armatura
Permette anche ai creatori di plugin di creare i loro cosmetici personalizzati, senza aver bisogno di alcun codice Java!
Il plugin fornisce una GUI per personalizzare i cosmetici, che può essere aperta tramite comando o, in un modo più immersivo, interagendo con il Guardaroba Cosmetico
Il Guardaroba Cosmetico può essere craftato in una Builder’s Workbench con 4 di qualsiasi Hardwood
La GUI fornisce un modo semplice per selezionare cosmetici e varianti di cosmetici. Fai clic con il pulsante sinistro su un cosmetico per equipaggiarlo, se il cosmetico ha l’icona della variante, fai clic con il pulsante destro per aprire il menu delle varianti!
Comandi
Sezione intitolata “Comandi”Il plugin include diversi comandi, pensati principalmente per scopi di test:
/cosmetic apply <Cosmetic_ID> [Override]– Applica manualmente un determinato oggetto estetico. Il parametro[Override]è opzionale (il valore predefinito èyes; l’altro valore possibile èno) e determina se tutti gli altri oggetti estetici di quel tipo debbano essere rimossi. Richiede OP./cosmetic change– Apre manualmente l’interfaccia utente (UI) per la personalizzazione degli oggetti estetici. Non richiede permessi./cosmetic list– Mostra in chat tutti gli ID degli oggetti estetici caricati. Richiede OP. Usando--permissionsvengono mostrati tutti gli oggetti con i relativi permessi associati./cosmetic reload– Ricarica manualmente tutti gli oggetti estetici. Richiede OP./cosmetic clear– Rimuove tutti gli oggetti estetici personalizzati e ripristina la skin predefinita. Richiede OP./cosmetic perms <Action> <Permission_Type> <Subject_Type> <Permission> <Subject>– Controlla o modifica i permessi della mod. Richiede OP.
Parametri
Sezione intitolata “Parametri”Questi sono i parametri utilizzati nei comandi sopra elencati.
Cosmetic_ID
Sezione intitolata “Cosmetic_ID”L’ID completo dell’oggetto estetico. Usa /cosmetic list per vedere tutti gli ID disponibili.
add: Aggiunge un permesso.remove: Rimuove un permesso.check: Verifica lo stato di un permesso.
Permission_Type
Sezione intitolata “Permission_Type”cosmetic: Un permesso per uno specifico oggetto estetico.slot: Un permesso per uno slot (si applica a tutti gli oggetti estetici al suo interno).
Subject_Type
Sezione intitolata “Subject_Type”player: Imposta il permesso per uno specifico giocatore.group: Imposta il permesso per un intero gruppo.
Permission
Sezione intitolata “Permission”Inserisci qui il nodo del permesso specifico.
Puoi trovare maggiori informazioni su come sono scritti i permessi qui.
Subject
Sezione intitolata “Subject”- Se Subject_Type è
player: Inserisci il nome del giocatore o il suo UUID. - Se Subject_Type è
group: Inserisci il nome del gruppo.
Registrazione dei cosmetici
Sezione intitolata “Registrazione dei cosmetici”!Attenzione! Ricordati che il nome che dai ad i files è importante!
Registrare un cosmetico è abbastanza semplice. Dovrai creare un pacchetto di risorse (ovviamente), e avrai bisogno di 3 file essenziali:
- Il file .blockymodel del cosmetico
- La texture .png del cosmetico
- L’icona .png del cosmetico, che è la stessa icona che useresti per l’oggetto!
Questi file devono essere nominati allo stesso modo, ovvero CustomID.extension
Ogni cosmetico avrà la sua cartella, con questa struttura
CustomID/├── CustomID.blockymodel├── CustomID.png└── Icon/ └── CustomID.pngLa cartella del cosmetico andrà messa all’interno di una certa cartella, a seconda del tipo di cosmetico:
Cosmetici
Sezione intitolata “Cosmetici”Il percorso base per i cosmetici è Common/Resources/ (le cartelle Common/Resources/Cosmetics e Common/Resources/Characters anche sono controllate, per compatibilità con versioni vecchie), seguito dalla cartella basata sullo slot, che può essere:
CapesEars_AccessoriesFace_AccessoriesGlovesHeadOverpantsOvertopsPantsShoesUndertopsUnderwearsBeardsEarsEyebrowsEyesFacesMouthHaircutsHair_ExtensionWingsTailsHornsFace_Details
Scegli quale di questi slots deve occupare il tuo cosmetico e inserisci la cartella che hai creato prima.
Quindi, per un cosmetico chiamato Custom_Cape, che si trova nello slot Capes, il percorso sarà questo:
Common/Resources/Cosmetics/Capes/Custom_Cape, e all’interno della cartella Custom_Cape:
Custom_Cape/├── Custom_Cape.blockymodel├── Custom_Cape.png└── Icon/ └── Custom_Cape.pngLo slot Hair_Extension prende automaticamente il gradiente del’acconciatura.
Varianti (opzionale)
Sezione intitolata “Varianti (opzionale)”!Attenzione! Varianti e colori si escludono a vicenda!
!Attenzione! Le estensioni per i capelli (Hair_Extension) non possono avere varianti ne colori, cambiano a seconda del taglio di capelli!
Questa API ti consente anche di aggiungere delle varianti.
Per aggiungerle le varianti dovrai aggiungere le textures e le icone delle varianti all’interno della cartella del tuo cosmetico.
Le textures delle varianti devono essere messe nella cartella del cosmetico (CustomID) nominate come segue:
CustomID_Variant_NomeVariante.pngLe icone delle varianti devono avere lo stesso nome che abbiamo dato alla texture della variante ma a differenza di essa andranno messe dentro la cartella Icon/.
Facendo un esempio con il Propeller_Hat:
Propeller_Hat/├── Propeller_Hat.blockymodel├── Propeller_Hat.png├── Propeller_Hat_Variant_Circo.png├── Propeller_Hat_Variant_Arcobaleno.png└── Icon/ ├── Propeller_Hat.png ├── Propeller_Hat_Variant_Circo.png └── Propeller_Hat_Variant_Arcobaleno.pngFacendo così l’API caricherà: Propeller_Hat, Propeller_Hat_Variant_Circo, * Propeller_Hat_Variant_Arcobaleno*.
Saranno viste dall’API come varianti dello stesso cosmetico quindi implicitamente useranno Propeller_Hat.blockymodel come modello.
Colori (opzionale)
Sezione intitolata “Colori (opzionale)”!Attenzione! Varianti e colori si escludono a vicenda!
!Attenzione! Le estensioni per i capelli (Hair_Extension) non possono avere varianti ne colori, cambiano a seconda del taglio di capelli!
Questa API ti permette anche di aggiungere più colori a un cosmetico!
Per aggiungere colori devi cambiare la cartella del tuo cosmetico così: Cosmetic_Id_Colors_GRADIENTSET
La texture dev’essere una scala di grigi (completamente desaturata)
ecco una lista di tutti i set di gradienti disponibili:
Colored_CottonEyes_GradientFaded_LeatherFantasy_CottonFantasy_Cotton_DarkFlashy_SyntheticHairJean_GenericOrnamented_MetalPastel_CottonRotten_FabricShiny_FabricSkin
Ecco un esempio:
Nome oggetto: Sample_Shirt
Alternativa: Colors
Set Gradiente: Colored_Cotton
Il nome cartella è: Sample_Shirt_Colors_Colored_Cotton
La struttura delle cartelle è:
Sample_Shirt_Colors_Colored_Cotton/├── Sample_Shirt.blockymodel├── Sample_Shirt.png└── Icon/ └── Sample_Shirt.pngI nomi di modello, texture e icona devono essere solo il nome senza _Colors_GRADIENTSET
Cosmetici Avanzati (opzionale)
Sezione intitolata “Cosmetici Avanzati (opzionale)”All’interno della cartella del tuo cosmetico, puoi aggiungere un file CustomID.json (in cui CustomID è l’ID del tuo cosmetico). Questo file ti permetterà di personalizzare ancora di più i tuoi cosmetici.
All’interno del file JSON puoi cambiare il nome e il percorso del modello, della texture e dell’icona del tuo cosmetico. E non è tutto, potrai anche definire varianti o colorazioni del tuo cosmetico e decidere se occupa SLOT MULTIPLI!
Qui la formattazione corretta del cosmetico di esempio
{ "Model": "Resources/Cosmetics/Head/Propeller_Hat/Propeller_Hat.blockymodel", "Texture": "Resources/Cosmetics/Head/Propeller_Hat/Propeller_Hat.png", "Icon": "Resources/Cosmetics/Head/Propeller_Hat/Propeller_Hat_Icon.png", "Slot_overrides": [ //Inserisci gli slot qui, per esempio "Head", "Capes" ecc... ], "Alternatives": { //QUESTI 2 SONO MUTUALMENTE ESCLUSIVI, O USI LE VARIANTI O I COLORI!!! //Scelta 1 (Colori) "Gradient_Set": "Hair", //Scelta 2 (Varianti) "Variants": { "Variant": { "Texture": "Resources/Cosmetics/Head/Propeller_Hat/Variant/Variant.png", "Icon": "Resources/Cosmetics/Head/Propeller_Hat/Variant/Variant_Icon.png" } } }, "Default_Color": { "Gradient_Set": "Hair", "Gradient_Id": "Red" }}“Model” È il percorso del modello di cosmetico base ed eventuali varianti.
“Texture” È il percorso della texture di cosmetico base ed eventuali varianti.
“Icon” È il percorso dell’icona del cosmetico base.
“Alternatives” Definisce che il cosmetico ha 1 di 2 stili di alternative
“Default_Color” Se il cosmetico utilizza texture in bianco e nero, definisce il colore equipaggiato dallo slot principale
Alternativa di Variante
Sezione intitolata “Alternativa di Variante”“Alternatives” >“Variants” Annuncia la presenza di varianti che saranno elencate.
“Alternatives” >“Variants” > “Variant1Name” Andrà sostituito con il nome della prima variante.
“Alternatives” >“Variants” > “Variant2Name” Andrà sostituito con il nome della seconda variante.
Dentro i nomi delle varianti qui sopra citati ci sono le definizioni dei componenti della variante.
“Alternatives” >“Variants” > “VariantName” > “Texture” È il percorso della texture della variante in questione.
“Alternatives” >“Variants” > “VariantName” > “Icon” È il percorso dell’icona della variante in questione.
Alternativa di Colorazione
Sezione intitolata “Alternativa di Colorazione”“Alternatives” > “Gradient_Set” Il gradiente di colorazioni da usare
Lista dei gradienti:
Colored_CottonEyes_GradientFaded_LeatherFantasy_CottonFantasy_Cotton_DarkFlashy_SyntheticHairJean_GenericOrnamented_MetalPastel_CottonRotten_FabricShiny_FabricSkin
Categorie e Slot custom
Sezione intitolata “Categorie e Slot custom”Dalla versione 2.0, hai anche modo di creare categorie (I bottoni più a sinistra) e Slot (I bottoni a centro-sinistra).
Le categorie sono puramente cosmetiche, mentre gli slot sono anche usabili nei cosmetici
Schema json Categoria:
{ "Name": "Capes"}Name: Il nome da mostrare, usato anche nell’assegnazione ad uno slot, ACCETTA SOLO LETTERE GRANDI E PICCOLE, NIENTE NUMERI O CARATTERI SPECIALE
Schema json Slot:
{ "Name": "Capes", "Icon": "UI/Custom/Common/Categories/Categories/Capes.png", "SelectedIcon": "UI/Custom/Common/Categories/Categories/Selected/Capes.png", "TopLevelCategory": "Capes", "Camera": { "Distance": 2, "Position_Offset": { "X": 0.0, "Y": -0.3, "Z": 0.0 }, "LookAtBack": true }, "CanVanish": true}Name: Il nome da mostrare, usato anche nell’assegnazione ad un cosmetico, ACCETTA SOLO LETTERE GRANDI E PICCOLE, NIENTE NUMERI O CARATTERI SPECIALE
Icon: L’icona del bottone
SelectedIcon: L’icona del bottone quando lo slot è selezionato
TopLevelCategory: La categoria del bottone (Vedi sopra)
Camera: Le impostazioni della camera quando selezioni lo slot
CanVanish: Se lo slot ha un bottone di scomparsa (Lo slot “Faces” è l’unico che lo ha a false)
Permessi (opzionale)
Sezione intitolata “Permessi (opzionale)”i permessi si abilitano dal file di configurazione.
I permessi sono formati così: lalyancosmeticcore.[CAMPO].[ID].[AZIONE]
Vanilla
Sezione intitolata “Vanilla”Se non usi luckperms la mod userà in automatico il sistema di permessi vanilla.
Luckperms
Sezione intitolata “Luckperms”Se usi luckperms la mod userà in automatico il sistema di permessi di luckperms.
I campi sono gruppi di permessi.
Cosmetic
Sezione intitolata “Cosmetic”il campo cosmetic serve a ottenere i permessi per un cosmetico specifico.
È scritto così: lalyancosmeticcore.cosmetic.[ID_Cosmetico].[AZIONE].
Alcuni esempi:
lalyancosmeticcore.cosmetic.GoodWitchLalya:ExampleCosmetics#Propeller_Hat.use
lalyancosmeticcore.cosmetic.GoodWitchLalya:ExampleCosmetics#Rainbow_Shirt.use
Se vuoi sapere com’è scritto un permesso per un cosmetico specifico puoi usare /cosmetic list --permissions per ottenere una lista di tutti i permessi.
Il campo slot serve a ottenere i permessi per uno slot specifico e tutti i suoi cosmetici.
È scritto così: lalyancosmeticcore.slot.[ID_Slot].[AZIONE].
Alcuni esempi:
lalyancosmeticcore.slot.Head.use
lalyancosmeticcore.slot.Overpants.use
La lista con tutti gli slot: Qui(parti del personaggio), Qui(cosmetici)
Al momento c’è solo un’azione, use.
Questo permesso decide se un giocatore può vedere e impostare un cosmetico o vedere uno slot.
Configurazione (opzionale)
Sezione intitolata “Configurazione (opzionale)”Al momento il file di configurazione ha solo la voce Enable Permissions.
Enable Permissions
Sezione intitolata “Enable Permissions”La configurazione per il valore Enable Permissions funziona così:
Se il valore è true:
Il sistema di permessi sarà abilitato lasciando usare un cosmetico solo se si ha il permesso giusto.
Se il valore è false:
L’API funzionerà come sempre: Tutti possono usare tutto.
Questo valore è impostato su false di default.
Progetto rilasciato sotto licenza GNU AGPLv3.