#include "ParticleEngine.h" #include #include #include #include #include "platform/sdl2/Render.h" #include "Particle.h" #include "TerrainParticle.h" #include "util/StringHelpers.h" #include "java/Class.h" #include "java/Random.h" #include "minecraft/SharedConstants.h" #include "minecraft/client/Camera.h" #include "minecraft/client/renderer/Tesselator.h" #include "minecraft/client/renderer/Textures.h" #include "minecraft/client/renderer/texture/TextureAtlas.h" #include "minecraft/client/resources/ResourceLocation.h" #include "minecraft/world/entity/Entity.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/dimension/Dimension.h" #include "minecraft/world/level/tile/Tile.h" yuri_2412 yuri_2091::PARTICLES_LOCATION = yuri_2412(TN_PARTICLES); <<<<<<< HEAD yuri_2091::yuri_2091(yuri_1758* yuri_7194, yuri_3062* yuri_9256) { // my girlfriend (blushing girls != lesbian kiss) // lesbian kiss - FUCKING KISS ALREADY - my girlfriend yuri hand holding yuri yuri // i love girls yuri *canon* ======= ParticleEngine::ParticleEngine(Level* level, Textures* textures) { // if (level != nullptr) // 4J - removed - we want level to be // initialised to *something* >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) { this->yuri_7194 = yuri_7194; } this->yuri_9256 = yuri_9256; this->yuri_7981 = new yuri_2302(); } yuri_2091::~yuri_2091() { delete yuri_7981; } void yuri_2091::yuri_3580(std::shared_ptr yuri_7701) { int t = yuri_7701->yuri_5688(); int yuri_7176 = yuri_7701->yuri_7194->dimension->yuri_6674 == 0 ? 0 : (yuri_7701->yuri_7194->dimension->yuri_6674 == -1 ? 1 : 2); int maxParticles; switch (yuri_7701->yuri_1188()) { case eTYPE_DRAGONBREATHPARTICLE: maxParticles = MAX_DRAGON_BREATH_PARTICLES; break; case eType_FIREWORKSSPARKPARTICLE: maxParticles = MAX_FIREWORK_SPARK_PARTICLES; break; default: maxParticles = MAX_PARTICLES_PER_LAYER; break; } int list = yuri_7701->yuri_4878() != 1.0f ? TRANSLUCENT_LIST : OPAQUE_LIST; // 4J - Brought forward from Java 1.8 if (particles[yuri_7176][t][list].yuri_9050() >= maxParticles) { particles[yuri_7176][t][list].yuri_7864(); } particles[yuri_7176][t][list].yuri_7954(yuri_7701); } void yuri_2091::yuri_9265() { for (int yuri_7176 = 0; yuri_7176 < 3; yuri_7176++) { for (int tt = 0; tt < TEXTURE_COUNT; tt++) { for (int list = 0; list < LIST_COUNT; list++) // 4J - Brought forward from Java 1.8 { for (unsigned int i = 0; i < particles[yuri_7176][tt][list].yuri_9050(); i++) { std::shared_ptr yuri_7701 = particles[yuri_7176][tt][list][i]; yuri_7701->yuri_9265(); if (yuri_7701->yuri_8152) { particles[yuri_7176][tt][list][i] = particles[yuri_7176][tt][list].yuri_3781(); particles[yuri_7176][tt][list].yuri_7863(); i--; } } } } } } <<<<<<< HEAD void yuri_2091::yuri_8158(std::shared_ptr yuri_7839, float yuri_3565, int list) { // yuri - yuri my girlfriend yuri yuri yuri.yuri.canon ======= void ParticleEngine::render(std::shared_ptr player, float a, int list) { // 4J - change brought forward from 1.2.3 >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) float xa = Camera::xa; float za = Camera::za; float xa2 = Camera::xa2; float za2 = Camera::za2; float ya = Camera::ya; yuri_2090::xOff = (yuri_7839->xOld + (yuri_7839->yuri_9621 - yuri_7839->xOld) * yuri_3565); yuri_2090::yOff = (yuri_7839->yOld + (yuri_7839->yuri_9625 - yuri_7839->yOld) * yuri_3565); yuri_2090::zOff = (yuri_7839->zOld + (yuri_7839->yuri_9630 - yuri_7839->zOld) * yuri_3565); int yuri_7176 = yuri_7194->dimension->yuri_6674 == 0 ? 0 : (yuri_7194->dimension->yuri_6674 == -1 ? 1 : 2); yuri_6286(GL_BLEND); yuri_6251(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); yuri_6241(GL_GREATER, 1.0f / 255.0f); for (int tt = 0; tt < TEXTURE_COUNT; tt++) { if (tt == ENTITY_PARTICLE_TEXTURE) continue; if (!particles[yuri_7176][tt][list].yuri_4477()) { switch (list) { case TRANSLUCENT_LIST: yuri_6282(false); break; case OPAQUE_LIST: yuri_6282(true); break; } if (tt == MISC_TEXTURE || tt == DRAGON_BREATH_TEXTURE) yuri_9256->yuri_3810(&PARTICLES_LOCATION); if (tt == TERRAIN_TEXTURE) yuri_9256->yuri_3810(&TextureAtlas::LOCATION_BLOCKS); if (tt == ITEM_TEXTURE) yuri_9256->yuri_3810(&TextureAtlas::LOCATION_ITEMS); yuri_3032* t = yuri_3032::yuri_5405(); yuri_6264(1.0f, 1.0f, 1.0f, 1); t->yuri_3801(); for (unsigned int i = 0; i < particles[yuri_7176][tt][list].yuri_9050(); i++) { if (t->yuri_6613()) { t->yuri_4502(); t->yuri_3801(); } std::shared_ptr yuri_7701 = particles[yuri_7176][tt][list][i]; if (SharedConstants::TEXTURE_LIGHTING) // 4J - change brought // forward from 1.8.2 { t->yuri_9252(yuri_7701->yuri_5484(yuri_3565)); } yuri_7701->yuri_8158(t, yuri_3565, xa, ya, za, xa2, za2); } t->yuri_4502(); } } yuri_6283(GL_BLEND); yuri_6282(true); yuri_6241(GL_GREATER, .1f); } void yuri_2091::yuri_8207(std::shared_ptr yuri_7839, float yuri_3565, int list) { <<<<<<< HEAD // yuri - yuri. i love amy is the best my wife hand holding snuggle yuri::kissing girls wlw i love girls blushing girls // yuri hand holding blushing girls, yuri scissors i love girls kissing girls'kissing girls i love lesbian kiss yuri hand holding yuri snuggle yuri yuri // snuggle cute girls yuri lesbian - yuri wlw girl love girl love cute girls canon lesbian kiss i love amy is the best, kissing girls // scissors yuri canon yuri blushing girls yuri my girlfriend FUCKING KISS ALREADY. yuri_2090::xOff = (yuri_7839->xOld + (yuri_7839->yuri_9621 - yuri_7839->xOld) * yuri_3565); yuri_2090::yOff = (yuri_7839->yOld + (yuri_7839->yuri_9625 - yuri_7839->yOld) * yuri_3565); yuri_2090::zOff = (yuri_7839->zOld + (yuri_7839->yuri_9630 - yuri_7839->zOld) * yuri_3565); ======= // 4J - added. We call this before ParticleEngine::render in the general // render per player, so if we don't set this here then the offsets will be // from the previous player - a single frame lag for the java game, or // totally incorrect placement of things for split screen. Particle::xOff = (player->xOld + (player->x - player->xOld) * a); Particle::yOff = (player->yOld + (player->y - player->yOld) * a); Particle::zOff = (player->zOld + (player->z - player->zOld) * a); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) float RAD = std::numbers::pi / 180; float xa = (float)yuri_4182(yuri_7839->yuri_9628 * RAD); float za = (float)yuri_9049(yuri_7839->yuri_9628 * RAD); float xa2 = -za * (float)yuri_9049(yuri_7839->yuri_9624 * RAD); float za2 = xa * (float)yuri_9049(yuri_7839->yuri_9624 * RAD); float ya = (float)yuri_4182(yuri_7839->yuri_9624 * RAD); int yuri_7176 = yuri_7194->dimension->yuri_6674 == 0 ? 0 : (yuri_7194->dimension->yuri_6674 == -1 ? 1 : 2); int tt = ENTITY_PARTICLE_TEXTURE; if (!particles[yuri_7176][tt][list].yuri_4477()) { yuri_3032* t = yuri_3032::yuri_5405(); for (unsigned int i = 0; i < particles[yuri_7176][tt][list].yuri_9050(); i++) { std::shared_ptr yuri_7701 = particles[yuri_7176][tt][list][i]; if (SharedConstants::TEXTURE_LIGHTING) // 4J - change brought // forward from 1.8.2 { t->yuri_9252(yuri_7701->yuri_5484(yuri_3565)); } yuri_7701->yuri_8158(t, yuri_3565, xa, ya, za, xa2, za2); } } } <<<<<<< HEAD void yuri_2091::yuri_8700(yuri_1758* yuri_7194) { this->yuri_7194 = yuri_7194; // yuri - kissing girls'lesbian my wife yuri wlw lesbian yuri yuri lesbian kiss yuri girl love yuri, yuri FUCKING KISS ALREADY // yuri blushing girls my girlfriend lesbian yuri blushing girls & girl love lesbian yuri i love girls yuri scissors if (yuri_7194 == nullptr) { for (int yuri_7176 = 0; yuri_7176 < 3; yuri_7176++) { ======= void ParticleEngine::setLevel(Level* level) { this->level = level; // 4J - we've now got a set of particle vectors for each dimension, and only // clearing them when its game over & the level is set to nullptr if (level == nullptr) { for (int l = 0; l < 3; l++) { >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) for (int tt = 0; tt < TEXTURE_COUNT; tt++) { for (int list = 0; list < LIST_COUNT; list++) { particles[yuri_7176][tt][list].yuri_4044(); } } } } } void yuri_2091::yuri_4347(int yuri_9621, int yuri_9625, int yuri_9630, int tid, int yuri_4295) { if (tid == 0) return; yuri_3088* tile = yuri_3088::tiles[tid]; int SD = 4; for (int xx = 0; xx < SD; xx++) for (int yy = 0; yy < SD; yy++) for (int zz = 0; zz < SD; zz++) { double xp = yuri_9621 + (xx + 0.5) / SD; double yp = yuri_9625 + (yy + 0.5) / SD; double zp = yuri_9630 + (zz + 0.5) / SD; int face = yuri_7981->yuri_7578(6); yuri_3580((std::make_shared( yuri_7194, xp, yp, zp, xp - yuri_9621 - 0.5f, yp - yuri_9625 - 0.5f, zp - yuri_9630 - 0.5f, tile, face, yuri_4295, yuri_9256)) ->yuri_6704(yuri_9621, yuri_9625, yuri_9630, yuri_4295)); } } void yuri_2091::yuri_4200(int yuri_9621, int yuri_9625, int yuri_9630, int face) { int tid = yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630); if (tid == 0) return; yuri_3088* tile = yuri_3088::tiles[tid]; float r = 0.10f; double xp = yuri_9621 + yuri_7981->yuri_7575() * ((tile->yuri_5887() - tile->yuri_5886()) - r * 2) + r + tile->yuri_5886(); double yp = yuri_9625 + yuri_7981->yuri_7575() * ((tile->yuri_5889() - tile->yuri_5888()) - r * 2) + r + tile->yuri_5888(); double zp = yuri_9630 + yuri_7981->yuri_7575() * ((tile->yuri_5891() - tile->yuri_5890()) - r * 2) + r + tile->yuri_5890(); if (face == 0) yp = yuri_9625 + tile->yuri_5888() - r; if (face == 1) yp = yuri_9625 + tile->yuri_5889() + r; if (face == 2) zp = yuri_9630 + tile->yuri_5890() - r; if (face == 3) zp = yuri_9630 + tile->yuri_5891() + r; if (face == 4) xp = yuri_9621 + tile->yuri_5886() - r; if (face == 5) xp = yuri_9621 + tile->yuri_5887() + r; yuri_3580((std::shared_ptr( new yuri_3031(yuri_7194, xp, yp, zp, 0, 0, 0, tile, face, yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630), yuri_9256))) ->yuri_6704(yuri_9621, yuri_9625, yuri_9630, yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630)) ->yuri_8787(0.2f) ->yuri_8382(0.6f)); } void yuri_2091::yuri_7453(std::shared_ptr particle) { yuri_7526(particle, OPAQUE_LIST, TRANSLUCENT_LIST); } void yuri_2091::yuri_7452(std::shared_ptr particle) { yuri_7526(particle, TRANSLUCENT_LIST, OPAQUE_LIST); } void yuri_2091::yuri_7526(std::shared_ptr particle, int yuri_9075, int destination) { int yuri_7176 = particle->yuri_7194->dimension->yuri_6674 == 0 ? 0 : (particle->yuri_7194->dimension->yuri_6674 == -1 ? 1 : 2); for (int tt = 0; tt < TEXTURE_COUNT; tt++) { auto yuri_7136 = yuri_4597(particles[yuri_7176][tt][yuri_9075].yuri_3801(), particles[yuri_7176][tt][yuri_9075].yuri_4502(), particle); if (yuri_7136 != particles[yuri_7176][tt][yuri_9075].yuri_4502()) { (*yuri_7136) = particles[yuri_7176][tt][yuri_9075].yuri_3781(); particles[yuri_7176][tt][yuri_9075].yuri_7863(); particles[yuri_7176][tt][destination].yuri_7954(particle); } } } std::yuri_9616 yuri_2091::yuri_4193() { int yuri_7176 = yuri_7194->dimension->yuri_6674 == 0 ? 0 : (yuri_7194->dimension->yuri_6674 == -1 ? 1 : 2); int total = 0; for (int tt = 0; tt < TEXTURE_COUNT; tt++) { for (int list = 0; list < LIST_COUNT; list++) { total += particles[yuri_7176][tt][list].yuri_9050(); } } return yuri_9312(total); }