the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 70 lines 1.4 kB view raw
1#pragma once 2 3#include "WeighedRandom.h" 4 5class BaseMobSpawner 6{ 7public: 8 class SpawnData : public WeighedRandomItem 9 { 10 public: 11 CompoundTag *tag; 12 wstring type; 13 14 SpawnData(CompoundTag *base); 15 SpawnData(CompoundTag *tag, wstring type); 16 ~SpawnData(); 17 18 virtual CompoundTag *save(); 19 }; 20 21private: 22 static const int EVENT_SPAWN = 1; 23 24public: 25 int spawnDelay; 26 27private: 28 wstring entityId; 29 vector<SpawnData *> *spawnPotentials; 30 SpawnData *nextSpawnData; 31 32public: 33 double spin, oSpin; 34 35private: 36 int minSpawnDelay; 37 int maxSpawnDelay; 38 int spawnCount; 39 shared_ptr<Entity> displayEntity; 40 int maxNearbyEntities; 41 int requiredPlayerRange; 42 int spawnRange; 43 44public: 45 BaseMobSpawner(); 46 ~BaseMobSpawner(); 47 48 virtual wstring getEntityId(); 49 virtual void setEntityId(const wstring &entityId); 50 virtual bool isNearPlayer(); 51 virtual void tick(); 52 virtual shared_ptr<Entity> loadDataAndAddEntity(shared_ptr<Entity> entity); 53 54private: 55 virtual void delay(); 56 57public: 58 virtual void load(CompoundTag *tag); 59 virtual void save(CompoundTag *tag); 60 virtual shared_ptr<Entity> getDisplayEntity(); 61 virtual bool onEventTriggered(int id); 62 virtual SpawnData *getNextSpawnData(); 63 virtual void setNextSpawnData(SpawnData *nextSpawnData); 64 65 virtual void broadcastEvent(int id) = 0; 66 virtual Level *getLevel() = 0; 67 virtual int getX() = 0; 68 virtual int getY() = 0; 69 virtual int getZ() = 0; 70};