Files
mcpe/source/world/tile/FireTile.hpp
2023-08-10 13:27:30 +03:00

45 lines
1.4 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 "Tile.hpp"
class FireTile : public Tile
{
public:
FireTile(int ID, int texture);
AABB* getAABB(Level*, int x, int y, int z);
int getRenderShape() override;
bool isCubeShaped() override;
bool isSolidRender() override;
int getResourceCount(Random*) override;
int getTickDelay() override;
bool mayPick() override;
bool mayPlace(Level*, int x, int y, int z) override;
void animateTick(Level*, int x, int y, int z, Random*) override;
void neighborChanged(Level*, int x, int y, int z, int dir) override;
void onPlace(Level*, int x, int y, int z) override;
void tick(Level*, int x, int y, int z, Random*) override;
void checkBurn(Level*, int x, int y, int z, int, Random*);
int getFireOdds(Level*, int x, int y, int z);
bool isValidFireLocation(Level*, int x, int y, int z);
// @NOTE: This is inlined in V0.1.0 but not V0.7.1
inline bool canBurn(LevelSource* level, int x, int y, int z)
{
return m_igniteOdds[level->getTile(x, y, z)] > 0;
}
public:
int m_igniteOdds[C_MAX_TILES];
int m_burnOdds[C_MAX_TILES];
};