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:
@@ -2,11 +2,14 @@
|
||||
#include "net.minecraft.world.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "net.minecraft.world.item.h"
|
||||
#include "net.minecraft.world.entity.ai.attributes.h"
|
||||
#include "net.minecraft.world.entity.item.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "net.minecraft.world.effect.h"
|
||||
#include "net.minecraft.world.entity.h"
|
||||
#include "net.minecraft.world.entity.monster.h"
|
||||
#include "com.mojang.nbt.h"
|
||||
#include "BasicTypeContainers.h"
|
||||
#include "Spider.h"
|
||||
#include "..\Minecraft.Client\Textures.h"
|
||||
#include "SoundTypes.h"
|
||||
@@ -18,13 +21,10 @@ Spider::Spider(Level *level) : Monster( level )
|
||||
// 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
|
||||
// the derived version of the function is called
|
||||
this->defineSynchedData();
|
||||
registerAttributes();
|
||||
setHealth(getMaxHealth());
|
||||
|
||||
// 4J Stu - This function call had to be moved here from the Entity ctor to ensure that the derived version of the function is called
|
||||
health = getMaxHealth();
|
||||
|
||||
this->textureIdx = TN_MOB_SPIDER; // 4J was L"/mob/spider.png";
|
||||
this->setSize(1.4f, 0.9f);
|
||||
runSpeed = 0.8f;
|
||||
}
|
||||
|
||||
void Spider::defineSynchedData()
|
||||
@@ -46,19 +46,12 @@ void Spider::tick()
|
||||
}
|
||||
}
|
||||
|
||||
int Spider::getMaxHealth()
|
||||
void Spider::registerAttributes()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
Monster::registerAttributes();
|
||||
|
||||
double Spider::getRideHeight()
|
||||
{
|
||||
return bbHeight * 0.75 - 0.5f;
|
||||
}
|
||||
|
||||
bool Spider::makeStepSound()
|
||||
{
|
||||
return false;
|
||||
getAttribute(SharedMonsterAttributes::MAX_HEALTH)->setBaseValue(16);
|
||||
getAttribute(SharedMonsterAttributes::MOVEMENT_SPEED)->setBaseValue(0.8f);
|
||||
}
|
||||
|
||||
shared_ptr<Entity> Spider::findAttackTarget()
|
||||
@@ -96,12 +89,17 @@ int Spider::getDeathSound()
|
||||
return eSoundType_MOB_SPIDER_DEATH;
|
||||
}
|
||||
|
||||
void Spider::playStepSound(int xt, int yt, int zt, int t)
|
||||
{
|
||||
playSound(eSoundType_MOB_SPIDER_STEP, 0.15f, 1);
|
||||
}
|
||||
|
||||
void Spider::checkHurtTarget(shared_ptr<Entity> target, float d)
|
||||
{
|
||||
float br = getBrightness(1);
|
||||
if (br > 0.5f && random->nextInt(100) == 0)
|
||||
{
|
||||
this->attackTarget = nullptr;
|
||||
attackTarget = nullptr;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -139,25 +137,20 @@ void Spider::dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel)
|
||||
}
|
||||
|
||||
/**
|
||||
* The the spiders act as if they're always on a ladder, which enables them
|
||||
* to climb walls.
|
||||
*/
|
||||
* The the spiders act as if they're always on a ladder, which enables them
|
||||
* to climb walls.
|
||||
*/
|
||||
|
||||
bool Spider::onLadder()
|
||||
{
|
||||
return isClimbing();
|
||||
}
|
||||
|
||||
|
||||
void Spider::makeStuckInWeb()
|
||||
{
|
||||
// do nothing - spiders don't get stuck in web
|
||||
}
|
||||
|
||||
float Spider::getModelScale()
|
||||
{
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
MobType Spider::getMobType()
|
||||
{
|
||||
return ARTHROPOD;
|
||||
@@ -189,4 +182,71 @@ void Spider::setClimbing(bool value)
|
||||
flags &= ~0x1;
|
||||
}
|
||||
entityData->set(DATA_FLAGS_ID, flags);
|
||||
}
|
||||
|
||||
MobGroupData *Spider::finalizeMobSpawn(MobGroupData *groupData, int extraData /*= 0*/) // 4J Added extraData param
|
||||
{
|
||||
groupData = Monster::finalizeMobSpawn(groupData);
|
||||
|
||||
#ifndef _CONTENT_PACKAGE
|
||||
// 4J-JEV: Added for spider-jockey spawn-egg.
|
||||
if ( (level->random->nextInt(100) == 0) || (extraData != 0) )
|
||||
#else
|
||||
if (level->random->nextInt(100) == 0)
|
||||
#endif
|
||||
{
|
||||
shared_ptr<Skeleton> skeleton = shared_ptr<Skeleton>( new Skeleton(level) );
|
||||
skeleton->moveTo(x, y, z, yRot, 0);
|
||||
skeleton->finalizeMobSpawn(NULL);
|
||||
level->addEntity(skeleton);
|
||||
skeleton->ride(shared_from_this());
|
||||
}
|
||||
|
||||
if (groupData == NULL)
|
||||
{
|
||||
groupData = new SpiderEffectsGroupData();
|
||||
|
||||
if (level->difficulty > Difficulty::NORMAL && level->random->nextFloat() < SPIDER_SPECIAL_EFFECT_CHANCE * level->getDifficulty(x, y, z))
|
||||
{
|
||||
((SpiderEffectsGroupData *) groupData)->setRandomEffect(level->random);
|
||||
}
|
||||
}
|
||||
if ( dynamic_cast<SpiderEffectsGroupData *>( groupData ) != NULL)
|
||||
{
|
||||
int effect = ((SpiderEffectsGroupData *) groupData)->effectId;
|
||||
if (effect > 0 && MobEffect::effects[effect] != NULL)
|
||||
{
|
||||
addEffect(new MobEffectInstance(effect, Integer::MAX_VALUE));
|
||||
}
|
||||
}
|
||||
|
||||
return groupData;
|
||||
}
|
||||
|
||||
const float Spider::SPIDER_SPECIAL_EFFECT_CHANCE = .1f;
|
||||
|
||||
Spider::SpiderEffectsGroupData::SpiderEffectsGroupData()
|
||||
{
|
||||
effectId = 0;
|
||||
}
|
||||
|
||||
void Spider::SpiderEffectsGroupData::setRandomEffect(Random *random)
|
||||
{
|
||||
int selection = random->nextInt(5);
|
||||
if (selection <= 1)
|
||||
{
|
||||
effectId = MobEffect::movementSpeed->id;
|
||||
}
|
||||
else if (selection <= 2)
|
||||
{
|
||||
effectId = MobEffect::damageBoost->id;
|
||||
}
|
||||
else if (selection <= 3)
|
||||
{
|
||||
effectId = MobEffect::regeneration->id;
|
||||
}
|
||||
else if (selection <= 4)
|
||||
{
|
||||
effectId = MobEffect::invisibility->id;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user