type = fancymenu_layout

layout-meta {
  identifier = title_screen
  render_custom_elements_behind_vanilla = false
  last_edited_time = 0
  is_enabled = true
  randommode = false
  randomgroup = 1
  randomonlyfirsttime = false
  layout_index = 0
}

menu_background {
  instance_identifier = 987130fc-f28f-444d-b530-f76faf3707fa-toz
  background_type = glsl
  show_background = true
  inline_shader_source = // Teachings of Zeta - "Zeta by day"%%!serialized_property_newline!%%// Pixel-art title background for FancyMenu (Shadertoy-style, #version 150).%%!serialized_property_newline!%%// The art lives in atlas.png (iChannel0, drawn by modpack_pipeline/menu/gen_menu_art.py);%%!serialized_property_newline!%%// this shader lays out the scene on a 320 px wide virtual grid, grades the (dusk-coloured)%%!serialized_property_newline!%%// sprites into daylight with aerial haze, and animates everything.%%!serialized_property_newline!%%// Generated from zeta_day.template.glsl - edit the template, then re-run the generator.%%!serialized_property_newline!%%%%!serialized_property_newline!%%// generated by modpack_pipeline/menu/gen_menu_art.py - atlas 384x517%%!serialized_property_newline!%%const ivec4 R_MOUNT = ivec4(0, 2, 384, 44); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_HILLS = ivec4(0, 47, 384, 30); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_VIADUCT = ivec4(0, 78, 384, 24); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_TOWN_FAR = ivec4(0, 103, 384, 38); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_TOWN_NEAR = ivec4(0, 142, 384, 30); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_QUAY = ivec4(0, 173, 384, 24); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_SHIP_BIG = ivec4(0, 198, 76, 32); // 2 frame(s)%%!serialized_property_newline!%%const ivec4 R_SHIP_SMALL = ivec4(153, 198, 41, 17); // 2 frame(s)%%!serialized_property_newline!%%const ivec4 R_LOCO = ivec4(236, 198, 28, 17); // 2 frame(s)%%!serialized_property_newline!%%const ivec4 R_CAR = ivec4(293, 198, 22, 15); // 2 frame(s)%%!serialized_property_newline!%%const ivec4 R_MILL = ivec4(338, 198, 14, 24); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_BLADES = ivec4(0, 231, 30, 30); // 6 frame(s)%%!serialized_property_newline!%%const ivec4 R_GEAR_BIG = ivec4(0, 262, 70, 70); // 4 frame(s)%%!serialized_property_newline!%%const ivec4 R_GEAR_MID = ivec4(0, 333, 46, 46); // 4 frame(s)%%!serialized_property_newline!%%const ivec4 R_GEAR_SMALL = ivec4(185, 333, 34, 34); // 4 frame(s)%%!serialized_property_newline!%%const ivec4 R_CLOUD_A = ivec4(0, 380, 64, 15); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_CLOUD_B = ivec4(65, 380, 46, 12); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_CLOUD_C = ivec4(112, 380, 30, 9); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_HARBOR = ivec4(0, 396, 384, 40); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_PIER = ivec4(0, 437, 384, 22); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_LIGHTHOUSE = ivec4(0, 460, 20, 56); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_MAST = ivec4(21, 460, 12, 50); // 1 frame(s)%%!serialized_property_newline!%%const ivec4 R_STEAMBOAT = ivec4(34, 460, 52, 24); // 2 frame(s)%%!serialized_property_newline!%%// chimney tops: x in strip, y above strip bottom, size%%!serialized_property_newline!%%const int N_CHIM_NEAR = 4;%%!serialized_property_newline!%%const vec3 CHIM_NEAR[4] = vec3[4](vec3(13.0, 20.2, 1.0), vec3(74.0, 30.0, 1.6), vec3(114.0, 29.0, 1.6), vec3(378.0, 18.8, 1.0));%%!serialized_property_newline!%%const int N_CHIM_FAR = 6;%%!serialized_property_newline!%%const vec3 CHIM_FAR[6] = vec3[6](vec3(67.0, 20.2, 1.0), vec3(94.0, 29.8, 1.0), vec3(160.0, 26.8, 1.0), vec3(205.0, 29.0, 1.6), vec3(284.0, 25.9, 1.0), vec3(352.0, 33.6, 1.0));%%!serialized_property_newline!%%const int N_CHIM_HARBOR = 2;%%!serialized_property_newline!%%const vec3 CHIM_HARBOR[2] = vec3[2](vec3(310.5, 31.0, 1.6), vec3(321.5, 31.0, 1.6));%%!serialized_property_newline!%%const float STRIP_W = 384.0;%%!serialized_property_newline!%%const vec2 MILL = vec2(46.0, 17.0); // windmill base in the hills strip%%!serialized_property_newline!%%%%!serialized_property_newline!%%#define PIXW 320.0%%!serialized_property_newline!%%#define PI 3.14159265%%!serialized_property_newline!%%%%!serialized_property_newline!%%float H;            // virtual height%%!serialized_property_newline!%%bool TOP_FIRST;     // atlas row 0 is the image's top row%%!serialized_property_newline!%%ivec2 ATLAS_SIZE;%%!serialized_property_newline!%%%%!serialized_property_newline!%%float hash11(float p) { p = fract(p * 0.1031); p *= p + 33.33; p *= p + p; return fract(p); }%%!serialized_property_newline!%%float hash21(vec2 p) { vec3 p3 = fract(vec3(p.xyx) * 0.1031); p3 += dot(p3, p3.yzx + 33.33); return fract((p3.x + p3.y) * p3.z); }%%!serialized_property_newline!%%vec3 hexrgb(int h) { return vec3(float((h >> 16) & 255), float((h >> 8) & 255), float(h & 255)) / 255.0; }%%!serialized_property_newline!%%%%!serialized_property_newline!%%// ------------------------------------------------------------------ atlas access%%!serialized_property_newline!%%vec4 texel(int x, int y) {%%!serialized_property_newline!%%    int ty = TOP_FIRST ? y : ATLAS_SIZE.y - 1 - y;%%!serialized_property_newline!%%    return texelFetch(iChannel0, ivec2(x, ty), 0);%%!serialized_property_newline!%%}%%!serialized_property_newline!%%// local: pixel inside the sprite, y counted up from the sprite's bottom row%%!serialized_property_newline!%%vec4 sprite(ivec4 r, int frame, vec2 local) {%%!serialized_property_newline!%%    if (local.x < 0.0 || local.y < 0.0 || local.x >= float(r.z) || local.y >= float(r.w)) return vec4(0.0);%%!serialized_property_newline!%%    return texel(r.x + frame * r.z + int(local.x), r.y + r.w - 1 - int(local.y));%%!serialized_property_newline!%%}%%!serialized_property_newline!%%vec4 strip(ivec4 r, float x, float ly) {%%!serialized_property_newline!%%    if (ly < 0.0 || ly >= float(r.w)) return vec4(0.0);%%!serialized_property_newline!%%    return texel(r.x + int(mod(x, STRIP_W)), r.y + r.w - 1 - int(ly));%%!serialized_property_newline!%%}%%!serialized_property_newline!%%bool isKey(vec4 c, vec3 k) { return c.a > 0.5 && all(lessThan(abs(c.rgb - k), vec3(0.02))); }%%!serialized_property_newline!%%%%!serialized_property_newline!%%const vec3 HAZE = vec3(0.722, 0.839, 0.925);   // #b8d6ec%%!serialized_property_newline!%%%%!serialized_property_newline!%%// the landscape strips are painted in dusk purples: re-grade them into daylight%%!serialized_property_newline!%%// (desaturate, lift, cool slightly) and push distant layers into the haze%%!serialized_property_newline!%%vec3 day(vec3 c, float depth) {%%!serialized_property_newline!%%    float l = dot(c, vec3(0.30, 0.59, 0.11));%%!serialized_property_newline!%%    vec3 g = mix(c, vec3(l), 0.65) * 2.1 + vec3(0.05, 0.08, 0.10);%%!serialized_property_newline!%%    g = clamp(g * vec3(0.92, 1.0, 1.08), 0.0, 1.0);%%!serialized_property_newline!%%    return mix(g, HAZE, depth);%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// window / lamp key colours: daytime = mostly sky reflections, lamps off%%!serialized_property_newline!%%vec3 resolveKeys(vec4 c, vec2 world, float t, float depth) {%%!serialized_property_newline!%%    if (isKey(c, vec3(1.0, 0.0, 1.0))) {%%!serialized_property_newline!%%        vec2 cell = floor(world / vec2(2.0, 3.0));%%!serialized_property_newline!%%        float id = hash21(cell + depth * 17.0);%%!serialized_property_newline!%%        float glint = step(0.985, hash21(cell + floor(t / (6.0 + id * 9.0)) * 3.1));%%!serialized_property_newline!%%        vec3 glass = mix(hexrgb(0x3e5468), hexrgb(0x5e7a92), step(0.6, id));%%!serialized_property_newline!%%        return mix(mix(glass, HAZE, depth), hexrgb(0xf4fbff), glint);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    if (isKey(c, vec3(1.0, 1.0, 0.0))) return mix(hexrgb(0x8a96a6), HAZE, depth);%%!serialized_property_newline!%%    return c.rgb;%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// ------------------------------------------------------------------ sky%%!serialized_property_newline!%%vec3 sky(vec2 p, float t, float horizon) {%%!serialized_property_newline!%%    const int NB = 9;%%!serialized_property_newline!%%    const int BAND[9] = int[9](0xdcf0f8, 0xc6e6f6, 0xaedaf2, 0x96cced, 0x7fbde6, 0x6aaddf, 0x589cd6, 0x488ac9, 0x3b78ba);%%!serialized_property_newline!%%    float h = (p.y - horizon) / max(H - horizon, 1.0);%%!serialized_property_newline!%%    float f = clamp(h, 0.0, 0.999) * float(NB);%%!serialized_property_newline!%%    f = pow(f / float(NB), 0.9) * float(NB);%%!serialized_property_newline!%%    int i = int(f);%%!serialized_property_newline!%%    float fr = fract(f) * (H - horizon) / float(NB);%%!serialized_property_newline!%%    if (fr < 1.0 && mod(p.x + p.y, 2.0) < 1.0 && i > 0) i -= 1;      // one checker row between bands%%!serialized_property_newline!%%    vec3 col = hexrgb(BAND[clamp(i, 0, NB - 1)]);%%!serialized_property_newline!%%    // high sun with a stepped glow%%!serialized_property_newline!%%    vec2 sc = vec2(0.76 * PIXW, H - 30.0);%%!serialized_property_newline!%%    float r = length(p + 0.5 - sc);%%!serialized_property_newline!%%    if (r < 11.0) col = r < 9.0 ? hexrgb(0xfffdf0) : hexrgb(0xfff2b8);%%!serialized_property_newline!%%    else if (r < 16.0) col = mix(col, hexrgb(0xfff8d8), 0.55);%%!serialized_property_newline!%%    else if (r < 22.0 && mod(p.x + p.y, 2.0) < 1.0) col = mix(col, hexrgb(0xfff8d8), 0.35);%%!serialized_property_newline!%%    return col;%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// near town in daylight colours: plaster walls, red-brown roofs, brick chimneys%%!serialized_property_newline!%%vec3 nearTown(vec3 c) {%%!serialized_property_newline!%%    float l = dot(c, vec3(0.30, 0.59, 0.11));%%!serialized_property_newline!%%    if (c.r > c.b) return l > 0.25 ? hexrgb(0xb0624e) : hexrgb(0x8a4a3e);   // brick%%!serialized_property_newline!%%    if (l < 0.11) return hexrgb(0xc2a88c);                                   // walls (sunlit plaster)%%!serialized_property_newline!%%    return hexrgb(0x7a4038);                                                 // roof edge%%!serialized_property_newline!%%}%%!serialized_property_newline!%%// far town: cooler stone, pushed into the haze but keeping its shape%%!serialized_property_newline!%%vec3 farTown(vec3 c) {%%!serialized_property_newline!%%    float l = dot(c, vec3(0.30, 0.59, 0.11));%%!serialized_property_newline!%%    return mix(l < 0.2 ? hexrgb(0x8a98ac) : hexrgb(0x6e7c92), HAZE, 0.22);%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// white cumulus from the cloud sprites (grey-blue bodies, bright tops)%%!serialized_property_newline!%%vec3 cloudDay(vec3 c) {%%!serialized_property_newline!%%    float l = dot(c, vec3(0.30, 0.59, 0.11));%%!serialized_property_newline!%%    return mix(hexrgb(0xd2e2f0), hexrgb(0xffffff), smoothstep(0.42, 0.62, l));%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// ------------------------------------------------------------------ smoke%%!serialized_property_newline!%%vec4 chimneySmoke(vec2 p, float t, vec3 chim, float offx, float baseY, float depth) {%%!serialized_property_newline!%%    vec4 acc = vec4(0.0);%%!serialized_property_newline!%%    for (int w = -1; w <= 1; w++) {%%!serialized_property_newline!%%        vec2 src = vec2(chim.x - offx + float(w) * STRIP_W, baseY + chim.y);%%!serialized_property_newline!%%        if (abs(p.x - src.x) > 40.0) continue;%%!serialized_property_newline!%%        for (int k = 0; k < 5; k++) {%%!serialized_property_newline!%%            float age = fract(t * (0.07 + 0.02 * chim.z) + float(k) / 5.0 + hash11(chim.x));%%!serialized_property_newline!%%            vec2 c = src + vec2(age * 16.0 + sin(age * 5.0 + chim.x) * 1.5, age * 20.0 * (0.6 + 0.4 * chim.z));%%!serialized_property_newline!%%            float rad = 0.8 + age * (1.6 + 1.6 * chim.z);%%!serialized_property_newline!%%            vec2 d = p + 0.5 - c;%%!serialized_property_newline!%%            if (dot(d, d) < rad * rad) {%%!serialized_property_newline!%%                if (age > 0.55 && hash21(p + floor(t * 6.0)) < (age - 0.55) * 2.2) continue;   // dissolve%%!serialized_property_newline!%%                vec3 sc = d.y > rad * 0.25 ? hexrgb(0xf4f6f8) : hexrgb(0xb4bcc8);%%!serialized_property_newline!%%                acc = vec4(mix(sc, HAZE, depth * 0.6), 1.0);%%!serialized_property_newline!%%            }%%!serialized_property_newline!%%        }%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    return acc;%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%// ------------------------------------------------------------------ scene%%!serialized_property_newline!%%float QUAY_Y, NEAR_Y, FAR_Y, VIA_Y, HILL_Y, MOUNT_Y, HORIZON;%%!serialized_property_newline!%%%%!serialized_property_newline!%%vec3 scene(vec2 p, float t, bool refl) {%%!serialized_property_newline!%%    vec3 col = sky(p, t, HORIZON);%%!serialized_property_newline!%%    vec4 c;%%!serialized_property_newline!%%%%!serialized_property_newline!%%    // clouds (drift slowly, wrap)%%!serialized_property_newline!%%    for (int k = 0; k < 3; k++) {%%!serialized_property_newline!%%        ivec4 r = k == 0 ? R_CLOUD_A : (k == 1 ? R_CLOUD_B : R_CLOUD_C);%%!serialized_property_newline!%%        float span = PIXW + float(r.z) + 40.0;%%!serialized_property_newline!%%        float x0 = mod(float(k) * 131.0 + t * (1.2 + 0.5 * float(k)), span) - float(r.z) - 20.0;%%!serialized_property_newline!%%        float y0 = H - 46.0 - float(k) * 17.0 + float(k == 2) * 10.0;%%!serialized_property_newline!%%        c = sprite(r, 0, p - vec2(floor(x0), floor(y0)));%%!serialized_property_newline!%%        if (c.a > 0.5) col = cloudDay(c.rgb);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    // far airship drifting left, in the haze%%!serialized_property_newline!%%    {%%!serialized_property_newline!%%        float span = PIXW + 80.0;%%!serialized_property_newline!%%        float x0 = PIXW + 40.0 - mod(t * 2.2 + 60.0, span);%%!serialized_property_newline!%%        c = sprite(R_SHIP_SMALL, int(mod(t * 8.0, 2.0)), p - vec2(floor(x0), floor(H - 40.0 + sin(t * 0.5) * 1.0)));%%!serialized_property_newline!%%        if (c.a > 0.5) col = mix(resolveKeys(c, p, t, 0.5), HAZE, 0.45);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    // mountains%%!serialized_property_newline!%%    c = strip(R_MOUNT, p.x + 40.0, p.y - MOUNT_Y);%%!serialized_property_newline!%%    if (c.a > 0.5) col = day(c.rgb, 0.6);%%!serialized_property_newline!%%    // big airship drifting right%%!serialized_property_newline!%%    {%%!serialized_property_newline!%%        float span = PIXW + 160.0;%%!serialized_property_newline!%%        float x0 = mod(t * 4.0 + 30.0, span) - 80.0;%%!serialized_property_newline!%%        float y0 = floor(H - 78.0 + sin(t * 0.7) * 1.5);%%!serialized_property_newline!%%        c = sprite(R_SHIP_BIG, int(mod(t * 10.0, 2.0)), p - vec2(floor(x0), y0));%%!serialized_property_newline!%%        if (c.a > 0.5) col = resolveKeys(c, p, t, 0.0);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    // hills + windmill%%!serialized_property_newline!%%    c = strip(R_HILLS, p.x, p.y - HILL_Y);%%!serialized_property_newline!%%    if (c.a > 0.5) col = mix(day(c.rgb, 0.35), hexrgb(0x6f9a6a), 0.35);     // a touch of green%%!serialized_property_newline!%%    {%%!serialized_property_newline!%%        vec2 base = vec2(MILL.x, HILL_Y + MILL.y);%%!serialized_property_newline!%%        c = sprite(R_MILL, 0, p - (base + vec2(-7.0, 0.0)));%%!serialized_property_newline!%%        if (c.a > 0.5) col = mix(resolveKeys(c, p, t, 0.2), HAZE, 0.2);%%!serialized_property_newline!%%        c = sprite(R_BLADES, int(mod(t * 5.0, 6.0)), p - (base + vec2(-15.0, 3.0)));%%!serialized_property_newline!%%        if (c.a > 0.5) col = mix(c.rgb, HAZE, 0.2);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    // viaduct + train%%!serialized_property_newline!%%    c = strip(R_VIADUCT, p.x, p.y - VIA_Y);%%!serialized_property_newline!%%    if (c.a > 0.5) col = day(c.rgb, 0.22);%%!serialized_property_newline!%%    {%%!serialized_property_newline!%%        float deck = VIA_Y + float(R_VIADUCT.w);%%!serialized_property_newline!%%        float period = 36.0, len = 4.0 * 22.0 + 28.0;%%!serialized_property_newline!%%        float tx = floor(mod(t, period) / period * (PIXW + len + 120.0) - len - 60.0);%%!serialized_property_newline!%%        int wf = int(mod(floor(tx / 3.0), 2.0));%%!serialized_property_newline!%%        float lx = p.x - tx;%%!serialized_property_newline!%%        if (lx >= 0.0 && lx < 4.0 * 22.0) {%%!serialized_property_newline!%%            c = sprite(R_CAR, wf, vec2(mod(lx, 22.0), p.y - deck + 1.0));%%!serialized_property_newline!%%            if (c.a > 0.5) col = resolveKeys(c, p, t, 0.1);%%!serialized_property_newline!%%        } else {%%!serialized_property_newline!%%            c = sprite(R_LOCO, wf, vec2(lx - 4.0 * 22.0, p.y - deck + 1.0));%%!serialized_property_newline!%%            if (c.a > 0.5) col = resolveKeys(c, p, t, 0.1);%%!serialized_property_newline!%%        }%%!serialized_property_newline!%%        if (!refl) {%%!serialized_property_newline!%%            for (int k = 0; k < 6; k++) {%%!serialized_property_newline!%%                float age = fract(t * 1.1 - float(k) / 6.0);%%!serialized_property_newline!%%                vec2 cc = vec2(tx + 4.0 * 22.0 + 20.0 - age * 26.0, deck + 17.0 + age * 10.0);%%!serialized_property_newline!%%                float rad = 1.5 + age * 4.0;%%!serialized_property_newline!%%                vec2 d = p + 0.5 - cc;%%!serialized_property_newline!%%                if (dot(d, d) < rad * rad && !(age > 0.6 && hash21(p + floor(t * 8.0)) < (age - 0.6) * 2.5))%%!serialized_property_newline!%%                    col = d.y > rad * 0.2 ? hexrgb(0xffffff) : hexrgb(0xc8d0dc);%%!serialized_property_newline!%%            }%%!serialized_property_newline!%%        }%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    // far town + its smoke%%!serialized_property_newline!%%    float fx = 101.0;%%!serialized_property_newline!%%    if (!refl) for (int i = 0; i < N_CHIM_FAR; i++) { c = chimneySmoke(p, t, CHIM_FAR[i], fx, FAR_Y, 0.4); if (c.a > 0.5) col = c.rgb; }%%!serialized_property_newline!%%    c = strip(R_TOWN_FAR, p.x + fx, p.y - FAR_Y);%%!serialized_property_newline!%%    if (c.a > 0.5) col = isKey(c, vec3(1.0, 0.0, 1.0)) ? resolveKeys(c, p + vec2(fx, 0.0), t, 0.3) : farTown(c.rgb);%%!serialized_property_newline!%%    // near town + its smoke%%!serialized_property_newline!%%    float nx = 17.0;%%!serialized_property_newline!%%    c = strip(R_TOWN_NEAR, p.x + nx, p.y - NEAR_Y);%%!serialized_property_newline!%%    if (c.a > 0.5) col = isKey(c, vec3(1.0, 0.0, 1.0)) ? resolveKeys(c, p + vec2(nx, 0.0), t, 0.05)%%!serialized_property_newline!%%                                                      : nearTown(c.rgb);%%!serialized_property_newline!%%    if (!refl) for (int i = 0; i < N_CHIM_NEAR; i++) { c = chimneySmoke(p, t, CHIM_NEAR[i], nx, NEAR_Y, 0.0); if (c.a > 0.5) col = c.rgb; }%%!serialized_property_newline!%%    // quay%%!serialized_property_newline!%%    c = strip(R_QUAY, p.x, p.y - QUAY_Y);%%!serialized_property_newline!%%    // stone/iron stay dark - lifting them like the far layers turns the lamp posts white%%!serialized_property_newline!%%    if (c.a > 0.5) col = isKey(c, vec3(1.0, 1.0, 0.0)) ? resolveKeys(c, p, t, 0.0) : c.rgb * vec3(1.5, 1.55, 1.7) + vec3(0.04, 0.05, 0.07);%%!serialized_property_newline!%%    return col;%%!serialized_property_newline!%%}%%!serialized_property_newline!%%%%!serialized_property_newline!%%void mainImage(out vec4 fragColor, in vec2 fragCoord) {%%!serialized_property_newline!%%    ATLAS_SIZE = textureSize(iChannel0, 0);%%!serialized_property_newline!%%    vec4 m = texelFetch(iChannel0, ivec2(0, 0), 0);%%!serialized_property_newline!%%    TOP_FIRST = m.r > 0.5 && m.g < 0.5;%%!serialized_property_newline!%%    if (ATLAS_SIZE.x < 8) { fragColor = vec4(0.53, 0.75, 0.90, 1.0); return; }   // atlas not loaded yet%%!serialized_property_newline!%%%%!serialized_property_newline!%%    float scale = iResolution.x / PIXW;%%!serialized_property_newline!%%    H = floor(iResolution.y / scale);%%!serialized_property_newline!%%    vec2 p = floor(fragCoord / scale);%%!serialized_property_newline!%%    float t = iTime;%%!serialized_property_newline!%%%%!serialized_property_newline!%%    float waterTop = 18.0;%%!serialized_property_newline!%%    QUAY_Y = waterTop - 12.0;               // quay wall top sits at waterTop%%!serialized_property_newline!%%    NEAR_Y = waterTop + 0.0;%%!serialized_property_newline!%%    FAR_Y = waterTop + 8.0;%%!serialized_property_newline!%%    VIA_Y = waterTop + 12.0;%%!serialized_property_newline!%%    HILL_Y = waterTop + 26.0;%%!serialized_property_newline!%%    MOUNT_Y = waterTop + 34.0;%%!serialized_property_newline!%%    HORIZON = waterTop + 44.0;%%!serialized_property_newline!%%%%!serialized_property_newline!%%    vec3 col;%%!serialized_property_newline!%%    if (p.y >= waterTop) {%%!serialized_property_newline!%%        col = scene(p, t, false);%%!serialized_property_newline!%%    } else {%%!serialized_property_newline!%%        // canal: mirrored scene, rippled, blue%%!serialized_property_newline!%%        float row = waterTop - p.y;%%!serialized_property_newline!%%        float ripple = floor(sin(row * 1.3 + t * 2.2) * 1.2 + sin(row * 0.5 - t * 0.9) * 1.0);%%!serialized_property_newline!%%        vec2 rp = vec2(p.x + ripple, waterTop + row - 1.0);%%!serialized_property_newline!%%        col = scene(rp, t, true);%%!serialized_property_newline!%%        col = mix(col * vec3(0.62, 0.78, 0.92), hexrgb(0x3a78b0), 0.30 + row * 0.012);%%!serialized_property_newline!%%        if (hash21(vec2(floor((p.x + t * 5.0) / 5.0), p.y)) > 0.93) col = mix(col, hexrgb(0xeaf6ff), 0.7);   // glints%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%%%!serialized_property_newline!%%    // brass gears in the corners (meshing pairs turn in step)%%!serialized_property_newline!%%    int f = int(mod(t * 5.0, 4.0));%%!serialized_property_newline!%%    vec4 c;%%!serialized_property_newline!%%    c = sprite(R_GEAR_MID, 3 - f, p - vec2(28.0, -22.0));%%!serialized_property_newline!%%    if (c.a > 0.5) col = c.rgb;%%!serialized_property_newline!%%    c = sprite(R_GEAR_BIG, f, p - vec2(-38.0, -16.0));%%!serialized_property_newline!%%    if (c.a > 0.5) col = c.rgb;%%!serialized_property_newline!%%    c = sprite(R_GEAR_SMALL, f, p - vec2(PIXW - 46.0, -12.0));%%!serialized_property_newline!%%    if (c.a > 0.5) col = c.rgb;%%!serialized_property_newline!%%    c = sprite(R_GEAR_BIG, 3 - f, p - vec2(PIXW - 30.0, -6.0));%%!serialized_property_newline!%%    if (c.a > 0.5) col = c.rgb;%%!serialized_property_newline!%%%%!serialized_property_newline!%%    // a few birds gliding across (two-frame wing flap)%%!serialized_property_newline!%%    for (int k = 0; k < 5; k++) {%%!serialized_property_newline!%%        float fk = float(k);%%!serialized_property_newline!%%        float span = PIXW + 60.0;%%!serialized_property_newline!%%        float bx = floor(mod(t * (7.0 + 3.0 * hash11(fk)) + hash11(fk * 5.3) * span, span) - 30.0);%%!serialized_property_newline!%%        float by = floor(H - 70.0 - hash11(fk * 2.1) * 40.0 + sin(t * 0.8 + fk) * 2.0);%%!serialized_property_newline!%%        vec2 d = p - vec2(bx, by);%%!serialized_property_newline!%%        bool up = fract(t * 3.0 + fk * 0.37) < 0.5;%%!serialized_property_newline!%%        if ((d.y == 0.0 && abs(d.x) <= 1.0) || (abs(d.x) == 2.0 && d.y == (up ? 1.0 : -1.0)) || (abs(d.x) == 1.0 && d.y == (up ? 0.0 : 0.0)))%%!serialized_property_newline!%%            col = hexrgb(0x2e3a4a);%%!serialized_property_newline!%%    }%%!serialized_property_newline!%%    fragColor = vec4(col, 1.0);%%!serialized_property_newline!%%}%%!serialized_property_newline!%%
  image_ichannel0_input = resource0
  ichannel_0_source = [source:local]/config/fancymenu/assets/toz/atlas.png
  compile_mode = auto
  force_shadertoy_compatibility = true
  freeze_time = false
  time_scale = 1.0
  enable_blending = false
  use_input = false
  mouse_position_requires_hold = false
  opacity_multiplier = 1.0
  show_compile_errors = true
}

