From 4b6e9f8eb275a02e60bfef64fc7c3c4f31173b94 Mon Sep 17 00:00:00 2001 From: Tranqlmao <110073921+Tranqlmao@users.noreply.github.com> Date: Fri, 24 Apr 2026 20:00:35 -0400 Subject: [PATCH] Elytra mfeat: added early access elytra in creative for bug testing/accuracy comparison TODO: replace temporary atlas, Properly implement 3d skulls --- Minecraft.Client/Common/Audio/SoundEngine.cpp | 86 +++++- Minecraft.Client/Common/Audio/SoundEngine.h | 5 + Minecraft.Client/Common/Audio/SoundNames.cpp | 2 + .../UI/IUIScene_AbstractContainerMenu.cpp | 4 + .../Common/UI/IUIScene_CreativeMenu.cpp | 1 + .../Common/res/1_2_2/item/elytra.png | Bin 0 -> 684 bytes .../Common/res/TitleUpdate/res/items.png | Bin 114663 -> 113839 bytes Minecraft.Client/EntityRenderDispatcher.cpp | 4 +- Minecraft.Client/EntityRenderDispatcher.h | 2 + Minecraft.Client/GameRenderer.cpp | 97 ++++++- Minecraft.Client/GameRenderer.h | 7 + Minecraft.Client/HumanoidModel.cpp | 72 +++++ Minecraft.Client/HumanoidModel.h | 25 +- Minecraft.Client/ItemInHandRenderer.cpp | 23 ++ Minecraft.Client/LocalPlayer.cpp | 55 ++++ Minecraft.Client/LocalPlayer.h | 4 + Minecraft.Client/PlayerRenderer.cpp | 274 ++++++++++++------ Minecraft.Client/PreStitchedTextureMap.cpp | 2 + .../Sound/Minecraft/item/elytra/flying.ogg | Bin 0 -> 132727 bytes .../Windows64Media/loc/stringsGeneric.xml | 3 + Minecraft.World/ArmorRecipes.cpp | 2 + Minecraft.World/ArmorSlot.cpp | 5 + Minecraft.World/ElytraItem.cpp | 92 ++++++ Minecraft.World/ElytraItem.h | 20 ++ Minecraft.World/Item.cpp | 5 + Minecraft.World/Item.h | 3 + Minecraft.World/Player.cpp | 171 ++++++++++- Minecraft.World/Player.h | 17 ++ Minecraft.World/SoundTypes.h | 2 + Minecraft.World/cmake/sources/Common.cmake | 2 + Minecraft.World/net.minecraft.world.item.h | 1 + 31 files changed, 889 insertions(+), 97 deletions(-) create mode 100644 Minecraft.Client/Common/res/1_2_2/item/elytra.png create mode 100644 Minecraft.Client/Windows64Media/Sound/Minecraft/item/elytra/flying.ogg create mode 100644 Minecraft.World/ElytraItem.cpp create mode 100644 Minecraft.World/ElytraItem.h diff --git a/Minecraft.Client/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Common/Audio/SoundEngine.cpp index 927b973c..0bc4c831 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.cpp +++ b/Minecraft.Client/Common/Audio/SoundEngine.cpp @@ -607,7 +607,91 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa ///////////////////////////////////////////// // -// playUI +// +// startElytraSound / stopElytraSound +// Manages a single persistent looping sound for elytra gliding. +// Call startElytraSound every tick while gliding (it no-ops if already running, +// just updates volume). Call stopElytraSound when gliding ends. +// +// IMPORTANT: m_elytraLoopingSound is NOT added to m_activeSounds. +// The tick() cleanup loop deletes sounds where is_playing()==false. +// A looping sound briefly reports is_playing()==false at the loop point, +// which would cause tick() to free it and leave m_elytraLoopingSound dangling. +// +///////////////////////////////////////////// +void SoundEngine::startElytraSound(float x, float y, float z, float volume, float pitch) +{ + // If already initialized just update volume and pitch - never reinitialize mid-flight. + if (m_elytraLoopingSound != nullptr) + { + float finalVolume = volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER; + if (finalVolume > SFX_MAX_GAIN) finalVolume = SFX_MAX_GAIN; + ma_sound_set_volume(&m_elytraLoopingSound->sound, finalVolume); + ma_sound_set_pitch(&m_elytraLoopingSound->sound, pitch); + return; + } + + // Resolve file path using the same logic as play(). + wstring name = wchSoundNames[eSoundType_ITEM_ELYTRA_FLYING]; + char* soundName = ConvertSoundPathToName(name); + char basePath[256]; + sprintf_s(basePath, "Windows64Media/Sound/Minecraft/%s", soundName); + + const char* extensions[] = { ".ogg", ".wav", ".mp3" }; + char finalPath[256] = {}; + bool found = false; + for (auto& ext : extensions) + { + char candidate[256]; + sprintf_s(candidate, "%s%s", basePath, ext); + DWORD attr = GetFileAttributesA(candidate); + if (attr != INVALID_FILE_ATTRIBUTES && !(attr & FILE_ATTRIBUTE_DIRECTORY)) + { + sprintf_s(finalPath, "%s", candidate); + found = true; + break; + } + } + if (!found) return; + + MiniAudioSound* s = new MiniAudioSound(); + memset(&s->info, 0, sizeof(AUDIO_INFO)); + s->info.volume = volume; s->info.pitch = pitch; + s->info.bIs3D = false; + s->info.iSound = eSoundType_ITEM_ELYTRA_FLYING + eSFX_MAX; + + // Synchronous load so the sound is immediately ready - no ASYNC gap. + if (ma_sound_init_from_file(&m_engine, finalPath, 0, + nullptr, nullptr, &s->sound) != MA_SUCCESS) + { + delete s; + return; + } + + ma_sound_set_spatialization_enabled(&s->sound, MA_FALSE); + ma_sound_set_looping(&s->sound, MA_TRUE); + + float finalVolume = volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER; + if (finalVolume > SFX_MAX_GAIN) finalVolume = SFX_MAX_GAIN; + ma_sound_set_volume(&s->sound, finalVolume); + ma_sound_set_pitch(&s->sound, pitch); + ma_sound_start(&s->sound); + + // NOT added to m_activeSounds - tick() cleanup would delete it at loop boundaries. + m_elytraLoopingSound = s; +} + +void SoundEngine::stopElytraSound() +{ + if (m_elytraLoopingSound == nullptr) return; + + ma_sound_stop(&m_elytraLoopingSound->sound); + ma_sound_uninit(&m_elytraLoopingSound->sound); + delete m_elytraLoopingSound; + m_elytraLoopingSound = nullptr; +} +///////////////////////////////////////////// +// playUI // ///////////////////////////////////////////// void SoundEngine::playUI(int iSound, float volume, float pitch) diff --git a/Minecraft.Client/Common/Audio/SoundEngine.h b/Minecraft.Client/Common/Audio/SoundEngine.h index 1d2b4f90..5a593df9 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.h +++ b/Minecraft.Client/Common/Audio/SoundEngine.h @@ -127,6 +127,8 @@ public: void GetSoundName(char *szSoundName,int iSound); #endif void play(int iSound, float x, float y, float z, float volume, float pitch) override; + void startElytraSound(float x, float y, float z, float volume, float pitch); + void stopElytraSound(); void playStreaming(const wstring& name, float x, float y , float z, float volume, float pitch, bool bMusicDelay=true) override; void playUI(int iSound, float volume, float pitch) override; void playMusicTick() override; @@ -159,6 +161,9 @@ private: int GetRandomishTrack(int iStart,int iEnd); + MiniAudioSound* m_elytraLoopingSound = nullptr; + + ma_engine m_engine; ma_engine_config m_engineConfig; ma_sound m_musicStream; diff --git a/Minecraft.Client/Common/Audio/SoundNames.cpp b/Minecraft.Client/Common/Audio/SoundNames.cpp index 05fe5a52..c82228e2 100644 --- a/Minecraft.Client/Common/Audio/SoundNames.cpp +++ b/Minecraft.Client/Common/Audio/SoundNames.cpp @@ -272,6 +272,8 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"item.armor.equip_generic6", L"damage.critical", //eSoundType_DAMAGE_CRITICAL, + L"item.elytra.flying" // eSoundType_ITEM_ELYTRA_FLYING + }; diff --git a/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp index 2b54b2eb..a61edb05 100644 --- a/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_AbstractContainerMenu.cpp @@ -1273,6 +1273,10 @@ void IUIScene_AbstractContainerMenu::onMouseTick() case Item::chestplate_gold_Id: case Item::leggings_gold_Id: case Item::boots_gold_Id: + + + case Item::elytra_Id: + buttonY=eToolTipQuickMoveArmor; break; diff --git a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp index 29125a97..a3877a0a 100644 --- a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp @@ -383,6 +383,7 @@ void IUIScene_CreativeMenu::staticCtor() ITEM(Item::minecart_tnt_Id) ITEM(Item::saddle_Id) ITEM(Item::boat_Id) + ITEM(Item::elytra_Id) // Miscellaneous DEF(eCreativeInventory_Misc) diff --git a/Minecraft.Client/Common/res/1_2_2/item/elytra.png b/Minecraft.Client/Common/res/1_2_2/item/elytra.png new file mode 100644 index 0000000000000000000000000000000000000000..895c2b5148596fc0615f9094f47d4aef9de55b97 GIT binary patch literal 684 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`T?2eVTwMcVs=8)7`b4+|#ya^%`bB5@$7FehCCBGC_(rBhq?N{GSEpBW z6*W(-?3|TbKPkDmrMzQSegFKzrYTJm7p9c70!_+cPTT^d#7lzwg8yR$49^^%#Q~LY z7I;J!GcfQS1YyP<6SLm}1tm&cBT9nv(@M${i&7Z^5;OBk^!!{y6ioFD^^ALV8!G_S zY)g&sO!M^AV&DLBSQ(@kSs56CEH5CIhO$8+puxxt7H0yo4H=mj1b}oD5NEctfW@nsj7*H@8%~A%S)C6`07NAN4BVz-`1rSp~HnJ{&m^1~*1_36ZxlCY{L6#Ok z7F3s^fdNR?AwB+UFNzlb8o7bV4P2cKyzSQ>=@-Zx^-x!x3(1-S8|U>fR~LV}E!NRt zVYbUil%r8YVB;C~Tg&5_MEcU1vY726Tv~z`Yd1UO`L%oSdaTwCZtQlQ5&5Xb;q9r? z#`j-dsmD~`Nj_tFK7T>}t;@^4_&DshtbS&^{9b>qz>kZEZf#!h)xhAq`Ug&tdwhSG XN+&KYTbDU^0m%EFu6{1-oD!M; literal 0 HcmV?d00001 diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/items.png b/Minecraft.Client/Common/res/TitleUpdate/res/items.png index 257fa0983fe09e748c746993f7fa0f5e4a5746b6..c9ace5b7271528ca082f39407eaecd8fb8f7588b 100644 GIT binary patch delta 22561 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 delta 23392 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 } - isGuiRender = false; // 4J added + isGuiRender = false; // 4J added + isInventoryRender = false; + } EntityRenderer *EntityRenderDispatcher::getRenderer(eINSTANCEOF e) diff --git a/Minecraft.Client/EntityRenderDispatcher.h b/Minecraft.Client/EntityRenderDispatcher.h index 10740d1b..270ec3f8 100644 --- a/Minecraft.Client/EntityRenderDispatcher.h +++ b/Minecraft.Client/EntityRenderDispatcher.h @@ -32,6 +32,8 @@ public: float playerRotX; Options *options; bool isGuiRender; // 4J added + bool isInventoryRender; + double xPlayer, yPlayer, zPlayer; diff --git a/Minecraft.Client/GameRenderer.cpp b/Minecraft.Client/GameRenderer.cpp index 1d0b9f9b..484b2323 100644 --- a/Minecraft.Client/GameRenderer.cpp +++ b/Minecraft.Client/GameRenderer.cpp @@ -47,6 +47,8 @@ #include "../Minecraft.World/compression.h" #include "PS3/PS3Extras/ShutdownManager.h" #include "BossMobGuiInfo.h" +#include "../Minecraft.World/LivingEntity.h" + #include "TexturePackRepository.h" #include "TexturePack.h" @@ -96,6 +98,10 @@ GameRenderer::GameRenderer(Minecraft *mc) fovOffsetO = 0; cameraRoll = 0; cameraRollO = 0; + m_yBob = 0.0f; + m_yBobO = 0.0f; + m_elytaCamShift = 0.0f; + for( int i = 0; i < 4; i++ ) { fov[i] = 0.0f; @@ -197,6 +203,20 @@ void GameRenderer::tick(bool first) // 4J - add bFirst fovOffsetO = fovOffset; cameraRollO = cameraRoll; + m_yBobO = m_yBob; + + { + shared_ptr yBobPlayer = dynamic_pointer_cast(mc->cameraTargetPlayer); + float target = 0.0f; + if (yBobPlayer != nullptr && !yBobPlayer->onGround + && !(yBobPlayer->abilities.mayfly && yBobPlayer->abilities.flying)) + { + + target = (float)(atan(-yBobPlayer->yd * 0.2) * 15.0); + } + m_yBob += (target - m_yBob) * 0.8f; + } + if (mc->options->smoothCamera) { // update player view in tick() instead of render() to maintain @@ -455,6 +475,11 @@ void GameRenderer::bobView(float a) glRotatef((float) Mth::sin(b * PI) * bob * 3, 0, 0, 1); glRotatef((float) abs(Mth::cos(b * PI - 0.2f) * bob) * 5, 1, 0, 0); glRotatef((float) tilt, 1, 0, 0); + + float yBobAngle = m_yBobO + (m_yBob - m_yBobO) * a; + if (fabsf(yBobAngle) > 0.001f) + glRotatef(yBobAngle, 1, 0, 0); + } void GameRenderer::moveCameraToPlayer(float a) @@ -468,7 +493,71 @@ void GameRenderer::moveCameraToPlayer(float a) double z = player->zo + (player->z - player->zo) * a; - glRotatef(cameraRollO + (cameraRoll - cameraRollO) * a, 0, 0, 1); + { + shared_ptr elytraPlayer = dynamic_pointer_cast(player); + bool elytraFlying = (elytraPlayer != nullptr && elytraPlayer->isElytraFlying()); + float targetShift = elytraFlying ? -1.22f : 0.0f; + m_elytaCamShift += (targetShift - m_elytaCamShift) * 0.15f; + if (fabsf(m_elytaCamShift) < 0.001f) m_elytaCamShift = 0.0f; + + + y += m_elytaCamShift; + } + + + if (localplayer != nullptr && !player->isSleeping()) + { + shared_ptr rollPlayer = dynamic_pointer_cast(player); + if (rollPlayer != nullptr && rollPlayer->isElytraFlying()) + { + + double velX = rollPlayer->xd; + double velZ = rollPlayer->zd; + double horizVelSq = velX * velX + velZ * velZ; + + + Vec3* look = rollPlayer->getLookAngle(); + double horizLookSq = look->x * look->x + look->z * look->z; + + float targetRoll = 0.0f; + if (horizVelSq > 1.0e-6 && horizLookSq > 1.0e-6) + { + double dot = velX * look->x + velZ * look->z; + double cosAngle = dot / sqrt(horizVelSq * horizLookSq); + + if (cosAngle > 1.0) cosAngle = 1.0; + if (cosAngle < -1.0) cosAngle = -1.0; + + + double angle = acos(cosAngle) / 2.5; + if (angle > PI / 8.0) angle = PI / 8.0; + + + double cross = velX * look->z - velZ * look->x; + float sign = (cross < 0.0) ? -1.0f : 1.0f; + + + targetRoll = sign * (float)(angle * (180.0 / PI)); + } + + + cameraRoll += (targetRoll - cameraRoll) * 0.1f; + } + else + { + + if (fabsf(cameraRoll) > 0.01f) + { + cameraRoll += (0.0f - cameraRoll) * 0.15f; + if (fabsf(cameraRoll) < 0.01f) cameraRoll = 0.0f; + } + } + + + if (fabsf(cameraRoll) > 0.01f) + glRotatef(cameraRoll, 0, 0, 1); + } + if (player->isSleeping()) { @@ -574,10 +663,12 @@ void GameRenderer::moveCameraToPlayer(float a) } } - glTranslatef(0, heightOffset, 0); + + glTranslatef(0, heightOffset - m_elytaCamShift, 0); + x = player->xo + (player->x - player->xo) * a; - y = player->yo + (player->y - player->yo) * a - heightOffset; + y = player->yo + (player->y - player->yo) * a - heightOffset + m_elytaCamShift; z = player->zo + (player->z - player->zo) * a; isInClouds = mc->levelRenderer->isInCloud(x, y, z, a); diff --git a/Minecraft.Client/GameRenderer.h b/Minecraft.Client/GameRenderer.h index ed032695..a2ef0023 100644 --- a/Minecraft.Client/GameRenderer.h +++ b/Minecraft.Client/GameRenderer.h @@ -64,6 +64,13 @@ private: float cameraRoll; float cameraRollO; + float m_yBob; + float m_yBobO; + + float m_elytaCamShift; + + + // 4J - changes brought forward from 1.8.2 static const int NUM_LIGHT_TEXTURES = 4;// * 3; int lightTexture[NUM_LIGHT_TEXTURES]; // 4J - changed so that we have one lightTexture per level, to support split screen diff --git a/Minecraft.Client/HumanoidModel.cpp b/Minecraft.Client/HumanoidModel.cpp index 2c83e025..c363f528 100644 --- a/Minecraft.Client/HumanoidModel.cpp +++ b/Minecraft.Client/HumanoidModel.cpp @@ -88,6 +88,17 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b cloak = new ModelPart(this, 0, 0); cloak->addHumanoidBox(-5, -0, -1, 10, 16, 1, g); // Cloak + elytraRight = new ModelPart(this, 22, 0); + elytraRight->addHumanoidBox(-10.0f, 0.0f, 0.0f, 10, 20, 2, 0.0f); + elytraRight->setPos(5.0f, 0.0f + yOffset, 0.0f); // Wing Left + + elytraLeft = new ModelPart(this, 22, 0); + elytraLeft->bMirror = true; + elytraLeft->addHumanoidBox(0.0f, 0.0f, 0.0f, 10, 20, 2, 0.0f); + elytraLeft->setPos(-5.0f, 0.0f + yOffset, 0.0f); // Wing Right + + + ear = new ModelPart(this, 24, 0); ear->addHumanoidBox(-3, -6, -1, 6, 6, 1, g); // Ear @@ -186,6 +197,8 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b // 4J added - compile now to avoid random performance hit first time cubes are rendered // 4J Stu - Not just performance, but alpha+depth tests don't work right unless we compile here cloak->compile(1.0f/16.0f); + elytraLeft->compile(1.0f / 16.0f); + elytraRight->compile(1.0f / 16.0f); ear->compile(1.0f/16.0f); head->compile(1.0f/16.0f); body->compile(1.0f/16.0f); @@ -211,6 +224,9 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b sneaking=false; idle=false; bowAndArrow=false; + elytraFlying = false; + elytraCrouching = false; + // 4J added eating = false; @@ -881,6 +897,57 @@ void HumanoidModel::setupAnim(float time, float r, float bob, float yRot, float } } } + + if (elytraFlying) + { + if (elytraCrouching) + { + arm0->xRot = PI; arm0->yRot = 0.0f; arm0->zRot = 0.0f; arm0->y = 2.0f; + if (sleeve0) { sleeve0->xRot = PI; sleeve0->yRot = 0.0f; sleeve0->zRot = 0.0f; sleeve0->y = 2.0f; } + + arm1->xRot = 0.0f; arm1->yRot = 0.0f; arm1->zRot = 0.0f; arm1->y = 2.0f; + if (sleeve1) { sleeve1->xRot = 0.0f; sleeve1->yRot = 0.0f; sleeve1->zRot = 0.0f; sleeve1->y = 2.0f; } + + leg0->xRot = 0.0f; leg0->yRot = 0.0f; leg0->zRot = 0.0f; + leg1->xRot = 0.0f; leg1->yRot = 0.0f; leg1->zRot = 0.0f; + if (pants0) { pants0->xRot = 0.0f; pants0->yRot = 0.0f; pants0->zRot = 0.0f; } + if (pants1) { pants1->xRot = 0.0f; pants1->yRot = 0.0f; pants1->zRot = 0.0f; } + } + else + { + float elytraTime = (float)(entity->tickCount) * 0.3f; + float spd2 = (float)(entity->xd * entity->xd + entity->yd * entity->yd + entity->zd * entity->zd); + float fDamp = spd2 / 0.2f; + fDamp = fDamp * fDamp * fDamp; + if (fDamp < 1.0f) fDamp = 1.0f; + + float armAmp = 2.0f * r * 0.5f / fDamp; + float legAmp = 1.4f * r / fDamp; + + arm0->xRot = Mth::cos(elytraTime + PI) * armAmp; + arm0->yRot = 0.0f; arm0->zRot = 0.0f; arm0->y = 2.0f; + if (sleeve0) { sleeve0->xRot = arm0->xRot; sleeve0->yRot = 0.0f; sleeve0->zRot = 0.0f; sleeve0->y = 2.0f; } + + arm1->xRot = Mth::cos(elytraTime) * armAmp; + arm1->yRot = 0.0f; arm1->zRot = 0.0f; arm1->y = 2.0f; + if (sleeve1) { sleeve1->xRot = arm1->xRot; sleeve1->yRot = 0.0f; sleeve1->zRot = 0.0f; sleeve1->y = 2.0f; } + + leg0->xRot = Mth::cos(elytraTime) * legAmp; + leg0->yRot = 0.0f; leg0->zRot = 0.0f; + leg1->xRot = Mth::cos(elytraTime + PI) * legAmp; + leg1->yRot = 0.0f; leg1->zRot = 0.0f; + if (pants0) { pants0->xRot = leg0->xRot; pants0->yRot = 0.0f; pants0->zRot = 0.0f; } + if (pants1) { pants1->xRot = leg1->xRot; pants1->yRot = 0.0f; pants1->zRot = 0.0f; } + } + + body->xRot = 0.0f; + body->z = 0.0f; + + + head->xRot = -(float)(PI / 4.0f); + hair->xRot = head->xRot; + } + } void HumanoidModel::renderHair(float scale,bool usecompiled) @@ -903,6 +970,11 @@ void HumanoidModel::renderCloak(float scale,bool usecompiled) { cloak->render(scale,usecompiled); } +void HumanoidModel::renderElytra(float scale, bool usecompiled) +{ + elytraRight->render(scale, usecompiled); + elytraLeft->render(scale, usecompiled); +} void HumanoidModel::render(HumanoidModel *model, float scale, bool usecompiled) { diff --git a/Minecraft.Client/HumanoidModel.h b/Minecraft.Client/HumanoidModel.h index 1e589c80..4c7f95f5 100644 --- a/Minecraft.Client/HumanoidModel.h +++ b/Minecraft.Client/HumanoidModel.h @@ -3,30 +3,32 @@ class HumanoidModel : public Model { public: - ModelPart *head, *hair, *body, *jacket, *arm0, *sleeve0, *arm1, *sleeve1, *leg0, *pants0, *leg1, *pants1, *ear, *cloak; + ModelPart* head, * hair, * body, * jacket, * arm0, * sleeve0, * arm1, * sleeve1, * leg0, * pants0, * leg1, * pants1, * ear, * cloak; + ModelPart* elytraLeft, * elytraRight; int holdingLeftHand; int holdingRightHand; bool idle; bool sneaking; bool bowAndArrow; - bool eating; - float eating_t; - float eating_swing; - unsigned int m_uiAnimOverrideBitmask; + bool eating; + float eating_t; + float eating_swing; + bool elytraFlying; + bool elytraCrouching; + unsigned int m_uiAnimOverrideBitmask; float m_fYOffset; - enum animbits { eAnim_ArmsDown = 0, eAnim_ArmsOutFront, eAnim_NoLegAnim, eAnim_HasIdle, - eAnim_ForceAnim, + eAnim_ForceAnim, eAnim_SingleLegs, eAnim_SingleArms, - eAnim_StatueOfLiberty, - eAnim_DontRenderArmour, - eAnim_NoBobbing, + eAnim_StatueOfLiberty, + eAnim_DontRenderArmour, + eAnim_NoBobbing, eAnim_DisableRenderHead, eAnim_DisableRenderArm0, eAnim_DisableRenderArm1, @@ -42,6 +44,7 @@ public: eAnim_DisableRenderPants1 }; + static const unsigned int m_staticBitmaskIgnorePlayerCustomAnimSetting = (1 << HumanoidModel::eAnim_ForceAnim) | (1 << HumanoidModel::eAnim_DisableRenderArm0) | @@ -75,6 +78,8 @@ public: void renderHair(float scale, bool usecompiled); void renderEars(float scale, bool usecompiled); void renderCloak(float scale, bool usecompiled); + void renderElytra(float scale, bool usecompiled); + void render(HumanoidModel* model, float scale, bool usecompiled); ModelPart* AddOrRetrievePart(SKIN_BOX* pBox); diff --git a/Minecraft.Client/ItemInHandRenderer.cpp b/Minecraft.Client/ItemInHandRenderer.cpp index 052123ac..02599072 100644 --- a/Minecraft.Client/ItemInHandRenderer.cpp +++ b/Minecraft.Client/ItemInHandRenderer.cpp @@ -11,6 +11,8 @@ #include "MultiPlayerLocalPlayer.h" #include "Minimap.h" #include "MultiPlayerLevel.h" +#include "SkullTileRenderer.h" +#include "../Minecraft.World/Facing.h" #include "../Minecraft.World/net.minecraft.world.item.h" #include "../Minecraft.World/net.minecraft.world.level.tile.h" #include "../Minecraft.World/net.minecraft.world.entity.h" @@ -237,6 +239,17 @@ void ItemInHandRenderer::renderItem(shared_ptr mob, shared_ptrid == Item::skull_Id && SkullTileRenderer::instance != nullptr) + { + wstring extra = L""; + if (item->hasTag() && item->getTag()->contains(L"SkullOwner")) + extra = item->getTag()->getString(L"SkullOwner"); + SkullTileRenderer::instance->renderSkull(-0.5f, 0.0f, -0.5f, Facing::UP, 0.0f, item->getAuxValue(), extra); + glPopMatrix(); + return; + }*/ + Tile *tile = Tile::tiles[item->id]; if (item->getIconType() == Icon::TYPE_TERRAIN && tile != nullptr && TileRenderer::canRender(tile->getRenderShape())) { @@ -680,6 +693,16 @@ void ItemInHandRenderer::render(float a) renderItem(player, item, 1, false); } + //else if (item->id == Item::skull_Id && SkullTileRenderer::instance != nullptr) + //{ + // wstring extra = L""; + // if (item->hasTag() && item->getTag()->contains(L"SkullOwner")) + // extra = item->getTag()->getString(L"SkullOwner"); + // glEnable(GL_RESCALE_NORMAL); + // glScalef(2.0f, 2.0f, 2.0f); + // SkullTileRenderer::instance->renderSkull(-0.5f, 0.0f, -0.5f, Facing::UP, 0.0f, item->getAuxValue(), extra); + // glDisable(GL_RESCALE_NORMAL); + //} else { renderItem(player, item, 0, false); diff --git a/Minecraft.Client/LocalPlayer.cpp b/Minecraft.Client/LocalPlayer.cpp index 7f3e3792..3c38f715 100644 --- a/Minecraft.Client/LocalPlayer.cpp +++ b/Minecraft.Client/LocalPlayer.cpp @@ -67,6 +67,9 @@ LocalPlayer::LocalPlayer(Minecraft *minecraft, Level *level, User *user, int dim sprintTriggerTime = 0; sprintTriggerRegisteredReturn = false; twoJumpsRegistered = false; + m_elytraCancelPressCount = 0; + m_elytraCancelWindow = 0; + m_elytraSoundTicks = 0; sprintTime = 0; m_uiInactiveTicks=0; portalTime = 0.0f; @@ -331,6 +334,58 @@ void LocalPlayer::aiStep() } + if (isElytraFlying()) + { + if (m_elytraCancelWindow > 0) m_elytraCancelWindow--; + + if (!wasJumping && input->jumping) + { + m_elytraCancelPressCount++; + if (m_elytraCancelPressCount == 1) + { + m_elytraCancelWindow = 15; + } + else if (m_elytraCancelPressCount >= 2 && m_elytraCancelWindow > 0) + { + setElytraFlying(false); + jumpTriggerTime = 10; + m_elytraCancelPressCount = 0; + m_elytraCancelWindow = 0; + } + } + + if (m_elytraCancelWindow == 0 && m_elytraCancelPressCount > 0) + m_elytraCancelPressCount = 0; + + + m_elytraSoundTicks++; + float vol = 0.0f; + float pitch = 1.0f; + if (m_elytraSoundTicks >= 20) + { + float totalSpeed = (float)Mth::sqrt(xd * xd + yd * yd + zd * zd); + float f1 = totalSpeed / 2.0f; + float speedVol = f1 * f1; + if (speedVol > 1.0f) speedVol = 1.0f; + float fadeFactor = (m_elytraSoundTicks < 40) + ? (float)(m_elytraSoundTicks - 20) / 20.0f + : 1.0f; + vol = speedVol * fadeFactor; + if (vol > 0.8f) + pitch = 1.0f + (vol - 0.8f); + } + if (vol > 0.01f) + minecraft->soundEngine->startElytraSound((float)x, (float)y, (float)z, vol, pitch); + } + else + { + m_elytraCancelPressCount = 0; + m_elytraCancelWindow = 0; + m_elytraSoundTicks = 0; + minecraft->soundEngine->stopElytraSound(); + } + + if (abilities.flying) { // yd = 0; diff --git a/Minecraft.Client/LocalPlayer.h b/Minecraft.Client/LocalPlayer.h index f62c1be9..88e88f23 100644 --- a/Minecraft.Client/LocalPlayer.h +++ b/Minecraft.Client/LocalPlayer.h @@ -31,6 +31,10 @@ protected: int sprintTriggerTime; bool sprintTriggerRegisteredReturn; // 4J added bool twoJumpsRegistered; // 4J added + int m_elytraCancelPressCount; + int m_elytraCancelWindow; + int m_elytraSoundTicks; + unsigned int m_uiInactiveTicks; // To measure time for idle anims diff --git a/Minecraft.Client/PlayerRenderer.cpp b/Minecraft.Client/PlayerRenderer.cpp index 2d25f54d..7969bcb0 100644 --- a/Minecraft.Client/PlayerRenderer.cpp +++ b/Minecraft.Client/PlayerRenderer.cpp @@ -288,14 +288,21 @@ void PlayerRenderer::render(shared_ptr _mob, double x, double y, double { armorParts1->eating = armorParts2->eating = resModel->eating = false; } + // Suppress crouch pose while elytra flying (superman pose is applied instead) + bool effectiveSneaking = mob->isSneaking() && !mob->isElytraFlying(); + armorParts1->sneaking = armorParts2->sneaking = resModel->sneaking = effectiveSneaking; + // Signal models: elytraFlying suppresses walk/bob; elytraCrouching adds superman arms + // Suppress elytra pose in the inventory screen (isInventoryRender=true during that pass). + bool elytraFlying = mob->isElytraFlying() && !EntityRenderDispatcher::instance->isInventoryRender; + bool elytraCrouch = elytraFlying && mob->isSneaking(); + armorParts1->elytraFlying = armorParts2->elytraFlying = resModel->elytraFlying = elytraFlying; + armorParts1->elytraCrouching = armorParts2->elytraCrouching = resModel->elytraCrouching = elytraCrouch; - armorParts1->sneaking = armorParts2->sneaking = resModel->sneaking = mob->isSneaking(); double yp = y - mob->heightOffset; - if (mob->isSneaking()) + if (mob->isSneaking() && !mob->instanceof(eTYPE_LOCALPLAYER)) { yp -= 2 / 16.0f; } - if (mob->getAnimOverrideBitmask() & (1 << HumanoidModel::eAnim_SmallModel)) { if (mob->isRiding()) @@ -357,6 +364,8 @@ void PlayerRenderer::render(shared_ptr _mob, double x, double y, double } armorParts1->bowAndArrow = armorParts2->bowAndArrow = resModel->bowAndArrow = false; armorParts1->sneaking = armorParts2->sneaking = resModel->sneaking = false; + armorParts1->elytraFlying = armorParts2->elytraFlying = resModel->elytraFlying = false; + armorParts1->elytraCrouching = armorParts2->elytraCrouching = resModel->elytraCrouching = false; armorParts1->holdingRightHand = armorParts2->holdingRightHand = resModel->holdingRightHand = 0; } @@ -497,8 +506,6 @@ void PlayerRenderer::additionalRendering(shared_ptr _mob, float a) // 4J Stu - Fix for sprint-flying causing the cape to rotate up by 180 degrees or more float xRot = 6.0f + lean / 2 + flap; - if (xRot > 64.0f) xRot = 64.0f; - glRotatef(xRot, 1, 0, 0); glRotatef(lean2 / 2, 0, 0, 1); glRotatef(-lean2 / 2, 0, 1, 0); @@ -507,101 +514,182 @@ void PlayerRenderer::additionalRendering(shared_ptr _mob, float a) glPopMatrix(); } - shared_ptr item = mob->inventory->getSelected(); - - if (item != nullptr) { - glPushMatrix(); - resModel->arm0->translateTo(1 / 16.0f); - glTranslatef(-1 / 16.0f, 7 / 16.0f, 1 / 16.0f); + shared_ptr chestItem = mob->inventory->armor[LivingEntity::SLOT_CHEST - 1]; + if (chestItem != nullptr && dynamic_cast(chestItem->getItem()) != nullptr && !mob->isInvisible()) + { + static ResourceLocation elytraTexture(L"item/elytra.png"); + bindTexture(&elytraTexture); - if (mob->fishing != nullptr) - { - item = std::make_shared(Item::stick); - } + float brightness2 = SharedConstants::TEXTURE_LIGHTING ? 1 : mob->getBrightness(a); + glColor3f(brightness2, brightness2, brightness2); - UseAnim anim = UseAnim_none;//null; - if (mob->getUseItemDuration() > 0) - { - anim = item->getUseAnimation(); - } - if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) - { - float s = 8 / 16.0f; - glTranslatef(-0 / 16.0f, 3 / 16.0f, -5 / 16.0f); - s *= 0.75f; - glRotatef(20, 1, 0, 0); - glRotatef(45, 0, 1, 0); - glScalef(-s, -s, s); - } - else if (item->id == Item::bow->id) - { - float s = 10 / 16.0f; - glTranslatef(0 / 16.0f, 2 / 16.0f, 5 / 16.0f); - glRotatef(-20, 0, 1, 0); - glScalef(s, -s, s); - glRotatef(-100, 1, 0, 0); - glRotatef(45, 0, 1, 0); - } - else if (Item::items[item->id]->isHandEquipped()) - { - float s = 10 / 16.0f; - if (Item::items[item->id]->isMirroredArt()) + float wf = 0.2617994f; + float wf1 = -0.2617994f; + float wf2 = resModel->body->y; + float wf3 = 0.0f; + + if (mob->isElytraFlying() && !EntityRenderDispatcher::instance->isInventoryRender) { - glRotatef(180, 0, 0, 1); - glTranslatef(0, -2 / 16.0f, 0); + float f4 = 1.0f; + if (mob->yd < 0.0) + { + double speed = sqrt(mob->xd * mob->xd + mob->yd * mob->yd + mob->zd * mob->zd); + if (speed > 0.0) + { + double normY = mob->yd / speed; + f4 = 1.0f - (float)pow(-normY, 1.5); + if (f4 < 0.0f) f4 = 0.0f; + if (f4 > 1.0f) f4 = 1.0f; + } + } + wf = f4 * 0.34906584f + (1.0f - f4) * wf; + wf1 = f4 * (-(float)(PI / 2.0)) + (1.0f - f4) * wf1; } + else if (mob->isSneaking()) + { + wf = (float)(PI * 2.0 / 9.0); + wf1 = -(float)(PI / 4.0); + wf2 = 0.0f; + wf3 = 0.08726646f; + } + + if (EntityRenderDispatcher::instance->isInventoryRender) + { + mob->rotateElytraX = wf; + mob->rotateElytraY = wf3; + mob->rotateElytraZ = wf1; + } + else + { + mob->rotateElytraX += (wf - mob->rotateElytraX) * 0.3f; + mob->rotateElytraY += (wf3 - mob->rotateElytraY) * 0.3f; + mob->rotateElytraZ += (wf1 - mob->rotateElytraZ) * 0.3f; + } + + + humanoidModel->elytraRight->y = wf2; + humanoidModel->elytraRight->xRot = mob->rotateElytraX; + humanoidModel->elytraRight->yRot = mob->rotateElytraY; + humanoidModel->elytraRight->zRot = mob->rotateElytraZ; + + humanoidModel->elytraLeft->y = wf2; + humanoidModel->elytraLeft->xRot = mob->rotateElytraX; + humanoidModel->elytraLeft->yRot = -mob->rotateElytraY; + humanoidModel->elytraLeft->zRot = -mob->rotateElytraZ; + + glPushMatrix(); + glTranslatef(0, 0.0f, (2.0f + 0.125f) / 16.0f); + humanoidModel->renderElytra(1 / 16.0f, true); + glPopMatrix(); + } + + + shared_ptr item = mob->inventory->getSelected(); + + if (item != nullptr) + { + glPushMatrix(); + resModel->arm0->translateTo(1 / 16.0f); + glTranslatef(-1 / 16.0f, 7 / 16.0f, 1 / 16.0f); + + if (mob->fishing != nullptr) + { + item = std::make_shared(Item::stick); + } + + UseAnim anim = UseAnim_none;//null; if (mob->getUseItemDuration() > 0) { - if (anim == UseAnim_block) + anim = item->getUseAnimation(); + } + + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) + { + float s = 8 / 16.0f; + glTranslatef(-0 / 16.0f, 3 / 16.0f, -5 / 16.0f); + s *= 0.75f; + glRotatef(20, 1, 0, 0); + glRotatef(45, 0, 1, 0); + glScalef(-s, -s, s); + } + else if (item->id == Item::bow->id) + { + float s = 10 / 16.0f; + glTranslatef(0 / 16.0f, 2 / 16.0f, 5 / 16.0f); + glRotatef(-20, 0, 1, 0); + glScalef(s, -s, s); + glRotatef(-100, 1, 0, 0); + glRotatef(45, 0, 1, 0); + } + else if (Item::items[item->id]->isHandEquipped()) + { + float s = 10 / 16.0f; + if (Item::items[item->id]->isMirroredArt()) { - glTranslatef(0.05f, 0, -0.1f); - glRotatef(-50, 0, 1, 0); - glRotatef(-10, 1, 0, 0); - glRotatef(-60, 0, 0, 1); + glRotatef(180, 0, 0, 1); + glTranslatef(0, -2 / 16.0f, 0); + } + if (mob->getUseItemDuration() > 0) + { + if (anim == UseAnim_block) + { + glTranslatef(0.05f, 0, -0.1f); + glRotatef(-50, 0, 1, 0); + glRotatef(-10, 1, 0, 0); + glRotatef(-60, 0, 0, 1); + } + } + glTranslatef(0, 3 / 16.0f, 0); + glScalef(s, -s, s); + glRotatef(-100, 1, 0, 0); + glRotatef(45, 0, 1, 0); + } + else if (item->id == Item::skull_Id) + { + float s = 0.5f; + glTranslatef(0, -3 / 16.0f, -4 / 16.0f); + glRotatef(45, 1, 0, 0); + glRotatef(45, 0, 1, 0); + glScalef(-s, -s, s); + } + else + { + float s = 6 / 16.0f; + glTranslatef(+4 / 16.0f, +3 / 16.0f, -3 / 16.0f); + glScalef(s, s, s); + glRotatef(60, 0, 0, 1); + glRotatef(-90, 1, 0, 0); + glRotatef(20, 0, 0, 1); + } + + if (item->getItem()->hasMultipleSpriteLayers()) + { + for (int layer = 0; layer <= 1; layer++) + { + int col = item->getItem()->getColor(item, layer); + float red = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; + + glColor4f(red, g, b, 1); + this->entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, layer, false); } } - glTranslatef(0, 3 / 16.0f, 0); - glScalef(s, -s, s); - glRotatef(-100, 1, 0, 0); - glRotatef(45, 0, 1, 0); - } - else - { - float s = 6 / 16.0f; - glTranslatef(+4 / 16.0f, +3 / 16.0f, -3 / 16.0f); - glScalef(s, s, s); - glRotatef(60, 0, 0, 1); - glRotatef(-90, 1, 0, 0); - glRotatef(20, 0, 0, 1); - } - - if (item->getItem()->hasMultipleSpriteLayers()) - { - for (int layer = 0; layer <= 1; layer++) + else { - int col = item->getItem()->getColor(item, layer); + int col = item->getItem()->getColor(item, 0); float red = ((col >> 16) & 0xff) / 255.0f; float g = ((col >> 8) & 0xff) / 255.0f; float b = ((col) & 0xff) / 255.0f; glColor4f(red, g, b, 1); - this->entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, layer, false); + this->entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, 0); } - } - else - { - int col = item->getItem()->getColor(item, 0); - float red = ((col >> 16) & 0xff) / 255.0f; - float g = ((col >> 8) & 0xff) / 255.0f; - float b = ((col) & 0xff) / 255.0f; - glColor4f(red, g, b, 1); - this->entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, 0); + glPopMatrix(); } - - glPopMatrix(); } } @@ -746,10 +834,34 @@ void PlayerRenderer::setupRotations(shared_ptr _mob, float bob, fl glRotatef(getFlipDegrees(mob), 0, 0, 1); glRotatef(270, 0, 1, 0); } - else + else if (mob->isElytraFlying() && !EntityRenderDispatcher::instance->isInventoryRender) { LivingEntityRenderer::setupRotations(mob, bob, bodyRot, a); + + float f = (float)mob->ticksElytraFlying + a; + float f1 = Mth::clamp(f * f / 100.0f, 0.0f, 1.0f); + glRotatef(f1 * (-90.0f - mob->xRot), 1.0f, 0.0f, 0.0f); + + Vec3* look = mob->getLookAngle(); + double d0 = mob->xd * mob->xd + mob->zd * mob->zd; + double d1 = look->x * look->x + look->z * look->z; + + if (d0 > 0.0 && d1 > 0.0) + { + double d2 = (mob->xd * look->x + mob->zd * look->z) / (sqrt(d0) * sqrt(d1)); + if (d2 > 1.0) d2 = 1.0; + if (d2 < -1.0) d2 = -1.0; + double d3 = mob->xd * look->z - mob->zd * look->x; + float sign = (d3 >= 0.0) ? 1.0f : -1.0f; + glRotatef(sign * (float)(acos(d2) * 180.0 / PI), 0.0f, 1.0f, 0.0f); + } + } + else + { + LivingEntityRenderer::setupRotations(mob, bob, bodyRot, a); + } + } // 4J Added override to stop rendering shadow if player is invisible diff --git a/Minecraft.Client/PreStitchedTextureMap.cpp b/Minecraft.Client/PreStitchedTextureMap.cpp index 2d7326c7..cbc5ef84 100644 --- a/Minecraft.Client/PreStitchedTextureMap.cpp +++ b/Minecraft.Client/PreStitchedTextureMap.cpp @@ -570,6 +570,8 @@ void PreStitchedTextureMap::loadUVs() ADD_ICON(14, 6, L"rabbitHide") ADD_ICON(13, 14, L"prismarineCrystal"); ADD_ICON(13, 13, L"prismarineShard"); + ADD_ICON(13, 12, L"elytra"); + ADD_ICON(13, 11, L"broken_elytra"); ADD_ICON_WITH_NAME(14, 7, L"compassP0", L"compass") // 4J Added ADD_ICON_WITH_NAME(14, 8, L"compassP1", L"compass") // 4J Added diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/item/elytra/flying.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/item/elytra/flying.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c426aa779b1aec06a1bd0289270dbb80a5d76392 GIT binary patch literal 132727 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 z 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 literal 0 HcmV?d00001 diff --git a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml index 6c2c33a3..3dc913a4 100644 --- a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml +++ b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml @@ -9393,4 +9393,7 @@ All Ender Chests in a world are linked. Items placed into an Ender Chest are acc Red Sandstone Slab + + Elytra + diff --git a/Minecraft.World/ArmorRecipes.cpp b/Minecraft.World/ArmorRecipes.cpp index c74c02a3..0717e694 100644 --- a/Minecraft.World/ArmorRecipes.cpp +++ b/Minecraft.World/ArmorRecipes.cpp @@ -92,6 +92,8 @@ ArmorRecipes::_eArmorType ArmorRecipes::GetArmorType(int iId) case Item::chestplate_iron_Id: case Item::chestplate_diamond_Id: case Item::chestplate_gold_Id: + case Item::elytra_Id: + return eArmorType_Chestplate; break; diff --git a/Minecraft.World/ArmorSlot.cpp b/Minecraft.World/ArmorSlot.cpp index 2e85fed3..82be3067 100644 --- a/Minecraft.World/ArmorSlot.cpp +++ b/Minecraft.World/ArmorSlot.cpp @@ -31,6 +31,11 @@ bool ArmorSlot::mayPlace(shared_ptr item) { return slotNum == 0; } + if (item->getItem()->id == Item::elytra_Id) + { + return slotNum == ArmorItem::SLOT_TORSO; + } + return false; } diff --git a/Minecraft.World/ElytraItem.cpp b/Minecraft.World/ElytraItem.cpp new file mode 100644 index 00000000..26ac7bce --- /dev/null +++ b/Minecraft.World/ElytraItem.cpp @@ -0,0 +1,92 @@ +#include "stdafx.h" +#include "net.minecraft.world.h" +#include "net.minecraft.world.level.h" +#include "net.minecraft.world.entity.h" +#include "net.minecraft.world.entity.player.h" +#include "net.minecraft.world.item.h" +#include "ElytraItem.h" + +// Internal item ID: 187 → public item ID: 443 (256 + 187) +ElytraItem::ElytraItem() : Item(187) +{ + maxStackSize = 1; + setMaxDamage(432); +} + +bool ElytraItem::isFlyEnabled(shared_ptr item) +{ + return item->getDamageValue() < item->getMaxDamage() - 1; +} + +bool ElytraItem::TestUse(shared_ptr instance, Level* level, shared_ptr player) +{ + return true; +} + +shared_ptr ElytraItem::use(shared_ptr instance, Level* level, shared_ptr player) +{ + // Elytra equips to the chest slot (SLOT_CHEST = 3, armor array index = SLOT_CHEST - 1 = 2) + const int chestSlot = LivingEntity::SLOT_CHEST - 1; + + ItemInstance copy = *instance->copy_not_shared(); + + if (!player->abilities.instabuild) + { + if (player->inventory->armor[chestSlot] == nullptr) + { + player->inventory->armor[chestSlot] = make_shared(copy); + player->inventory->removeItemNoUpdate(player->inventory->selected); + instance->count = 0; + } + else + { + player->inventory->setItem(player->inventory->selected, player->inventory->armor[chestSlot]); + player->inventory->armor[chestSlot] = make_shared(copy); + } + } + else + { + if (player->inventory->armor[chestSlot] == nullptr) + { + player->inventory->armor[chestSlot] = make_shared(copy); + } + else + { + player->inventory->setItem(player->inventory->selected, player->inventory->armor[chestSlot]); + player->inventory->armor[chestSlot] = make_shared(copy); + } + } + + // Play cloth armor equip sound (range 194–199) + player->playSound(194, 0.5f, 1.0f); + + return instance; +} + +bool ElytraItem::isValidRepairItem(shared_ptr source, shared_ptr repairItem) +{ + return repairItem->id == Item::leather_Id; +} + +void ElytraItem::registerIcons(IconRegister* iconRegister) +{ + Item::registerIcons(iconRegister); + m_brokenElytraIcon = iconRegister->registerIcon(L"broken_elytra"); +} + +Icon* ElytraItem::getLayerIcon(int auxValue, int spriteLayer) +{ + // auxValue may be the damage value in certain render paths + if (auxValue < getMaxDamage() - 1) + return icon; + else + return m_brokenElytraIcon; +} + +Icon* ElytraItem::getIcon(int auxValue) +{ + if (auxValue < getMaxDamage() - 1) + return icon; + else + return m_brokenElytraIcon; +} diff --git a/Minecraft.World/ElytraItem.h b/Minecraft.World/ElytraItem.h new file mode 100644 index 00000000..510b027a --- /dev/null +++ b/Minecraft.World/ElytraItem.h @@ -0,0 +1,20 @@ +#pragma once + +#include "Item.h" + +class ElytraItem : public Item +{ +public: + ElytraItem(); + + static bool isFlyEnabled(shared_ptr item); + + virtual bool TestUse(shared_ptr instance, Level* level, shared_ptr player) override; + virtual shared_ptr use(shared_ptr instance, Level* level, shared_ptr player) override; + virtual bool isValidRepairItem(shared_ptr source, shared_ptr repairItem) override; + virtual void registerIcons(IconRegister* iconRegister) override; + virtual Icon* getLayerIcon(int auxValue, int spriteLayer) override; + virtual Icon* getIcon(int auxValue) override; + + Icon* m_brokenElytraIcon = nullptr; +}; diff --git a/Minecraft.World/Item.cpp b/Minecraft.World/Item.cpp index 46a52f19..ed0bbbf3 100644 --- a/Minecraft.World/Item.cpp +++ b/Minecraft.World/Item.cpp @@ -17,6 +17,7 @@ #include "Item.h" #include "HangingEntityItem.h" #include "HtmlString.h" +#include "ElytraItem.h" typedef Item::Tier _Tier; @@ -271,6 +272,8 @@ Item* Item::rabbitStew = nullptr; Item* Item::prismarine_crystal = nullptr; Item* Item::prismarine_shard = nullptr; +Item* Item::elytra = nullptr; + void Item::staticCtor() { @@ -537,9 +540,11 @@ void Item::staticCtor() Item::armor_stand = (new ArmorStandItem(160)) ->setBaseItemTypeAndMaterial(eBaseItemType_HangingItem,eMaterial_cloth)->setIconName(L"armorStand")->setDescriptionId(IDS_ITEM_ARMOR_STAND)->setUseDescriptionId(IDS_DESC_ARMOR_STAND); Item::prismarine_crystal = (new Item(154))->setIconName(L"prismarineCrystal")->setDescriptionId(IDS_ITEM_PRISMARINE_CRYSTAL)->setUseDescriptionId(IDS_ITEM_PRISMARINE_CRYSTAL_DESC); Item::prismarine_shard = (new Item(153))->setIconName(L"prismarineShard")->setDescriptionId(IDS_ITEM_PRISMARINE_SHARD)->setUseDescriptionId(IDS_ITEM_PRISMARINE_SHARD_DESC); + Item::elytra = (new ElytraItem())->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_cloth)->setIconName(L"elytra")->setDescriptionId(IDS_ITEM_ELYTRA)->setUseDescriptionId(IDS_ITEM_ELYTRA); } + // 4J Stu - We need to do this after the staticCtor AND after staticCtors for other class // eg Recipes void Item::staticInit() diff --git a/Minecraft.World/Item.h b/Minecraft.World/Item.h index 3d00c925..8c474f5c 100644 --- a/Minecraft.World/Item.h +++ b/Minecraft.World/Item.h @@ -436,6 +436,7 @@ public: static Item* prismarine_crystal; static Item* prismarine_shard; + static Item* elytra; static const int shovel_iron_Id = 256; @@ -667,6 +668,8 @@ public: static const int door_acacia_Id = 430; static const int door_dark_Id = 431; + + static const int elytra_Id = 443; //TU31 diff --git a/Minecraft.World/Player.cpp b/Minecraft.World/Player.cpp index d6b9b9ed..52d83d61 100644 --- a/Minecraft.World/Player.cpp +++ b/Minecraft.World/Player.cpp @@ -42,6 +42,7 @@ #include "../Minecraft.Client/LocalPlayer.h" #include "../Minecraft.Client/HumanoidModel.h" #include "SoundTypes.h" +#include "ElytraItem.h" @@ -83,6 +84,14 @@ void Player::_init() m_uiDebugOptions=0L; jumpTriggerTime = 0; + ticksElytraFlying = 0; + rotateElytraX = 0.2617994f; + rotateElytraY = 0.0f; + rotateElytraZ = -0.2617994f; + m_elytraImpactYd = 0.0f; + m_wasElytraFlying = false; + m_elytraFallProtectTicks = 0; + takeXpDelay = 0; experienceLevel = totalExperience = 0; experienceProgress = 0.0f; @@ -1000,6 +1009,8 @@ void Player::serverAiStep() void Player::aiStep() { if (jumpTriggerTime > 0) jumpTriggerTime--; + if (m_elytraFallProtectTicks > 0) m_elytraFallProtectTicks--; + if (level->difficulty == Difficulty::PEACEFUL && getHealth() < getMaxHealth() && level->getGameRules()->getBoolean(GameRules::RULE_NATURAL_REGENERATION)) { @@ -1008,8 +1019,43 @@ void Player::aiStep() inventory->tick(); oBob = bob; + if (jumping && !onGround && yd < 0.0 && !isElytraFlying() && !abilities.flying && jumpTriggerTime == 0) + { + shared_ptr chestItem = inventory->armor[LivingEntity::SLOT_CHEST - 1]; + if (chestItem != nullptr && chestItem->getItem() != nullptr) + { + ElytraItem* elytra = dynamic_cast(chestItem->getItem()); + if (elytra != nullptr && ElytraItem::isFlyEnabled(chestItem)) + setElytraFlying(true); + } + } + + + LivingEntity::aiStep(); + if (isElytraFlying() && !onGround) + { + ticksElytraFlying++; + + if (!level->isClientSide && ticksElytraFlying % 20 == 0) + { + shared_ptr chestItem = inventory->armor[LivingEntity::SLOT_CHEST - 1]; + if (chestItem != nullptr && dynamic_cast(chestItem->getItem()) != nullptr) + { + chestItem->hurtAndBreak(1, dynamic_pointer_cast(shared_from_this())); + if (!ElytraItem::isFlyEnabled(chestItem)) + setElytraFlying(false); + } + else + { + setElytraFlying(false); + } + } + } + + + AttributeInstance *speed = getAttribute(SharedMonsterAttributes::MOVEMENT_SPEED); if (!level->isClientSide) speed->setBaseValue(abilities.getWalkingSpeed()); flyingSpeed = defaultFlySpeed; @@ -1389,6 +1435,8 @@ bool Player::hurt(DamageSource *source, float dmg) if ( hasInvulnerablePrivilege() || (abilities.invulnerable && !source->isBypassInvul()) ) return false; + + // 4J-JEV: Fix for PSVita: #3987 - [IN GAME] The user can take damage/die, when attempting to re-enter fly mode when falling from a height. if ( source == DamageSource::fall && isAllowedToFly() && abilities.flying ) return false; @@ -2110,7 +2158,90 @@ void Player::travel(float xa, float ya) { double preX = x, preY = y, preZ = z; - if (abilities.flying && riding == nullptr) + m_elytraImpactYd = (float)yd; + + if (isElytraFlying() && riding == nullptr) + { + double preHorizSpeed = Mth::sqrt(xd * xd + zd * zd); + + + if (yd > -0.5) + fallDistance = 1.0f; + + Vec3* look = getLookAngle(); + float pitchRad = xRot * (PI / 180.0f); + double horizLookLen = Mth::sqrt(look->x * look->x + look->z * look->z); + double horizSpeed = Mth::sqrt(xd * xd + zd * zd); + + + float cosPitch = Mth::cos(pitchRad); + cosPitch = cosPitch * cosPitch; + + + yd += -0.08 + (double)cosPitch * 0.06; + + if (yd < 0.0 && horizLookLen > 0.0) + { + double thrust = yd * -0.1 * (double)cosPitch; + yd += thrust; + xd += look->x * thrust / horizLookLen; + zd += look->z * thrust / horizLookLen; + } + + if (pitchRad < 0.0f && horizLookLen > 0.0) + { + double boost = horizSpeed * (double)(-Mth::sin(pitchRad)) * 0.04; + yd += boost * 3.2; + xd -= look->x * boost / horizLookLen; + zd -= look->z * boost / horizLookLen; + } + + + if (horizLookLen > 0.0) + { + xd += (look->x / horizLookLen * horizSpeed - xd) * 0.1; + zd += (look->z / horizLookLen * horizSpeed - zd) * 0.1; + } + + // Air drag + xd *= 0.99; + yd *= 0.98; + zd *= 0.99; + + if (jumping && abilities.instabuild) + yd += (double)abilities.getFlyingSpeed() * 3.0; + + m_elytraImpactYd = (float)yd; + move(xd, yd, zd); + + if (horizontalCollision && !verticalCollision) + { + double postHorizSpeed = Mth::sqrt(xd * xd + zd * zd); + double speedLost = preHorizSpeed - postHorizSpeed; + float damage = (float)(speedLost * 10.0 - 3.0); + + if (damage > 0.0f) + onElytraKineticDamage(damage); + } + + if (onGround) + { + bool canStandUp = true; + if (level != nullptr) + { + float halfW = bbWidth / 2.0f; + AABB* standingBB = AABB::newTemp( + x - halfW, bb->y0, z - halfW, + x + halfW, bb->y0 + 1.8, z + halfW); + AABBList* collisions = level->getCubes(shared_from_this(), standingBB, true); + canStandUp = collisions->empty(); + } + if (canStandUp) + setElytraFlying(false); + } + } + else if (abilities.flying && riding == nullptr) + { double ydo = yd; float ofs = flyingSpeed; @@ -2278,6 +2409,13 @@ void Player::checkRidingStatistiscs(double dx, double dy, double dz) } } } +void Player::checkFallDamage(double ya, bool onGround) +{ + LivingEntity::checkFallDamage(ya, onGround); +} + + + void Player::causeFallDamage(float distance) @@ -2686,6 +2824,37 @@ bool Player::isCapeHidden() { return getPlayerFlag(FLAG_HIDE_CAPE); } +bool Player::isElytraFlying() +{ + return getPlayerFlag(FLAG_ELYTRA_FLYING); +} + +void Player::onElytraKineticDamage(float damage) +{ + hurt(DamageSource::fall, damage); +} + +void Player::setElytraFlying(bool flying) +{ + setPlayerFlag(FLAG_ELYTRA_FLYING, flying); + if (flying) + { + m_wasElytraFlying = false; + setSize(0.6f, 0.6f); + fallDistance = 0.0f; + } + else + { + ticksElytraFlying = 0; + + m_wasElytraFlying = true; + m_elytraFallProtectTicks = 60; + setSize(0.6f, 1.8f); + + } +} + + bool Player::isPushedByWater() { diff --git a/Minecraft.World/Player.h b/Minecraft.World/Player.h index c74305d7..61413adc 100644 --- a/Minecraft.World/Player.h +++ b/Minecraft.World/Player.h @@ -61,6 +61,8 @@ private: protected: static const int FLAG_HIDE_CAPE = 1; + static const int FLAG_ELYTRA_FLYING = 2; // bit 2 of DATA_PLAYER_FLAGS_ID + public: shared_ptr inventory; @@ -79,6 +81,20 @@ protected: int jumpTriggerTime; public: + int ticksElytraFlying; + float rotateElytraX; + float rotateElytraY; + float rotateElytraZ; + float m_elytraImpactYd; + bool m_wasElytraFlying; + int m_elytraFallProtectTicks; + bool isElytraFlying(); + virtual void setElytraFlying(bool flying); + + virtual void onElytraKineticDamage(float damage); + +public: + BYTE userType; float oBob, bob; @@ -351,6 +367,7 @@ private: bool m_bAwardedOnARail; protected: + virtual void checkFallDamage(double ya, bool onGround) override; virtual void causeFallDamage(float distance); public: diff --git a/Minecraft.World/SoundTypes.h b/Minecraft.World/SoundTypes.h index eb3283cb..971d4661 100644 --- a/Minecraft.World/SoundTypes.h +++ b/Minecraft.World/SoundTypes.h @@ -261,6 +261,8 @@ enum eSOUND_TYPE eSoundType_ITEM_ARMOR_equipGeneric6, eSoundType_DAMAGE_CRITICAL, + eSoundType_ITEM_ELYTRA_FLYING, + eSoundType_MAX }; diff --git a/Minecraft.World/cmake/sources/Common.cmake b/Minecraft.World/cmake/sources/Common.cmake index 941492e2..555feb7f 100644 --- a/Minecraft.World/cmake/sources/Common.cmake +++ b/Minecraft.World/cmake/sources/Common.cmake @@ -1077,6 +1077,8 @@ set(_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_ITEM "${CMAKE_CURRENT_SOURCE_DIR}/DyePowderItem.h" "${CMAKE_CURRENT_SOURCE_DIR}/EggItem.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/EggItem.h" + "${CMAKE_CURRENT_SOURCE_DIR}/ElytraItem.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/ElytraItem.h" "${CMAKE_CURRENT_SOURCE_DIR}/EmptyMapItem.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/EmptyMapItem.h" "${CMAKE_CURRENT_SOURCE_DIR}/EnchantedBookItem.cpp" diff --git a/Minecraft.World/net.minecraft.world.item.h b/Minecraft.World/net.minecraft.world.item.h index 863e75a2..bd3b6c0a 100644 --- a/Minecraft.World/net.minecraft.world.item.h +++ b/Minecraft.World/net.minecraft.world.item.h @@ -1,6 +1,7 @@ #pragma once #include "ArmorItem.h" +#include "ElytraItem.h" #include "BedItem.h" #include "BoatItem.h" #include "BowItem.h"