#include "../Platform/stdafx.h" #include "../Headers/net.minecraft.world.level.h" #include "../Headers/net.minecraft.world.level.tile.h" #include "MinecartSpawner.h" MinecartSpawner::MinecartMobSpawner::MinecartMobSpawner( MinecartSpawner* parent) { m_parent = parent; } void MinecartSpawner::MinecartMobSpawner::broadcastEvent(int id) { m_parent->level->broadcastEntityEvent(m_parent->shared_from_this(), (uint8_t)id); } Level* MinecartSpawner::MinecartMobSpawner::getLevel() { return m_parent->level; } int MinecartSpawner::MinecartMobSpawner::getX() { return Mth::floor(m_parent->x); } int MinecartSpawner::MinecartMobSpawner::getY() { return Mth::floor(m_parent->y); } int MinecartSpawner::MinecartMobSpawner::getZ() { return Mth::floor(m_parent->z); } MinecartSpawner::MinecartSpawner(Level* level) : Minecart(level) { // 4J Stu - This function call had to be moved here from the Entity ctor to // ensure that the derived version of the function is called this->defineSynchedData(); spawner = new MinecartMobSpawner(this); } MinecartSpawner::MinecartSpawner(Level* level, double x, double y, double z) : Minecart(level, x, y, z) { // 4J Stu - This function call had to be moved here from the Entity ctor to // ensure that the derived version of the function is called this->defineSynchedData(); spawner = new MinecartMobSpawner(this); } MinecartSpawner::~MinecartSpawner() { delete spawner; } int MinecartSpawner::getType() { return TYPE_SPAWNER; } Tile* MinecartSpawner::getDefaultDisplayTile() { return Tile::mobSpawner; } void MinecartSpawner::readAdditionalSaveData(CompoundTag* tag) { Minecart::readAdditionalSaveData(tag); spawner->load(tag); } void MinecartSpawner::addAdditonalSaveData(CompoundTag* tag) { Minecart::addAdditonalSaveData(tag); spawner->save(tag); } void MinecartSpawner::handleEntityEvent(uint8_t eventId) { spawner->onEventTriggered(eventId); } void MinecartSpawner::tick() { Minecart::tick(); spawner->tick(); } BaseMobSpawner* MinecartSpawner::getSpawner() { return spawner; }