Files
Reimagined/shaderpacks/Reimagined - High/shaders/lib/materials/materialHandling/entityIPBR.glsl
T
2026-05-07 21:38:27 +03:00

499 lines
23 KiB
GLSL

#include "/lib/shaderSettings/entityMaterials.glsl"
if (entityId < 50128) { // 50000 to 50128
if (entityId < 50064) { // 50000 to 50064
if (entityId < 50032) { // 50000 to 50032
if (entityId < 50016) { // 50000 to 50016
if (entityId < 50008) { // 50000 to 50008
if (entityId == 50000) { // End Crystal
lmCoordM.x *= 0.7;
if (color.g * 1.2 < color.r) {
emission = 12.0 * color.g;
color.r *= 1.1;
}
emission *= END_CRYSTAL_EMISSION;
} else if (entityId == 50004) { // Lightning Bolt
#include "/lib/materials/specificMaterials/others/lightningBolt.glsl"
}
} else { // 50008 to 50016
if (entityId == 50008) { // Item Frame, Glow Item Frame
noSmoothLighting = true;
} else if (entityId == 50012) { // Iron Golem
#include "/lib/materials/specificMaterials/terrain/ironBlock.glsl"
smoothnessD *= 0.4;
} else { // 50015 - Armor Stand
// Do nothing for now
}
}
} else { // 50016 to 50032
if (entityId < 50024) { // 50016 to 50024
if (entityId == 50016 || entityId == 50017) { // Player
if (entityColor.a < 0.001) {
#ifdef COATED_TEXTURES
noiseFactor = 0.5;
#endif
if (CheckForColor(texelFetch(tex, ivec2(0, 0), 0).rgb, vec3(23, 46, 92))) {
for (int i = 63; i >= 56; i--) {
vec3 dif = color.rgb - texelFetch(tex, ivec2(i, 0), 0).rgb;
if (dif == clamp(dif, vec3(-0.001), vec3(0.001))) {
emission = 2.0 * texelFetch(tex, ivec2(i, 1), 0).r;
}
}
}
bool selfCheck = false;
#if IRIS_VERSION >= 10800
if (entityId == 50017) {
selfCheck = true;
entitySSBLMask = 0.0;
}
#else
if (length(playerPos) < 4.0) {
selfCheck = true;
entitySSBLMask = 0.0;
}
#endif
}
} else /*if (entityId == 50020)*/ { // Blaze
lmCoordM = vec2(0.9, 0.0);
emission = min(color.r, 0.7) * 1.4;
float dotColor = dot(color.rgb, color.rgb);
if (abs(dotColor - 1.5) > 1.4) {
emission = 5.0;
} else {
#ifdef SOUL_SAND_VALLEY_OVERHAUL_INTERNAL
color.rgb = changeColorFunction(color.rgb, 2.0, colorSoul, inSoulValley);
#endif
#ifdef PURPLE_END_FIRE_INTERNAL
color.rgb = changeColorFunction(color.rgb, 2.0, colorEndBreath, 1.0);
#endif
}
}
} else { // 50024 to 50032
if (entityId == 50024) { // Creeper
emission = max0(color.b - color.g - color.r) * 10.0;
} else /*if (entityId == 50028)*/ { // Drowned
if (atlasSize.x < 900) {
if (CheckForColor(color.rgb, vec3(143, 241, 215)) ||
CheckForColor(color.rgb, vec3( 49, 173, 183)) ||
CheckForColor(color.rgb, vec3(101, 224, 221))) emission = 2.5;
}
}
}
}
} else { // 50032 to 50064
if (entityId < 50048) { // 50032 to 50048
if (entityId < 50040) { // 50032 to 50040
if (entityId == 50032) { // Guardian
vec3 absDif = abs(vec3(color.r - color.g, color.g - color.b, color.r - color.b));
float maxDif = max(absDif.r, max(absDif.g, absDif.b));
if (maxDif < 0.1 && color.b > 0.5 && color.b < 0.88) {
emission = pow2(pow1_5(color.b)) * 5.0;
color.rgb *= color.rgb;
}
} else /*if (entityId == 50036)*/ { // Elder Guardian
if (CheckForColor(color.rgb, vec3(203, 177, 165)) ||
CheckForColor(color.rgb, vec3(214, 155, 126))) {
emission = pow2(pow1_5(color.b)) * 10.0;
color.r *= 1.2;
}
}
} else { // 50040 to 50048
if (entityId == 50040) { // Endermite
if (CheckForColor(color.rgb, vec3(87, 23, 50))) {
emission = 8.0;
color.rgb *= color.rgb;
}
} else /*if (entityId == 50044)*/ { // Ghast
if (entityColor.a < 0.001)
emission = max0(color.r - color.g - color.b) * 6.0;
#ifdef SOUL_SAND_VALLEY_OVERHAUL_INTERNAL
if (color.r > color.b * 2.0) color.rgb = changeColorFunction(color.rgb, 7.0, colorSoul, inSoulValley);
#endif
#ifdef PURPLE_END_FIRE_INTERNAL
if (color.r > color.b * 2.0) color.rgb = changeColorFunction(color.rgb, 7.0, colorEndBreath, 1.0);
#endif
}
}
} else { // 50048 to 50064
if (entityId < 50056) { // 50048 to 50056
if (entityId == 50048) { // Glow Squid
lmCoordM.x = 0.0;
float dotColor = dot(color.rgb, color.rgb);
emission = pow2(pow2(min(dotColor * 0.65, 1.5))) + 0.45;
} else /*if (entityId == 50052)*/ { // Magma Cube
emission = color.g * 6.0;
#ifdef SOUL_SAND_VALLEY_OVERHAUL_INTERNAL
color.rgb = changeColorFunction(color.rgb, 2.0, colorSoul, inSoulValley);
#endif
#ifdef PURPLE_END_FIRE_INTERNAL
color.rgb = changeColorFunction(color.rgb, 2.0, colorEndBreath, 1.0);
#endif
}
} else { // 50056 to 50064
if (entityId == 50056) { // Stray
if (CheckForColor(color.rgb, vec3(230, 242, 246)) && texCoord.y > 0.35)
emission = 1.75;
} else /*if (entityId == 50060)*/ { // Vex
lmCoordM = vec2(0.0);
emission = pow2(pow2(color.r)) * 3.5 + 0.5;
color.a *= color.a;
}
}
}
}
} else { // 50064 to 50128
if (entityId < 50096) { // 50064 to 50096
if (entityId < 50080) { // 50064 to 50080
if (entityId < 50072) { // 50064 to 50072
if (entityId == 50064) { // Witch
emission = 2.0 * color.g * float(color.g * 1.5 > color.b + color.r);
} else /*if (entityId == 50068)*/ { // Wither, Wither Skull
lmCoordM.x = 0.9;
emission = 3.0 * float(dot(color.rgb, color.rgb) > 1.0);
}
} else { // 50072 to 50080
if (entityId == 50072) { // Experience Orb
emission = 7.5;
color.rgb *= color.rgb;
} else /*if (entityId == 50076)*/ { // Boats
playerPos.y += 0.38; // consistentBOAT2176: to avoid water shadow and the black inner shadow bug
}
}
} else { // 50080 to 50096
if (entityId < 50088) { // 50080 to 50088
if (entityId == 50080) { // Allay
if (atlasSize.x < 900) {
lmCoordM = vec2(0.0);
emission = float(color.r > 0.9 && color.b > 0.9) * 5.0 + color.g;
} else {
lmCoordM.x = 0.8;
}
} else /*if (entityId == 50084)*/ { // Slime, Chicken
//only code is in Vertex Shader for now
}
} else { // 50088 to 50096
if (entityId == 50088) { // Entity Flame (Iris Feature)
#ifdef SOUL_SAND_VALLEY_OVERHAUL_INTERNAL
color.rgb = changeColorFunction(color.rgb, 3.0, colorSoul, inSoulValley);
#endif
#ifdef PURPLE_END_FIRE_INTERNAL
color.rgb = changeColorFunction(color.rgb, 3.0, colorEndBreath, 1.0);
#endif
emission = 1.3;
} else if (entityId == 50089) { // fireball, small fireball, dragon fireball
#ifdef SOUL_SAND_VALLEY_OVERHAUL_INTERNAL
color.rgb = changeColorFunction(color.rgb, 4.0, colorSoul, inSoulValley);
#endif
#ifdef PURPLE_END_FIRE_INTERNAL
color.rgb = changeColorFunction(color.rgb, 4.0, colorEndBreath, 1.0);
#endif
} else /*if (entityId == 50092)*/ { // Trident Entity
#if defined IS_IRIS || defined IS_ANGELICA && ANGELICA_VERSION >= 20000008
// Only on Iris, because otherwise it would be inconsistent with the Trident item
#include "/lib/materials/specificMaterials/others/trident.glsl"
#endif
}
}
}
} else { // 50096 to 50128
if (entityId < 50112) { // 50096 to 50112
if (entityId < 50104) { // 50096 to 50104
if (entityId == 50096) { // Minecart++
if (atlasSize.x < 900 && color.r * color.g * color.b + color.b > 0.3) {
#include "/lib/materials/specificMaterials/terrain/ironBlock.glsl"
smoothnessD *= 0.6;
}
} else /*if (entityId == 50100)*/ { // Bogged
if (CheckForColor(color.rgb, vec3(239, 254, 194)))
emission = 2.5;
}
} else { // 50104 to 50112
if (entityId == 50104) { // Piglin++, Hoglin+
if (atlasSize.x < 900) {
if (CheckForColor(color.rgb, vec3(255)) || CheckForColor(color.rgb, vec3(255, 242, 246))) {
vec2 tSize = textureSize(tex, 0);
vec4 checkColorOneRight = texelFetch(tex, ivec2(texCoord * tSize) + ivec2(1, 0), 0);
if (
CheckForColor(checkColorOneRight.rgb, vec3(201, 130, 101)) ||
CheckForColor(checkColorOneRight.rgb, vec3(241, 158, 152)) ||
CheckForColor(checkColorOneRight.rgb, vec3(223, 127, 119)) ||
CheckForColor(checkColorOneRight.rgb, vec3(241, 158, 152)) ||
CheckForColor(checkColorOneRight.rgb, vec3(165, 99, 80)) ||
CheckForColor(checkColorOneRight.rgb, vec3(213, 149, 122)) ||
CheckForColor(checkColorOneRight.rgb, vec3(255))
) {
emission = 1.0;
}
}
}
} else /*if (entityId == 50108)*/ { // Creaking
if (color.r > 0.7 && color.r > color.g * 1.2 && color.g > color.b * 2.0) { // Eyes
lmCoordM.x = 0.5;
emission = 5.0 * color.g;
color.rgb *= color.rgb;
purkinjeOverwrite = 1.0;
}
}
}
} else { // 50112 to 50128
if (entityId < 50120) { // 50112 to 50120
if (entityId == 50112) { // Name Tag
noDirectionalShading = true;
color.rgb *= 1.5;
if (color.a < 0.5) {
color.a = 0.12;
color.rgb *= 5.0;
}
} else /*if (entityId == 50116)*/ { // Copper Golem
#include "/lib/materials/specificMaterials/terrain/copperBlock.glsl"
smoothnessD *= 0.5;
}
} else { // 50120 to 50128
if (entityId == 50120) { // Parched
if (CheckForColor(color.rgb, vec3(254, 235, 194))) {
vec2 tSize = textureSize(tex, 0);
vec4 checkColorOneDown = texelFetch(tex, ivec2(texCoord * tSize) + ivec2(0, 1), 0);
if (CheckForColor(checkColorOneDown.rgb, vec3(135, 126, 118)) ||
CheckForColor(checkColorOneDown.rgb, vec3(106, 103, 98))
) {
emission = 1.75;
}
}
} else /*if (entityId == 50124)*/ { // Zombie Nautilus
if (CheckForColor(color.rgb, vec3(143, 241, 215)) || CheckForColor(color.rgb, vec3(101, 224, 221)))
emission = 1.5;
}
}
}
}
}
} else { // 50128 to 50256
if (entityId < 50192) { // 50128 to 50192
if (entityId < 50160) { // 50128 to 50160
if (entityId < 50144) { // 50128 to 50144
if (entityId < 50136) { // 50128 to 50136
if (entityId < 50132) { // 50128 to 50132
// 50128
// 50129
// 50130
// 50131
} else { // 50132 to 50136
// 50132
// 50133
// 50134
// 50135
}
} else { // 50136 to 50144
if (entityId < 50140) { // 50136 to 50140
// 50136
// 50137
// 50138
// 50139
} else { // 50140 to 50144
// 50140
// 50141
// 50142
// 50143
}
}
} else { // 50144 to 50160
if (entityId < 50152) { // 50144 to 50152
if (entityId < 50148) { // 50144 to 50148
// 50144
// 50145
// 50146
// 50147
} else { // 50148 to 50152
// 50148
// 50149
// 50150
// 50151
}
} else { // 50152 to 50160
if (entityId < 50156) { // 50152 to 50156
// 50152
// 50153
// 50154
// 50155
} else { // 50156 to 50160
// 50156
// 50157
// 50158
// 50159
}
}
}
} else { // 50160 to 50192
if (entityId < 50176) { // 50160 to 50176
if (entityId < 50168) { // 50160 to 50168
if (entityId < 50164) { // 50160 to 50164
// 50160
// 50161
// 50162
// 50163
} else { // 50164 to 50168
// 50164
// 50165
// 50166
// 50167
}
} else { // 50168 to 50176
if (entityId < 50172) { // 50168 to 50172
// 50168
// 50169
// 50170
// 50171
} else { // 50172 to 50176
// 50172
// 50173
// 50174
// 50175
}
}
} else { // 50176 to 50192
if (entityId < 50184) { // 50176 to 50184
if (entityId < 50180) { // 50176 to 50180
// 50176
// 50177
// 50178
// 50179
} else { // 50180 to 50184
// 50180
// 50181
// 50182
// 50183
}
} else { // 50184 to 50192
if (entityId < 50188) { // 50184 to 50188
// 50184
// 50185
// 50186
// 50187
} else { // 50188 to 50192
// 50188
// 50189
// 50190
// 50191
}
}
}
}
} else { // 50192 to 50256
if (entityId < 50224) { // 50192 to 50224
if (entityId < 50208) { // 50192 to 50208
if (entityId < 50200) { // 50192 to 50200
if (entityId < 50196) { // 50192 to 50196
// 50192
// 50193
// 50194
// 50195
} else { // 50196 to 50200
// 50196
// 50197
// 50198
// 50199
}
} else { // 50200 to 50208
if (entityId < 50204) { // 50200 to 50204
// 50200
// 50201
// 50202
// 50203
} else { // 50204 to 50208
// 50204
// 50205
// 50206
// 50207
}
}
} else { // 50208 to 50224
if (entityId < 50216) { // 50208 to 50216
if (entityId < 50212) { // 50208 to 50212
// 50208
// 50209
// 50210
// 50211
} else { // 50212 to 50216
// 50212
// 50213
// 50214
// 50215
}
} else { // 50216 to 50224
if (entityId < 50220) { // 50216 to 50220
// 50216
// 50217
// 50218
// 50219
} else { // 50220 to 50224
// 50220
// 50221
// 50222
// 50223
}
}
}
} else { // 50224 to 50256
if (entityId < 50240) { // 50224 to 50240
if (entityId < 50232) { // 50224 to 50232
if (entityId < 50228) { // 50224 to 50228
// 50224
// 50225
// 50226
// 50227
} else { // 50228 to 50232
// 50228
// 50229
// 50230
// 50231
}
} else { // 50232 to 50240
if (entityId < 50236) { // 50232 to 50236
// 50232
// 50233
// 50234
// 50235
} else { // 50236 to 50240
// 50236
// 50237
// 50238
// 50239
}
}
} else { // 50240 to 50256
if (entityId < 50248) { // 50240 to 50248
if (entityId < 50244) { // 50240 to 50244
// 50240
// 50241
// 50242
// 50243
} else { // 50244 to 50248
// 50244
// 50245
// 50246
// 50247
}
} else { // 50248 to 50256
if (entityId < 50252) { // 50248 to 50252
// 50248
// 50249
// 50250
// 50251
} else { // 50252 to 50256
// 50252
// 50253
// 50254
// 50255
}
}
}
}
}
}