element {
  element_type = image
  instance_identifier = 762b2600-580f-4a24-bf9d-85f6899d7f3e-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = top-centered
  x = -100
  y = 6
  width = 200
  height = 50
  stay_on_screen = false
  element_loading_requirement_container_identifier = f99dc443-8efb-48e6-a29c-54d77355d1f7-toz
  [loading_requirement_container_meta:f99dc443-8efb-48e6-a29c-54d77355d1f7-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  source = [source:local]/config/fancymenu/assets/minecraft_title.png
  repeat_texture = false
  nine_slice_texture = false
  nine_slice_texture_border_x = 5
  nine_slice_texture_border_y = 5
  image_tint = #FFFFFF
}

element {
  element_type = image
  instance_identifier = f8c05b86-6178-4661-9eef-5725013697d3-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = mid-centered
  x = -140
  y = -62
  width = 280
  height = 84
  stay_on_screen = false
  element_loading_requirement_container_identifier = 8c9a1763-5b7a-45bd-95c2-0d7e801093ca-toz
  [loading_requirement_container_meta:8c9a1763-5b7a-45bd-95c2-0d7e801093ca-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  source = [source:local]/config/fancymenu/assets/toz/ui/panel.png
  repeat_texture = false
  nine_slice_texture = false
  nine_slice_texture_border_x = 5
  nine_slice_texture_border_y = 5
  image_tint = #FFFFFF
}

element {
  element_type = slideshow
  instance_identifier = 3075bf7a-0b8a-4c90-82e7-78ecb5e85393-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = mid-centered
  x = -134
  y = -56
  width = 128
  height = 72
  stay_on_screen = false
  element_loading_requirement_container_identifier = 4a3a085f-aaf1-4111-b498-299ef16e7cf6-toz
  [loading_requirement_container_meta:4a3a085f-aaf1-4111-b498-299ef16e7cf6-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  slideshow_name = toz_server
}

element {
  element_type = text_v2
  instance_identifier = 5da87fe3-b640-4019-9015-f14e6ee47275-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = mid-centered
  x = 0
  y = -57
  width = 136
  height = 76
  stay_on_screen = false
  element_loading_requirement_container_identifier = c50d87e5-540a-46ce-9c16-ea0d2647b88f-toz
  [loading_requirement_container_meta:c50d87e5-540a-46ce-9c16-ea0d2647b88f-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  source = §6§lTeachings of Zeta%n%§7server.mal-zeta.de%n%%n%{"placeholder":"serverstatus","values":{"ip":"server.mal-zeta.de"}}%n%§e{"placeholder":"serverplayercount","values":{"ip":"server.mal-zeta.de"}} §7players online%n%§7Ping §f{"placeholder":"serverping","values":{"ip":"server.mal-zeta.de"}}§7 ms%n%%n%§6▶ §fClick to join
  source_mode = direct
  shadow = true
  case_mode = normal
  enable_scrolling = false
  auto_line_wrapping = false
  interactable = false
}

element {
  element_type = image
  instance_identifier = 60985b1b-ca1a-461b-a6b0-4a04afd61408-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = mid-centered
  x = -140
  y = -62
  width = 280
  height = 84
  stay_on_screen = false
  element_loading_requirement_container_identifier = 936e516d-3f99-405c-b306-f99e0b41009b-toz
  [loading_requirement_container_meta:936e516d-3f99-405c-b306-f99e0b41009b-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  source = [source:local]/config/fancymenu/assets/toz/ui/card.png
  repeat_texture = false
  nine_slice_texture = true
  nine_slice_texture_border_x = 8
  nine_slice_texture_border_y = 8
  image_tint = #FFFFFF
}

element {
  element_type = custom_button
  instance_identifier = f1e70b2d-4115-4a7b-b449-7f0b2171858a-toz
  appearance_delay = no_delay
  disappearance_delay = no_delay
  fade_in_v2 = no_fading
  fade_out = no_fading
  auto_sizing = false
  sticky_anchor = false
  anchor_point = mid-centered
  x = -140
  y = -62
  width = 280
  height = 84
  stay_on_screen = false
  element_loading_requirement_container_identifier = 1e37ac9e-2abb-4cbf-aa18-d80750a0a5d6-toz
  [loading_requirement_container_meta:1e37ac9e-2abb-4cbf-aa18-d80750a0a5d6-toz] = [groups:][instances:]
  enable_parallax = false
  load_once_per_session = false
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  stretch_x = false
  stretch_y = false
  base_opacity = 1.0
  rotation_degrees = 0.0
  should_be_affected_by_decoration_overlays = false
  button_element_executable_block_identifier = ec83c974-5ee3-4407-8867-90475c4d1f96-toz
  [executable_action_instance:fe589e7d-397e-4f7b-8af4-ab0dba62b14c-toz][action_type:joinserver] = server.mal-zeta.de
  [executable_block:ec83c974-5ee3-4407-8867-90475c4d1f96-toz][type:generic] = [executables:fe589e7d-397e-4f7b-8af4-ab0dba62b14c-toz;]
  label = 
  navigatable = true
  transparent_background = false
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/transparent.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/card_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 8
  nine_slice_border_y = 8
  tooltip = Connect to server.mal-zeta.de
  underline_label_on_hover = false
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = mc_titlescreen_singleplayer_button
  is_hidden = false
  anchor_point = mid-centered
  x = -140
  y = 30
  width = 138
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = mc_titlescreen_options_button
  is_hidden = false
  anchor_point = mid-centered
  x = 2
  y = 30
  width = 138
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = forge_titlescreen_mods_button
  is_hidden = false
  anchor_point = mid-centered
  x = -140
  y = 52
  width = 138
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = mc_titlescreen_quit_button
  is_hidden = false
  anchor_point = mid-centered
  x = 2
  y = 52
  width = 138
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 376282
  is_hidden = false
  anchor_point = mid-centered
  x = -140
  y = 74
  width = 280
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 376388
  is_hidden = false
  anchor_point = mid-centered
  x = -164
  y = 30
  width = 20
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 604306
  is_hidden = false
  anchor_point = mid-centered
  x = -164
  y = 52
  width = 20
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 604388
  is_hidden = false
  anchor_point = mid-centered
  x = 144
  y = 30
  width = 20
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 91441
  is_hidden = false
  anchor_point = mid-centered
  x = 144
  y = 52
  width = 20
  height = 20
  advanced_posx = -2147483648
  advanced_posy = -2147483648
  advanced_width = -2147483648
  advanced_height = -2147483648
  backgroundnormal = [source:local]/config/fancymenu/assets/toz/ui/button.png
  backgroundhovered = [source:local]/config/fancymenu/assets/toz/ui/button_hover.png
  nine_slice_custom_background = true
  nine_slice_border_x = 5
  nine_slice_border_y = 5
  label_shadow = true
  navigatable = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = minecraft_realms_notification_icons_widget
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = mc_titlescreen_multiplayer_button
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = mc_titlescreen_realms_button
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = minecraft_logo_widget
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = minecraft_splash_widget
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = minecraft_branding_widget
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 9144
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 9384
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 604330
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 376354
  is_hidden = true
}

vanilla_button {
  element_type = vanilla_button
  instance_identifier = 376306
  is_hidden = true
}
