4jcraft/Minecraft.World/Containers/AnvilMenu.h
Tropical f25cd66f4d TU19: merge Minecraft.World/Containers
keeping virtual destructors where possible
2026-03-21 15:18:52 -05:00

58 lines
1.6 KiB
C++

#pragma once
#include "AbstractContainerMenu.h"
class AnvilMenu : public AbstractContainerMenu {
friend class RepairResultSlot;
private:
static const bool DEBUG_COST = false;
public:
static const int INPUT_SLOT = 0;
static const int ADDITIONAL_SLOT = 1;
static const int RESULT_SLOT = 2;
static const int INV_SLOT_START = RESULT_SLOT + 1;
static const int INV_SLOT_END = INV_SLOT_START + 9 * 3;
static const int USE_ROW_SLOT_START = INV_SLOT_END;
static const int USE_ROW_SLOT_END = USE_ROW_SLOT_START + 9;
public:
static const int DATA_TOTAL_COST = 0;
private:
std::shared_ptr<Container> resultSlots;
// 4J Stu - anonymous class here now RepairContainer
std::shared_ptr<Container> repairSlots;
Level* level;
int x, y, z;
public:
int cost;
private:
int repairItemCountCost;
std::wstring itemName;
std::shared_ptr<Player> player;
public:
using AbstractContainerMenu::slotsChanged;
AnvilMenu(std::shared_ptr<Inventory> inventory, Level* level, int xt,
int yt, int zt, std::shared_ptr<Player> player);
void slotsChanged(std::shared_ptr<Container> container);
void createResult();
void sendData(int id, int value);
void addSlotListener(ContainerListener* listener);
void setData(int id, int value);
void removed(std::shared_ptr<Player> player);
bool stillValid(std::shared_ptr<Player> player);
std::shared_ptr<ItemInstance> quickMoveStack(std::shared_ptr<Player> player,
int slotIndex);
void setItemName(const std::wstring& name);
};