4jcraft/Minecraft.World/Blocks/MobSpawnerTile.cpp
Nikita Edel a006cc5aa0 uninitialized vptr
the vptr to isSolidRender() is not known before contruction of the Tile. Its true by default. if false, need to pass false. that is what i did. i verfied what isSolidRender() is in every file. and did exactly what isSolidRender() would return
2026-03-10 23:22:34 +01:00

50 lines
1.1 KiB
C++

#include "../Platform/stdafx.h"
#include "../Headers/net.minecraft.world.level.h"
#include "../Headers/net.minecraft.world.level.tile.entity.h"
#include "MobSpawnerTile.h"
MobSpawnerTile::MobSpawnerTile(int id) : EntityTile(id, Material::stone, false)
{
}
std::shared_ptr<TileEntity> MobSpawnerTile::newTileEntity(Level *level)
{
return std::shared_ptr<MobSpawnerTileEntity>( new MobSpawnerTileEntity() );
}
int MobSpawnerTile::getResource(int data, Random *random, int playerBonusLevel)
{
return 0;
}
int MobSpawnerTile::getResourceCount(Random *random)
{
return 0;
}
bool MobSpawnerTile::isSolidRender(bool isServerLevel)
{
return false;
}
bool MobSpawnerTile::blocksLight()
{
return false;
}
void MobSpawnerTile::spawnResources(Level *level, int x, int y, int z, int data, float odds, int playerBonusLevel)
{
Tile::spawnResources(level, x, y, z, data, odds, playerBonusLevel);
// also spawn experience if the block is broken
{
int magicCount = 15 + level->random->nextInt(15) + level->random->nextInt(15);
popExperience(level, x, y, z, magicCount);
}
}
int MobSpawnerTile::cloneTileId(Level *level, int x, int y, int z)
{
return 0;
}