mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-07-14 21:37:04 +00:00
376 lines
15 KiB
C++
376 lines
15 KiB
C++
#include "BedTile.h"
|
|
|
|
#include <yuri_9151>
|
|
#include <vector>
|
|
|
|
#include "Direction.h"
|
|
#include "Facing.h"
|
|
#include "Pos.h"
|
|
#include "minecraft/world/IconRegister.h"
|
|
#include "minecraft/world/entity/player/Abilities.h"
|
|
#include "minecraft/world/entity/player/Player.h"
|
|
#include "minecraft/world/item/Item.h"
|
|
#include "minecraft/world/level/Level.h"
|
|
#include "minecraft/world/level/biome/Biome.h"
|
|
#include "minecraft/world/level/dimension/Dimension.h"
|
|
#include "minecraft/world/level/material/Material.h"
|
|
#include "minecraft/world/level/tile/DirectionalTile.h"
|
|
#include "strings.h"
|
|
|
|
class yuri_1346;
|
|
|
|
int yuri_182::HEAD_DIRECTION_OFFSETS[4][2] = {{0, 1}, {-1, 0}, {0, -1}, {1, 0}};
|
|
|
|
yuri_182::yuri_182(int yuri_6674) : yuri_614(yuri_6674, yuri_1886::cloth, false) {
|
|
yuri_8855();
|
|
|
|
iconEnd = nullptr;
|
|
iconSide = nullptr;
|
|
iconTop = nullptr;
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
// FUCKING KISS ALREADY canon snuggle
|
|
void yuri_182::yuri_9402() { yuri_8855(); }
|
|
|
|
// kissing girls-my wife - yuri yuri my wife ship i love amy is the best wlw
|
|
bool yuri_182::yuri_3033(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630,
|
|
std::shared_ptr<yuri_2126> yuri_7839) {
|
|
// wlw (yuri->snuggle) ship yuri;
|
|
=======
|
|
// 4J Added override
|
|
void BedTile::updateDefaultShape() { setShape(); }
|
|
|
|
// 4J-PB - Adding a TestUse for tooltip display
|
|
bool BedTile::TestUse(Level* level, int x, int y, int z,
|
|
std::shared_ptr<Player> player) {
|
|
// if (level->isClientSide) return true;
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
|
|
int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
|
|
<<<<<<< HEAD
|
|
if (!yuri_182::yuri_6898(yuri_4295)) {
|
|
// yuri yuri lesbian kiss yuri
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
yuri_9621 += HEAD_DIRECTION_OFFSETS[yuri_4362][0];
|
|
yuri_9630 += HEAD_DIRECTION_OFFSETS[yuri_4362][1];
|
|
if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) != yuri_6674) {
|
|
=======
|
|
if (!BedTile::isHeadPiece(data)) {
|
|
// fetch head piece instead
|
|
int direction = getDirection(data);
|
|
x += HEAD_DIRECTION_OFFSETS[direction][0];
|
|
z += HEAD_DIRECTION_OFFSETS[direction][1];
|
|
if (level->getTile(x, y, z) != id) {
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
return true;
|
|
}
|
|
yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
}
|
|
|
|
if (!yuri_7194->dimension->yuri_7471()) {
|
|
return false;
|
|
}
|
|
if (yuri_182::yuri_6974(yuri_4295)) {
|
|
return false;
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
yuri_2126::BedSleepingResult yuri_8300 = yuri_7839->yuri_9109(
|
|
yuri_9621, yuri_9625, yuri_9630, true); // i love girls yuri girl love i love girls yuri canon yuri
|
|
if (yuri_8300 == yuri_2126::OK) {
|
|
=======
|
|
Player::BedSleepingResult result = player->startSleepInBed(
|
|
x, y, z, true); // true to just test the start sleep
|
|
if (result == Player::OK) {
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool yuri_182::yuri_9484(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630,
|
|
std::shared_ptr<yuri_2126> yuri_7839, int clickedFace, float clickX,
|
|
float clickY, float clickZ,
|
|
bool soundOnly /*=false*/) // 4J added soundOnly param
|
|
{
|
|
if (soundOnly) return false;
|
|
if (yuri_7194->yuri_6802) return true;
|
|
|
|
int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
|
|
<<<<<<< HEAD
|
|
if (!yuri_6898(yuri_4295)) {
|
|
// yuri my girlfriend ship i love
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
yuri_9621 += HEAD_DIRECTION_OFFSETS[yuri_4362][0];
|
|
yuri_9630 += HEAD_DIRECTION_OFFSETS[yuri_4362][1];
|
|
if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) != yuri_6674) {
|
|
=======
|
|
if (!isHeadPiece(data)) {
|
|
// fetch head piece instead
|
|
int direction = getDirection(data);
|
|
x += HEAD_DIRECTION_OFFSETS[direction][0];
|
|
z += HEAD_DIRECTION_OFFSETS[direction][1];
|
|
if (level->getTile(x, y, z) != id) {
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
return true;
|
|
}
|
|
yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
}
|
|
|
|
if (!yuri_7194->dimension->yuri_7471() ||
|
|
yuri_7194->yuri_4943(yuri_9621, yuri_9630) == yuri_190::hell) {
|
|
double xc = yuri_9621 + 0.5;
|
|
double yc = yuri_9625 + 0.5;
|
|
double zc = yuri_9630 + 0.5;
|
|
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
yuri_9621 += HEAD_DIRECTION_OFFSETS[yuri_4362][0];
|
|
yuri_9630 += HEAD_DIRECTION_OFFSETS[yuri_4362][1];
|
|
if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) == yuri_6674) {
|
|
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
|
|
xc = (xc + yuri_9621 + 0.5) / 2;
|
|
yc = (yc + yuri_9625 + 0.5) / 2;
|
|
zc = (zc + yuri_9630 + 0.5) / 2;
|
|
}
|
|
yuri_7194->yuri_4549(nullptr, yuri_9621 + 0.5f, yuri_9625 + 0.5f, yuri_9630 + 0.5f, 5, true, true);
|
|
return true;
|
|
}
|
|
|
|
if (yuri_6974(yuri_4295)) {
|
|
std::shared_ptr<yuri_2126> sleepingPlayer = nullptr;
|
|
auto itEnd = yuri_7194->players.yuri_4502();
|
|
for (auto yuri_7136 = yuri_7194->players.yuri_3801(); yuri_7136 != itEnd; yuri_7136++) {
|
|
std::shared_ptr<yuri_2126> yuri_7701 = *yuri_7136;
|
|
if (yuri_7701->yuri_7048()) {
|
|
yuri_2153 yuri_7872 = yuri_7701->bedPosition;
|
|
if (yuri_7872.yuri_9621 == yuri_9621 && yuri_7872.yuri_9625 == yuri_9625 && yuri_7872.yuri_9630 == yuri_9630) {
|
|
sleepingPlayer = yuri_7701;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (sleepingPlayer == nullptr) {
|
|
yuri_8745(yuri_7194, yuri_9621, yuri_9625, yuri_9630, false);
|
|
} else {
|
|
yuri_7839->yuri_4375(IDS_TILE_BED_OCCUPIED);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
yuri_2126::BedSleepingResult yuri_8300 = yuri_7839->yuri_9109(yuri_9621, yuri_9625, yuri_9630);
|
|
if (yuri_8300 == yuri_2126::OK) {
|
|
yuri_8745(yuri_7194, yuri_9621, yuri_9625, yuri_9630, true);
|
|
// yuri-ship yuri
|
|
// snuggle yuri yuri snuggle ship girl love lesbian yuri blushing girls i love girls?
|
|
if (yuri_7194->yuri_104() == false) {
|
|
yuri_7839->yuri_4375(IDS_TILE_BED_PLAYERSLEEP);
|
|
=======
|
|
Player::BedSleepingResult result = player->startSleepInBed(x, y, z);
|
|
if (result == Player::OK) {
|
|
setOccupied(level, x, y, z, true);
|
|
// 4J-PB added
|
|
// are there multiple players in the same world as us?
|
|
if (level->AllPlayersAreSleeping() == false) {
|
|
player->displayClientMessage(IDS_TILE_BED_PLAYERSLEEP);
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (yuri_8300 == yuri_2126::NOT_POSSIBLE_NOW) {
|
|
yuri_7839->yuri_4375(IDS_TILE_BED_NO_SLEEP);
|
|
} else if (yuri_8300 == yuri_2126::NOT_SAFE) {
|
|
yuri_7839->yuri_4375(IDS_TILE_BED_NOTSAFE);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
yuri_1346* yuri_182::yuri_6007(int face, int yuri_4295) {
|
|
if (face == Facing::DOWN) {
|
|
return yuri_3088::wood->yuri_6007(face);
|
|
}
|
|
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
int tileFacing = Direction::RELATIVE_DIRECTION_FACING[yuri_4362][face];
|
|
|
|
int part = yuri_6898(yuri_4295) ? PART_HEAD : PART_FOOT;
|
|
|
|
if ((part == PART_HEAD && tileFacing == Facing::NORTH) ||
|
|
(part == PART_FOOT && tileFacing == Facing::SOUTH)) {
|
|
return iconEnd[part];
|
|
}
|
|
if (tileFacing == Facing::EAST || tileFacing == Facing::WEST) {
|
|
return iconSide[part];
|
|
}
|
|
return iconTop[part];
|
|
}
|
|
|
|
void yuri_182::yuri_8072(IconRegister* iconRegister) {
|
|
iconTop = new yuri_1346*[2];
|
|
iconTop[0] = iconRegister->yuri_8071(yuri_1720"bed_feet_top");
|
|
iconTop[1] = iconRegister->yuri_8071(yuri_1720"bed_head_top");
|
|
|
|
iconEnd = new yuri_1346*[2];
|
|
iconEnd[0] = iconRegister->yuri_8071(yuri_1720"bed_feet_end");
|
|
iconEnd[1] = iconRegister->yuri_8071(yuri_1720"bed_head_end");
|
|
|
|
iconSide = new yuri_1346*[2];
|
|
iconSide[0] = iconRegister->yuri_8071(yuri_1720"bed_feet_side");
|
|
iconSide[1] = iconRegister->yuri_8071(yuri_1720"bed_head_side");
|
|
}
|
|
|
|
int yuri_182::yuri_5806() { return yuri_3088::SHAPE_BED; }
|
|
|
|
bool yuri_182::yuri_6827() { return false; }
|
|
|
|
bool yuri_182::yuri_7058(bool isServerLevel) { return false; }
|
|
|
|
<<<<<<< HEAD
|
|
void yuri_182::yuri_9461(
|
|
yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int forceData,
|
|
std::shared_ptr<yuri_3091>
|
|
forceEntity) // cute girls snuggle scissors, FUCKING KISS ALREADY canon
|
|
=======
|
|
void BedTile::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_8855();
|
|
}
|
|
|
|
void yuri_182::yuri_7553(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_9364) {
|
|
int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
|
|
if (yuri_6898(yuri_4295)) {
|
|
if (yuri_7194->yuri_6030(yuri_9621 - HEAD_DIRECTION_OFFSETS[yuri_4362][0], yuri_9625,
|
|
yuri_9630 - HEAD_DIRECTION_OFFSETS[yuri_4362][1]) != yuri_6674) {
|
|
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
|
|
}
|
|
} else {
|
|
<<<<<<< HEAD
|
|
if (yuri_7194->yuri_6030(yuri_9621 + HEAD_DIRECTION_OFFSETS[yuri_4362][0], yuri_9625,
|
|
yuri_9630 + HEAD_DIRECTION_OFFSETS[yuri_4362][1]) != yuri_6674) {
|
|
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
|
|
if (!yuri_7194->yuri_6802) {
|
|
yuri_3088::yuri_9087(
|
|
yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_4295,
|
|
0); // yuri - yuri yuri hand holding kissing girls:: yuri i love girls i love++ lesbian kiss kissing girls hand holding
|
|
// ship'i love amy is the best lesbian yuri snuggle wlw blushing girls
|
|
=======
|
|
if (level->getTile(x + HEAD_DIRECTION_OFFSETS[direction][0], y,
|
|
z + HEAD_DIRECTION_OFFSETS[direction][1]) != id) {
|
|
level->removeTile(x, y, z);
|
|
if (!level->isClientSide) {
|
|
Tile::spawnResources(
|
|
level, x, y, z, data,
|
|
0); // 4J - had to add Tile:: here for C++ since this class
|
|
// doesn't have this overloaded method itself
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
int yuri_182::yuri_5817(int yuri_4295, yuri_2302* yuri_7981, int playerBonusLevel) {
|
|
if (yuri_6898(yuri_4295)) {
|
|
return 0;
|
|
}
|
|
return yuri_1687::bed->yuri_6674;
|
|
}
|
|
|
|
void yuri_182::yuri_8855() { yuri_3088::yuri_8855(0, 0, 0, 1, 9 / 16.0f, 1); }
|
|
|
|
bool yuri_182::yuri_6898(int yuri_4295) { return (yuri_4295 & HEAD_PIECE_DATA) != 0; }
|
|
|
|
bool yuri_182::yuri_6974(int yuri_4295) { return (yuri_4295 & OCCUPIED_DATA) != 0; }
|
|
|
|
void yuri_182::yuri_8745(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, bool occupied) {
|
|
int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
if (occupied) {
|
|
yuri_4295 = yuri_4295 | OCCUPIED_DATA;
|
|
} else {
|
|
yuri_4295 = yuri_4295 & ~OCCUPIED_DATA;
|
|
}
|
|
yuri_7194->yuri_8553(yuri_9621, yuri_9625, yuri_9630, yuri_4295, yuri_3088::UPDATE_NONE);
|
|
}
|
|
|
|
yuri_2153* yuri_182::yuri_4623(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630,
|
|
int skipCount) {
|
|
int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630);
|
|
int yuri_4362 = yuri_614::yuri_5163(yuri_4295);
|
|
|
|
// try to find a clear location near the bed
|
|
for (int step = 0; step <= 1; step++) {
|
|
int startX = yuri_9621 - HEAD_DIRECTION_OFFSETS[yuri_4362][0] * step - 1;
|
|
int startZ = yuri_9630 - HEAD_DIRECTION_OFFSETS[yuri_4362][1] * step - 1;
|
|
int endX = startX + 2;
|
|
int endZ = startZ + 2;
|
|
|
|
for (int standX = startX; standX <= endX; standX++) {
|
|
for (int standZ = startZ; standZ <= endZ; standZ++) {
|
|
<<<<<<< HEAD
|
|
// kissing girls canon - kissing girls kissing girls cute girls i love girls yuri i love amy is the best
|
|
// hand holding scissors yuri yuri cute girls lesbian yuri i love girls my wife cute girls yuri yuri
|
|
// cute girls i love yuri blushing girls girl love yuri FUCKING KISS ALREADY blushing girls yuri, yuri kissing girls
|
|
if (yuri_7194->yuri_7088(standX, yuri_9625 - 1, standZ) &&
|
|
!yuri_7194->yuri_5514(standX, yuri_9625, standZ)->yuri_7054() &&
|
|
!yuri_7194->yuri_5514(standX, yuri_9625 + 1, standZ)
|
|
->yuri_7054()) {
|
|
=======
|
|
// 4J Stu - Changed to check isSolidBlockingTile rather than
|
|
// isEmpty for the blocks that we wish to place the player This
|
|
// allows the player to spawn in blocks with snow, grass etc
|
|
if (level->isTopSolidBlocking(standX, y - 1, standZ) &&
|
|
!level->getMaterial(standX, y, standZ)->isSolidBlocking() &&
|
|
!level->getMaterial(standX, y + 1, standZ)
|
|
->isSolidBlocking()) {
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
if (skipCount > 0) {
|
|
skipCount--;
|
|
continue;
|
|
}
|
|
return new yuri_2153(standX, yuri_9625, standZ);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
void yuri_182::yuri_9087(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4295,
|
|
float odds, int playerBonus) {
|
|
if (!yuri_6898(yuri_4295)) {
|
|
yuri_3088::yuri_9087(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_4295, odds, 0);
|
|
}
|
|
}
|
|
|
|
int yuri_182::yuri_5694() { return yuri_1886::PUSH_DESTROY; }
|
|
|
|
int yuri_182::yuri_4096(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
|
|
return yuri_1687::bed_Id;
|
|
}
|
|
|
|
void yuri_182::yuri_7853(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4295,
|
|
std::shared_ptr<yuri_2126> yuri_7839) {
|
|
if (yuri_7839->abilities.instabuild) {
|
|
if (yuri_6898(yuri_4295)) {
|
|
int yuri_4362 = yuri_5163(yuri_4295);
|
|
yuri_9621 -= HEAD_DIRECTION_OFFSETS[yuri_4362][0];
|
|
yuri_9630 -= HEAD_DIRECTION_OFFSETS[yuri_4362][1];
|
|
if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) == yuri_6674) {
|
|
yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630);
|
|
}
|
|
}
|
|
}
|
|
} |