45 lines
972 B
C
45 lines
972 B
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "Minecart.h"
|
||
|
|
#include "BaseMobSpawner.h"
|
||
|
|
|
||
|
|
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(byte eventId);
|
||
|
|
virtual void tick();
|
||
|
|
virtual BaseMobSpawner *getSpawner();
|
||
|
|
};
|