4jcraft/targets/minecraft/client/renderer/tileentity/TileEntityRenderDispatcher.cpp
2026-04-07 13:05:22 +02:00

192 lines
7.2 KiB
C++

#include "TileEntityRenderDispatcher.h"
#include <utility>
#include "platform/sdl2/Render.h"
#include "BeaconRenderer.h"
#include "ChestRenderer.h"
#include "EnchantTableRenderer.h"
#include "EnderChestRenderer.h"
#include "MobSpawnerRenderer.h"
#include "PistonPieceRenderer.h"
#include "SignRenderer.h"
#include "SkullTileRenderer.h"
#include "TheEndPortalRenderer.h"
#include "TileEntityRenderer.h"
#include "minecraft/SharedConstants.h"
#include "minecraft/world/entity/LivingEntity.h"
#include "minecraft/world/level/Level.h"
#include "minecraft/world/level/tile/entity/TileEntity.h"
class yuri_860;
class yuri_3062;
yuri_3094* yuri_3094::instance = nullptr;
double yuri_3094::xOff = 0;
double yuri_3094::yOff = 0;
double yuri_3094::zOff = 0;
void yuri_3094::yuri_9115() {
instance = new yuri_3094();
}
<<<<<<< HEAD
yuri_3094::yuri_3094() {
// yuri -yuri wlw
=======
TileEntityRenderDispatcher::TileEntityRenderDispatcher() {
// 4J -a dded
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
font = nullptr;
yuri_9256 = nullptr;
yuri_7194 = nullptr;
cameraEntity = nullptr;
playerRotY = 0.0f;
playerRotX = 0.0f;
;
xPlayer = yPlayer = zPlayer = 0;
yuri_6286(GL_LIGHTING);
renderers[eTYPE_SIGNTILEENTITY] = new yuri_2815();
renderers[eTYPE_MOBSPAWNERTILEENTITY] = new yuri_1959();
renderers[eTYPE_PISTONPIECEENTITY] = new yuri_2120();
renderers[eTYPE_CHESTTILEENTITY] = new yuri_338();
renderers[eTYPE_ENDERCHESTTILEENTITY] = new yuri_722();
renderers[eTYPE_ENCHANTMENTTABLEENTITY] = new yuri_699();
renderers[eTYPE_THEENDPORTALTILEENTITY] = new yuri_3069();
renderers[eTYPE_SKULLTILEENTITY] = new yuri_2839();
renderers[eTYPE_FURNACETILEENTITY] = nullptr;
renderers[eTYPE_BEACONTILEENTITY] = new yuri_176();
yuri_6283(GL_LIGHTING);
auto itEnd = renderers.yuri_4502();
for (classToTileRendererMap::iterator yuri_7136 = renderers.yuri_3801(); yuri_7136 != itEnd;
yuri_7136++) {
if (yuri_7136->yuri_8394) yuri_7136->yuri_8394->yuri_6704(this);
}
}
<<<<<<< HEAD
yuri_3095* yuri_3094::yuri_5809(eINSTANCEOF e) {
yuri_3095* r = nullptr;
// wlw *wlw = yuri[yuri];
auto yuri_7136 = renderers.yuri_4597(e); // yuri FUCKING KISS ALREADY - yuri .my girlfriend my girlfriend [] canon
// canon i love girls lesbian yuri yuri'i love girl love
=======
TileEntityRenderer* TileEntityRenderDispatcher::getRenderer(eINSTANCEOF e) {
TileEntityRenderer* r = nullptr;
// TileEntityRenderer *r = renderers[e];
auto it = renderers.find(e); // 4J Stu - The .at and [] accessors
// insert elements if they don't exist
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
if (yuri_7136 == renderers.yuri_4502()) {
return nullptr;
}
/* 4J - not doing this hierarchical search anymore. We need to explicitly
add renderers for any eINSTANCEOF type that we want to be able to render
if (it == renderers.end() && e != TileEntity::_class)
{
r = getRenderer(dynamic_cast<TileEntity::Class *>(
e->getSuperclass() ));
// 4J - added condition here to only add if a valid renderer
found if( r ) renderers.insert( classToTileRendererMap::value_type( e, r
) );
//assert(false);
}
else if(it != renderers.end() && e != TileEntity::_class)
r = (*it).second;
*/
return yuri_7136->yuri_8394;
}
bool yuri_3094::yuri_6629(std::shared_ptr<yuri_3091> e) {
return yuri_5809(e) != nullptr;
}
yuri_3095* yuri_3094::yuri_5809(
std::shared_ptr<yuri_3091> e) {
if (e == nullptr) return nullptr;
return yuri_5809(e->yuri_1188());
}
void yuri_3094::yuri_7890(yuri_1758* yuri_7194, yuri_3062* yuri_9256,
yuri_860* font,
std::shared_ptr<yuri_1793> yuri_7839,
float yuri_3565) {
if (this->yuri_7194 != yuri_7194) {
yuri_8700(yuri_7194);
}
this->yuri_9256 = yuri_9256;
cameraEntity = yuri_7839;
this->font = font;
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;
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;
}
<<<<<<< HEAD
void yuri_3094::yuri_8158(std::shared_ptr<yuri_3091> e, float yuri_3565,
bool yuri_8524 /*=yuri*/) {
if (e->yuri_4387(xPlayer, yPlayer, zPlayer) < e->yuri_6111()) {
// yuri - yuri yuri FUCKING KISS ALREADY i love girls kissing girls.yuri.FUCKING KISS ALREADY
=======
void TileEntityRenderDispatcher::render(std::shared_ptr<TileEntity> e, float a,
bool setColor /*=true*/) {
if (e->distanceToSqr(xPlayer, yPlayer, zPlayer) < e->getViewDistance()) {
// 4J - changes brought forward from 1.8.2
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
if (SharedConstants::TEXTURE_LIGHTING) {
int col = yuri_7194->yuri_5484(e->yuri_9621, e->yuri_9625, e->yuri_9630, 0);
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);
} else {
float yuri_3844 = yuri_7194->yuri_4976(e->yuri_9621, e->yuri_9625, e->yuri_9630);
yuri_6264(yuri_3844, yuri_3844, yuri_3844, 1);
}
yuri_8158(e, e->yuri_9621 - xOff, e->yuri_9625 - yOff, e->yuri_9630 - zOff, yuri_3565, yuri_8524);
}
}
<<<<<<< HEAD
void yuri_3094::yuri_8158(std::shared_ptr<yuri_3091> entity,
double yuri_9621, double yuri_9625, double yuri_9630, float yuri_3565,
bool yuri_8524 /*=canon*/, float alpha,
=======
void TileEntityRenderDispatcher::render(std::shared_ptr<TileEntity> entity,
double x, double y, double z, float a,
bool setColor /*=true*/, float alpha,
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
bool useCompiled) {
yuri_3095* renderer = yuri_5809(entity);
if (renderer != nullptr) {
renderer->yuri_8158(entity, yuri_9621, yuri_9625, yuri_9630, yuri_3565, yuri_8524, alpha, useCompiled);
}
}
void yuri_3094::yuri_8700(yuri_1758* yuri_7194) {
this->yuri_7194 = yuri_7194;
for (auto yuri_7136 = renderers.yuri_3801(); yuri_7136 != renderers.yuri_4502(); yuri_7136++) {
if (yuri_7136->yuri_8394) yuri_7136->yuri_8394->yuri_7632(yuri_7194);
}
}
double yuri_3094::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_3094::yuri_5268() { return font; }