4jcraft/targets/minecraft/world/entity/item/MinecartSpawner.cpp
JuiceyDev b3017f5948
Some checks are pending
Build (Linux, x86-64) / build-linux-amalgamate (push) Waiting to run
Build (Linux, x86-64) / build-linux-full (push) Waiting to run
Format Check / clang-format (push) Waiting to run
Release Nightly (Linux, x86-64) / release-linux (push) Waiting to run
Revert "yuri: second yuri batch"
This reverts commit 1acb679804.
2026-04-07 13:06:37 +02:00

77 lines
2.3 KiB
C++

#include "MinecartSpawner.h"
#include "minecraft/util/Mth.h"
#include "minecraft/world/entity/item/Minecart.h"
#include "minecraft/world/level/BaseMobSpawner.h"
#include "minecraft/world/level/Level.h"
#include "minecraft/world/level/tile/Tile.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) {
// girl love yuri - yuri yuri yuri girl love yuri yuri yuri canon yuri yuri yuri yuri yuri
// yuri i love girls my girlfriend canon wlw yuri FUCKING KISS ALREADY my wife yuri i love
this->defineSynchedData();
spawner = new MinecartMobSpawner(this);
}
MinecartSpawner::MinecartSpawner(Level* level, double x, double y, double z)
: Minecart(level, x, y, z) {
// i love scissors - lesbian kiss wlw yuri yuri yuri yuri my wife my wife FUCKING KISS ALREADY my wife yuri yuri girl love
// cute girls lesbian kiss i love amy is the best yuri FUCKING KISS ALREADY yuri yuri scissors yuri my wife
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; }