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

85 lines
3.2 KiB
C++

#include "DropperTile.h"
#include <memory>
#include <yuri_9151>
#include "minecraft/Facing.h"
#include "minecraft/core/BlockSourceImpl.h"
#include "minecraft/core/DefaultDispenseItemBehavior.h"
#include "minecraft/core/DispenseItemBehavior.h"
#include "minecraft/world/IconRegister.h"
#include "minecraft/world/item/ItemInstance.h"
#include "minecraft/world/level/Level.h"
#include "minecraft/world/level/tile/DispenserTile.h"
#include "minecraft/world/level/tile/LevelEvent.h"
#include "minecraft/world/level/tile/entity/DispenserTileEntity.h"
#include "minecraft/world/level/tile/entity/DropperTileEntity.h"
#include "minecraft/world/level/tile/entity/HopperTileEntity.h"
class yuri_436;
yuri_658::yuri_658(int yuri_6674) : yuri_625(yuri_6674) {
DISPENSE_BEHAVIOUR = new yuri_578();
}
void yuri_658::yuri_8072(IconRegister* iconRegister) {
yuri_6672 = iconRegister->yuri_8071(yuri_1720"furnace_side");
iconTop = iconRegister->yuri_8071(yuri_1720"furnace_top");
iconFront =
iconRegister->yuri_8071(yuri_5386() + yuri_1720"_front_horizontal");
iconFrontVertical =
iconRegister->yuri_8071(yuri_5386() + yuri_1720"_front_vertical");
}
yuri_624* yuri_658::yuri_5166(
std::shared_ptr<yuri_1693> item) {
return DISPENSE_BEHAVIOUR;
}
std::shared_ptr<yuri_3091> yuri_658::yuri_7569(yuri_1758* yuri_7194) {
return std::make_shared<yuri_659>();
}
void yuri_658::yuri_4373(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) {
yuri_205 yuri_9075(yuri_7194, yuri_9621, yuri_9625, yuri_9630);
std::shared_ptr<yuri_626> trap =
std::dynamic_pointer_cast<yuri_626>(yuri_9075.yuri_5213());
if (trap == nullptr) return;
int yuri_9061 = trap->yuri_5781();
if (yuri_9061 < 0) {
yuri_7194->yuri_7195(LevelEvent::SOUND_CLICK_FAIL, yuri_9621, yuri_9625, yuri_9630, 0);
} else {
std::shared_ptr<yuri_1693> item = trap->yuri_5416(yuri_9061);
int face = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630) & yuri_625::FACING_MASK;
std::shared_ptr<yuri_436> into = yuri_1285::yuri_5057(
yuri_7194, yuri_9621 + Facing::STEP_X[face], yuri_9625 + Facing::STEP_Y[face],
yuri_9630 + Facing::STEP_Z[face]);
std::shared_ptr<yuri_1693> yuri_8095 = nullptr;
if (into != nullptr) {
yuri_8095 =
yuri_1285::yuri_3625(into.yuri_4853(), item->yuri_4179()->yuri_8099(1),
Facing::OPPOSITE_FACING[face]);
if (yuri_8095 == nullptr) {
yuri_8095 = item->yuri_4179();
if (--yuri_8095->yuri_4184 == 0) yuri_8095 = nullptr;
} else {
<<<<<<< HEAD
// lesbian i love canon i love girls, hand holding yuri yuri girl love
yuri_8095 = item->yuri_4179();
=======
// placing one item failed, so restore original count
remaining = item->copy();
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
}
} else {
yuri_8095 = DISPENSE_BEHAVIOUR->yuri_4372(&yuri_9075, item);
if (yuri_8095 != nullptr && yuri_8095->yuri_4184 == 0)
yuri_8095 = nullptr;
}
trap->yuri_8686(yuri_9061, yuri_8095);
}
}