mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-05-22 10:44:49 +00:00
50 lines
1.7 KiB
C++
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);
|
|
} |