// Dimension contract shared by every shader program wrapper.
// Iris and OptiFine select world0, world-1, and world1 automatically.
#ifndef NOISE_DIMENSION_GLSL
#define NOISE_DIMENSION_GLSL

#if defined(NETHER)
    #define NOISE_DIMENSION_ID 1
    #define NOISE_HAS_OVERWORLD_SKY 0
    #define NOISE_HAS_WEATHER 0
    #define NOISE_HAS_SUN_SHADOWS 0
    #define NOISE_HAS_DIRECTIONAL_SHADOWS 0
#elif defined(END)
    #define NOISE_DIMENSION_ID 2
    #define NOISE_HAS_OVERWORLD_SKY 0
    #define NOISE_HAS_WEATHER 0
    #define NOISE_HAS_SUN_SHADOWS 0
    #define NOISE_HAS_DIRECTIONAL_SHADOWS 1
#else
    #ifndef OVERWORLD
        #define OVERWORLD
    #endif
    #define NOISE_DIMENSION_ID 0
    #define NOISE_HAS_OVERWORLD_SKY 1
    #define NOISE_HAS_WEATHER 1
    #define NOISE_HAS_SUN_SHADOWS 1
    #define NOISE_HAS_DIRECTIONAL_SHADOWS 1
#endif

#endif
