the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.entity.animal.h"
3#include "net.minecraft.world.entity.monster.h"
4#include "Creature.h"
5#include "Material.h"
6#include "MobCategory.h"
7
8MobCategory *MobCategory::monster = NULL;
9MobCategory *MobCategory::creature = NULL;
10MobCategory *MobCategory::ambient = NULL;
11MobCategory *MobCategory::waterCreature = NULL;
12// 4J - added these extra categories
13MobCategory *MobCategory::creature_wolf = NULL;
14MobCategory *MobCategory::creature_chicken = NULL;
15MobCategory *MobCategory::creature_mushroomcow = NULL;
16
17MobCategoryArray MobCategory::values = MobCategoryArray(7);
18
19void MobCategory::staticCtor()
20{
21 // 4J - adjusted the max levels here for the xbox version, which now represent the max levels in the whole world
22 monster = new MobCategory(70, Material::air, false, false, eTYPE_MONSTER, false, CONSOLE_MONSTERS_HARD_LIMIT);
23 creature = new MobCategory(10, Material::air, true, true, eTYPE_ANIMALS_SPAWN_LIMIT_CHECK, false, CONSOLE_ANIMALS_HARD_LIMIT);
24 ambient = new MobCategory(15, Material::air, true, false, eTYPE_AMBIENT, false, CONSOLE_AMBIENT_HARD_LIMIT),
25 waterCreature = new MobCategory(5, Material::water, true, false, eTYPE_WATERANIMAL, false, CONSOLE_SQUID_HARD_LIMIT);
26
27 values[0] = monster;
28 values[1] = creature;
29 values[2] = ambient;
30 values[3] = waterCreature;
31 // 4J - added 2 new categories to give us better control over spawning wolves & chickens
32 creature_wolf = new MobCategory(3, Material::air, true, true, eTYPE_WOLF, true, MAX_XBOX_WOLVES);
33 creature_chicken = new MobCategory( 2, Material::air, true, true, eTYPE_CHICKEN, true, MAX_XBOX_CHICKENS);
34 creature_mushroomcow = new MobCategory(2, Material::air, true, true, eTYPE_MUSHROOMCOW, true, MAX_XBOX_MUSHROOMCOWS);
35 values[4] = creature_wolf;
36 values[5] = creature_chicken;
37 values[6] = creature_mushroomcow;
38}
39
40MobCategory::MobCategory(int maxVar, Material *spawnPositionMaterial, bool isFriendly, bool isPersistent, eINSTANCEOF eBase, bool isSingleType, int maxPerLevel)
41 : m_max(maxVar), spawnPositionMaterial(spawnPositionMaterial), m_isFriendly(isFriendly), m_isPersistent(isPersistent), m_eBase(eBase), m_isSingleType(isSingleType), m_maxPerLevel(maxPerLevel)
42{
43}
44
45// 4J - added
46const eINSTANCEOF MobCategory::getEnumBaseClass()
47{
48 return m_eBase;
49}
50
51int MobCategory::getMaxInstancesPerChunk()
52{
53 return m_max;
54}
55
56int MobCategory::getMaxInstancesPerLevel() // 4J added
57{
58 return m_maxPerLevel;
59}
60
61Material *MobCategory::getSpawnPositionMaterial()
62{
63 return (Material *) spawnPositionMaterial;
64}
65
66bool MobCategory::isFriendly()
67{
68 return m_isFriendly;
69}
70
71bool MobCategory::isSingleType()
72{
73 return m_isSingleType;
74}
75
76bool MobCategory::isPersistent()
77{
78 return m_isPersistent;
79}