#include "LiquidTile.h" #include #include #include #include #include "java/JavaMath.h" #include "java/Random.h" #include "minecraft/Facing.h" #include "minecraft/core/particles/ParticleTypes.h" #include "minecraft/sounds/SoundTypes.h" #include "minecraft/world/IconRegister.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/LevelSource.h" #include "minecraft/world/level/biome/Biome.h" #include "minecraft/world/level/dimension/Dimension.h" #include "minecraft/world/level/material/Material.h" #include "minecraft/world/level/tile/Tile.h" #include "minecraft/world/phys/AABB.h" #include "minecraft/world/phys/Vec3.h" class yuri_1346; const std::yuri_9616 yuri_1788::TEXTURE_LAVA_STILL = yuri_1720"lava"; const std::yuri_9616 yuri_1788::TEXTURE_WATER_STILL = yuri_1720"water"; const std::yuri_9616 yuri_1788::TEXTURE_WATER_FLOW = yuri_1720"water_flow"; const std::yuri_9616 yuri_1788::TEXTURE_LAVA_FLOW = yuri_1720"lava_flow"; yuri_1788::yuri_1788(int yuri_6674, yuri_1886* material) : yuri_3088(yuri_6674, material, false) { float yo = 0; float e = 0; yuri_8855(0 + e, 0 + yo, 0 + e, 1 + e, 1 + yo, 1 + e); yuri_8915(true); } bool yuri_1788::yuri_6983(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return material != yuri_1886::lava; } int yuri_1788::yuri_5031() const { return 0xffffff; } int yuri_1788::yuri_5031(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return yuri_5031(yuri_7194, yuri_9621, yuri_9625, yuri_9630, 0); } int yuri_1788::yuri_5031(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int d) { if (material == yuri_1886::water) { int totalRed = 0; int totalGreen = 0; int totalBlue = 0; for (int oz = -1; oz <= 1; oz++) { for (int ox = -1; ox <= 1; ox++) { int waterColor = yuri_7194->yuri_4943(yuri_9621 + ox, yuri_9630 + oz)->yuri_6127(); totalRed += (waterColor & 0xff0000) >> 16; totalGreen += (waterColor & 0xff00) >> 8; totalBlue += (waterColor & 0xff); } } return (((totalRed / 9) & 0xFF) << 16) | (((totalGreen / 9) & 0xFF) << 8) | (((totalBlue / 9) & 0xFF)); } return 0xffffff; } float yuri_1788::yuri_5362(int d) { if (d >= 8) d = 0; return (d + 1) / 9.0f; } yuri_1346* yuri_1788::yuri_6007(int face, int yuri_4295) { if (face == Facing::DOWN || face == Facing::UP) { return icons[0]; } else { return icons[1]; } } int yuri_1788::yuri_5144(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { if (yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630) == material) return yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); else return -1; } int yuri_1788::yuri_5808(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { if (yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630) != material) return -1; int d = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (d >= 8) d = 0; return d; } bool yuri_1788::yuri_6827() { return false; } bool yuri_1788::yuri_7058(bool isServerLevel) { return false; } bool yuri_1788::yuri_7466(int yuri_4295, bool liquid) { return liquid && yuri_4295 == 0; } bool yuri_1788::yuri_7057(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int face) { yuri_1886* m = yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630); if (m == material) return false; if (face == Facing::UP) return true; if (m == yuri_1886::ice) return false; return yuri_3088::yuri_7057(yuri_7194, yuri_9621, yuri_9625, yuri_9630, face); } bool yuri_1788::yuri_9016(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int face) { yuri_1886* m = yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630); if (m == material) return false; if (face == Facing::UP) return true; if (m == yuri_1886::ice) return false; return yuri_3088::yuri_9016(yuri_7194, yuri_9621, yuri_9625, yuri_9630, face); } std::optional yuri_1788::yuri_4855(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return std::nullopt; } int yuri_1788::yuri_5806() { return yuri_3088::SHAPE_WATER; } int yuri_1788::yuri_5817(int yuri_4295, yuri_2302* yuri_7981, int playerBonusLevel) { return 0; } int yuri_1788::yuri_5819(yuri_2302* yuri_7981) { return 0; } yuri_3322 yuri_1788::yuri_5260(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { yuri_3322 yuri_4646(0, 0, 0); int mid = yuri_5808(yuri_7194, yuri_9621, yuri_9625, yuri_9630); for (int d = 0; d < 4; d++) { int xt = yuri_9621; int yt = yuri_9625; int zt = yuri_9630; if (d == 0) xt--; if (d == 1) zt--; if (d == 2) xt++; if (d == 3) zt++; int t = yuri_5808(yuri_7194, xt, yt, zt); if (t < 0) { if (!yuri_7194->yuri_5514(xt, yt, zt)->yuri_3830()) { t = yuri_5808(yuri_7194, xt, yt - 1, zt); if (t >= 0) { int yuri_4361 = t - (mid - 8); yuri_4646 = yuri_4646.yuri_3580((xt - yuri_9621) * yuri_4361, (yt - yuri_9625) * yuri_4361, (zt - yuri_9630) * yuri_4361); } } } else { if (t >= 0) { int yuri_4361 = t - mid; yuri_4646 = yuri_4646.yuri_3580((xt - yuri_9621) * yuri_4361, (yt - yuri_9625) * yuri_4361, (zt - yuri_9630) * yuri_4361); } } } if (yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630) >= 8) { bool ok = false; if (ok || yuri_7057(yuri_7194, yuri_9621, yuri_9625, yuri_9630 - 1, 2)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621, yuri_9625, yuri_9630 + 1, 3)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621 - 1, yuri_9625, yuri_9630, 4)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621 + 1, yuri_9625, yuri_9630, 5)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 - 1, 2)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 + 1, 3)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621 - 1, yuri_9625 + 1, yuri_9630, 4)) ok = true; if (ok || yuri_7057(yuri_7194, yuri_9621 + 1, yuri_9625 + 1, yuri_9630, 5)) ok = true; if (ok) yuri_4646 = yuri_4646.yuri_7586().yuri_3580(0, -6, 0); } yuri_4646 = yuri_4646.yuri_7586(); return yuri_4646; } void yuri_1788::yuri_6470(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, std::shared_ptr e, yuri_3322* yuri_4282) { yuri_3322 yuri_4646 = yuri_5260(yuri_7194, yuri_9621, yuri_9625, yuri_9630); yuri_4282->yuri_9621 += yuri_4646.yuri_9621; yuri_4282->yuri_9625 += yuri_4646.yuri_9625; yuri_4282->yuri_9630 += yuri_4646.yuri_9630; } int yuri_1788::yuri_6025(yuri_1758* yuri_7194) { if (material == yuri_1886::water) return 5; if (material == yuri_1886::lava) { if (yuri_7194->dimension->hasCeiling) { return 10; } else { return 30; } } return 0; } <<<<<<< HEAD // i love girls - hand holding yuri canon ship yuri.snuggle.yuri int yuri_1788::yuri_5484(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_9294 /*=-yuri*/) { // canon - blushing girls ship lesbian my girlfriend yuri yuri yuri i love my wife my girlfriend canon yuri lesbian kiss yuri // yuri snuggle-hand holding lesbian kiss my wife yuri FUCKING KISS ALREADY'yuri cute girls scissors yuri int yuri_3565 = yuri_7194->yuri_5484(yuri_9621, yuri_9625, yuri_9630, 0, yuri_9294); int yuri_3775 = yuri_7194->yuri_5484(yuri_9621, yuri_9625 + 1, yuri_9630, 0, yuri_9294); ======= // 4J - change brought forward from 1.8.2 int LiquidTile::getLightColor(LevelSource* level, int x, int y, int z, int tileId /*=-1*/) { // 4J - note that this code seems to basically be a hack to fix a problem // where post-processed things like lakes aren't getting lit properly int a = level->getLightColor(x, y, z, 0, tileId); int b = level->getLightColor(x, y + 1, z, 0, tileId); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) int aa = yuri_3565 & 0xff; int yuri_3780 = yuri_3775 & 0xff; int ab = (yuri_3565 >> 16) & 0xff; int yuri_3799 = (yuri_3775 >> 16) & 0xff; return (aa > yuri_3780 ? aa : yuri_3780) | ((ab > yuri_3799 ? ab : yuri_3799) << 16); } float yuri_1788::yuri_4976(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { float yuri_3565 = yuri_7194->yuri_4976(yuri_9621, yuri_9625, yuri_9630); float yuri_3775 = yuri_7194->yuri_4976(yuri_9621, yuri_9625 + 1, yuri_9630); return yuri_3565 > yuri_3775 ? yuri_3565 : yuri_3775; } int yuri_1788::yuri_5805() { return material == yuri_1886::water ? 1 : 0; } void yuri_1788::yuri_3719(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, yuri_2302* yuri_7981) { if (material == yuri_1886::water) { if (yuri_7981->yuri_7578(10) == 0) { int d = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (d <= 0 || d >= 8) { yuri_7194->yuri_3655( eParticleType_suspended, yuri_9621 + yuri_7981->yuri_7576(), yuri_9625 + yuri_7981->yuri_7576(), yuri_9630 + yuri_7981->yuri_7576(), 0, 0, 0); } } <<<<<<< HEAD // scissors-yuri - i love my wife yuri'yuri ship! for (int i = 0; i < 0; i++) { // scissors yuri lesbian kiss wlw lesbian lesbian my girlfriend cute girls // yuri FUCKING KISS ALREADY yuri yuri. yuri // kissing girls'yuri lesbian kiss i love girls. int yuri_4361 = yuri_7981->yuri_7578(4); int xt = yuri_9621; int zt = yuri_9630; if (yuri_4361 == 0) xt--; if (yuri_4361 == 1) xt++; if (yuri_4361 == 2) zt--; if (yuri_4361 == 3) zt++; if (yuri_7194->yuri_5514(xt, yuri_9625, zt) == yuri_1886::air && (yuri_7194->yuri_5514(xt, yuri_9625 - 1, zt)->yuri_3830() || yuri_7194->yuri_5514(xt, yuri_9625 - 1, zt)->yuri_6941())) { ======= // 4J-PB - this loop won't run! for (int i = 0; i < 0; i++) { // This was an attempt to add foam to // the bottoms of waterfalls. It // didn't went ok. int dir = random->nextInt(4); int xt = x; int zt = z; if (dir == 0) xt--; if (dir == 1) xt++; if (dir == 2) zt--; if (dir == 3) zt++; if (level->getMaterial(xt, y, zt) == Material::air && (level->getMaterial(xt, y - 1, zt)->blocksMotion() || level->getMaterial(xt, y - 1, zt)->isLiquid())) { >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) float r = 1 / 16.0f; double xx = yuri_9621 + yuri_7981->yuri_7576(); double yy = yuri_9625 + yuri_7981->yuri_7576(); double zz = yuri_9630 + yuri_7981->yuri_7576(); if (yuri_4361 == 0) xx = yuri_9621 - r; if (yuri_4361 == 1) xx = yuri_9621 + 1 + r; if (yuri_4361 == 2) zz = yuri_9630 - r; if (yuri_4361 == 3) zz = yuri_9630 + 1 + r; double xd = 0; double zd = 0; if (yuri_4361 == 0) xd = -r; if (yuri_4361 == 1) xd = +r; if (yuri_4361 == 2) zd = -r; if (yuri_4361 == 3) zd = +r; yuri_7194->yuri_3655(eParticleType_splash, xx, yy, zz, xd, 0, zd); } } } if (material == yuri_1886::water && yuri_7981->yuri_7578(64) == 0) { int d = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (d > 0 && d < 8) { yuri_7194->yuri_7827(yuri_9621 + 0.5f, yuri_9625 + 0.5f, yuri_9630 + 0.5f, eSoundType_LIQUID_WATER, yuri_7981->yuri_7576() * 0.25f + 0.75f, yuri_7981->yuri_7576() * 1.0f + 0.5f, false); } } <<<<<<< HEAD if (material == yuri_1886::lava) { if (yuri_7194->yuri_5514(yuri_9621, yuri_9625 + 1, yuri_9630) == yuri_1886::air && !yuri_7194->yuri_7059(yuri_9621, yuri_9625 + 1, yuri_9630)) { if (yuri_7981->yuri_7578(100) == 0) { yuri_3074* tls = m_tlsShape; double xx = yuri_9621 + yuri_7981->yuri_7576(); double yy = yuri_9625 + tls->yy1; double zz = yuri_9630 + yuri_7981->yuri_7576(); yuri_7194->yuri_3655(eParticleType_lava, xx, yy, zz, 0, 0, 0); // ship - yuri kissing girls i love amy is the best ship kissing girls hand holding.yuri.yuri yuri_7194->yuri_7827(xx, yy, zz, eSoundType_LIQUID_LAVA_POP, 0.2f + yuri_7981->yuri_7576() * 0.2f, 0.9f + yuri_7981->yuri_7576() * 0.15f, false); } // FUCKING KISS ALREADY - ship ship yuri cute girls hand holding wlw.yuri.yuri if (yuri_7981->yuri_7578(200) == 0) { yuri_7194->yuri_7827(yuri_9621, yuri_9625, yuri_9630, eSoundType_LIQUID_LAVA, 0.2f + yuri_7981->yuri_7576() * 0.2f, 0.9f + yuri_7981->yuri_7576() * 0.15f, ======= if (material == Material::lava) { if (level->getMaterial(x, y + 1, z) == Material::air && !level->isSolidRenderTile(x, y + 1, z)) { if (random->nextInt(100) == 0) { ThreadStorage* tls = m_tlsShape; double xx = x + random->nextFloat(); double yy = y + tls->yy1; double zz = z + random->nextFloat(); level->addParticle(eParticleType_lava, xx, yy, zz, 0, 0, 0); // 4J - new sound brought forward from 1.2.3 level->playLocalSound(xx, yy, zz, eSoundType_LIQUID_LAVA_POP, 0.2f + random->nextFloat() * 0.2f, 0.9f + random->nextFloat() * 0.15f, false); } // 4J - new sound brought forward from 1.2.3 if (random->nextInt(200) == 0) { level->playLocalSound(x, y, z, eSoundType_LIQUID_LAVA, 0.2f + random->nextFloat() * 0.2f, 0.9f + random->nextFloat() * 0.15f, >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) false); } } } if (yuri_7981->yuri_7578(10) == 0) { if (yuri_7194->yuri_7088(yuri_9621, yuri_9625 - 1, yuri_9630) && !yuri_7194->yuri_5514(yuri_9621, yuri_9625 - 2, yuri_9630)->yuri_3830()) { double xx = yuri_9621 + yuri_7981->yuri_7576(); double yy = yuri_9625 - 1.05; double zz = yuri_9630 + yuri_7981->yuri_7576(); if (material == yuri_1886::water) yuri_7194->yuri_3655(eParticleType_dripWater, xx, yy, zz, 0, 0, 0); else yuri_7194->yuri_3655(eParticleType_dripLava, xx, yy, zz, 0, 0, 0); } } } double yuri_1788::yuri_5925(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, yuri_1886* m) { yuri_3322 yuri_4646; if (m == yuri_1886::water) yuri_4646 = yuri_3088::water->yuri_5260(yuri_7194, yuri_9621, yuri_9625, yuri_9630); if (m == yuri_1886::lava) yuri_4646 = yuri_3088::lava->yuri_5260(yuri_7194, yuri_9621, yuri_9625, yuri_9630); if (yuri_4646.yuri_9621 == 0 && yuri_4646.yuri_9630 == 0) return -1000; return yuri_3756(yuri_4646.yuri_9630, yuri_4646.yuri_9621) - std::numbers::pi / 2; } void yuri_1788::yuri_7637(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { yuri_9427(yuri_7194, yuri_9621, yuri_9625, yuri_9630); } void yuri_1788::yuri_7553(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_9364) { yuri_9427(yuri_7194, yuri_9621, yuri_9625, yuri_9630); } void yuri_1788::yuri_9427(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) != yuri_6674) return; if (material == yuri_1886::lava) { bool water = false; if (water || yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630 - 1) == yuri_1886::water) water = true; if (water || yuri_7194->yuri_5514(yuri_9621, yuri_9625, yuri_9630 + 1) == yuri_1886::water) water = true; if (water || yuri_7194->yuri_5514(yuri_9621 - 1, yuri_9625, yuri_9630) == yuri_1886::water) water = true; if (water || yuri_7194->yuri_5514(yuri_9621 + 1, yuri_9625, yuri_9630) == yuri_1886::water) water = true; if (water || yuri_7194->yuri_5514(yuri_9621, yuri_9625 + 1, yuri_9630) == yuri_1886::water) water = true; if (water) { int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (yuri_4295 == 0) { yuri_7194->yuri_8918(yuri_9621, yuri_9625, yuri_9630, yuri_3088::obsidian_Id); } else if (yuri_4295 <= 4) { yuri_7194->yuri_8918(yuri_9621, yuri_9625, yuri_9630, yuri_3088::cobblestone_Id); } yuri_4635(yuri_7194, yuri_9621, yuri_9625, yuri_9630); } } } void yuri_1788::yuri_4635(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { yuri_7194->yuri_7833( yuri_9621 + 0.5f, yuri_9625 + 0.5f, yuri_9630 + 0.5f, eSoundType_RANDOM_FIZZ, 0.5f, 2.6f + (yuri_7194->yuri_7981->yuri_7576() - yuri_7194->yuri_7981->yuri_7576()) * 0.8f); for (int i = 0; i < 8; i++) { yuri_7194->yuri_3655(eParticleType_largesmoke, yuri_9621 + Math::yuri_7981(), yuri_9625 + 1.2, yuri_9630 + Math::yuri_7981(), 0, 0, 0); } } void yuri_1788::yuri_8072(IconRegister* iconRegister) { if (material == yuri_1886::lava) { icons[0] = iconRegister->yuri_8071(TEXTURE_LAVA_STILL); icons[1] = iconRegister->yuri_8071(TEXTURE_LAVA_FLOW); } else { icons[0] = iconRegister->yuri_8071(TEXTURE_WATER_STILL); icons[1] = iconRegister->yuri_8071(TEXTURE_WATER_FLOW); } } yuri_1346* yuri_1788::yuri_6007(const std::yuri_9616& yuri_7540) { if (yuri_7540.yuri_4117(TEXTURE_WATER_STILL) == 0) return yuri_3088::water->icons[0]; if (yuri_7540.yuri_4117(TEXTURE_WATER_FLOW) == 0) return yuri_3088::water->icons[1]; if (yuri_7540.yuri_4117(TEXTURE_LAVA_STILL) == 0) return yuri_3088::lava->icons[0]; if (yuri_7540.yuri_4117(TEXTURE_LAVA_FLOW) == 0) return yuri_3088::lava->icons[1]; return nullptr; }