the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2using namespace std;
3
4#include "Monster.h"
5#include "RangedAttackMob.h"
6
7class RangedAttackGoal;
8class MeleeAttackGoal;
9
10class Skeleton : public Monster, public RangedAttackMob
11{
12public:
13 eINSTANCEOF GetType() { return eTYPE_SKELETON; }
14 static Entity *create(Level *level) { return new Skeleton(level); }
15
16private:
17 static const int DATA_TYPE_ID = 13;
18
19public:
20 static const int TYPE_DEFAULT = 0;
21 static const int TYPE_WITHER = 1;
22
23private:
24 RangedAttackGoal *bowGoal;
25 MeleeAttackGoal *meleeGoal;
26
27public:
28 Skeleton(Level *level);
29 virtual ~Skeleton();
30
31protected:
32 virtual void registerAttributes();
33 virtual void defineSynchedData();
34
35public:
36 virtual bool useNewAi();
37
38protected:
39 virtual int getAmbientSound();
40 virtual int getHurtSound();
41 virtual int getDeathSound();
42 virtual void playStepSound(int xt, int yt, int zt, int t);
43
44public:
45 virtual bool doHurtTarget(shared_ptr<Entity> target);
46
47public:
48 virtual MobType getMobType();
49 virtual void aiStep();
50 virtual void rideTick();
51 virtual void die(DamageSource *source);
52
53protected:
54 virtual int getDeathLoot();
55 virtual void dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel);
56 virtual void dropRareDeathLoot(int rareLootLevel);
57 virtual void populateDefaultEquipmentSlots();
58
59public:
60 virtual MobGroupData *finalizeMobSpawn(MobGroupData *groupData, int extraData = 0); // 4J Added extraData param
61 virtual void reassessWeaponGoal();
62 virtual void performRangedAttack(shared_ptr<LivingEntity> target, float power);
63 virtual int getSkeletonType();
64 virtual void setSkeletonType(int type);
65 virtual void readAdditionalSaveData(CompoundTag *tag);
66 virtual void addAdditonalSaveData(CompoundTag *entityTag);
67 virtual void setEquippedSlot(int slot, shared_ptr<ItemInstance> item);
68 virtual double getRidingHeight();
69};