mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-08-20 09:57:10 +00:00
50 lines
1.2 KiB
C++
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();
|
|
}; |