mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-23 20:09:46 +03:00
github.dev removing files randomly lmfao
This commit is contained in:
236
source/world/tile/StairTile.cpp
Normal file
236
source/world/tile/StairTile.cpp
Normal file
@@ -0,0 +1,236 @@
|
||||
/********************************************************************
|
||||
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
|
||||
********************************************************************/
|
||||
|
||||
#include "Tile.hpp"
|
||||
#include "Level.hpp"
|
||||
|
||||
// @NOTE: All this work for some stairs; damn
|
||||
|
||||
StairTile::StairTile(int id, Tile* pTile) : Tile(id, pTile->m_TextureFrame, pTile->m_pMaterial)
|
||||
{
|
||||
m_pParent = pTile;
|
||||
|
||||
// inherit these properties from the parent tile
|
||||
setDestroyTime(pTile->m_hardness);
|
||||
setExplodeable(pTile->m_blastResistance / 3.0f);
|
||||
setSoundType(*pTile->m_pSound);
|
||||
}
|
||||
|
||||
void StairTile::addAABBs(Level* level, int x, int y, int z, const AABB* aabb, std::vector<AABB>& out)
|
||||
{
|
||||
int data = level->getData(x, y, z);
|
||||
switch (data)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
setShape(0.0f, 0.0f, 0.0f, 0.5f, 0.5f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
setShape(0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
setShape(0.0f, 0.0f, 0.0f, 0.5f, 1.0f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
setShape(0.5f, 0.0f, 0.0f, 1.0f, 0.5f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
setShape(0.0f, 0.0f, 0.0f, 1.0f, 0.5f, 0.5f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
setShape(0.0f, 0.0f, 0.5f, 1.0f, 1.0f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
setShape(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.5f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
setShape(0.0f, 0.0f, 0.5f, 1.0f, 0.5f, 1.0f);
|
||||
Tile::addAABBs(level, x, y, z, aabb, out);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
setShape(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
|
||||
bool StairTile::isSolidRender()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool StairTile::isCubeShaped()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int StairTile::getRenderShape()
|
||||
{
|
||||
return SHAPE_STAIRS;
|
||||
}
|
||||
|
||||
void StairTile::addLights(Level* level, int x, int y, int z)
|
||||
{
|
||||
m_pParent->addLights(level, x, y, z);
|
||||
}
|
||||
|
||||
void StairTile::animateTick(Level* level, int x, int y, int z, Random* random)
|
||||
{
|
||||
m_pParent->animateTick(level, x, y, z, random);
|
||||
}
|
||||
|
||||
void StairTile::updateShape(LevelSource* level, int x, int y, int z)
|
||||
{
|
||||
setShape(0, 0, 0, 1, 1, 1);
|
||||
}
|
||||
|
||||
float StairTile::getBrightness(LevelSource* level, int x, int y, int z)
|
||||
{
|
||||
return m_pParent->getBrightness(level, x, y, z);
|
||||
}
|
||||
|
||||
int StairTile::getTexture(int a)
|
||||
{
|
||||
return m_pParent->getTexture(a);
|
||||
}
|
||||
|
||||
int StairTile::getTexture(int a, int b)
|
||||
{
|
||||
return m_pParent->getTexture(a, b);
|
||||
}
|
||||
|
||||
int StairTile::getTexture(LevelSource* level, int x, int y, int z, int data)
|
||||
{
|
||||
return m_pParent->getTexture(level, x, y, z, data);
|
||||
}
|
||||
|
||||
AABB StairTile::getTileAABB(Level* level, int x, int y, int z)
|
||||
{
|
||||
return m_pParent->getTileAABB(level, x, y, z);
|
||||
}
|
||||
|
||||
bool StairTile::mayPick()
|
||||
{
|
||||
return m_pParent->mayPick();
|
||||
}
|
||||
|
||||
bool StairTile::mayPick(int a, bool b)
|
||||
{
|
||||
return m_pParent->mayPick(a, b);
|
||||
}
|
||||
|
||||
bool StairTile::mayPlace(Level* level, int x, int y, int z)
|
||||
{
|
||||
return m_pParent->mayPlace(level, x, y, z);
|
||||
}
|
||||
|
||||
int StairTile::getTickDelay()
|
||||
{
|
||||
return m_pParent->getTickDelay();
|
||||
}
|
||||
|
||||
void StairTile::tick(Level* level, int x, int y, int z, Random* random)
|
||||
{
|
||||
m_pParent->tick(level, x, y, z, random);
|
||||
}
|
||||
|
||||
void StairTile::destroy(Level* level, int x, int y, int z, int dir)
|
||||
{
|
||||
m_pParent->destroy(level, x, y, z, dir);
|
||||
}
|
||||
|
||||
void StairTile::onPlace(Level* level, int x, int y, int z)
|
||||
{
|
||||
neighborChanged(level, x, y, z, 0);
|
||||
m_pParent->onPlace(level, x, y, z);
|
||||
}
|
||||
|
||||
void StairTile::onRemove(Level* level, int x, int y, int z)
|
||||
{
|
||||
m_pParent->onRemove(level, x, y, z);
|
||||
}
|
||||
|
||||
int StairTile::getResource(int a, Random* random)
|
||||
{
|
||||
return m_pParent->getResource(a, random);
|
||||
}
|
||||
|
||||
int StairTile::getResourceCount(Random* random)
|
||||
{
|
||||
return m_pParent->getResourceCount(random);
|
||||
}
|
||||
|
||||
void StairTile::spawnResources(Level* level, int x, int y, int z, int d)
|
||||
{
|
||||
m_pParent->spawnResources(level, x, y, z, d);
|
||||
}
|
||||
|
||||
void StairTile::spawnResources(Level* level, int x, int y, int z, int d, float f)
|
||||
{
|
||||
m_pParent->spawnResources(level, x, y, z, d, f);
|
||||
}
|
||||
|
||||
float StairTile::getExplosionResistance(Entity* entity)
|
||||
{
|
||||
return m_pParent->getExplosionResistance(entity);
|
||||
}
|
||||
|
||||
void StairTile::wasExploded(Level* level, int x, int y, int z)
|
||||
{
|
||||
return m_pParent->wasExploded(level, x, y, z);
|
||||
}
|
||||
|
||||
int StairTile::getRenderLayer()
|
||||
{
|
||||
return m_pParent->getRenderLayer();
|
||||
}
|
||||
|
||||
int StairTile::use(Level* level, int x, int y, int z, Player* player)
|
||||
{
|
||||
return m_pParent->use(level, x, y, z, player);
|
||||
}
|
||||
|
||||
void StairTile::stepOn(Level* level, int x, int y, int z, Entity* entity)
|
||||
{
|
||||
m_pParent->stepOn(level, x, y, z, entity);
|
||||
}
|
||||
|
||||
void StairTile::setPlacedBy(Level* level, int x, int y, int z, Mob* mob)
|
||||
{
|
||||
int rot = Mth::floor(0.5f + (mob->m_yaw * 4.0f / 360.0f)) & 3;
|
||||
|
||||
int data = 0;
|
||||
|
||||
switch (rot)
|
||||
{
|
||||
case 0: data = 2; break;
|
||||
case 1: data = 1; break;
|
||||
case 2: data = 3; break;
|
||||
}
|
||||
|
||||
level->setData(x, y, z, data);
|
||||
}
|
||||
|
||||
void StairTile::prepareRender(Level* level, int x, int y, int z)
|
||||
{
|
||||
return m_pParent->prepareRender(level, x, y, z);
|
||||
}
|
||||
|
||||
void StairTile::attack(Level* level, int x, int y, int z, Player* player)
|
||||
{
|
||||
m_pParent->attack(level, x, y, z, player);
|
||||
}
|
||||
|
||||
void StairTile::handleEntityInside(Level* level, int x, int y, int z, Entity* entity, Vec3& vec)
|
||||
{
|
||||
m_pParent->handleEntityInside(level, x, y, z, entity, vec);
|
||||
}
|
||||
Reference in New Issue
Block a user