TU43 Release 2
+ Added Magma Block, Nether Wart Block, Bone Block, End Stone Block + All Beetroot Items + Polar Bear (excluding audio) + / now opens chat for commands
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#include "stdafx.h"
|
||||
#include "net.minecraft.world.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "IconRegister.h"
|
||||
#include "BoneBlockTile.h"
|
||||
|
||||
BoneBlockTile::BoneBlockTile(int id) : HayBlockTile(id)
|
||||
{
|
||||
material = Material::stone;
|
||||
}
|
||||
|
||||
void BoneBlockTile::playerDestroy(Level *level, shared_ptr<Player> player, int x, int y, int z, int data)
|
||||
{
|
||||
if (player->canDestroy(this))
|
||||
Tile::playerDestroy(level, player, x, y, z, data);
|
||||
}
|
||||
|
||||
void BoneBlockTile::registerIcons(IconRegister *iconRegister)
|
||||
{
|
||||
iconTop = iconRegister->registerIcon(L"bone_block_top");
|
||||
icon = iconRegister->registerIcon(L"bone_block_side");
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
#include "HayBlockTile.h"
|
||||
|
||||
class BoneBlockTile : public HayBlockTile
|
||||
{
|
||||
public:
|
||||
BoneBlockTile(int id);
|
||||
virtual void registerIcons(IconRegister *iconRegister) override;
|
||||
virtual void playerDestroy(Level *level, shared_ptr<Player> player, int x, int y, int z, int data) override;
|
||||
};
|
||||
@@ -138,6 +138,7 @@ enum eINSTANCEOF
|
||||
eTYPE_PIG = eTYPE_ANIMAL | eTYPE_ANIMALS_SPAWN_LIMIT_CHECK | 0x3,
|
||||
eTYPE_CHICKEN = eTYPE_ANIMAL | 0x4,
|
||||
eTYPE_RABBIT = eTYPE_ANIMAL | eTYPE_ANIMALS_SPAWN_LIMIT_CHECK | 0x5,
|
||||
eTYPE_POLARBEAR = eTYPE_ANIMAL | eTYPE_ANIMALS_SPAWN_LIMIT_CHECK | 0x6,
|
||||
|
||||
eTYPE_COW = eTYPE_ANIMAL | eTYPE_ANIMALS_SPAWN_LIMIT_CHECK | BIT_COW,
|
||||
eTYPE_MUSHROOMCOW = eTYPE_COW | 0x1,
|
||||
|
||||
@@ -118,6 +118,10 @@ void EntityIO::staticCtor()
|
||||
eMinecraftColour_Mob_Rabbit_Colour1,
|
||||
eMinecraftColour_Mob_Rabbit_Colour2, IDS_RABBIT);
|
||||
|
||||
setId(PolarBear::create, eTYPE_POLARBEAR, L"PolarBear", 107,
|
||||
eMinecraftColour_Mob_PolarBear_Colour1,
|
||||
eMinecraftColour_Mob_PolarBear_Colour2, IDS_POLAR_BEAR);
|
||||
|
||||
setId(ArmorStand::create, eTYPE_ARMORSTAND, L"ArmorStand", 102);
|
||||
|
||||
//change IDS_Endermite later
|
||||
|
||||
@@ -38,7 +38,14 @@ bool HoeItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> player
|
||||
return false;
|
||||
}
|
||||
|
||||
bool HoeItem::isHandEquipped()
|
||||
float HoeItem::getDestroySpeed(shared_ptr<ItemInstance> itemInstance, Tile *tile)
|
||||
{
|
||||
if (tile != nullptr && (tile->id == Tile::nether_wart_block_Id || tile->id == Tile::hayBlock->id))
|
||||
return tier->getSpeed();
|
||||
return Item::getDestroySpeed(itemInstance, tile);
|
||||
}
|
||||
|
||||
bool HoeItem::isHandEquipped()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ public:
|
||||
|
||||
virtual bool useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> player, Level *level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly=false);
|
||||
virtual bool isHandEquipped();
|
||||
virtual float getDestroySpeed(shared_ptr<ItemInstance> itemInstance, Tile *tile) override;
|
||||
|
||||
const Tier *getTier();
|
||||
};
|
||||
@@ -208,6 +208,15 @@ void LivingEntity::baseTick()
|
||||
hurt(DamageSource::inWall, 1);
|
||||
}
|
||||
|
||||
if (!level->isClientSide && isAlive() && onGround && !isSneaking() && tickCount % 10 == 0)
|
||||
{
|
||||
int tileBelow = level->getTile(Mth::floor(x), Mth::floor(bb->y0) - 1, Mth::floor(z));
|
||||
if (tileBelow == Tile::magma_Id)
|
||||
{
|
||||
hurt(DamageSource::inFire, 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (isFireImmune() || level->isClientSide) clearFire();
|
||||
shared_ptr<Player> thisPlayer = dynamic_pointer_cast<Player>(shared_from_this());
|
||||
bool isInvulnerable = (thisPlayer != nullptr && thisPlayer->abilities.invulnerable);
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#include "stdafx.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "MagmaTile.h"
|
||||
|
||||
MagmaTile::MagmaTile(int id) : Tile(id, Material::stone)
|
||||
{
|
||||
setLightEmission(0.2f);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
#include "Tile.h"
|
||||
|
||||
class MagmaTile : public Tile
|
||||
{
|
||||
public:
|
||||
MagmaTile(int id);
|
||||
};
|
||||
@@ -0,0 +1,209 @@
|
||||
#include "stdafx.h"
|
||||
#include "com.mojang.nbt.h"
|
||||
#include "net.minecraft.world.level.tile.h"
|
||||
#include "net.minecraft.world.phys.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "net.minecraft.world.item.h"
|
||||
#include "net.minecraft.world.entity.h"
|
||||
#include "net.minecraft.world.entity.animal.h"
|
||||
#include "net.minecraft.world.entity.ai.attributes.h"
|
||||
#include "net.minecraft.world.entity.ai.goal.h"
|
||||
#include "net.minecraft.world.entity.ai.goal.target.h"
|
||||
#include "net.minecraft.world.entity.ai.navigation.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "net.minecraft.world.damagesource.h"
|
||||
#include "SharedMonsterAttributes.h"
|
||||
#include "PolarBear.h"
|
||||
#include "../Minecraft.Client/Textures.h"
|
||||
#include "SoundTypes.h"
|
||||
|
||||
PolarBear::PolarBear(Level *level) : Animal(level)
|
||||
{
|
||||
this->defineSynchedData();
|
||||
registerAttributes();
|
||||
setHealth(getMaxHealth());
|
||||
|
||||
m_standing = false;
|
||||
clientSideStandAnimation = clientSideStandAnimationO = 0.0f;
|
||||
warningSoundTicks = 0;
|
||||
cubDefenseCooldown = 0;
|
||||
|
||||
setSize(1.3f, 1.4f);
|
||||
|
||||
getNavigation()->setAvoidWater(true);
|
||||
goalSelector.addGoal(0, new FloatGoal(this));
|
||||
goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.25, true));
|
||||
goalSelector.addGoal(1, new PanicGoal(this, 2.0));
|
||||
goalSelector.addGoal(4, new FollowParentGoal(this, 1.25));
|
||||
goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0));
|
||||
goalSelector.addGoal(6, new LookAtPlayerGoal(this, typeid(Player), 6));
|
||||
goalSelector.addGoal(7, new RandomLookAroundGoal(this));
|
||||
|
||||
targetSelector.addGoal(1, new HurtByTargetGoal(this, true));
|
||||
}
|
||||
|
||||
bool PolarBear::useNewAi()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void PolarBear::registerAttributes()
|
||||
{
|
||||
Animal::registerAttributes();
|
||||
|
||||
getAttribute(SharedMonsterAttributes::MAX_HEALTH)->setBaseValue(30);
|
||||
getAttribute(SharedMonsterAttributes::FOLLOW_RANGE)->setBaseValue(20);
|
||||
getAttribute(SharedMonsterAttributes::MOVEMENT_SPEED)->setBaseValue(0.25f);
|
||||
|
||||
getAttributes()->registerAttribute(SharedMonsterAttributes::ATTACK_DAMAGE)->setBaseValue(6);
|
||||
}
|
||||
|
||||
shared_ptr<AgableMob> PolarBear::getBreedOffspring(shared_ptr<AgableMob> target)
|
||||
{
|
||||
return std::make_shared<PolarBear>(level);
|
||||
}
|
||||
|
||||
bool PolarBear::isFood(shared_ptr<ItemInstance> itemInstance)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int PolarBear::getAmbientSound()
|
||||
{
|
||||
return isBaby() ? eSoundType_MOB_POLARBEAR_BABY_AMBIENT : eSoundType_MOB_POLARBEAR_AMBIENT;
|
||||
}
|
||||
|
||||
int PolarBear::getHurtSound()
|
||||
{
|
||||
return eSoundType_MOB_POLARBEAR_HURT;
|
||||
}
|
||||
|
||||
int PolarBear::getDeathSound()
|
||||
{
|
||||
return eSoundType_MOB_POLARBEAR_DEATH;
|
||||
}
|
||||
|
||||
void PolarBear::playStepSound(int xt, int yt, int zt, int t)
|
||||
{
|
||||
playSound(eSoundType_MOB_POLARBEAR_STEP, 0.15f, 1.0f);
|
||||
}
|
||||
|
||||
void PolarBear::playWarningSound()
|
||||
{
|
||||
if (warningSoundTicks <= 0)
|
||||
{
|
||||
playSound(eSoundType_MOB_POLARBEAR_WARNING, 1.0f, getVoicePitch());
|
||||
warningSoundTicks = 40;
|
||||
}
|
||||
}
|
||||
|
||||
void PolarBear::setTarget(shared_ptr<LivingEntity> newTarget)
|
||||
{
|
||||
shared_ptr<LivingEntity> old = getTarget();
|
||||
Animal::setTarget(newTarget);
|
||||
if (newTarget != nullptr && old == nullptr && !isBaby())
|
||||
{
|
||||
playWarningSound();
|
||||
}
|
||||
}
|
||||
|
||||
int PolarBear::getDeathLoot()
|
||||
{
|
||||
return Item::fish_Id;
|
||||
}
|
||||
|
||||
bool PolarBear::doHurtTarget(shared_ptr<Entity> target)
|
||||
{
|
||||
if (isBaby())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
float dmg = (float)getAttribute(SharedMonsterAttributes::ATTACK_DAMAGE)->getValue();
|
||||
return target->hurt(DamageSource::mobAttack(dynamic_pointer_cast<LivingEntity>(shared_from_this())), dmg);
|
||||
}
|
||||
|
||||
bool PolarBear::isStanding()
|
||||
{
|
||||
return m_standing;
|
||||
}
|
||||
|
||||
void PolarBear::setStanding(bool standing)
|
||||
{
|
||||
m_standing = standing;
|
||||
}
|
||||
|
||||
float PolarBear::getStandingAnimationScale(float a)
|
||||
{
|
||||
return (clientSideStandAnimationO + (clientSideStandAnimation - clientSideStandAnimationO) * a) / 6.0f;
|
||||
}
|
||||
|
||||
void PolarBear::aiStep()
|
||||
{
|
||||
Animal::aiStep();
|
||||
|
||||
if (level->isClientSide)
|
||||
{
|
||||
clientSideStandAnimationO = clientSideStandAnimation;
|
||||
if (isStanding())
|
||||
{
|
||||
clientSideStandAnimation = Mth::clamp(clientSideStandAnimation + 1.0f, 0.0f, 6.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
clientSideStandAnimation = Mth::clamp(clientSideStandAnimation - 1.0f, 0.0f, 6.0f);
|
||||
}
|
||||
}
|
||||
|
||||
if (warningSoundTicks > 0)
|
||||
{
|
||||
--warningSoundTicks;
|
||||
}
|
||||
|
||||
if (!level->isClientSide && !isBaby() && getTarget() == nullptr)
|
||||
{
|
||||
if (cubDefenseCooldown > 0)
|
||||
{
|
||||
--cubDefenseCooldown;
|
||||
}
|
||||
else
|
||||
{
|
||||
cubDefenseCooldown = 10;
|
||||
bool cubNear = false;
|
||||
vector<shared_ptr<Entity> > *bears = level->getEntitiesOfClass(typeid(PolarBear), bb->grow(8.0, 4.0, 8.0));
|
||||
for (auto &it : *bears)
|
||||
{
|
||||
shared_ptr<PolarBear> other = dynamic_pointer_cast<PolarBear>(it);
|
||||
if (other != nullptr && other.get() != this && other->isBaby())
|
||||
{
|
||||
cubNear = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
delete bears;
|
||||
if (cubNear)
|
||||
{
|
||||
shared_ptr<Entity> p = level->getNearestAttackablePlayer(shared_from_this(), 16.0);
|
||||
if (p != nullptr)
|
||||
{
|
||||
setTarget(dynamic_pointer_cast<LivingEntity>(p));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MobGroupData *PolarBear::finalizeMobSpawn(MobGroupData *groupData, int extraData)
|
||||
{
|
||||
groupData = Animal::finalizeMobSpawn(groupData);
|
||||
|
||||
if (groupData == nullptr || dynamic_cast<PolarBearGroupData *>(groupData) == nullptr)
|
||||
{
|
||||
groupData = new PolarBearGroupData();
|
||||
}
|
||||
else
|
||||
{
|
||||
setAge(CUB_AGE);
|
||||
}
|
||||
|
||||
return groupData;
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include "Animal.h"
|
||||
#include "MobGroupData.h"
|
||||
|
||||
class DamageSource;
|
||||
|
||||
class PolarBear : public Animal
|
||||
{
|
||||
public:
|
||||
eINSTANCEOF GetType() { return eTYPE_POLARBEAR; }
|
||||
static Entity *create(Level *level) { return new PolarBear(level); }
|
||||
|
||||
private:
|
||||
static const int CUB_AGE = -23488;
|
||||
|
||||
float clientSideStandAnimationO;
|
||||
float clientSideStandAnimation;
|
||||
int warningSoundTicks;
|
||||
int cubDefenseCooldown;
|
||||
|
||||
public:
|
||||
PolarBear(Level *level);
|
||||
|
||||
virtual bool useNewAi();
|
||||
|
||||
protected:
|
||||
virtual void registerAttributes();
|
||||
|
||||
public:
|
||||
virtual shared_ptr<AgableMob> getBreedOffspring(shared_ptr<AgableMob> target);
|
||||
virtual bool isFood(shared_ptr<ItemInstance> itemInstance);
|
||||
|
||||
protected:
|
||||
virtual int getAmbientSound();
|
||||
virtual int getHurtSound();
|
||||
virtual int getDeathSound();
|
||||
virtual int getDeathLoot();
|
||||
virtual void playStepSound(int xt, int yt, int zt, int t);
|
||||
|
||||
public:
|
||||
virtual bool doHurtTarget(shared_ptr<Entity> target);
|
||||
virtual bool isStanding();
|
||||
void setStanding(bool standing);
|
||||
float getStandingAnimationScale(float a);
|
||||
|
||||
void playWarningSound();
|
||||
virtual void setTarget(shared_ptr<LivingEntity> target);
|
||||
|
||||
virtual void aiStep();
|
||||
virtual MobGroupData *finalizeMobSpawn(MobGroupData *groupData, int extraData = 0);
|
||||
|
||||
private:
|
||||
bool m_standing;
|
||||
};
|
||||
|
||||
class PolarBearGroupData : public MobGroupData
|
||||
{
|
||||
};
|
||||
@@ -275,7 +275,14 @@ enum eSOUND_TYPE
|
||||
eSoundType_MOB_ELDER_GUARDIAN_DEATH,
|
||||
eSoundType_MOB_ELDER_GUARDIAN_HIT,
|
||||
eSoundType_MOB_ELDER_GUARDIAN_IDLE,
|
||||
|
||||
|
||||
eSoundType_MOB_POLARBEAR_BABY_AMBIENT,
|
||||
eSoundType_MOB_POLARBEAR_AMBIENT,
|
||||
eSoundType_MOB_POLARBEAR_HURT,
|
||||
eSoundType_MOB_POLARBEAR_DEATH,
|
||||
eSoundType_MOB_POLARBEAR_STEP,
|
||||
eSoundType_MOB_POLARBEAR_WARNING,
|
||||
|
||||
eSoundType_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -269,6 +269,11 @@ Tile* Tile::packedIce = nullptr;
|
||||
FrostedIceTile* Tile::frosted_ice = nullptr;
|
||||
GrassPathTile* Tile::grass_path = nullptr;
|
||||
BeetrootTile* Tile::beetroots = nullptr;
|
||||
Tile* Tile::end_bricks = nullptr;
|
||||
MagmaTile* Tile::magma = nullptr;
|
||||
Tile* Tile::nether_wart_block = nullptr;
|
||||
Tile* Tile::red_nether_brick = nullptr;
|
||||
BoneBlockTile* Tile::bone_block = nullptr;
|
||||
|
||||
Tile* Tile::barrier = nullptr;
|
||||
TallGrass2* Tile::double_plant = nullptr;
|
||||
@@ -584,6 +589,12 @@ void Tile::staticCtor()
|
||||
Tile::grass_path = static_cast<GrassPathTile*>((new GrassPathTile(grass_path_Id))->setDestroyTime(0.65f)->setSoundType(SOUND_GRAVEL)->setIconName(L"grass_path_top")->setDescriptionId(IDS_TILE_GRASS_PATH)->setUseDescriptionId(IDS_DESC_DIRT)->sendTileData());
|
||||
Tile::frosted_ice = static_cast<FrostedIceTile*>((new FrostedIceTile(frosted_ice_Id))->setDestroyTime(0.5f)->setLightBlock(3)->setSoundType(Tile::SOUND_GLASS)->setIconName(L"ice")->setDescriptionId(IDS_TILE_FROSTED_ICE)->setUseDescriptionId(IDS_DESC_ICE)->setNotCollectStatistics());
|
||||
|
||||
Tile::end_bricks = (new Tile(end_bricks_Id, Material::stone))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(3.0f)->setExplodeable(9)->setSoundType(SOUND_STONE)->setIconName(L"end_bricks")->setDescriptionId(IDS_TILE_END_BRICKS)->setUseDescriptionId(IDS_DESC_STONE);
|
||||
Tile::magma = static_cast<MagmaTile*>((new MagmaTile(magma_Id))->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_stone)->setDestroyTime(0.5f)->setExplodeable(6)->setSoundType(SOUND_STONE)->setIconName(L"magma")->setDescriptionId(IDS_TILE_MAGMA)->setUseDescriptionId(IDS_DESC_STONE));
|
||||
Tile::nether_wart_block = (new Tile(nether_wart_block_Id, Material::grass))->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_wheat)->setDestroyTime(0.5f)->setSoundType(SOUND_WOOD)->setIconName(L"nether_wart_block")->setDescriptionId(IDS_TILE_NETHER_WART_BLOCK)->setUseDescriptionId(IDS_DESC_STONE);
|
||||
Tile::red_nether_brick = (new Tile(red_nether_brick_Id, Material::stone))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(2.0f)->setExplodeable(6)->setSoundType(SOUND_STONE)->setIconName(L"red_nether_brick")->setDescriptionId(IDS_TILE_RED_NETHER_BRICK)->setUseDescriptionId(IDS_DESC_STONE);
|
||||
Tile::bone_block = static_cast<BoneBlockTile*>((new BoneBlockTile(bone_block_Id))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setIconName(L"bone_block_side")->setDescriptionId(IDS_TILE_BONE_BLOCK)->setUseDescriptionId(IDS_DESC_STONE)->sendTileData());
|
||||
|
||||
Tile::daylight_detector_inverted = static_cast<DaylightDetectorTile*>((new DaylightDetectorTile(178, true))->setDestroyTime(0.2f)->setSoundType(SOUND_WOOD)->setIconName(L"daylight_detector")->setDescriptionId(IDS_TILE_DAYLIGHT_DETECTOR)->setUseDescriptionId(IDS_DESC_DAYLIGHT_DETECTOR));
|
||||
Tile::red_sandstone = (new RedSandStoneTile(red_sandstone_Id))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_sand)->setSoundType(Tile::SOUND_STONE)->setDestroyTime(0.8f)->sendTileData()->setIconName(L"red_sandstone")->setDescriptionId(IDS_TILE_RED_SANDSTONE)->setUseDescriptionId(IDS_DESC_RED_SANDSTONE)->sendTileData();
|
||||
Tile::stairs_red_sandstone = (new StairTile(red_sandstone_stairs_Id, Tile::red_sandstone, 0))->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_sand)->setIconName(L"stairsRedSandstone")->setDescriptionId(IDS_TILE_STAIRS_RED_SANDSTONE)->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS);
|
||||
@@ -1914,4 +1925,9 @@ const int Tile::dark_oak_stairs_Id;
|
||||
const int Tile::slime_Id;
|
||||
const int Tile::beetroots_Id;
|
||||
const int Tile::grass_path_Id;
|
||||
const int Tile::end_bricks_Id;
|
||||
const int Tile::magma_Id;
|
||||
const int Tile::nether_wart_block_Id;
|
||||
const int Tile::red_nether_brick_Id;
|
||||
const int Tile::bone_block_Id;
|
||||
#endif
|
||||
|
||||
+12
-5
@@ -47,6 +47,8 @@ class TallGrass2;
|
||||
class FrostedIceTile;
|
||||
class GrassPathTile;
|
||||
class BeetrootTile;
|
||||
class MagmaTile;
|
||||
class BoneBlockTile;
|
||||
|
||||
class ChunkRebuildData;
|
||||
|
||||
@@ -443,15 +445,15 @@ public:
|
||||
//purpur_stairs 203
|
||||
//purpur_double_slab 204
|
||||
//purpur_slab 205
|
||||
//end_bricks 206
|
||||
static const int end_bricks_Id = 206;
|
||||
static const int beetroots_Id = 207;
|
||||
static const int grass_path_Id = 208;
|
||||
//end_gateway 209
|
||||
static const int frosted_ice_Id = 212;
|
||||
//magma 213
|
||||
//nether_wart_block 214
|
||||
//red_nether_brick 215
|
||||
//bone_block 216
|
||||
static const int magma_Id = 213;
|
||||
static const int nether_wart_block_Id = 214;
|
||||
static const int red_nether_brick_Id = 215;
|
||||
static const int bone_block_Id = 216;
|
||||
//structure_void 217
|
||||
//
|
||||
//
|
||||
@@ -668,6 +670,11 @@ public:
|
||||
static FrostedIceTile* frosted_ice;
|
||||
static GrassPathTile* grass_path;
|
||||
static BeetrootTile* beetroots;
|
||||
static Tile* end_bricks;
|
||||
static MagmaTile* magma;
|
||||
static Tile* nether_wart_block;
|
||||
static Tile* red_nether_brick;
|
||||
static BoneBlockTile* bone_block;
|
||||
static Tile* seaLantern;
|
||||
static Tile* prismarine;
|
||||
|
||||
|
||||
@@ -792,6 +792,8 @@ set(_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_ENTITY_ANIMAL
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Wolf.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Rabbit.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Rabbit.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/PolarBear.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/PolarBear.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/net.minecraft.world.entity.animal.h"
|
||||
)
|
||||
source_group("net/minecraft/world/entity/animal" FILES ${_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_ENTITY_ANIMAL})
|
||||
@@ -2049,6 +2051,10 @@ set(_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_LEVEL_TILE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/GrassPathTile.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/BeetrootTile.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/BeetrootTile.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/MagmaTile.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/MagmaTile.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/BoneBlockTile.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/BoneBlockTile.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/RedSandStoneTile.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/SeaLanternTile.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/PrismarineTile.cpp"
|
||||
|
||||
@@ -23,4 +23,5 @@
|
||||
#include "EntityHorse.h"
|
||||
|
||||
//TU31
|
||||
#include "Rabbit.h"
|
||||
#include "Rabbit.h"
|
||||
#include "PolarBear.h"
|
||||
@@ -147,5 +147,7 @@
|
||||
#include "StoneSlabTile2.h"
|
||||
#include "GrassPathTile.h"
|
||||
#include "BeetrootTile.h"
|
||||
#include "MagmaTile.h"
|
||||
#include "BoneBlockTile.h"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user