API

Pacchetti di shader

Un pacchetto di shader cambia l'aspetto di tutta l'immagine: colori, luce ed effetti. Sono dati, non una mod: il giocatore lo installa copiando la sua cartella.

Installare un pacchetto

Copia la cartella del pacchetto in shaderpacks/, nella cartella del gioco. Lo stesso pacchetto continua a funzionare quando Minecraft si aggiorna, perché Crafting lo adatta al gioco.

Testo
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glsl

Il file del pacchetto

shaderpack.json dà un nome al pacchetto ed elenca i suoi passaggi. Vengono eseguiti in ordine, ciascuno sull'immagine prodotta dal precedente.

shaderpacks/sepia/shaderpack.jsonJSON
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }

Un passaggio

Un passaggio è un file GLSL con una sola funzione:

shaderpacks/sepia/tone.glslGLSL
vec4 effect(vec4 color, vec2 uv) {
    float grey = dot(color.rgb, vec3(0.299, 0.587, 0.114));
    return vec4(grey * 1.07, grey * 0.74, grey * 0.43, 1.0);
}

color è il colore del pixel e uv la sua posizione sullo schermo, da (0, 0) a (1, 1). La funzione restituisce il nuovo colore. In ogni passaggio sono disponibili anche altre tre cose:

Nome Cosa ti dà
crafting_scene(uv) legge l'immagine in qualsiasi posizione: sfocatura, bordi, distorsione
crafting_screen la dimensione dello schermo in pixel (vec2)
crafting_time il tempo in secondi: animazioni, pulsazioni

Altri esempi

Una vignettatura che scurisce gli angoli:

shaderpacks/sepia/vignette.glslGLSL
vec4 effect(vec4 color, vec2 uv) {
    vec2 d = uv - 0.5;
    d.x *= crafting_screen.x / crafting_screen.y;
    float v = smoothstep(0.85, 0.25, length(d));
    return vec4(color.rgb * v, 1.0);
}

Un'onda leggera, con crafting_time e crafting_scene:

shaderpacks/sepia/wave.glslGLSL
vec4 effect(vec4 color, vec2 uv) {
    vec2 shift = vec2(sin(uv.y * 30.0 + crafting_time * 2.0) * 0.002, 0.0);
    return crafting_scene(uv + shift);
}

Scegliere il pacchetto

Nella cartella del gioco, apri config/crafting/client.toml e imposta shader_pack sul nome della cartella del pacchetto. Vuoto significa nessuno. Poi avvia il gioco.

config/crafting/client.tomlTOML
shader_pack = "sepia"

Il pacchetto si applica dentro i mondi; i menu restano normali.

Quando un passaggio ha un errore

Il gioco mostra un avviso sulle risorse e l'immagine resta normale. Il log del gioco dice cosa non va, in quale file e a quale riga.