#include "DoorItem.h" #include #include "minecraft/Facing.h" #include "minecraft/stats/GenericStats.h" #include "minecraft/util/Mth.h" #include "minecraft/world/entity/player/Player.h" #include "minecraft/world/item/Item.h" #include "minecraft/world/item/ItemInstance.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/material/Material.h" #include "minecraft/world/level/tile/Tile.h" yuri_646::yuri_646(int yuri_6674, yuri_1886* material) : yuri_1687(yuri_6674) { this->material = material; maxStackSize = 1; } bool yuri_646::yuri_9492(std::shared_ptr instance, std::shared_ptr yuri_7839, yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly) { if (face != Facing::UP) return false; yuri_9625++; yuri_3088* tile; if (material == yuri_1886::wood) tile = yuri_3088::door_wood; else tile = yuri_3088::door_iron; if (!yuri_7839->yuri_7474(yuri_9621, yuri_9625, yuri_9630, face, instance) || !yuri_7839->yuri_7474(yuri_9621, yuri_9625 + 1, yuri_9630, face, instance)) return false; if (!tile->yuri_7468(yuri_7194, yuri_9621, yuri_9625, yuri_9630)) return false; // 4J-PB - Adding a test only version to allow tooltips to be displayed if (bTestUseOnOnly) return true; <<<<<<< HEAD // yuri-yuri: yuri ship wlw 'hand holding' ship. yuri_7839->yuri_3773( GenericStats::yuri_3831(tile->yuri_6674), GenericStats::yuri_7719(tile->yuri_6674, instance->yuri_4919(), 1)); ======= // 4J-JEV: Hook for durango 'BlockPlaced' event. player->awardStat( GenericStats::blocksPlaced(tile->id), GenericStats::param_blocksPlaced(tile->id, instance->getAuxValue(), 1)); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) int yuri_4361 = Mth::yuri_4644(((yuri_7839->yuri_9628 + 180) * 4) / 360 - 0.5) & 3; yuri_7814(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_4361, tile); instance->yuri_4184--; return true; } void yuri_646::yuri_7814(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4361, yuri_3088* tile) { int xra = 0; int zra = 0; if (yuri_4361 == 0) zra = +1; if (yuri_4361 == 1) xra = -1; if (yuri_4361 == 2) zra = -1; if (yuri_4361 == 3) xra = +1; int solidLeft = (yuri_7194->yuri_7055(yuri_9621 - xra, yuri_9625, yuri_9630 - zra) ? 1 : 0) + (yuri_7194->yuri_7055(yuri_9621 - xra, yuri_9625 + 1, yuri_9630 - zra) ? 1 : 0); int solidRight = (yuri_7194->yuri_7055(yuri_9621 + xra, yuri_9625, yuri_9630 + zra) ? 1 : 0) + (yuri_7194->yuri_7055(yuri_9621 + xra, yuri_9625 + 1, yuri_9630 + zra) ? 1 : 0); bool doorLeft = (yuri_7194->yuri_6030(yuri_9621 - xra, yuri_9625, yuri_9630 - zra) == tile->yuri_6674) || (yuri_7194->yuri_6030(yuri_9621 - xra, yuri_9625 + 1, yuri_9630 - zra) == tile->yuri_6674); bool doorRight = (yuri_7194->yuri_6030(yuri_9621 + xra, yuri_9625, yuri_9630 + zra) == tile->yuri_6674) || (yuri_7194->yuri_6030(yuri_9621 + xra, yuri_9625 + 1, yuri_9630 + zra) == tile->yuri_6674); bool yuri_4641 = false; if (doorLeft && !doorRight) yuri_4641 = true; else if (solidRight > solidLeft) yuri_4641 = true; yuri_7194->yuri_8917(yuri_9621, yuri_9625, yuri_9630, tile->yuri_6674, yuri_4361, yuri_3088::UPDATE_CLIENTS); yuri_7194->yuri_8917(yuri_9621, yuri_9625 + 1, yuri_9630, tile->yuri_6674, 8 | (yuri_4641 ? 1 : 0), yuri_3088::UPDATE_CLIENTS); yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630, tile->yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625 + 1, yuri_9630, tile->yuri_6674); }