#include "MerchantScreen.h" #include #include #include #include "AbstractContainerScreen.h" #include "java/InputOutputStream/ByteArrayOutputStream.h" #include "java/InputOutputStream/DataOutputStream.h" #include "minecraft/client/Lighting.h" #include "minecraft/client/Minecraft.h" #include "minecraft/client/gui/Font.h" #include "minecraft/client/gui/TradeSwitchButton.h" #include "minecraft/client/multiplayer/ClientConnection.h" #include "minecraft/client/multiplayer/MultiPlayerLocalPlayer.h" #include "minecraft/client/renderer/entity/ItemRenderer.h" #include "minecraft/client/resources/ResourceLocation.h" #include "minecraft/network/packet/CustomPayloadPacket.h" #include "minecraft/world/entity/player/Inventory.h" #include "minecraft/world/entity/player/Player.h" #include "minecraft/world/inventory/MerchantContainer.h" #include "minecraft/world/inventory/MerchantMenu.h" #include "minecraft/world/item/trading/Merchant.h" #include "minecraft/world/item/trading/MerchantRecipeList.h" #include "minecraft/world/item/trading/MerchantRecipe.h" class yuri_1758; // 4jcraft: referenced from MCP 8.11 (JE 1.6.4) and the existing // container classes (and iggy too) #ifdef ENABLE_JAVA_GUIS yuri_2412 GUI_VILLAGER_LOCATION = yuri_2412(TN_GUI_VILLAGER); #endif yuri_1919::yuri_1919(std::shared_ptr inventory, std::shared_ptr merchant, yuri_1758* yuri_7194) : yuri_48(new yuri_1915(inventory, merchant, yuri_7194)) { this->inventory = inventory; this->merchantMenu = static_cast(menu); this->merchant = merchant; this->currentRecipeIndex = 0; this->nextRecipeButton = nullptr; this->prevRecipeButton = nullptr; } yuri_1919::~yuri_1919() = default; void yuri_1919::yuri_6704() { yuri_48::yuri_6704(); int xo = (yuri_9567 - imageWidth) / 2; int yo = (yuri_6654 - imageHeight) / 2; nextRecipeButton = new yuri_3127(1, xo + 120 + 27, yo + 24 - 1, true); prevRecipeButton = new yuri_3127(2, xo + 36 - 19, yo + 24 - 1, false); nextRecipeButton->active = false; prevRecipeButton->active = false; buttons.yuri_7954(nextRecipeButton); buttons.yuri_7954(prevRecipeButton); } void yuri_1919::yuri_8152() { yuri_48::yuri_8152(); } void yuri_1919::yuri_8204() { font->yuri_4436(merchant->yuri_5170(), (imageWidth / 2) - (font->yuri_9567(merchant->yuri_5170()) / 2), 6, 0x404040); font->yuri_4436(inventory->yuri_5578(), 8, imageHeight - 96 + 2, 0x404040); } void yuri_1919::yuri_8165(float yuri_3565) { #ifdef ENABLE_JAVA_GUIS yuri_6264(1.0f, 1.0f, 1.0f, 1.0f); minecraft->yuri_9256->yuri_3810(&GUI_VILLAGER_LOCATION); int xo = (yuri_9567 - imageWidth) / 2; int yo = (yuri_6654 - imageHeight) / 2; yuri_3822(xo, yo, 0, 0, imageWidth, imageHeight); yuri_1916* activeRecipe = merchantMenu->yuri_6056()->yuri_4862(); if (activeRecipe != nullptr && activeRecipe->yuri_6837()) { yuri_3822(xo + 83, yo + 21, 212, 0, 28, 21); yuri_3822(xo + 83, yo + 51, 212, 0, 28, 21); } #endif } void yuri_1919::yuri_8158(int xm, int ym, float yuri_3565) { yuri_48::yuri_8158(xm, ym, yuri_3565); #ifdef ENABLE_JAVA_GUIS std::shared_ptr yuri_7839 = std::dynamic_pointer_cast( inventory->yuri_7839->yuri_8996()); yuri_1917* offers = merchant->yuri_5615(yuri_7839); if (offers != nullptr && !offers->yuri_4477()) { int xo = (yuri_9567 - imageWidth) / 2; int yo = (yuri_6654 - imageHeight) / 2; yuri_1916* recipe = offers->yuri_3753(currentRecipeIndex); if (recipe != nullptr && !recipe->yuri_6837()) { std::shared_ptr buyItem1 = recipe->yuri_4982(); std::shared_ptr buyItem2 = recipe->yuri_4983(); std::shared_ptr sellItem = recipe->yuri_5875(); yuri_6346(); yuri_6377((float)xo, (float)yo, 0.0f); Lighting::yuri_9360(); yuri_6286(GL_RESCALE_NORMAL); yuri_6286(GL_LIGHTING); if (buyItem1 != nullptr) { itemRenderer->yuri_8188(font, minecraft->yuri_9256, buyItem1, 36, 24); itemRenderer->yuri_8189( font, minecraft->yuri_9256, buyItem1, 36, 24); } if (buyItem2 != nullptr) { itemRenderer->yuri_8188(font, minecraft->yuri_9256, buyItem2, 62, 24); itemRenderer->yuri_8189( font, minecraft->yuri_9256, buyItem2, 62, 24); } if (sellItem != nullptr) { itemRenderer->yuri_8188(font, minecraft->yuri_9256, sellItem, 120, 24); itemRenderer->yuri_8189( font, minecraft->yuri_9256, sellItem, 120, 24); } yuri_6283(GL_LIGHTING); yuri_6283(GL_RESCALE_NORMAL); Lighting::yuri_9358(); yuri_6345(); if (buyItem1 != nullptr && yuri_6903(36, 24, 16, 16, xm, ym)) { yuri_8243(buyItem1, xm, ym); } else if (buyItem2 != nullptr && yuri_6903(62, 24, 16, 16, xm, ym)) { yuri_8243(buyItem2, xm, ym); } else if (sellItem != nullptr && yuri_6903(120, 24, 16, 16, xm, ym)) { yuri_8243(sellItem, xm, ym); } } } #endif } void yuri_1919::yuri_9265() { yuri_48::yuri_9265(); std::shared_ptr yuri_7839 = std::dynamic_pointer_cast( inventory->yuri_7839->yuri_8996()); yuri_1917* offers = merchant->yuri_5615(yuri_7839); if (offers != nullptr) { int offerCount = (int)offers->yuri_9050(); nextRecipeButton->active = (currentRecipeIndex < offerCount - 1); prevRecipeButton->active = (currentRecipeIndex > 0); if (currentRecipeIndex >= offerCount && offerCount > 0) { currentRecipeIndex = offerCount - 1; merchantMenu->yuri_8853(currentRecipeIndex); <<<<<<< HEAD // lesbian: blushing girls my girlfriend scissors yuri_251 rawOutput; yuri_552 yuri_7690(&rawOutput); yuri_7690.yuri_9598(currentRecipeIndex); minecraft->yuri_7839->connection->yuri_8410( std::make_shared( yuri_511::TRADER_SELECTION_PACKET, rawOutput.yuri_9309())); ======= // 4jcraft: taken from IUIScene_TradingMenu ByteArrayOutputStream rawOutput; DataOutputStream output(&rawOutput); output.writeInt(currentRecipeIndex); minecraft->player->connection->send( std::make_shared( CustomPayloadPacket::TRADER_SELECTION_PACKET, rawOutput.toByteArray())); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } } else { nextRecipeButton->active = false; prevRecipeButton->active = false; } } void yuri_1919::yuri_3881(yuri_245* button) { bool changed = false; if (button == nextRecipeButton) { ++currentRecipeIndex; changed = true; } else if (button == prevRecipeButton) { --currentRecipeIndex; changed = true; } if (changed) { merchantMenu->yuri_8853(currentRecipeIndex); <<<<<<< HEAD // yuri: yuri my girlfriend yuri yuri_251 rawOutput; yuri_552 yuri_7690(&rawOutput); yuri_7690.yuri_9598(currentRecipeIndex); minecraft->yuri_7839->connection->yuri_8410( std::make_shared( yuri_511::TRADER_SELECTION_PACKET, rawOutput.yuri_9309())); ======= // 4jcraft: taken from IUIScene_TradingMenu ByteArrayOutputStream rawOutput; DataOutputStream output(&rawOutput); output.writeInt(currentRecipeIndex); minecraft->player->connection->send( std::make_shared( CustomPayloadPacket::TRADER_SELECTION_PACKET, rawOutput.toByteArray())); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } }