Files
mcpe/source/client/renderer/DynamicTexture.hpp

118 lines
1.9 KiB
C++

/********************************************************************
Minecraft: Pocket Edition - Decompilation Project
Copyright (C) 2023 iProgramInCpp
The following code is licensed under the BSD 1 clause license.
SPDX-License-Identifier: BSD-1-Clause
********************************************************************/
#pragma once
#include "Textures.hpp"
#include "common/Random.hpp"
class Textures; // in case we are being included from Textures. We don't need a complete type
// Essentially, the way these work is by patching themselves into terrain.png with a
// call to glTexSubImage2D
class DynamicTexture
{
public:
virtual void tick() = 0;
virtual void bindTexture(Textures*);
DynamicTexture(int a2);
virtual ~DynamicTexture();
protected:
int m_textureIndex;
int m_textureSize;
uint8_t m_pixels[1024];
friend class Textures;
};
class WaterTexture : public DynamicTexture
{
public:
WaterTexture();
~WaterTexture();
void tick() override;
public:
int field_40C;
int field_410;
float* m_data1;
float* m_data2;
float* m_data3;
float* m_data4;
};
class WaterSideTexture : public DynamicTexture
{
public:
WaterSideTexture();
~WaterSideTexture();
void tick() override;
public:
int field_40C;
int field_410;
int field_414;
float* m_data1;
float* m_data2;
float* m_data3;
float* m_data4;
};
class LavaTexture : public DynamicTexture
{
public:
LavaTexture();
~LavaTexture();
void tick() override;
public:
int field_14;
int field_18;
float* m_data1;
float* m_data2;
float* m_data3;
float* m_data4;
};
class LavaSideTexture : public DynamicTexture
{
public:
LavaSideTexture();
~LavaSideTexture();
void tick() override;
public:
int field_14;
int field_18;
int field_1C;
float* m_data1;
float* m_data2;
float* m_data3;
float* m_data4;
};
class FireTexture : public DynamicTexture
{
public:
FireTexture(int);
~FireTexture();
void tick() override;
public:
float* m_data1;
float* m_data2;
Random m_random;
};