From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/MerchantMenu.h | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Minecraft.World/MerchantMenu.h (limited to 'Minecraft.World/MerchantMenu.h') diff --git a/Minecraft.World/MerchantMenu.h b/Minecraft.World/MerchantMenu.h new file mode 100644 index 00000000..14a5fa1d --- /dev/null +++ b/Minecraft.World/MerchantMenu.h @@ -0,0 +1,46 @@ +#pragma once + +#include "AbstractContainerMenu.h" + +class MerchantContainer; + +class MerchantMenu : public AbstractContainerMenu +{ +public: + static const int PAYMENT1_SLOT = 0; + static const int PAYMENT2_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; + + static const int SELLSLOT1_X = 36; + static const int SELLSLOT2_X = SELLSLOT1_X + 26; + static const int BUYSLOT_X = 120; + + static const int ROW1_Y = 24; + static const int ROW2_Y = 53; + + +private: + shared_ptr trader; + shared_ptr tradeContainer; + Level *level; + +public: + MerchantMenu(shared_ptr inventory, shared_ptr merchant, Level *level); + + shared_ptr getTradeContainer(); + void addSlotListener(ContainerListener *listener); + void broadcastChanges(); + void slotsChanged(); // 4J used to take a shared_ptr but wasn't using it, so removed to simplify things + void setSelectionHint(int hint); + void setData(int id, int value); + bool stillValid(shared_ptr player); + shared_ptr quickMoveStack(shared_ptr player, int slotIndex); + void removed(shared_ptr player); + + shared_ptr getMerchant(); // 4J Added +}; \ No newline at end of file -- cgit v1.2.3