🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
Questa pagina si applica alla versione:
1.21.10
Questa pagina analizzerà la struttura di un progetto per una mod Fabric, e l'utilità di ogni file e cartella nel progetto.
fabric.mod.json Il file fabric.mod.json è il file principale che descrive la tua mod al Loader di Fabric. Contiene informazioni come l'ID della mod, la versione, e le dipendenze.
Gli attributi più importanti nel file fabric.mod.json sono:
id: L'ID della mod, che dovrebbe essere unico.name: Il nome della mod.environment: L'ambiente in cui la tua mod viene eseguita, come client, server, o * per entrambi.entrypoints: Gli entrypoint che la tua mod fornisce, come main o client.depends: Le mod da cui la tua mod dipende.mixins: I mixin che la tua mod fornisce.Puoi trovare un esempio del file fabric.mod.json sotto - questo è il file fabric.mod.json per il progetto di riferimento su cui è basato questo sito di documentazione.
fabric.mod.json del Progetto di Riferimento{
"schemaVersion": 1,
"id": "example-mod",
"version": "1.0.0",
"name": "Example Mod",
"icon": "assets/example-mod/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"com.example.docs.ExampleMod",
"com.example.docs.event.ExampleModEvents",
"com.example.docs.command.ExampleModCommands",
"com.example.docs.effect.ExampleModEffects",
"com.example.docs.potion.ExampleModPotions",
"com.example.docs.sound.ExampleModSounds",
"com.example.docs.damage.ExampleModDamageTypes",
"com.example.docs.item.ExampleModItems",
"com.example.docs.enchantment.ExampleModEnchantments",
"com.example.docs.block.ExampleModBlocks",
"com.example.docs.block.entity.ExampleModBlockEntities",
"com.example.docs.component.ExampleModComponents",
"com.example.docs.advancement.ExampleModDatagenAdvancement",
"com.example.docs.networking.ExampleModNetworking",
"com.example.docs.networking.basic.ExampleModNetworkingBasic",
"com.example.docs.debug.ExampleModDebug"
],
"client": [
"com.example.docs.client.command.ExampleModClientCommands",
"com.example.docs.ExampleModBlockEntityRenderer",
"com.example.docs.ExampleModDynamicSound",
"com.example.docs.ExampleModClient",
"com.example.docs.rendering.CustomRenderPipeline",
"com.example.docs.rendering.HudRenderingEntrypoint",
"com.example.docs.rendering.RenderingConceptsEntrypoint",
"com.example.docs.network.basic.ExampleModNetworkingBasicClient"
],
"fabric-datagen": [
"com.example.docs.datagen.ExampleModDataGenerator"
]
},
"mixins": [
"example-mod.mixins.json",
{
"config": "example-mod.client.mixins.json",
"environment": "client"
}
],
"depends": {}
}Come detto in precedenza, il file fabric.mod.json contiene un attributo entrypoints - questo attributo è usato per specificare gli entrypoint che la tua mod fornisce.
Il generatore di mod modello crea sia un entrypoint main che client predefiniti:
main è usato per codice comune, ed è contenuto in una classe che implementi ModInitializerclient è usato per codice esclusivo del client, e la sua classe implementa ClientModInitializerQuesti entrypoint vengono chiamati rispettivamente quando il gioco viene avviato.
Ecco un esempio di un entrypoint main molto semplice che logga un messaggio alla console quando si avvia il gioco:
public class ExampleMod implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final String MOD_ID = "example-mod";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
LOGGER.info("Hello Fabric world!");
}
}src/main/resources Nella cartella src/main/resources si memorizzano le risorse che la tua mod usa, come texture, modelli, e suoni.
È anche la posizione di fabric.mod.json e di qualsiasi file di configurazione mixin che la tua mod usa.
Le risorse sono memorizzate in una struttura che rispecchia la struttura dei pacchetti risorse - per esempio, una texture per un blocco verrebbe memorizzata in assets/example-mod/textures/block/block.png.
src/client/resources Nella cartella src/client/resources si memorizzano risorse client specifiche, come texture, modelli, e suoni che sono solo usati dal lato client.
src/main/java La cartella src/main/java viene usata per memorizzare il codice sorgente Java per la tua mod - esiste sia su ambienti client sia server.
src/client/java La cartella src/client/java viene usata per memorizzare codice sorgente Java client specifico, come codice per il rendering o logica del lato client - come provider per il colore dei blocchi.