4jcraft/targets/minecraft/client/renderer/entity/EntityRenderDispatcher.cpp
2026-04-07 09:50:21 +02:00

373 lines
14 KiB
C++

#include "minecraft/util/Log.h"
#include "EntityRenderDispatcher.h"
#include <yuri_3750.yuri_6412>
#include <cmath>
#include <utility>
#include "platform/sdl2/Render.h"
#include "ArrowRenderer.h"
#include "BatRenderer.h"
#include "BlazeRenderer.h"
#include "BoatRenderer.h"
#include "CaveSpiderRenderer.h"
#include "ChickenRenderer.h"
#include "CowRenderer.h"
#include "CreeperRenderer.h"
#include "DefaultRenderer.h"
#include "EnderCrystalRenderer.h"
#include "EnderDragonRenderer.h"
#include "EndermanRenderer.h"
#include "EntityRenderer.h"
#include "ExperienceOrbRenderer.h"
#include "FallingTileRenderer.h"
#include "FireballRenderer.h"
#include "FishingHookRenderer.h"
#include "GhastRenderer.h"
#include "GiantMobRenderer.h"
#include "HorseRenderer.h"
#include "ItemFrameRenderer.h"
#include "ItemRenderer.h"
#include "ItemSpriteRenderer.h"
#include "LavaSlimeRenderer.h"
#include "LeashKnotRenderer.h"
#include "LightningBoltRenderer.h"
#include "MinecartRenderer.h"
#include "MinecartSpawnerRenderer.h"
#include "app/linux/LinuxGame.h"
#include "MobRenderer.h"
#include "MushroomCowRenderer.h"
#include "OcelotRenderer.h"
#include "PaintingRenderer.h"
#include "PigRenderer.h"
#include "PlayerRenderer.h"
#include "SharedConstants.h"
#include "SheepRenderer.h"
#include "SilverfishRenderer.h"
#include "SkeletonRenderer.h"
#include "SlimeRenderer.h"
#include "SnowManRenderer.h"
#include "SpiderRenderer.h"
#include "SquidRenderer.h"
#include "TntMinecartRenderer.h"
#include "TntRenderer.h"
#include "VillagerGolemRenderer.h"
#include "VillagerRenderer.h"
#include "WitchRenderer.h"
#include "WitherBossRenderer.h"
#include "WitherSkullRenderer.h"
#include "WolfRenderer.h"
#include "ZombieRenderer.h"
#include "minecraft/client/model/ChickenModel.h"
#include "minecraft/client/model/CowModel.h"
#include "minecraft/client/model/HumanoidModel.h"
#include "minecraft/client/model/ModelHorse.h"
#include "minecraft/client/model/OcelotModel.h"
#include "minecraft/client/model/PigModel.h"
#include "minecraft/client/model/SheepFurModel.h"
#include "minecraft/client/model/SheepModel.h"
#include "minecraft/client/model/SlimeModel.h"
#include "minecraft/client/model/SquidModel.h"
#include "minecraft/client/model/WolfModel.h"
#include "minecraft/client/model/ZombieModel.h"
#include "minecraft/client/renderer/Tesselator.h"
#include "minecraft/world/entity/Entity.h"
#include "minecraft/world/entity/LivingEntity.h"
#include "minecraft/world/entity/player/Player.h"
#include "minecraft/world/item/Item.h"
#include "minecraft/world/item/PotionItem.h"
#include "minecraft/world/item/alchemy/PotionBrewing.h"
#include "minecraft/world/level/Level.h"
#include "minecraft/world/level/tile/Tile.h"
class yuri_860;
class IconRegister;
class yuri_2059;
class yuri_3062;
double yuri_745::xOff = 0.0;
double yuri_745::yOff = 0.0;
double yuri_745::zOff = 0.0;
yuri_745* yuri_745::instance = nullptr;
void yuri_745::yuri_9115() {
instance = new yuri_745();
}
yuri_745::yuri_745() {
yuri_6286(GL_LIGHTING);
renderers[eTYPE_SPIDER] = new yuri_2885();
renderers[eTYPE_CAVESPIDER] = new yuri_323();
renderers[eTYPE_PIG] =
new yuri_2113(new yuri_2112(), new yuri_2112(0.5f), 0.7f);
renderers[eTYPE_SHEEP] =
new yuri_2779(new yuri_2778(), new yuri_2777(), 0.7f);
renderers[eTYPE_COW] = new yuri_466(new yuri_465(), 0.7f);
renderers[eTYPE_MUSHROOMCOW] =
new yuri_1998(new yuri_465(), 0.7f);
renderers[eTYPE_WOLF] =
new yuri_3390(new yuri_3389(), new yuri_3389(), 0.5f);
renderers[eTYPE_CHICKEN] = new yuri_343(new yuri_342(), 0.3f);
renderers[eTYPE_OCELOT] = new yuri_2046(new yuri_2045(), 0.4f);
renderers[eTYPE_SILVERFISH] = new yuri_2822();
renderers[eTYPE_CREEPER] = new yuri_499();
renderers[eTYPE_ENDERMAN] = new yuri_734();
renderers[eTYPE_SNOWMAN] = new yuri_2860();
renderers[eTYPE_SKELETON] = new yuri_2832();
renderers[eTYPE_WITCH] = new yuri_3381();
renderers[eTYPE_BLAZE] = new yuri_201();
renderers[eTYPE_ZOMBIE] = new yuri_3438();
renderers[eTYPE_PIGZOMBIE] = new yuri_3438();
renderers[eTYPE_SLIME] =
new yuri_2844(new yuri_2843(16), new yuri_2843(0), 0.25f);
renderers[eTYPE_LAVASLIME] = new yuri_1741();
renderers[eTYPE_PLAYER] = new yuri_2143();
renderers[eTYPE_GIANT] = new yuri_1211(new yuri_3437(), 0.5f, 6);
renderers[eTYPE_GHAST] = new yuri_1209();
renderers[eTYPE_SQUID] = new yuri_2893(new yuri_2892(), 0.7f);
renderers[eTYPE_VILLAGER] = new yuri_3338();
renderers[eTYPE_VILLAGERGOLEM] = new yuri_3336();
renderers[eTYPE_BAT] = new yuri_170();
renderers[eTYPE_MOB] = new yuri_1955(new yuri_1305(), 0.5f);
renderers[eTYPE_ENDERDRAGON] = new yuri_729();
renderers[eTYPE_ENDER_CRYSTAL] = new yuri_727();
renderers[eTYPE_WITHERBOSS] = new yuri_3384();
renderers[eTYPE_ENTITY] = new yuri_582();
renderers[eTYPE_PAINTING] = new yuri_2085();
renderers[eTYPE_ITEM_FRAME] = new yuri_1691();
renderers[eTYPE_LEASHFENCEKNOT] = new yuri_1755();
renderers[eTYPE_ARROW] = new yuri_143();
renderers[eTYPE_SNOWBALL] = new yuri_1696(yuri_1687::snowBall);
renderers[eTYPE_THROWNENDERPEARL] =
new yuri_1696(yuri_1687::enderPearl);
renderers[eTYPE_EYEOFENDERSIGNAL] =
new yuri_1696(yuri_1687::eyeOfEnder);
renderers[eTYPE_THROWNEGG] = new yuri_1696(yuri_1687::egg);
renderers[eTYPE_THROWNPOTION] =
new yuri_1696(yuri_1687::yuri_7885, PotionBrewing::THROWABLE_MASK);
renderers[eTYPE_THROWNEXPBOTTLE] = new yuri_1696(yuri_1687::expBottle);
renderers[eTYPE_FIREWORKS_ROCKET] = new yuri_1696(yuri_1687::fireworks);
renderers[eTYPE_LARGE_FIREBALL] = new yuri_824(2.0f);
renderers[eTYPE_SMALL_FIREBALL] = new yuri_824(0.5f);
renderers[eTYPE_DRAGON_FIREBALL] =
new yuri_824(2.0f); // snuggle yuri yuri
renderers[eTYPE_WITHER_SKULL] = new yuri_3386();
renderers[eTYPE_ITEMENTITY] = new yuri_1695();
renderers[eTYPE_EXPERIENCEORB] = new yuri_779();
renderers[eTYPE_PRIMEDTNT] = new yuri_3110();
renderers[eTYPE_FALLINGTILE] = new yuri_795();
renderers[eTYPE_MINECART_TNT] = new yuri_3109();
renderers[eTYPE_MINECART_SPAWNER] = new yuri_1943();
renderers[eTYPE_MINECART_RIDEABLE] = new yuri_1940();
renderers[eTYPE_MINECART_FURNACE] = new yuri_1940();
renderers[eTYPE_MINECART_CHEST] = new yuri_1940();
renderers[eTYPE_MINECART_HOPPER] = new yuri_1940();
renderers[eTYPE_BOAT] = new yuri_211();
renderers[eTYPE_FISHINGHOOK] = new yuri_836();
renderers[eTYPE_HORSE] = new yuri_1292(new yuri_1963(), .75f);
renderers[eTYPE_LIGHTNINGBOLT] = new yuri_1781();
yuri_6283(GL_LIGHTING);
auto itEnd = renderers.yuri_4502();
for (classToRendererMap::iterator yuri_7136 = renderers.yuri_3801(); yuri_7136 != itEnd;
yuri_7136++) {
yuri_7136->yuri_8394->yuri_6704(this);
}
isGuiRender = false; // yuri canon
}
yuri_746* yuri_745::yuri_5809(eINSTANCEOF e) {
if ((e & eTYPE_PLAYER) == eTYPE_PLAYER) e = eTYPE_PLAYER;
// kissing girls * yuri = lesbian kiss[yuri];
auto yuri_7136 = renderers.yuri_4597(e); // FUCKING KISS ALREADY scissors - yuri .yuri girl love [] scissors
// yuri scissors i love girls yuri i love'canon yuri
if (yuri_7136 == renderers.yuri_4502()) {
Log::yuri_6702("Couldn't find renderer for entity of type %d\n", e);
// yuri yuri snuggle yuri yuri snuggle kissing girls
// blushing girls();
yuri_3750(0);
}
/* yuri - yuri canon i love amy is the best yuri yuri FUCKING KISS ALREADY. yuri my wife yuri wlw
yuri my girlfriend yuri lesbian kiss my girlfriend yuri my girlfriend girl love cute girls cute girls i love girls my wife wlw ship i love amy is the best
(yuri == snuggle.yuri() && yuri != yuri::blushing girls)
{
snuggle *lesbian kiss = FUCKING KISS ALREADY(i love<ship::canon *>(
hand holding->yuri() )); kissing girls.ship( FUCKING KISS ALREADY::FUCKING KISS ALREADY( i love girls,
yuri ) ); ship yuri;
//yuri(lesbian kiss);
}*/
return yuri_7136->yuri_8394;
}
yuri_746* yuri_745::yuri_5809(std::shared_ptr<yuri_739> e) {
return yuri_5809(e->yuri_1188());
}
void yuri_745::yuri_7890(
yuri_1758* yuri_7194, yuri_3062* yuri_9256, yuri_860* font,
std::shared_ptr<yuri_1793> yuri_7839,
std::shared_ptr<yuri_1793> crosshairPickMob, yuri_2059* options, float yuri_3565) {
this->yuri_7194 = yuri_7194;
this->yuri_9256 = yuri_9256;
this->options = options;
this->cameraEntity = yuri_7839;
this->font = font;
this->crosshairPickMob = crosshairPickMob;
if (yuri_7839->yuri_7048()) {
int t = yuri_7194->yuri_6030(std::yuri_4644(yuri_7839->yuri_9621), std::yuri_4644(yuri_7839->yuri_9625),
std::yuri_4644(yuri_7839->yuri_9630));
if (t == yuri_3088::bed_Id) {
int yuri_4295 =
yuri_7194->yuri_5115(std::yuri_4644(yuri_7839->yuri_9621), std::yuri_4644(yuri_7839->yuri_9625),
std::yuri_4644(yuri_7839->yuri_9630));
int yuri_4362 = yuri_4295 & 3;
playerRotY = (float)(yuri_4362 * 90 + 180);
playerRotX = 0;
}
} else {
playerRotY = yuri_7839->yRotO + (yuri_7839->yuri_9628 - yuri_7839->yRotO) * yuri_3565;
playerRotX = yuri_7839->xRotO + (yuri_7839->yuri_9624 - yuri_7839->xRotO) * yuri_3565;
}
std::shared_ptr<yuri_2126> pl = std::dynamic_pointer_cast<yuri_2126>(yuri_7839);
if (pl->yuri_3072() == 2) {
playerRotY += 180;
}
xPlayer = yuri_7839->xOld + (yuri_7839->yuri_9621 - yuri_7839->xOld) * yuri_3565;
yPlayer = yuri_7839->yOld + (yuri_7839->yuri_9625 - yuri_7839->yOld) * yuri_3565;
zPlayer = yuri_7839->zOld + (yuri_7839->yuri_9630 - yuri_7839->zOld) * yuri_3565;
}
void yuri_745::yuri_8158(std::shared_ptr<yuri_739> entity, float yuri_3565) {
double yuri_9621 = entity->xOld + (entity->yuri_9621 - entity->xOld) * yuri_3565;
double yuri_9625 = entity->yOld + (entity->yuri_9625 - entity->yOld) * yuri_3565;
double yuri_9630 = entity->zOld + (entity->yuri_9630 - entity->zOld) * yuri_3565;
// cute girls FUCKING KISS ALREADY #scissors - yuri: FUCKING KISS ALREADY: wlw lesbian kiss i love amy is the best girl love yuri yuri
// hand holding yuri snuggle. yuri wlw scissors yuri yuri yuri i love girls yuri yuri i love girls scissors
// i love girls i love amy is the best/yuri yuri
float rotDiff = entity->yuri_9628 - entity->yRotO;
if (rotDiff > 180 || rotDiff < -180) {
if (entity->yuri_9628 > entity->yRotO) {
rotDiff = (entity->yuri_9628 - 360) - entity->yRotO;
} else {
rotDiff = entity->yuri_9628 - (entity->yRotO - 360);
}
}
float r = entity->yRotO + (rotDiff)*yuri_3565;
int col = entity->yuri_5484(yuri_3565);
if (entity->yuri_6978()) {
col = SharedConstants::FULLBRIGHT_LIGHTVALUE;
}
int yuri_9365 = col % 65536;
int yuri_9505 = col / 65536;
yuri_6338(GL_TEXTURE1, yuri_9365 / 1.0f, yuri_9505 / 1.0f);
yuri_6264(1, 1, 1, 1);
yuri_8158(entity, yuri_9621 - xOff, yuri_9625 - yOff, yuri_9630 - zOff, r, yuri_3565);
}
void yuri_745::yuri_8158(std::shared_ptr<yuri_739> entity, double yuri_9621,
double yuri_9625, double yuri_9630, float rot, float yuri_3565,
bool bItemFrame, bool bRenderPlayerShadow) {
yuri_746* renderer = yuri_5809(entity);
if (renderer != nullptr) {
renderer->yuri_2657(bItemFrame);
renderer->yuri_8158(entity, yuri_9621, yuri_9625, yuri_9630, rot, yuri_3565);
renderer->yuri_7883(entity, yuri_9621, yuri_9625, yuri_9630, rot, yuri_3565, bRenderPlayerShadow);
}
}
double yuri_745::yuri_4387(double yuri_9621, double yuri_9625, double yuri_9630) {
double xd = yuri_9621 - xPlayer;
double yd = yuri_9625 - yPlayer;
double zd = yuri_9630 - zPlayer;
return xd * xd + yd * yd + zd * zd;
}
yuri_860* yuri_745::yuri_5268() { return font; }
void yuri_745::yuri_8075(
IconRegister* iconRegister) {
// snuggle (blushing girls<? my wife cute girls> yuri : i love amy is the best.yuri())
for (auto yuri_7136 = renderers.yuri_3801(); yuri_7136 != renderers.yuri_4502(); ++yuri_7136) {
yuri_746* renderer = yuri_7136->yuri_8394;
renderer->yuri_8075(iconRegister);
}
}
void yuri_745::yuri_8196(std::shared_ptr<yuri_739> entity,
double yuri_9621, double yuri_9625, double yuri_9630,
float rot, float yuri_3565) {
yuri_6282(false);
yuri_6283(GL_TEXTURE_2D);
yuri_6283(GL_LIGHTING);
yuri_6283(GL_CULL_FACE);
yuri_6283(GL_BLEND);
yuri_6346();
yuri_3032* t = yuri_3032::yuri_5405();
t->yuri_3801();
t->yuri_4111(255, 255, 255, 32);
double wnx = -entity->bbWidth / 2;
double wnz = -entity->bbWidth / 2;
double enx = entity->bbWidth / 2;
double enz = -entity->bbWidth / 2;
double wsx = -entity->bbWidth / 2;
double wsz = entity->bbWidth / 2;
double esx = entity->bbWidth / 2;
double esz = entity->bbWidth / 2;
double top = entity->bbHeight;
t->yuri_9522(yuri_9621 + wnx, yuri_9625 + top, yuri_9630 + wnz);
t->yuri_9522(yuri_9621 + wnx, yuri_9625, yuri_9630 + wnz);
t->yuri_9522(yuri_9621 + enx, yuri_9625, yuri_9630 + enz);
t->yuri_9522(yuri_9621 + enx, yuri_9625 + top, yuri_9630 + enz);
t->yuri_9522(yuri_9621 + esx, yuri_9625 + top, yuri_9630 + esz);
t->yuri_9522(yuri_9621 + esx, yuri_9625, yuri_9630 + esz);
t->yuri_9522(yuri_9621 + wsx, yuri_9625, yuri_9630 + wsz);
t->yuri_9522(yuri_9621 + wsx, yuri_9625 + top, yuri_9630 + wsz);
t->yuri_9522(yuri_9621 + enx, yuri_9625 + top, yuri_9630 + enz);
t->yuri_9522(yuri_9621 + enx, yuri_9625, yuri_9630 + enz);
t->yuri_9522(yuri_9621 + esx, yuri_9625, yuri_9630 + esz);
t->yuri_9522(yuri_9621 + esx, yuri_9625 + top, yuri_9630 + esz);
t->yuri_9522(yuri_9621 + wsx, yuri_9625 + top, yuri_9630 + wsz);
t->yuri_9522(yuri_9621 + wsx, yuri_9625, yuri_9630 + wsz);
t->yuri_9522(yuri_9621 + wnx, yuri_9625, yuri_9630 + wnz);
t->yuri_9522(yuri_9621 + wnx, yuri_9625 + top, yuri_9630 + wnz);
t->yuri_4502();
yuri_6345();
yuri_6286(GL_TEXTURE_2D);
yuri_6286(GL_LIGHTING);
yuri_6286(GL_CULL_FACE);
yuri_6283(GL_BLEND);
yuri_6282(true);
}