Files
GabsPuNs-Project_Zenith_Main/Minecraft.World/HalfTransparentTile.cpp
2026-05-14 19:16:33 -04:00

50 lines
1.7 KiB
C++

#include "stdafx.h"
#include "net.minecraft.world.level.h"
#include "net.minecraft.world.h"
#include "HalfTransparentTile.h"
#include "Facing.h"
HalfTransparentTile::HalfTransparentTile(int id, const wstring &tex, Material *material, bool allowSame) : Tile(id,material,isSolidRender())
{
this->allowSame = allowSame;
this->texture = tex;
}
bool HalfTransparentTile::isSolidRender(bool isServerLevel)
{
return false;
}
bool HalfTransparentTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face)
{
int id = level->getTile(x, y, z);
if (this->id == Tile::stained_glass_Id)
{
bool isBlocking = level->isTopSolidBlocking(x, y, z);
if (face == Facing::DOWN && level->isSolidBlockingTile(x, y + 1, z) != isBlocking) return true;
else if (face == Facing::UP && level->isTopSolidBlocking(x, y - 1, z) != isBlocking) return true;
else if (face == Facing::NORTH && level->isSolidBlockingTile(x, y, z + 1) != isBlocking) return true;
else if (face == Facing::SOUTH && level->isSolidBlockingTile(x, y, z - 1) != isBlocking) return true;
else if (face == Facing::WEST && level->isSolidBlockingTile(x + 1, y, z) != isBlocking) return true;
else if (face == Facing::EAST && level->isSolidBlockingTile(x - 1, y, z) != isBlocking) return true;
//else if (face == 6 && level->isSolidBlockingTile(x, y, z) != isBlocking) return true; // not really a direction? is this supposed to be here?
}
if (!allowSame && id == this->id)
{
return false;
}
return Tile::shouldRenderFace(level, x, y, z, face);
}
bool HalfTransparentTile::blocksLight()
{
return false;
}
void HalfTransparentTile::registerIcons(IconRegister *iconRegister)
{
icon = iconRegister->registerIcon(texture);
}