custommods
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||
vec3 glowstoneColor = vec3(0.9, 0.5, 0.2);
|
||||
vec3 sealanternColor = vec3(0.5, 0.57, 0.78);
|
||||
vec3 shroomlightColor = vec3(1.0, 0.3, 0.125);
|
||||
vec3 jackolanternColor = vec3(0.9, 0.5, 0.2);
|
||||
vec3 beaconColor = vec3(0.33, 0.51, 0.6);
|
||||
vec3 endrodColor = vec3(0.53, 0.5, 0.47);
|
||||
vec3 redstonetorchColor = vec3(1.0, 0.0, 0.0);
|
||||
vec3 lanternColor = vec3(0.9, 0.5, 0.2);
|
||||
vec3 soullanternColor = vec3(0.0, 0.7, 1.0);
|
||||
vec3 torchColor = vec3(0.9, 0.5, 0.2);
|
||||
vec3 soultorchColor = vec3(0.0, 0.7, 1.0);
|
||||
vec3 respawnanchorColor = vec3(0.3, 0.0, 1.0);
|
||||
vec3 campfireColor = vec3(0.94, 0.5, 0.2);
|
||||
vec3 soulcampfireColor = vec3(0.0, 0.7, 1.0);
|
||||
vec3 lavabucketColor = vec3(0.94, 0.5, 0.2);
|
||||
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||
vec3 heldLightAlbedo1 = vec3(0.0);
|
||||
vec3 heldLightAlbedo2 = vec3(0.0);
|
||||
if (heldItemId < 11012.5) {
|
||||
if (heldItemId < 11005.5) {
|
||||
if (heldItemId == 11001) // Glowstone
|
||||
heldLightAlbedo1 = glowstoneColor;
|
||||
else if (heldItemId == 11002) // Sea Lantern
|
||||
heldLightAlbedo1 = sealanternColor;
|
||||
else if (heldItemId == 11004) // Shroomlight
|
||||
heldLightAlbedo1 = shroomlightColor;
|
||||
} else {
|
||||
if (heldItemId == 11007) // Jack o'Lantern
|
||||
heldLightAlbedo1 = jackolanternColor;
|
||||
else if (heldItemId == 11008) // Beacon
|
||||
heldLightAlbedo1 = beaconColor;
|
||||
else if (heldItemId == 11009) // End Rod
|
||||
heldLightAlbedo1 = endrodColor;
|
||||
else if (heldItemId == 11012) // Redstone Torch
|
||||
heldLightAlbedo1 = redstonetorchColor;
|
||||
}
|
||||
} else {
|
||||
if (heldItemId < 11022.5) {
|
||||
if (heldItemId == 11017) // Lantern
|
||||
heldLightAlbedo1 = lanternColor;
|
||||
else if (heldItemId == 11018) // Soul Lantern
|
||||
heldLightAlbedo1 = soullanternColor;
|
||||
else if (heldItemId == 11021) // Torch
|
||||
heldLightAlbedo1 = torchColor;
|
||||
else if (heldItemId == 11022) // Soul Torch
|
||||
heldLightAlbedo1 = soultorchColor;
|
||||
} else {
|
||||
if (heldItemId == 11023) // Crying Obsidian, Respawn Anchor
|
||||
heldLightAlbedo1 = respawnanchorColor;
|
||||
else if (heldItemId == 11024) // Campfire
|
||||
heldLightAlbedo1 = campfireColor;
|
||||
else if (heldItemId == 11025) // Soul Campfire
|
||||
heldLightAlbedo1 = soulcampfireColor;
|
||||
else if (heldItemId == 12001) // Lava Bucket
|
||||
heldLightAlbedo1 = lavabucketColor;
|
||||
}
|
||||
}
|
||||
if (heldItemId2 < 11012.5) {
|
||||
if (heldItemId2 < 11005.5) {
|
||||
if (heldItemId2 == 11001) // Glowstone
|
||||
heldLightAlbedo2 = glowstoneColor;
|
||||
else if (heldItemId2 == 11002) // Sea Lantern
|
||||
heldLightAlbedo2 = sealanternColor;
|
||||
else if (heldItemId2 == 11004) // Shroomlight
|
||||
heldLightAlbedo2 = shroomlightColor;
|
||||
} else {
|
||||
if (heldItemId2 == 11007) // Jack o'Lantern
|
||||
heldLightAlbedo2 = jackolanternColor;
|
||||
else if (heldItemId2 == 11008) // Beacon
|
||||
heldLightAlbedo2 = beaconColor;
|
||||
else if (heldItemId2 == 11009) // End Rod
|
||||
heldLightAlbedo2 = endrodColor;
|
||||
else if (heldItemId2 == 11012) // Redstone Torch
|
||||
heldLightAlbedo2 = redstonetorchColor;
|
||||
}
|
||||
} else {
|
||||
if (heldItemId2 < 11022.5) {
|
||||
if (heldItemId2 == 11017) // Lantern
|
||||
heldLightAlbedo2 = lanternColor;
|
||||
else if (heldItemId2 == 11018) // Soul Lantern
|
||||
heldLightAlbedo2 = soullanternColor;
|
||||
else if (heldItemId2 == 11021) // Torch
|
||||
heldLightAlbedo2 = torchColor;
|
||||
else if (heldItemId2 == 11022) // Soul Torch
|
||||
heldLightAlbedo2 = soultorchColor;
|
||||
} else {
|
||||
if (heldItemId2 == 11023) // Crying Obsidian, Respawn Anchor
|
||||
heldLightAlbedo2 = respawnanchorColor;
|
||||
else if (heldItemId2 == 11024) // Campfire
|
||||
heldLightAlbedo2 = campfireColor;
|
||||
else if (heldItemId2 == 11025) // Soul Campfire
|
||||
heldLightAlbedo2 = soulcampfireColor;
|
||||
else if (heldItemId2 == 12001) // Lava Bucket
|
||||
heldLightAlbedo2 = lavabucketColor;
|
||||
}
|
||||
}
|
||||
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||
vec3 heldLightAlbedo = heldLightAlbedo1 + heldLightAlbedo2;
|
||||
|
||||
if (dot(heldLightAlbedo, heldLightAlbedo) > 0.001) {
|
||||
heldLightAlbedo /= length(heldLightAlbedo);
|
||||
heldLightAlbedo *= BLOCKLIGHT_I * 0.4;
|
||||
float mixFactor = finalHandLight * finalHandLight;
|
||||
blocklightCol = mix(blocklightCol, heldLightAlbedo, max(mixFactor, 0.0));
|
||||
}
|
||||
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||
@@ -0,0 +1,353 @@
|
||||
if (mat > 100.5 && mat < 10000.0) {
|
||||
if (mat < 152.5) {
|
||||
if (mat < 132.5) {
|
||||
if (mat < 124.5) {
|
||||
if (material == 120.0) { // Redstone Stuff
|
||||
#ifndef WORLD_CURVATURE
|
||||
float comPos = fract(worldPos.y + cameraPosition.y);
|
||||
#else
|
||||
float comPos = fract(oldPosition.y + cameraPosition.y);
|
||||
#endif
|
||||
if (comPos > 0.18) emissive = float((albedo.r > 0.65 && albedo.r > albedo.b * 1.0) || albedo.b > 0.99);
|
||||
else emissive = float(albedo.r > albedo.b * 3.0 && albedo.r > 0.5) * 0.125;
|
||||
emissive *= max(0.65 - 0.3 * dot(albedo.rgb, vec3(1.0, 1.0, 0.0)), 0.0);
|
||||
if (specB > 900.0) { // Observer
|
||||
emissive *= float(albedo.r > albedo.g * 1.5);
|
||||
}
|
||||
}
|
||||
else if (material == 124.0) { // Warped Stem+
|
||||
#ifdef EMISSIVE_NETHER_STEMS
|
||||
float core = float(albedo.r < 0.1);
|
||||
float edge = float(albedo.b > 0.35 && albedo.b < 0.401 && core == 0.0);
|
||||
emissive = core * 0.195 + 0.035 * edge;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if (material == 128.0) { // Crimson Stem+
|
||||
#ifdef EMISSIVE_NETHER_STEMS
|
||||
emissive = float(albedo.b < 0.16);
|
||||
emissive = min(pow2(lAlbedoP * lAlbedoP) * emissive * 3.0, 0.3);
|
||||
#endif
|
||||
}
|
||||
if (material == 130.0) { // Sculk++
|
||||
emissive *= max((albedo.b - albedo.r) - 0.1, 0.0) * 0.5
|
||||
+ 100.0 * max(albedo.g - albedo.b, 0.0) * float(albedo.r < albedo.b - 0.1)
|
||||
;
|
||||
}
|
||||
else if (material == 132.0) { // Command Blocks
|
||||
#ifndef WORLD_CURVATURE
|
||||
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||
#else
|
||||
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||
#endif
|
||||
comPos = abs(comPos - vec3(0.5));
|
||||
float comPosM = min(max(comPos.x, comPos.y), min(max(comPos.x, comPos.z), max(comPos.y, comPos.z)));
|
||||
emissive = 0.0;
|
||||
if (comPosM < 0.1882) { // Command Block Center
|
||||
vec3 dif = vec3(albedo.r - albedo.b, albedo.r - albedo.g, albedo.b - albedo.g);
|
||||
dif = abs(dif);
|
||||
emissive = float(max(dif.r, max(dif.g, dif.b)) > 0.1) * 25.0;
|
||||
emissive *= float(albedo.r > 0.44 || albedo.g > 0.29);
|
||||
|
||||
if (CheckForColor(albedo.rgb, vec3(207, 166, 139)) // Fix for Iris' precision
|
||||
|| CheckForColor(albedo.rgb, vec3(201, 143, 107))
|
||||
|| CheckForColor(albedo.rgb, vec3(161, 195, 180))
|
||||
|| CheckForColor(albedo.rgb, vec3(131, 181, 145))
|
||||
|| CheckForColor(albedo.rgb, vec3(155, 139, 207))
|
||||
|| CheckForColor(albedo.rgb, vec3(135, 121, 181))) emissive = 0.0;
|
||||
|
||||
#ifdef ALTERNATIVE_COMMAND_BLOCK
|
||||
if (emissive > 0.01) {
|
||||
albedo.rgb *= vec3(0.88, 1.32, 1.9);
|
||||
albedo.g = sqrt1(albedo.g) * 0.6;
|
||||
albedo.rgb *= albedo.rgb * 2.0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
vec3 dif = abs(vec3(albedo.r - albedo.g, albedo.g - albedo.b, albedo.r - albedo.b));
|
||||
float maxDif = max(dif.r, max(dif.g, dif.b));
|
||||
smoothness = 0.38;
|
||||
if (maxDif < 0.05) smoothness = 0.6;
|
||||
metalness = 1.0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mat < 144.5) {
|
||||
if (material == 136.0) { // Snowy Grass Block
|
||||
if (lAlbedoP > 1.0) smoothness = lAlbedoP * lAlbedoP * 0.165;
|
||||
else metalness = 0.003;
|
||||
}
|
||||
else if (material == 140.0) { // Dragon Egg, Spawner
|
||||
emissive = float(albedo.r + albedo.b > albedo.g * 30.0 && lAlbedoP < 0.6);
|
||||
emissive *= 8.0 + float(lAlbedoP < 0.4) * 100.0;
|
||||
if (albedo.b + albedo.g > albedo.r * 2.0 && lAlbedoP > 0.2) { // Spawner Metal
|
||||
smoothness = 0.385;
|
||||
metalness = 0.8;
|
||||
}
|
||||
if (max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.r)) < 0.01) { // Dragon Egg Subtle Emission
|
||||
emissive = 2.5 * float(lAlbedoP < 0.2);
|
||||
}
|
||||
}
|
||||
else if (material == 144.0) // Furnaces Lit
|
||||
emissive = 0.75 * float(albedo.r * albedo.r > albedo.b * 4.0 || (albedo.r > 0.9 && (albedo.r > albedo.b || albedo.r > 0.99)));
|
||||
} else {
|
||||
if (material == 148.0) // Torch, Soul Torch
|
||||
emissive = float(albedo.r > 0.9 || albedo.b > 0.65) * (1.4 - albedo.b * 1.05);
|
||||
/* {
|
||||
#ifndef WORLD_CURVATURE
|
||||
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||
#else
|
||||
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||
#endif
|
||||
comPos = abs(comPos - vec3(0.5));
|
||||
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||
emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
|
||||
if (emissive > 0.001) {
|
||||
emissive *= emissive;
|
||||
emissive *= emissive;
|
||||
emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
|
||||
emissive = min(emissive, 0.15);
|
||||
} else emissive = 0.0;
|
||||
lightmap.x = min(emissive * 10.0 + 0.6, 1.05);
|
||||
albedo.rgb = pow(albedo.rgb, vec3(1.4 - lightmap.x));
|
||||
} */
|
||||
else if (material == 152.0) { // Obsidian++
|
||||
smoothness = max(smoothness, 0.375);
|
||||
if (specB > 0.5) { // Crying Obsidian, Respawn Anchor
|
||||
emissive = (albedo.b - albedo.r) * albedo.r * 6.0;
|
||||
emissive *= emissive * emissive;
|
||||
emissive = clamp(emissive, 0.05, 1.0);
|
||||
if (lAlbedoP > 1.6 || albedo.r > albedo.b * 1.7) emissive = 1.0;
|
||||
} else {
|
||||
if (lAlbedoP > 0.75) { // Enchanting Table Diamond
|
||||
f0 = smoothness;
|
||||
smoothness = 0.9 - f0 * 0.1;
|
||||
metalness = 0.0;
|
||||
}
|
||||
if (albedo.r > albedo.g + albedo.b) { // Enchanting Table Cloth
|
||||
smoothness = max(smoothness - 0.45, 0.0);
|
||||
metalness = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mat < 170.5) {
|
||||
if (mat < 162.5) {
|
||||
if (material == 156.0) { // Campfires, Powered Lever
|
||||
if (albedo.g + albedo.b > albedo.r * 2.3 && albedo.g > 0.38 && albedo.g > albedo.b * 0.9) emissive = 0.09;
|
||||
if (albedo.r > albedo.b * 3.0 || albedo.r > 0.8) emissive = 0.65;
|
||||
emissive *= max(1.0 - albedo.b + albedo.r, 0.0);
|
||||
emissive *= lAlbedoP;
|
||||
}
|
||||
else if (material == 160.0) { // Cauldron, Hopper, Anvils
|
||||
if (color.r < 0.99) { // Cauldron Water
|
||||
cauldron = 1.0, smoothness = 1.0, metalness = 0.0;
|
||||
skymapMod = lmCoord.y * 0.475 + 0.515;
|
||||
#if defined REFLECTION_RAIN && defined RAIN_REF_BIOME_CHECK
|
||||
noRain = 1.0;
|
||||
#endif
|
||||
#if WATER_TYPE == 0
|
||||
albedo.rgb = waterColor.rgb;
|
||||
#elif WATER_TYPE == 1
|
||||
albedo.rgb = pow(albedo.rgb, vec3(1.3));
|
||||
#else
|
||||
albedo.rgb = vec3(0.4, 0.5, 0.4) * (pow(albedo.rgb, vec3(2.8)) + 4 * waterColor.rgb * pow(albedo.r, 1.8)
|
||||
+ 16 * waterColor.rgb * pow(albedo.g, 1.8) + 4 * waterColor.rgb * pow(albedo.b, 1.8));
|
||||
albedo.rgb = pow(albedo.rgb * 1.5, vec3(0.5, 0.6, 0.5)) * 0.6;
|
||||
albedo.rgb *= 1 + length(albedo.rgb) * pow(WATER_OPACITY, 32.0) * 2.0;
|
||||
#endif
|
||||
#ifdef NORMAL_MAPPING
|
||||
vec2 cauldronCoord1 = texCoord + fract(frametime * 0.003);
|
||||
float cauldronNoise1 = texture2D(noisetex, cauldronCoord1).r;
|
||||
vec2 cauldronCoord2 = texCoord - fract(frametime * 0.003);
|
||||
float cauldronNoise2 = texture2D(noisetex, cauldronCoord2).r;
|
||||
float waveFactor = 0.027 + 0.065 * lightmap.y;
|
||||
normalMap.xy += (0.5 * waveFactor) * (cauldronNoise1 * cauldronNoise2 - 0.3);
|
||||
albedo.rgb *= (1.0 - waveFactor * 0.5) + waveFactor * cauldronNoise1 * cauldronNoise2;
|
||||
#endif
|
||||
}
|
||||
#if MC_VERSION >= 11700
|
||||
else if (albedo.r * 1.5 > albedo.g + albedo.b) { // Cauldron Lava
|
||||
metalness = 0.0;
|
||||
smoothness = 0.0;
|
||||
|
||||
#ifndef WORLD_CURVATURE
|
||||
float comPos = fract(worldPos.y + cameraPosition.y);
|
||||
#else
|
||||
float comPos = fract(oldPosition.y + cameraPosition.y);
|
||||
#endif
|
||||
comPos = fract(comPos);
|
||||
if (comPos > 0.2 && comPos < 0.99) {
|
||||
emissive = 1.0;
|
||||
albedo.rgb *= LAVA_INTENSITY * 0.9;
|
||||
}
|
||||
}
|
||||
else if (dot(albedo.rgb, albedo.rgb) > 2.7) { // Cauldron Powder Snow
|
||||
metalness = 0.0;
|
||||
smoothness = pow(lAlbedoP, 1.8037) * 0.185;
|
||||
smoothness = min(smoothness, 1.0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (material == 162.0) { // Glowstone, Magma Block
|
||||
#include "/lib/other/mipLevel.glsl"
|
||||
|
||||
emissive = pow(lAlbedoP, specB) * fract(specB) * 20.0;
|
||||
|
||||
emissive += miplevel * 2.5;
|
||||
}
|
||||
} else {
|
||||
if (material == 164.0) { // Chorus Plant, Chorus Flower Age 5
|
||||
if (albedo.g > 0.55 && albedo.r < albedo.g * 1.1) {
|
||||
emissive = 1.0;
|
||||
}
|
||||
}
|
||||
else if (material == 168.0) { // Overworld Ore Handling Except Redstone
|
||||
float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
|
||||
float brightFactor = max(lAlbedoP - 1.5, 0.0);
|
||||
float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
|
||||
#ifdef EMISSIVE_ORES
|
||||
emissive *= sqrt4(ore) * 0.15 * ORE_EMISSION;
|
||||
#endif
|
||||
metalness = 0.0;
|
||||
|
||||
#if !defined EMISSIVE_ORES || !defined EMISSIVE_IRON_ORE
|
||||
if (abs(specG - 0.07) < 0.0001) {
|
||||
float oreM = min(pow2(ore * ore) * 300.0, 1.0);
|
||||
smoothness = mix(smoothness, 1.0, oreM);
|
||||
metalness = mix(metalness, 0.8, sqrt3(oreM));
|
||||
}
|
||||
#endif
|
||||
#if !defined EMISSIVE_ORES || !defined EMISSIVE_COPPER_ORE
|
||||
if (abs(specG - 0.1) < 0.0001) {
|
||||
float oreM = sqrt3(min(ore * 0.25, 1.0));
|
||||
smoothness = mix(smoothness, 0.5, oreM);
|
||||
if (oreM > 0.01) metalness = 0.8;
|
||||
}
|
||||
#endif
|
||||
#if !defined EMISSIVE_ORES || !defined EMISSIVE_GOLD_ORE
|
||||
if (abs(specG - 0.002) < 0.0001) {
|
||||
float oreM = min(pow2(ore * ore) * 40.0, 1.0);
|
||||
smoothness = mix(smoothness, 0.5, oreM);
|
||||
if (oreM > 0.01) metalness = 0.8;
|
||||
}
|
||||
#endif
|
||||
#if !defined EMISSIVE_ORES || !defined EMISSIVE_EMERALD_ORE
|
||||
if (abs(specG - 0.0015) < 0.0001) {
|
||||
if (ore > 0.01) {
|
||||
float oreM = 1.0 - min(ore * 0.75, 1.0);
|
||||
smoothness = mix(smoothness, 1.0, oreM);
|
||||
extraSpecularM = 1.0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if !defined EMISSIVE_ORES || !defined EMISSIVE_DIAMOND_ORE
|
||||
if (abs(specG - 0.001) < 0.0001) {
|
||||
if (ore > 0.01) {
|
||||
float oreM = 1.0 - min(ore, 1.0);
|
||||
smoothness = mix(smoothness, 1.0, oreM);
|
||||
extraSpecularM = 1.0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (material == 170.0) { // Block of Amethyst++
|
||||
smoothness = min(pow((max(1.73 - lAlbedoP, 0.0) + 1.0), 0.81) * 0.5, 1.0);
|
||||
|
||||
#ifdef EMISSIVE_AMETHYST_BUDS
|
||||
#ifndef WORLD_CURVATURE
|
||||
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||
#else
|
||||
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||
#endif
|
||||
comPos = abs(comPos - vec3(0.5));
|
||||
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||
emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
|
||||
if (emissive > 0.001) {
|
||||
float orangeFactor = sqrt1(emissive * sqrt2(1.0 - lmCoord.x));
|
||||
emissive *= emissive;
|
||||
emissive *= emissive;
|
||||
emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
|
||||
emissive = min(emissive, 0.15) * 1.1;
|
||||
albedo.rgb = pow(albedo.rgb, mix(vec3(1.0), vec3(1.0, 1.0, 2.0), orangeFactor));
|
||||
float whiteFactor = pow(clamp(albedo.g * (1.0 + emissive), 0.0, 1.0), 10.0);
|
||||
albedo.rgb = mix(albedo.rgb, vec3(1.0), whiteFactor);
|
||||
} else emissive = 0.0;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mat < 176.5) {
|
||||
if (material == 172.0) { // Wet Farmland
|
||||
if (lAlbedoP > 0.3) smoothness = lAlbedoP * 0.7;
|
||||
else smoothness = lAlbedoP * 2.7;
|
||||
smoothness = min(smoothness, 1.0);
|
||||
}
|
||||
else if (material == 174.0) { // Emissive Redstone Ores
|
||||
float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
|
||||
float brightFactor = max(lAlbedoP - 1.5, 0.0);
|
||||
float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
|
||||
emissive *= sqrt4(ore) * 0.11 * ORE_EMISSION;
|
||||
metalness = 0.0;
|
||||
|
||||
// Fix white pixels
|
||||
if (emissive > 0.01) {
|
||||
float whitePixelFactor = max(lAlbedoP * lAlbedoP * 2.2, 1.0);
|
||||
albedo.rgb = pow(albedo.rgb, vec3(whitePixelFactor));
|
||||
}
|
||||
}
|
||||
else if (material == 176.0) { // Beacon
|
||||
#ifndef WORLD_CURVATURE
|
||||
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||
#else
|
||||
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||
#endif
|
||||
comPos = abs(comPos - vec3(0.5));
|
||||
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||
if (comPosM < 0.4 && albedo.b > 0.5) { // Beacon Core
|
||||
albedo.rgb = vec3(0.35, 1.0, 0.975);
|
||||
if (lAlbedoP > 1.5) albedo.rgb = vec3(1.0);
|
||||
else if (lAlbedoP > 1.3) albedo.rgb = vec3(0.35, 1.0, 0.975);
|
||||
else if (lAlbedoP > 1.15) albedo.rgb *= 0.86;
|
||||
else albedo.rgb *= 0.78;
|
||||
emissive = 1.5;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (material == 180.0) { // End Rod
|
||||
if (lAlbedoP > 1.3) {
|
||||
smoothness = 0.0;
|
||||
emissive = 0.4;
|
||||
}
|
||||
}
|
||||
else if (material == 184.0) { // Rails
|
||||
if (albedo.r > albedo.g * 2.0 + albedo.b) {
|
||||
if (lAlbedoP > 0.45) { // Rail Redstone Lit
|
||||
emissive = lAlbedoP;
|
||||
} else { // Rail Redstone Unlit
|
||||
smoothness = 0.4;
|
||||
metalness = 1.0;
|
||||
}
|
||||
} else {
|
||||
if (albedo.r > albedo.g + albedo.b || abs(albedo.r - albedo.b) < 0.1) { // Rail Gold, Rail Iron
|
||||
smoothness = 0.4;
|
||||
metalness = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EMISSIVE_NETHER_ORES
|
||||
if (specB < -9.0) {
|
||||
emissive = float(albedo.r + albedo.g > albedo.b * 2.0 && albedo.g > albedo.b * (1.2 - albedo.g * 0.5));
|
||||
if (abs(albedo.g - albedo.b) < 0.1) emissive *= float(albedo.b > 0.35 || albedo.b < 0.05); // Eliminate Some Pixels On Quartz Ore
|
||||
emissive *= albedo.r * 0.05 * ORE_EMISSION;
|
||||
if (emissive > 0.01) // Desaturate Some Red-Looking Pixels
|
||||
albedo.rgb = mix(albedo.rgb, vec3(dot(albedo.rgb, vec3(0.4, 0.5, 0.07))), clamp((albedo.r - albedo.g) * 2.0, 0.0, 0.3));
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,869 @@
|
||||
if (mc_Entity.x == 31 || mc_Entity.x == 6 || mc_Entity.x == 59 ||
|
||||
mc_Entity.x == 175 || mc_Entity.x == 176 || mc_Entity.x == 83 ||
|
||||
mc_Entity.x == 104 || mc_Entity.x == 105 || mc_Entity.x == 11019) // Foliage++
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1001.0,
|
||||
#endif
|
||||
#ifndef SHADOWS
|
||||
normal = upVec, color.rgb *= 0.9,
|
||||
#else
|
||||
mat = 1.0,
|
||||
#endif
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), quarterNdotUfactor = 0.0;
|
||||
|
||||
if (mc_Entity.x == 18 || mc_Entity.x == 9600 || mc_Entity.x == 9100) // Leaves, Vine, Lily Pad
|
||||
#ifdef COMPBR
|
||||
specR = 12.065, specG = 0.003,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1001.0,
|
||||
#endif
|
||||
mat = 2.0;
|
||||
|
||||
if (mc_Entity.x == 10) // Lava
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
mat = 4.0,
|
||||
specB = 0.25, quarterNdotUfactor = 0.0, color.a = 1.0, lmCoord.x = 0.9,
|
||||
color.rgb = normalize(color.rgb) * vec3(LAVA_INTENSITY * 1.45);
|
||||
if (mc_Entity.x == 1010) // Fire
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
specB = 0.25, lmCoord.x = 0.98, color.a = 1.0, color.rgb = vec3(FIRE_INTENSITY * 0.67);
|
||||
if (mc_Entity.x == 210) // Soul Fire
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
specB = 0.25, lmCoord.x = 0.0, color.a = 1.0, color.rgb = vec3(FIRE_INTENSITY * 0.53);
|
||||
|
||||
if (mc_Entity.x == 12345) // Custom Emissive
|
||||
lmCoord = vec2(0.0), specB = 2.05;
|
||||
|
||||
if (mc_Entity.x == 300) // No Vanilla AO
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1001.0,
|
||||
#endif
|
||||
color.a = 1.0;
|
||||
|
||||
if (lmCoord.x > 0.99) // Clamp full bright emissives
|
||||
lmCoord.x = 0.9;
|
||||
|
||||
#ifdef COMPBR
|
||||
if (mc_Entity.x < 10380.5) {
|
||||
if (mc_Entity.x < 10115.5) {
|
||||
if (mc_Entity.x < 10052.5) {
|
||||
if (mc_Entity.x < 10008.5) {
|
||||
if (mc_Entity.x < 10002.5) {
|
||||
if (mc_Entity.x == 10000) { // Grass Block
|
||||
#if MC_VERSION > 10710
|
||||
if (color.b < 0.99) { // Grass Block Grass
|
||||
specR = 8.034, specG = 0.003;
|
||||
} else // Grass Block Dirt
|
||||
#endif
|
||||
specR = 2.035, specG = 0.003;
|
||||
}
|
||||
else if (mc_Entity.x == 10001) // Snowy Grass Block
|
||||
mat = 136.0, // Separation of Snow and Dirt will be handled in terrainFragment.glsl
|
||||
specR = 2.035;
|
||||
else if (mc_Entity.x == 10002) // Sand
|
||||
specR = 80.004, mat = 3.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 10003) // Stone+, Coal Ore
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
specR = 20.04;
|
||||
else if (mc_Entity.x == 10007) // Dirt, Coarse Dirt, Podzol, Grass Path, Dirt Path, Farmland Dry
|
||||
specR = 2.035, specG = 0.003;
|
||||
else if (mc_Entity.x == 10008) // Glass, Glass Pane
|
||||
specR = 0.8, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), mipmapDisabling = 1.0;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10012.5) {
|
||||
if (mc_Entity.x == 10009) // Snow+, Snow Block
|
||||
specR = 18.037, mat = 3.0;
|
||||
else if (mc_Entity.x == 10010) // Gravel
|
||||
specR = 32.06;
|
||||
else if (mc_Entity.x == 10012) // Cobblestone+, Clay
|
||||
specR = 18.037;
|
||||
} else {
|
||||
if (mc_Entity.x == 10050) // Red Sand
|
||||
specR = 80.115, mat = 3.0;
|
||||
else if (mc_Entity.x == 10051) // Andesite, Diorite, Granite, Basalt+, Tuff, Dripstone+
|
||||
specR = 12.05;
|
||||
else if (mc_Entity.x == 10052) // Terracottas
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.275,
|
||||
#endif
|
||||
specR = 2.045, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10106.5) {
|
||||
if (mc_Entity.x < 10102.5) {
|
||||
if (mc_Entity.x == 10053) // Packed Ice, Purpur Block+, Beehive
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.4,
|
||||
#endif
|
||||
specR = 20.055;
|
||||
else if (mc_Entity.x == 10058) // Blue Ice, Calcite
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.4,
|
||||
#endif
|
||||
specR = 20.065, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10101) // Birch Log+
|
||||
specR = 3.055;
|
||||
else if (mc_Entity.x == 10102) // Oak Log+
|
||||
specR = 8.055;
|
||||
} else {
|
||||
if (mc_Entity.x == 10103) // Jungle Log+, Acacia Log+
|
||||
specR = 6.055;
|
||||
else if (mc_Entity.x == 10105) // Spruce Log+, Scaffolding, Cartography Table, Bee Nest
|
||||
specR = 6.06;
|
||||
else if (mc_Entity.x == 10106) // Warped Log+
|
||||
specR = 10.07, mat = 124.0,
|
||||
mipmapDisabling = 1.0;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10111.5) {
|
||||
if (mc_Entity.x == 10107) // Crimson Log+
|
||||
specR = 10.07, mat = 128.0,
|
||||
mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 10108) // Dark Oak Log+
|
||||
specR = 2.04;
|
||||
else if (mc_Entity.x == 10111) // Birch Planks+, Fletching Table, Loom
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
specR = 20.036;
|
||||
} else {
|
||||
if (mc_Entity.x == 10112) // Oak Planks+, Jungle Planks+, Bookshelf, Composter
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
specR = 20.055;
|
||||
else if (mc_Entity.x == 10114) // Acacia Planks+, Barrel
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.7,
|
||||
#endif
|
||||
specR = 20.075;
|
||||
else if (mc_Entity.x == 10115) // Spruce Planks+, Smithing Table
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.7,
|
||||
#endif
|
||||
specR = 20.12;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10338.5) {
|
||||
if (mc_Entity.x < 10312.5) {
|
||||
if (mc_Entity.x < 10118.5) {
|
||||
if (mc_Entity.x == 10116) // Warped Planks+
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.3,
|
||||
#endif
|
||||
specR = 12.075;
|
||||
else if (mc_Entity.x == 10117) // Crimson Planks+, Note Block, Jukebox
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.3,
|
||||
#endif
|
||||
specR = 12.095;
|
||||
else if (mc_Entity.x == 10118) // Dark Oak Planks+
|
||||
specR = 20.4;
|
||||
} else {
|
||||
if (mc_Entity.x == 10300) // Stone Bricks++, Dried Kelp Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.7,
|
||||
#endif
|
||||
specR = 20.09;
|
||||
else if (mc_Entity.x == 10304) // Nether Ores, Blackstone++
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
#ifdef EMISSIVE_NETHER_ORES
|
||||
specB = -10.0,
|
||||
#endif
|
||||
specR = 12.087, mat = 20000.0, color.rgb = vec3(1.0, 0.7, 1.0);
|
||||
else if (mc_Entity.x == 10308) // Netherrack, Crimson/Warped Nylium
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
specR = 12.087, mat = 20000.0, color.rgb = vec3(1.0, 0.7, 1.0);
|
||||
else if (mc_Entity.x == 10312) // Polished Andesite, Polished Diorite, Polished Granite, Melon
|
||||
specR = 6.085;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10328.5) {
|
||||
if (mc_Entity.x == 10316) // Nether Bricks+
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
specR = 12.375, mat = 20000.0, color.rgb = vec3(0.55, 1.0, 1.0);
|
||||
else if (mc_Entity.x == 10320 || mc_Entity.x == 10324) // Iron Block+
|
||||
specR = 6.07, specG = 131.0;
|
||||
else if (mc_Entity.x == 10328) // Gold Block+
|
||||
specR = 8.1, mat = 30000.0, color.rgb = vec3(1.0, 1.0, 1.0), specG = 1.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 10332) // Diamond Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.65,
|
||||
#endif
|
||||
specR = 100.007, mat = 201.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10336) // Emerald Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.65,
|
||||
#endif
|
||||
specR = 7.2, mat = 201.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10338) { // Block of Amethyst, Budding Amethyst
|
||||
mat = 170.0, extraSpecular = 1.0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10356.5) {
|
||||
if (mc_Entity.x < 10344.5) {
|
||||
if (mc_Entity.x == 10340) // Netherite Block
|
||||
specR = 12.135, specG = 0.7;
|
||||
else if (mc_Entity.x == 10342) // Amethyst Buds/Cluster
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
mat = 170.0;
|
||||
else if (mc_Entity.x == 10344) // Ancient Debris
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.0,
|
||||
#endif
|
||||
#ifdef GLOWING_DEBRIS
|
||||
specB = 6.0 + min(0.3 * ORE_EMISSION, 0.9), color.a = 1.0,
|
||||
#endif
|
||||
specR = 8.07, specG = 0.7;
|
||||
} else {
|
||||
if (mc_Entity.x == 10348) // Block of Redstone
|
||||
#ifdef GLOWING_REDSTONE_BLOCK
|
||||
specB = 7.20, mat = 20000.0, color.rgb = vec3(1.1), color.a = 1.0,
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
#endif
|
||||
specR = 8.05, specG = 1.0;
|
||||
else if (mc_Entity.x == 10352) // Lapis Lazuli Block
|
||||
#ifdef GLOWING_LAPIS_BLOCK
|
||||
specB = 6.20, mat = 20000.0, color.rgb = vec3(1.13), color.a = 1.0,
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
#endif
|
||||
specR = 16.11;
|
||||
else if (mc_Entity.x == 10356) // Carpets, Wools
|
||||
specR = 2.02, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0), specG = 0.003, lmCoord.x *= 0.96;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10368.5) {
|
||||
if (mc_Entity.x == 10360) // Obsidian
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.0,
|
||||
#endif
|
||||
specR = 2.15, specG = 0.6, mat = 152.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10364) // Enchanting Table
|
||||
specR = 2.15, specG = 0.6, mat = 152.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10368) // Chain
|
||||
specR = 0.5, specG = 1.0,
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
} else {
|
||||
if (mc_Entity.x == 10372) // Cauldron, Hopper, Anvils
|
||||
specR = 1.08, specG = 1.0, mat = 160.0,
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
else if (mc_Entity.x == 10376) // Sandstone+
|
||||
specR = 24.029;
|
||||
else if (mc_Entity.x == 10380) // Red Sandstone+
|
||||
specR = 24.085;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11038.5) {
|
||||
if (mc_Entity.x < 10432.5) {
|
||||
if (mc_Entity.x < 10408.5) {
|
||||
if (mc_Entity.x < 10392.5) {
|
||||
if (mc_Entity.x == 10384) // Quartz+, Daylight Detector, Honeycomb Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.35,
|
||||
#endif
|
||||
specR = 16.082, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 10388) // Chorus Plant, Chorus Flower Age 5
|
||||
mat = 164.0, specR = 6.1,
|
||||
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
else if (mc_Entity.x == 10392) // Chorus Flower Age<=4
|
||||
specB = 5.0001, specR = 5.07,
|
||||
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
} else {
|
||||
if (mc_Entity.x == 10396) // End Stone++, Smooth Stone+, Lodestone, TNT, Pumpkin+, Mushroom Blocks, Deepslate++, Mud, Mangrove Roots, Muddy Mangrove Roots, Packed Mud, Mud Bricks+
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
specR = 12.065;
|
||||
else if (mc_Entity.x == 10400) // Bone Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.35,
|
||||
#endif
|
||||
specR = 8.055;
|
||||
else if (mc_Entity.x == 10404) // Concretes
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.2,
|
||||
#endif
|
||||
specR = 3.044, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0);
|
||||
else if (mc_Entity.x == 10408) // Concrete Powders
|
||||
specR = 6.014, mat = 15000.0, color.rgb = vec3(0.01, 1.0, 0.0);
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 10420.5) {
|
||||
if (mc_Entity.x == 10412) // Bedrock
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.0,
|
||||
#endif
|
||||
specR = 16.0675;
|
||||
else if (mc_Entity.x == 10416) // Hay Block, Target
|
||||
specR = 16.085, specG = 0.003, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0);
|
||||
else if (mc_Entity.x == 10420) // Bricks+, Furnaces Unlit, Dispenser, Dropper
|
||||
specR = 10.07;
|
||||
} else {
|
||||
if (mc_Entity.x == 10424) { // Farmland Wet
|
||||
if (dot(upVec, normal) > 0.75) { // Top (Actual Farmland Wet)
|
||||
mat = 172.0;
|
||||
} else { // Sides And Bottom (Dirt)
|
||||
specR = 2.035, specG = 0.003;
|
||||
}
|
||||
}
|
||||
else if (mc_Entity.x == 10428) // Crafting Table
|
||||
specR = 24.06;
|
||||
else if (mc_Entity.x == 10432) // Cave Vines With Glow Berries
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
specB = 8.3, mat = 20000.0, color.rgb = vec3(1.2, -5.0, 0.0),
|
||||
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11012.5) {
|
||||
if (mc_Entity.x < 10444.5) {
|
||||
if (mc_Entity.x == 10436) // Prismarine+
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.3,
|
||||
#endif
|
||||
specR = 3.08, specG = 0.75;
|
||||
else if (mc_Entity.x == 10440) // Dark Prismarine+
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
specR = 3.11, specG = 0.75;
|
||||
else if (mc_Entity.x == 10444) // Glazed Terracottas
|
||||
specR = 0.5;
|
||||
} else {
|
||||
if (mc_Entity.x == 11004) // Glowstone
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.0,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
lmCoord.x = 0.87, specB = 3.05, mat = 162.0,
|
||||
//mipmapDisabling = 1.0,
|
||||
color.rgb = vec3(0.69, 0.65, 0.6);
|
||||
else if (mc_Entity.x == 11008) // Sea Lantern
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 4.0,
|
||||
#endif
|
||||
specR = 3.1, specG = 0.75,
|
||||
lmCoord.x = 0.85, specB = 16.025,
|
||||
mat = 17000.0, color.rgb = vec3(1.5, 0.67, 2.9),
|
||||
quarterNdotUfactor = 0.0, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11012) // Magma Block
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.0,
|
||||
#endif
|
||||
lmCoord = vec2(0.0), specB = 2.05, color.rgb = vec3(0.85, 0.84, 0.7), mat = 162.0,
|
||||
//mipmapDisabling = 1.0,
|
||||
quarterNdotUfactor = 0.0;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11024.5) {
|
||||
if (mc_Entity.x == 11016) // Shroomlight
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 1.0,
|
||||
#endif
|
||||
lmCoord.x = 0.81, specB = 16.005,
|
||||
mat = 17000.0, color.rgb = vec3(1.5, 0.8, 1.0),
|
||||
quarterNdotUfactor = 0.0;
|
||||
else if (mc_Entity.x == 11020) // Redstone Lamp Lit
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
lmCoord.x = 0.915, specB = 5.099, color.rgb = vec3(0.6), quarterNdotUfactor = 0.0,
|
||||
specG = 0.63, specR = 0.55, mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 11024) // Redstone Lamp Unlit
|
||||
specG = 0.63, specR = 3.15, mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11028) // Jack o'Lantern
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
mat = 17000.0, color.rgb = vec3(1.54, 1.0, 1.15),
|
||||
specR = 12.065, lmCoord.x = 0.87, specB = 16.00008, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11032) // Beacon
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 4.0,
|
||||
#endif
|
||||
mat = 176.0, lmCoord.x = 0.87;
|
||||
else if (mc_Entity.x == 11036) // End Rod
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.0,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 4.0,
|
||||
#endif
|
||||
specR = 1.0, lmCoord.x = 0.88, mat = 180.0;
|
||||
else if (mc_Entity.x == 11038) // Froglight+
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 1.0,
|
||||
#endif
|
||||
lmCoord.x = 0.7, specB = 7.0001, quarterNdotUfactor = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11084.5) {
|
||||
if (mc_Entity.x < 11060.5) {
|
||||
if (mc_Entity.x < 11048.5) {
|
||||
if (mc_Entity.x == 11040) // Dragon Egg, Spawner
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
mat = 140.0;
|
||||
else if (mc_Entity.x == 11044) // Redstone Wire
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
specB = smoothstep(0.0, 1.0, pow2(length(color.rgb))) * 0.07;
|
||||
else if (mc_Entity.x == 11048) // Redstone Torch
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
mat = 120.0, lmCoord.x = min(lmCoord.x, 0.86), mipmapDisabling = 1.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11052) // Redstone Repeater & Comparator Powered
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
mat = 120.0, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11056) // Redstone Repeater & Comparator Unpowered
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
mat = 120.0, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11060) // Observer
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
specR = 10.07, mat = 120.0, specB = 1000.0;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11072.5) {
|
||||
if (mc_Entity.x == 11064) // Command Blocks
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 2.5,
|
||||
#endif
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
mat = 132.0, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11068) // Lantern
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
lmCoord.x = 0.87, specB = 3.4, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0),
|
||||
#ifndef REFLECTION_SPECULAR
|
||||
specB -= fract(specB) * 0.85,
|
||||
#endif
|
||||
specR = 0.5, specG = 1.0;
|
||||
else if (mc_Entity.x == 11072) // Soul Lantern
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
lmCoord.x = min(lmCoord.x, 0.87), specB = 4.15, mat = 20000.0, color.rgb = vec3(0.0, 1.0, 0.0),
|
||||
#ifndef REFLECTION_SPECULAR
|
||||
specB -= fract(specB) * 0.85,
|
||||
#endif
|
||||
specR = 0.5, specG = 1.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11076) // Crimson Fungus, Warped Fungus, Twisting Vines, Weeping Vines
|
||||
quarterNdotUfactor = 0.0,
|
||||
specB = 16.007, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0);
|
||||
else if (mc_Entity.x == 11078) { // Glow Lichen
|
||||
#if EMISSIVE_LICHEN > 0
|
||||
#if EMISSIVE_LICHEN == 1
|
||||
float lightFactor = max(1.0 - lmCoord.y, 0.0);
|
||||
lightFactor *= lightFactor;
|
||||
lightFactor *= lightFactor;
|
||||
lightFactor *= lightFactor;
|
||||
lightFactor *= lightFactor;
|
||||
#else
|
||||
float lightFactor = 1.0;
|
||||
#endif
|
||||
specB = 15.0002 + 0.3 * lightFactor;
|
||||
mat = 17000, color.rgb = vec3(1.11, 0.8, 1.0 + lightFactor * 0.07);
|
||||
#endif
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.9);
|
||||
}
|
||||
else if (mc_Entity.x == 11080) // Furnaces Lit
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
specR = 10.07, mat = 144.0, lmCoord.x = pow(lmCoord.x, 1.35);
|
||||
else if (mc_Entity.x == 11084) // Torch
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 1.0,
|
||||
#endif
|
||||
lmCoord.x = min(lmCoord.x, 0.86), mat = 148.0, mipmapDisabling = 1.0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11112.5) {
|
||||
if (mc_Entity.x < 11100.5) {
|
||||
if (mc_Entity.x == 11088) // Soul Torch
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
lmCoord.x = min(lmCoord.x, 0.86), mat = 148.0, mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11092) // Crying Obsidian, Respawn Anchor
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 1.5,
|
||||
#endif
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
specR = 2.15, specG = 0.6, mat = 152.0,
|
||||
specB = 0.75, lmCoord.x = min(lmCoord.x, 0.88), mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||
else if (mc_Entity.x == 11096) // Campfire, Powered Lever
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
lmCoord.x = min(lmCoord.x, 0.885), mat = 156.0;
|
||||
else if (mc_Entity.x == 11100) // Soul Campfire
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
lmCoord.x = min(lmCoord.x, 0.885), mat = 156.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11104) // Jigsaw Block, Structure Block
|
||||
#ifdef SNOW_MODE
|
||||
noSnow = 1.0,
|
||||
#endif
|
||||
specB = 8.003, quarterNdotUfactor = 0.0;
|
||||
else if (mc_Entity.x == 11108) // Sea Pickle
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 5.0,
|
||||
#endif
|
||||
specB = 12.0003, lmCoord.x = min(lmCoord.x, 0.885), mipmapDisabling = 1.0;
|
||||
else if (mc_Entity.x == 11110) // Sculk++ 0.01
|
||||
specR = 12.065, specB = 0.01, mat = 130.0;
|
||||
else if (mc_Entity.x == 11111) // Sculk++ 0.03
|
||||
specR = 12.065, specB = 0.03, mat = 130.0;
|
||||
else if (mc_Entity.x == 11112) // Lit Candles
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 3.0,
|
||||
#endif
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11129.5) {
|
||||
if (mc_Entity.x < 11123.5) {
|
||||
if (mc_Entity.x < 11119.5) {
|
||||
if (mc_Entity.x == 11116) // Diamond Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_DIAMOND_ORE
|
||||
specB = 0.30,
|
||||
#else
|
||||
specG = 0.001,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.001,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
mat = 168.0, specR = 20.04;
|
||||
else if (mc_Entity.x == 11117) // Deepslate Diamond Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_DIAMOND_ORE
|
||||
specB = 0.30,
|
||||
#else
|
||||
specG = 0.001,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.001,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
mat = 168.0, specR = 12.065;
|
||||
else if (mc_Entity.x == 11118) // Emerald Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_EMERALD_ORE
|
||||
specB = 0.30,
|
||||
#else
|
||||
specG = 0.0015,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.0015,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
mat = 168.0, specR = 20.04;
|
||||
else if (mc_Entity.x == 11119) // Deepslate Emerald Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_EMERALD_ORE
|
||||
specB = 0.30,
|
||||
#else
|
||||
specG = 0.0015,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.0015,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
mat = 168.0, specR = 12.065;
|
||||
} else {
|
||||
if (mc_Entity.x == 11120) // Gold Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_GOLD_ORE
|
||||
specB = 0.08,
|
||||
#else
|
||||
specG = 0.002,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.002,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
mat = 168.0, specR = 20.04;
|
||||
else if (mc_Entity.x == 11121) // Deepslate Gold Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_GOLD_ORE
|
||||
specB = 0.08,
|
||||
#else
|
||||
specG = 0.002,
|
||||
#endif
|
||||
#else
|
||||
specG = 0.002,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
mat = 168.0, specR = 12.065;
|
||||
else if (mc_Entity.x == 11122) // Lapis Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_LAPIS_ORE
|
||||
specB = 0.08, mat = 168.0,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
specR = 20.04;
|
||||
else if (mc_Entity.x == 11123) // Deepslate Lapis Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_LAPIS_ORE
|
||||
specB = 0.08, mat = 168.0,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
specR = 12.065;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x == 11124) // Redstone Ore Unlit
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_REDSTONE_ORE
|
||||
specB = 4.2, mat = 174.0,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
specR = 20.04;
|
||||
else if (mc_Entity.x == 11125) // Deepslate Redstone Ore Unlit
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_REDSTONE_ORE
|
||||
specB = 4.2, mat = 174.0,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
specR = 12.065;
|
||||
else if (mc_Entity.x == 11128) // Redstone Ore Lit
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
lmCoord.x *= 0.95,
|
||||
specB = 4.27, mat = 174.0,
|
||||
specR = 20.04;
|
||||
else if (mc_Entity.x == 11129) // Deepslate Redstone Ore Lit
|
||||
#ifdef COLORED_LIGHT
|
||||
lightVarying = 2.0,
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
lmCoord.x *= 0.95,
|
||||
specB = 4.27, mat = 174.0,
|
||||
specR = 12.065;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11135.5) {
|
||||
if (mc_Entity.x == 11132) // Iron Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_IRON_ORE
|
||||
specB = 0.05,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
mat = 168.0, specG = 0.07, specR = 20.04;
|
||||
else if (mc_Entity.x == 11133) // Deepslate Iron Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_IRON_ORE
|
||||
specB = 0.05,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
mat = 168.0, specG = 0.07, specR = 12.065;
|
||||
} else {
|
||||
if (mc_Entity.x == 11136) // Copper Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_COPPER_ORE
|
||||
specB = 2.02,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.77,
|
||||
#endif
|
||||
mat = 168.0, specG = 0.1, specR = 20.04;
|
||||
else if (mc_Entity.x == 11137) // Deepslate Copper Ore
|
||||
#ifdef EMISSIVE_ORES
|
||||
#ifdef EMISSIVE_COPPER_ORE
|
||||
specB = 2.02,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NOISY_TEXTURES
|
||||
noiseVarying = 0.5,
|
||||
#endif
|
||||
mat = 168.0, specG = 0.1, specR = 12.065;
|
||||
else if (mc_Entity.x == 11200) // Rails
|
||||
mat = 184.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), mipmapDisabling = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Too bright near a light source fix
|
||||
if (mc_Entity.x == 99 || mc_Entity.x == 10324)
|
||||
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||
|
||||
// Mipmap Fix
|
||||
/*if (mc_Entity.x == 98465498894)
|
||||
mipmapDisabling = 1.0; */
|
||||
#endif
|
||||
|
||||
#if !defined COMPBR && defined COLORED_LIGHT
|
||||
if (mc_Entity.x < 11048.5) {
|
||||
if (mc_Entity.x < 11020.5) {
|
||||
if (mc_Entity.x == 10432) // Cave Vines With Glow Berries
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11004) // Glowstone
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11008) // Sea Lantern
|
||||
lightVarying = 4.0;
|
||||
else if (mc_Entity.x == 11016) // Shroomlight
|
||||
lightVarying = 1.0;
|
||||
else if (mc_Entity.x == 11020) // Redstone Lamp Lit
|
||||
lightVarying = 3.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11028) // Jack o'Lantern
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11032) // Beacon
|
||||
lightVarying = 4.0;
|
||||
else if (mc_Entity.x == 11036) // End Rod
|
||||
lightVarying = 4.0;
|
||||
else if (mc_Entity.x == 11038) // Froglight+
|
||||
lightVarying = 1.0;
|
||||
else if (mc_Entity.x == 11048) // Redstone Torch
|
||||
lightVarying = 2.0;
|
||||
}
|
||||
} else {
|
||||
if (mc_Entity.x < 11088.5) {
|
||||
if (mc_Entity.x == 11068) // Lantern
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11072) // Soul Lantern
|
||||
lightVarying = 2.0;
|
||||
else if (mc_Entity.x == 11080) // Furnaces Lit
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11084) // Torch
|
||||
lightVarying = 1.0;
|
||||
else if (mc_Entity.x == 11088) // Soul Torch
|
||||
lightVarying = 2.0;
|
||||
} else {
|
||||
if (mc_Entity.x == 11092) // Crying Obsidian, Respawn Anchor
|
||||
lightVarying = 2.0;
|
||||
else if (mc_Entity.x == 11096) // Campfire
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11100) // Soul Campfire
|
||||
lightVarying = 2.0;
|
||||
else if (mc_Entity.x == 11108) // Sea Pickle
|
||||
lightVarying = 5.0;
|
||||
else if (mc_Entity.x == 11112) // Lit Candles
|
||||
lightVarying = 3.0;
|
||||
else if (mc_Entity.x == 11128) // Redstone Ore Lit
|
||||
lightVarying = 2.0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user