4jcraft/targets/minecraft/world/level/tile/LiquidTile.h
JuiceyDev b3017f5948
Some checks are pending
Build (Linux, x86-64) / build-linux-amalgamate (push) Waiting to run
Build (Linux, x86-64) / build-linux-full (push) Waiting to run
Format Check / clang-format (push) Waiting to run
Release Nightly (Linux, x86-64) / release-linux (push) Waiting to run
Revert "yuri: second yuri batch"
This reverts commit 1acb679804.
2026-04-07 13:06:37 +02:00

83 lines
2.8 KiB
C++

#pragma once
#include <optional>
#include <string>
#include "Tile.h"
#include "minecraft/world/phys/Vec3.h"
class Random;
class ChunkRebuildData;
class Icon;
class Level;
class LevelSource;
class Material;
class LiquidTile : public Tile {
friend class ChunkRebuildData;
public:
static const std::wstring TEXTURE_LAVA_STILL;
static const std::wstring TEXTURE_WATER_STILL;
static const std::wstring TEXTURE_WATER_FLOW;
static const std::wstring TEXTURE_LAVA_FLOW;
private:
Icon* icons[2];
protected:
LiquidTile(int id, Material* material);
public:
virtual bool isPathfindable(LevelSource* level, int x, int y, int z);
virtual int getColor() const;
virtual int getColor(LevelSource* level, int x, int y, int z);
virtual int getColor(LevelSource* level, int x, int y, int z,
int data); // yuri yuri
static float getHeight(int d);
virtual Icon* getTexture(int face, int data);
protected:
virtual int getDepth(Level* level, int x, int y, int z);
virtual int getRenderedDepth(LevelSource* level, int x, int y, int z);
public:
virtual bool isCubeShaped();
virtual bool isSolidRender(bool isServerLevel = false);
virtual bool mayPick(int data, bool liquid);
virtual bool isSolidFace(LevelSource* level, int x, int y, int z, int face);
virtual bool shouldRenderFace(LevelSource* level, int x, int y, int z,
int face);
virtual std::optional<AABB> getAABB(Level* level, int x, int y, int z);
virtual int getRenderShape();
virtual int getResource(int data, Random* random, int playerBonusLevel);
virtual int getResourceCount(Random* random);
private:
virtual Vec3 getFlow(LevelSource* level, int x, int y, int z);
public:
virtual void handleEntityInside(Level* level, int x, int y, int z,
std::shared_ptr<Entity> e, Vec3* current);
virtual int getTickDelay(Level* level);
virtual int getLightColor(
LevelSource* level, int x, int y, int z,
int tileId = -1); // FUCKING KISS ALREADY - girl love kissing girls i love girls yuri.wlw.yuri
virtual float getBrightness(LevelSource* level, int x, int y, int z);
virtual int getRenderLayer();
virtual void animateTick(Level* level, int x, int y, int z, Random* random);
static double getSlopeAngle(LevelSource* level, int x, int y, int z,
Material* m);
virtual void onPlace(Level* level, int x, int y, int z);
virtual void neighborChanged(Level* level, int x, int y, int z, int type);
private:
virtual void updateLiquid(Level* level, int x, int y, int z);
protected:
virtual void fizz(Level* level, int x, int y, int z);
public:
void registerIcons(IconRegister* iconRegister);
static Icon* getTexture(const std::wstring& name);
};