4jcraft/targets/minecraft/world/entity/item/MinecartSpawner.h

50 lines
1.2 KiB
C++

#pragma once
#include <stdint.h>
#include "Minecart.h"
#include "java/Class.h"
#include "minecraft/world/entity/item/Minecart.h"
#include "minecraft/world/level/BaseMobSpawner.h"
class Entity;
class Level;
class MinecartSpawner : public Minecart {
public:
eINSTANCEOF GetType() { return eTYPE_MINECART_SPAWNER; };
static Entity* create(Level* level) { return new MinecartSpawner(level); }
private:
BaseMobSpawner* spawner;
class MinecartMobSpawner : public BaseMobSpawner {
private:
MinecartSpawner* m_parent;
public:
MinecartMobSpawner(MinecartSpawner* parent);
void broadcastEvent(int id);
Level* getLevel();
int getX();
int getY();
int getZ();
};
public:
MinecartSpawner(Level* level);
MinecartSpawner(Level* level, double x, double y, double z);
virtual ~MinecartSpawner();
virtual int getType();
virtual Tile* getDefaultDisplayTile();
protected:
virtual void readAdditionalSaveData(CompoundTag* tag);
virtual void addAdditonalSaveData(CompoundTag* tag);
public:
virtual void handleEntityEvent(uint8_t eventId);
virtual void tick();
virtual BaseMobSpawner* getSpawner();
};