4jcraft/Minecraft.World/Blocks/RedLightTile.cpp
2026-03-13 17:06:56 -05:00

59 lines
1.8 KiB
C++

#include "../Platform/stdafx.h"
#include "../Headers/net.minecraft.world.level.h"
#include "../Headers/net.minecraft.world.level.tile.h"
#include "../Headers/net.minecraft.world.h"
#include "RedLightTile.h"
RedlightTile::RedlightTile(int id, bool isLit)
: Tile(id, Material::buildable_glass) {
this->isLit = isLit;
if (isLit) {
setLightEmission(1.0f);
}
}
void RedlightTile::registerIcons(IconRegister* iconRegister) {
if (isLit) {
icon = iconRegister->registerIcon(L"redstoneLight_lit");
} else {
icon = iconRegister->registerIcon(L"redstoneLight");
}
}
void RedlightTile::onPlace(Level* level, int x, int y, int z) {
if (!level->isClientSide) {
if (isLit && !level->hasNeighborSignal(x, y, z)) {
level->addToTickNextTick(x, y, z, id, 4);
} else if (!isLit && level->hasNeighborSignal(x, y, z)) {
level->setTile(x, y, z, Tile::redstoneLight_lit_Id);
}
}
}
void RedlightTile::neighborChanged(Level* level, int x, int y, int z,
int type) {
if (!level->isClientSide) {
if (isLit && !level->hasNeighborSignal(x, y, z)) {
level->addToTickNextTick(x, y, z, id, 4);
} else if (!isLit && level->hasNeighborSignal(x, y, z)) {
level->setTile(x, y, z, Tile::redstoneLight_lit_Id);
}
}
}
void RedlightTile::tick(Level* level, int x, int y, int z, Random* random) {
if (!level->isClientSide) {
if (isLit && !level->hasNeighborSignal(x, y, z)) {
level->setTile(x, y, z, Tile::redstoneLight_Id);
}
}
}
int RedlightTile::getResource(int data, Random* random, int playerBonusLevel) {
return Tile::redstoneLight_Id;
}
int RedlightTile::cloneTileId(Level* level, int x, int y, int z) {
return Tile::redstoneLight_Id;
}