mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 11:33:37 +00:00
74 lines
2.1 KiB
C++
74 lines
2.1 KiB
C++
#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; } |