#include "../../Platform/stdafx.h" #include "BubbleParticle.h" #include "../../../Minecraft.World/Util/Random.h" #include "../../../Minecraft.World/Util/Mth.h" #include "../../../Minecraft.World/Util/JavaMath.h" #include "../../../Minecraft.World/Headers/net.minecraft.world.level.h" #include "../../../Minecraft.World/Headers/net.minecraft.world.level.material.h" BubbleParticle::BubbleParticle(Level* level, double x, double y, double z, double xa, double ya, double za) : Particle(level, x, y, z, xa, ya, za) { rCol = 1.0f; gCol = 1.0f; bCol = 1.0f; setMiscTex(32); this->setSize(0.02f, 0.02f); size = size * (random->nextFloat() * 0.6f + 0.2f); xd = xa * 0.2f + (float)(Math::random() * 2 - 1) * 0.02f; yd = ya * 0.2f + (float)(Math::random() * 2 - 1) * 0.02f; zd = za * 0.2f + (float)(Math::random() * 2 - 1) * 0.02f; lifetime = (int)(8 / (Math::random() * 0.8 + 0.2)); } void BubbleParticle::tick() { xo = x; yo = y; zo = z; yd += 0.002; move(xd, yd, zd); xd *= 0.85f; yd *= 0.85f; zd *= 0.85f; if (level->getMaterial(Mth::floor(x), Mth::floor(y), Mth::floor(z)) != Material::water) remove(); if (lifetime-- <= 0) remove(); }