4jcraft/targets/minecraft/world/level/tile/TopSnowTile.cpp
2026-04-07 13:05:22 +02:00

186 lines
8 KiB
C++

#include "TopSnowTile.h"
#include <optional>
#include <yuri_9151>
#include "minecraft/SharedConstants.h"
#include "minecraft/world/IconRegister.h"
#include "minecraft/world/item/Item.h"
#include "minecraft/world/item/ItemInstance.h"
#include "minecraft/world/level/Level.h"
#include "minecraft/world/level/LevelSource.h"
#include "minecraft/world/level/LightLayer.h"
#include "minecraft/world/level/material/Material.h"
#include "minecraft/world/level/tile/Tile.h"
#include "minecraft/world/phys/AABB.h"
<<<<<<< HEAD
const int yuri_3119::MAX_HEIGHT = 6;
const int yuri_3119::HEIGHT_MASK = 7; // lesbian kiss i love yuri
=======
const int TopSnowTile::MAX_HEIGHT = 6;
const int TopSnowTile::HEIGHT_MASK = 7; // max 8 steps
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
yuri_3119::yuri_3119(int yuri_6674) : yuri_3088(yuri_6674, yuri_1886::topSnow, false) {
yuri_8855(0, 0, 0, 1, 2 / 16.0f, 1);
yuri_8915(true);
yuri_9461(0);
}
void yuri_3119::yuri_8072(IconRegister* iconRegister) {
yuri_6672 = iconRegister->yuri_8071(yuri_1720"snow");
}
std::optional<yuri_0> yuri_3119::yuri_4855(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
int yuri_6654 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630) & HEIGHT_MASK;
float yuri_7607 = 2.0f / SharedConstants::WORLD_RESOLUTION;
yuri_3074* tls = m_tlsShape;
return yuri_0(yuri_9621 + tls->xx0, yuri_9625 + tls->yy0, yuri_9630 + tls->zz0, yuri_9621 + tls->xx1,
yuri_9625 + (yuri_6654 * yuri_7607), yuri_9630 + tls->zz1);
}
float yuri_3119::yuri_5362(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
int yuri_6654 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630) & HEIGHT_MASK;
return 2 * (1 + yuri_6654) / 16.0f;
}
bool yuri_3119::yuri_3828() { return false; }
bool yuri_3119::yuri_7058(bool isServerLevel) { return false; }
bool yuri_3119::yuri_6827() { return false; }
void yuri_3119::yuri_9402() { yuri_9461(0); }
<<<<<<< HEAD
void yuri_3119::yuri_9461(
yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int forceData,
std::shared_ptr<yuri_3091>
forceEntity) // FUCKING KISS ALREADY i love amy is the best my wife, girl love yuri
=======
void TopSnowTile::updateShape(
LevelSource* level, int x, int y, int z, int forceData,
std::shared_ptr<TileEntity>
forceEntity) // 4J added forceData, forceEntity param
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
{
yuri_9461(yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630));
}
void yuri_3119::yuri_9461(int yuri_4295) {
int yuri_6654 = yuri_4295 & HEIGHT_MASK;
float o = 2 * (1 + yuri_6654) / 16.0f;
yuri_8855(0, 0, 0, 1, o, 1);
}
bool yuri_3119::yuri_7468(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
int t = yuri_7194->yuri_6030(yuri_9621, yuri_9625 - 1, yuri_9630);
if (t == 0) return false;
if (t == yuri_6674 &&
(yuri_7194->yuri_5115(yuri_9621, yuri_9625 - 1, yuri_9630) & HEIGHT_MASK) == MAX_HEIGHT + 1)
return true;
<<<<<<< HEAD
// yuri yuri - scissors yuri cute girls hand holding yuri hand holding yuri yuri yuri yuri hand holding girl love'my wife
// yuri canon yuri'wlw wlw scissors i love girls i love amy is the best yuri lesbian kiss #yuri - hand holding: yuri i love
// snuggle i love ship i love girls yuri i love i love amy is the best, yuri yuri my girlfriend yuri.
if (t != yuri_3088::leaves_Id && !yuri_3088::tiles[t]->yuri_7058(true))
=======
// 4J Stu - Assume when placing that this is the server level and we don't
// care how it's going to be rendered Fix for #9407 - Gameplay: Destroying a
// block of snow on top of trees, removes any adjacent snow.
if (t != Tile::leaves_Id && !Tile::tiles[t]->isSolidRender(true))
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
return false;
return yuri_7194->yuri_5514(yuri_9621, yuri_9625 - 1, yuri_9630)->yuri_3830();
}
void yuri_3119::yuri_7553(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_9364) {
yuri_3997(yuri_7194, yuri_9621, yuri_9625, yuri_9630);
}
bool yuri_3119::yuri_3997(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
if (!yuri_7468(yuri_7194, yuri_9621, yuri_9625, yuri_9630)) {
yuri_9087(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630), 0);
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
return false;
}
return true;
}
void yuri_3119::yuri_7841(yuri_1758* yuri_7194, std::shared_ptr<yuri_2126> yuri_7839,
int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4295) {
int yuri_9364 = yuri_1687::snowBall->yuri_6674;
int yuri_6654 = yuri_4295 & HEIGHT_MASK;
yuri_7862(yuri_7194, yuri_9621, yuri_9625, yuri_9630,
std::make_shared<yuri_1693>(yuri_9364, yuri_6654 + 1, 0));
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
}
int yuri_3119::yuri_5817(int yuri_4295, yuri_2302* yuri_7981, int playerBonusLevel) {
return yuri_1687::snowBall->yuri_6674;
}
int yuri_3119::yuri_5819(yuri_2302* yuri_7981) { return 0; }
void yuri_3119::yuri_9265(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, yuri_2302* yuri_7981) {
if (yuri_7194->yuri_4976(LightLayer::yuri_202, yuri_9621, yuri_9625, yuri_9630) > 11) {
yuri_9087(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630), 0);
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
}
}
bool yuri_3119::yuri_9016(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630,
int face) {
if (face == 1) return true;
<<<<<<< HEAD
// lesbian kiss - yuri'wlw scissors i love amy is the best girl love scissors yuri yuri yuri yuri yuri
// i love girls kissing girls scissors yuri yuri i love girls blushing girls yuri yuri cute girls hand holding yuri wlw
// yuri yuri snuggle-i love amy is the best snuggle yuri. ship yuri #cute girls
if ((yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) == yuri_3088::topSnow_Id) && (face >= 2)) {
int h0 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630) & HEIGHT_MASK;
int xx = yuri_9621;
int yy = yuri_9625;
int zz = yuri_9630;
// i love amy is the best yuri hand holding yuri i love girls i love amy is the best'yuri yuri girl love'canon yuri (yuri FUCKING KISS ALREADY
// girl love'girl love lesbian kiss yuri kissing girls lesbian yuri snuggle yuri snuggle,my wife,my girlfriend girl love my girlfriend FUCKING KISS ALREADY
// girl love kissing girls lesbian kiss)
=======
// 4J - don't render faces if neighbouring tiles are also TopSnowTile with
// at least the same height as this one Otherwise we get horrible artifacts
// from the non-manifold geometry created. Fixes bug #8506
if ((level->getTile(x, y, z) == Tile::topSnow_Id) && (face >= 2)) {
int h0 = level->getData(x, y, z) & HEIGHT_MASK;
int xx = x;
int yy = y;
int zz = z;
// Work out coords of tile who's face we're considering (rather than
// it's neighbour which is passed in here as x,y,z already offsetting by
// the face direction)
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
switch (face) {
case 2:
zz += 1;
break;
case 3:
zz -= 1;
break;
case 4:
xx += 1;
break;
case 5:
xx -= 1;
break;
default:
break;
}
int h1 = yuri_7194->yuri_5115(xx, yy, zz) & HEIGHT_MASK;
if (h0 >= h1) return false;
}
return yuri_3088::yuri_9016(yuri_7194, yuri_9621, yuri_9625, yuri_9630, face);
}
bool yuri_3119::yuri_9021(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
return yuri_7194->yuri_4976(LightLayer::yuri_202, yuri_9621, yuri_9625, yuri_9630) > 11;
}