feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict
* feat: TU19 (Dec 2014) Features & Content (#32)
* December 2014 files
* Working release build
* Fix compilation issues
* Add sound to Windows64Media
* Add DLC content and force Tutorial DLC
* Revert "Add DLC content and force Tutorial DLC"
This reverts commit 97a4399472.
* Disable broken light packing
* Disable breakpoint during DLC texture map load
Allows DLC loading but the DLC textures are still broken
* Fix post build not working
* ...
* fix vs2022 build
* fix cmake build
---------
Co-authored-by: Loki <lokirautio@gmail.com>
This commit is contained in:
342
Minecraft.World/EntityHorse.h
Normal file
342
Minecraft.World/EntityHorse.h
Normal file
@@ -0,0 +1,342 @@
|
||||
#pragma once
|
||||
|
||||
#include "Animal.h"
|
||||
#include "net.minecraft.world.ContainerListener.h"
|
||||
#include "MobGroupData.h"
|
||||
#include "EntitySelector.h"
|
||||
|
||||
class Attribute;
|
||||
class AnimalChest;
|
||||
|
||||
class HorseEntitySelector : public EntitySelector
|
||||
{
|
||||
public:
|
||||
bool matches(shared_ptr<Entity> entity) const;
|
||||
};
|
||||
|
||||
class EntityHorse : public Animal, public net_minecraft_world::ContainerListener
|
||||
{
|
||||
public:
|
||||
eINSTANCEOF GetType() { return eTYPE_HORSE; }
|
||||
static Entity *create(Level *level) { return new EntityHorse(level); }
|
||||
|
||||
private:
|
||||
static const wstring TEX_FOLDER;
|
||||
|
||||
static const EntitySelector *PARENT_HORSE_SELECTOR;
|
||||
|
||||
static Attribute *JUMP_STRENGTH;
|
||||
|
||||
static const int DATA_ID_HORSE_FLAGS = 16;
|
||||
static const int DATA_ID_TYPE = 19;
|
||||
static const int DATA_ID_TYPE_VARIANT = 20;
|
||||
static const int DATA_ID_OWNER_NAME = 21;
|
||||
static const int DATA_ID_ARMOR = 22;
|
||||
|
||||
static const int FLAG_TAME = 1 << 1;
|
||||
static const int FLAG_SADDLE = 1 << 2;
|
||||
static const int FLAG_CHESTED = 1 << 3;
|
||||
static const int FLAG_BRED = 1 << 4;
|
||||
static const int FLAG_EATING = 1 << 5;
|
||||
static const int FLAG_STANDING = 1 << 6;
|
||||
static const int FLAG_OPEN_MOUTH = 1 << 7;
|
||||
|
||||
public:
|
||||
static const int INV_SLOT_SADDLE = 0;
|
||||
static const int INV_SLOT_ARMOR = 1;
|
||||
static const int INV_BASE_COUNT = 2;
|
||||
static const int INV_DONKEY_CHEST_COUNT = 15;
|
||||
|
||||
// TODO: USE ENUMS! // Original comment
|
||||
static const int ARMOR_NONE = 0;
|
||||
static const int ARMOR_IRON = 1;
|
||||
static const int ARMOR_GOLD = 2;
|
||||
static const int ARMOR_DIAMOND = 3;
|
||||
|
||||
private:
|
||||
static const int ARMORS = 4;
|
||||
static wstring ARMOR_TEXTURES[ARMORS];
|
||||
static int ARMOR_TEXTURES_ID[ARMORS];
|
||||
static wstring ARMOR_HASHES[ARMORS];
|
||||
static int ARMOR_PROTECTION[ARMORS];
|
||||
|
||||
public:
|
||||
static const int TYPE_HORSE = 0;
|
||||
static const int TYPE_DONKEY = 1;
|
||||
static const int TYPE_MULE = 2;
|
||||
static const int TYPE_UNDEAD = 3;
|
||||
static const int TYPE_SKELETON = 4;
|
||||
|
||||
static const int VARIANT_WHITE = 0;
|
||||
static const int VARIANT_CREAMY = 1;
|
||||
static const int VARIANT_CHESTNUT = 2;
|
||||
static const int VARIANT_BROWN = 3;
|
||||
static const int VARIANT_BLACK = 4;
|
||||
static const int VARIANT_GRAY = 5;
|
||||
static const int VARIANT_DARKBROWN = 6;
|
||||
|
||||
private:
|
||||
static const int VARIANTS = 7;
|
||||
static wstring VARIANT_TEXTURES[VARIANTS];
|
||||
static int VARIANT_TEXTURES_ID[VARIANTS];
|
||||
static wstring VARIANT_HASHES[VARIANTS];
|
||||
|
||||
public:
|
||||
static const int MARKING_NONE = 0;
|
||||
static const int MARKING_WHITE_DETAILS = 1;
|
||||
static const int MARKING_WHITE_FIELDS = 2;
|
||||
static const int MARKING_WHITE_DOTS = 3;
|
||||
static const int MARKING_BLACK_DOTS = 4;
|
||||
|
||||
private:
|
||||
static const int MARKINGS = 5;
|
||||
static wstring MARKING_TEXTURES[MARKINGS];
|
||||
static int MARKING_TEXTURES_ID[MARKINGS];
|
||||
static wstring MARKING_HASHES[MARKINGS];
|
||||
|
||||
private:
|
||||
int countEating; // eating timer
|
||||
int mouthCounter;
|
||||
int standCounter;
|
||||
|
||||
public:
|
||||
int tailCounter;
|
||||
int sprintCounter;
|
||||
|
||||
protected:
|
||||
bool isEntityJumping;
|
||||
|
||||
private:
|
||||
shared_ptr<AnimalChest> inventory;
|
||||
bool hasReproduced;
|
||||
|
||||
protected:
|
||||
int temper;
|
||||
float playerJumpPendingScale;
|
||||
|
||||
private:
|
||||
bool allowStandSliding;
|
||||
|
||||
// animation data
|
||||
float eatAnim, eatAnimO;
|
||||
float standAnim, standAnimO;
|
||||
float mouthAnim, mouthAnimO;
|
||||
|
||||
public:
|
||||
EntityHorse(Level *world);
|
||||
~EntityHorse();
|
||||
|
||||
protected:
|
||||
virtual void defineSynchedData();
|
||||
|
||||
public:
|
||||
virtual void setType(int i);
|
||||
virtual int getType();
|
||||
virtual void setVariant(int i);
|
||||
virtual int getVariant();
|
||||
virtual wstring getAName();
|
||||
|
||||
private:
|
||||
virtual bool getHorseFlag(int flag);
|
||||
virtual void setHorseFlag(int flag, bool value);
|
||||
|
||||
public:
|
||||
virtual bool isAdult();
|
||||
virtual bool isTamed();
|
||||
virtual bool isRidable();
|
||||
virtual wstring getOwnerName();
|
||||
virtual void setOwner(const wstring &par1Str);
|
||||
virtual float getFoalScale();
|
||||
virtual void updateSize(bool isBaby);
|
||||
virtual bool getIsJumping();
|
||||
virtual void setTamed(bool flag);
|
||||
virtual void setIsJumping(bool flag);
|
||||
virtual bool canBeLeashed();
|
||||
|
||||
protected:
|
||||
virtual void onLeashDistance(float distanceToLeashHolder);
|
||||
|
||||
public:
|
||||
virtual bool isChestedHorse();
|
||||
virtual int getArmorType();
|
||||
virtual int getArmorTypeForItem(shared_ptr<ItemInstance> armorItem);
|
||||
virtual bool isEating();
|
||||
virtual bool isStanding();
|
||||
virtual bool isBred();
|
||||
virtual bool getHasReproduced();
|
||||
virtual void setArmorType(int i);
|
||||
virtual void setBred(bool flag);
|
||||
virtual void setChestedHorse(bool flag);
|
||||
virtual void setReproduced(bool flag);
|
||||
virtual void setSaddled(bool flag);
|
||||
virtual int getTemper();
|
||||
virtual void setTemper(int temper);
|
||||
virtual int modifyTemper(int amount);
|
||||
virtual bool hurt(DamageSource *damagesource, float dmg);
|
||||
virtual int getArmorValue();
|
||||
virtual bool isPushable();
|
||||
virtual bool checkSpawningBiome();
|
||||
virtual void dropBags();
|
||||
|
||||
private:
|
||||
virtual void eatingHorse();
|
||||
|
||||
protected:
|
||||
virtual void causeFallDamage(float fallDistance);
|
||||
|
||||
private:
|
||||
virtual int getInventorySize();
|
||||
virtual void createInventory();
|
||||
virtual void updateEquipment();
|
||||
|
||||
public:
|
||||
virtual void containerChanged();
|
||||
virtual bool canSpawn();
|
||||
|
||||
protected:
|
||||
virtual shared_ptr<EntityHorse> getClosestMommy(shared_ptr<Entity> baby, double searchRadius);
|
||||
|
||||
public:
|
||||
virtual double getCustomJump();
|
||||
|
||||
protected:
|
||||
virtual int getDeathSound();
|
||||
virtual int getDeathLoot();
|
||||
virtual int getHurtSound();
|
||||
|
||||
public:
|
||||
virtual bool isSaddled();
|
||||
|
||||
protected:
|
||||
virtual int getAmbientSound();
|
||||
virtual int getMadSound();
|
||||
|
||||
private:
|
||||
int gallopSoundCounter;
|
||||
|
||||
|
||||
protected:
|
||||
virtual void playStepSound(int xt, int yt, int zt, int t);
|
||||
virtual void registerAttributes();
|
||||
|
||||
public:
|
||||
virtual int getMaxSpawnClusterSize();
|
||||
virtual int getMaxTemper();
|
||||
|
||||
protected:
|
||||
virtual float getSoundVolume();
|
||||
|
||||
public:
|
||||
virtual int getAmbientSoundInterval();
|
||||
virtual bool hasLayeredTextures();
|
||||
|
||||
private:
|
||||
wstring layerTextureHashName;
|
||||
intArray layerTextureLayers;
|
||||
|
||||
private:
|
||||
virtual void clearLayeredTextureInfo();
|
||||
virtual void rebuildLayeredTextureInfo();
|
||||
|
||||
public:
|
||||
virtual wstring getLayeredTextureHashName();
|
||||
virtual intArray getLayeredTextureLayers();
|
||||
virtual void openInventory(shared_ptr<Player> player);
|
||||
virtual bool mobInteract(shared_ptr<Player> player);
|
||||
|
||||
private:
|
||||
virtual void doPlayerRide(shared_ptr<Player> player);
|
||||
|
||||
public:
|
||||
virtual bool isAmuletHorse();
|
||||
virtual bool canWearArmor();
|
||||
virtual bool canWearBags();
|
||||
|
||||
protected:
|
||||
virtual bool isImmobile();
|
||||
|
||||
public:
|
||||
virtual bool isPureBreed();
|
||||
virtual bool isUndead();
|
||||
virtual bool isSterile();
|
||||
virtual bool isFood(shared_ptr<ItemInstance> itemInstance);
|
||||
|
||||
private:
|
||||
virtual void moveTail();
|
||||
|
||||
public:
|
||||
virtual int nameYOffset();
|
||||
virtual void die(DamageSource *damagesource);
|
||||
virtual void aiStep();
|
||||
virtual void tick();
|
||||
|
||||
private:
|
||||
virtual void openMouth();
|
||||
|
||||
public:
|
||||
// 4J-JEV: Made public for tooltip code, doesn't change state anyway.
|
||||
virtual bool isReadyForParenting();
|
||||
|
||||
public:
|
||||
virtual bool renderName();
|
||||
virtual bool rideableEntity();
|
||||
virtual void setUsingItemFlag(bool flag);
|
||||
virtual void setEating(bool state);
|
||||
virtual void setStanding(bool state);
|
||||
|
||||
private:
|
||||
virtual void stand();
|
||||
|
||||
public:
|
||||
virtual void makeMad();
|
||||
virtual void dropMyStuff();
|
||||
|
||||
private:
|
||||
virtual void dropInventory(shared_ptr<Entity> entity, shared_ptr<AnimalChest> animalchest);
|
||||
|
||||
public:
|
||||
virtual bool tameWithName(shared_ptr<Player> player);
|
||||
virtual void travel(float xa, float ya);
|
||||
virtual void addAdditonalSaveData(CompoundTag *tag);
|
||||
virtual void readAdditionalSaveData(CompoundTag *tag);
|
||||
virtual bool canMate(shared_ptr<Animal> partner);
|
||||
virtual shared_ptr<AgableMob> getBreedOffspring(shared_ptr<AgableMob> partner);
|
||||
virtual MobGroupData *finalizeMobSpawn(MobGroupData *groupData, int extraData = 0); // 4J Added extraData param
|
||||
virtual float getEatAnim(float a);
|
||||
virtual float getStandAnim(float a);
|
||||
virtual float getMouthAnim(float a);
|
||||
|
||||
protected:
|
||||
virtual bool useNewAi();
|
||||
|
||||
public:
|
||||
virtual void onPlayerJump(int jumpAmount);
|
||||
|
||||
protected:
|
||||
virtual void spawnTamingParticles(bool success);
|
||||
|
||||
public:
|
||||
virtual void handleEntityEvent(byte id);
|
||||
virtual void positionRider();
|
||||
|
||||
private:
|
||||
virtual float generateRandomMaxHealth();
|
||||
virtual double generateRandomJumpStrength();
|
||||
virtual double generateRandomSpeed();
|
||||
|
||||
shared_ptr<Player> getOwner();
|
||||
|
||||
public:
|
||||
class HorseGroupData : public MobGroupData
|
||||
{
|
||||
|
||||
public:
|
||||
int horseType;
|
||||
int horseVariant;
|
||||
|
||||
HorseGroupData(int type, int variant);
|
||||
};
|
||||
|
||||
static bool isHorseArmor(int itemId);
|
||||
virtual bool onLadder();
|
||||
};
|
||||
Reference in New Issue
Block a user