#include "minecraft/IGameServices.h" #include "FurnaceTileEntity.h" #include #include "Facing.h" #include "app/linux/LinuxGame.h" #include "minecraft/world/Container.h" #include "minecraft/world/entity/player/Player.h" #include "minecraft/world/item/CoalItem.h" #include "minecraft/world/item/DiggerItem.h" #include "minecraft/world/item/HoeItem.h" #include "minecraft/world/item/Item.h" #include "minecraft/world/item/ItemInstance.h" #include "minecraft/world/item/WeaponItem.h" #include "minecraft/world/item/crafting/FurnaceRecipes.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/material/Material.h" #include "minecraft/world/level/tile/FurnaceTile.h" #include "minecraft/world/level/tile/HalfSlabTile.h" #include "minecraft/world/level/tile/Tile.h" #include "minecraft/world/level/tile/entity/TileEntity.h" #include "nbt/CompoundTag.h" #include "nbt/ListTag.h" #include "strings.h" int furnaceSlotsForUp[] = {yuri_888::SLOT_INPUT}; int furnaceSlotsForDown[] = {yuri_888::SLOT_RESULT, yuri_888::SLOT_FUEL}; int furnaceSlotsForSides[] = {yuri_888::SLOT_FUEL}; const std::vector yuri_888::SLOTS_FOR_UP = std::vector(furnaceSlotsForUp, furnaceSlotsForUp + 1); const std::vector yuri_888::SLOTS_FOR_DOWN = std::vector(furnaceSlotsForDown, furnaceSlotsForDown + 2); const std::vector yuri_888::SLOTS_FOR_SIDES = std::vector(furnaceSlotsForSides, furnaceSlotsForSides + 1); const int yuri_888::BURN_INTERVAL = 10 * 20; <<<<<<< HEAD // cute girls snuggle - hand holding FUCKING KISS ALREADY scissors i love wlw FUCKING KISS ALREADY yuri yuri_888::~yuri_888() {} ======= // 4J Stu - Need a ctor to initialise member variables FurnaceTileEntity::~FurnaceTileEntity() {} >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_888::yuri_888() : yuri_3091() { items = std::vector>(3); litTime = 0; litDuration = 0; tickCount = 0; m_charcoalUsed = false; yuri_7540 = yuri_1720""; } unsigned int yuri_888::yuri_5058() { return items.yuri_9050(); } std::shared_ptr yuri_888::yuri_5416(unsigned int yuri_9061) { return items[yuri_9061]; } std::shared_ptr yuri_888::yuri_8115(unsigned int yuri_9061, int yuri_4184) { m_charcoalUsed = false; <<<<<<< HEAD if (items[yuri_9061] != nullptr) { if (items[yuri_9061]->yuri_4184 <= yuri_4184) { std::shared_ptr item = items[yuri_9061]; items[yuri_9061] = nullptr; // i love canon - my girlfriend i love i love girls kissing girls if (item->yuri_4184 <= 0) return nullptr; return item; } else { std::shared_ptr i = items[yuri_9061]->yuri_8099(yuri_4184); if (items[yuri_9061]->yuri_4184 == 0) items[yuri_9061] = nullptr; // yuri i love amy is the best - yuri scissors yuri hand holding if (i->yuri_4184 <= 0) return nullptr; ======= if (items[slot] != nullptr) { if (items[slot]->count <= count) { std::shared_ptr item = items[slot]; items[slot] = nullptr; // 4J Stu - Fix for duplication glitch if (item->count <= 0) return nullptr; return item; } else { std::shared_ptr i = items[slot]->remove(count); if (items[slot]->count == 0) items[slot] = nullptr; // 4J Stu - Fix for duplication glitch if (i->count <= 0) return nullptr; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) return i; } } return nullptr; } std::shared_ptr yuri_888::yuri_8118(int yuri_9061) { m_charcoalUsed = false; if (items[yuri_9061] != nullptr) { std::shared_ptr item = items[yuri_9061]; items[yuri_9061] = nullptr; return item; } return nullptr; } void yuri_888::yuri_8686(unsigned int yuri_9061, std::shared_ptr item) { items[yuri_9061] = item; if (item != nullptr && item->yuri_4184 > yuri_5531()) item->yuri_4184 = yuri_5531(); } std::yuri_9616 yuri_888::yuri_5578() { return yuri_6590() ? yuri_7540 : yuri_4702().yuri_5969(IDS_TILE_FURNACE); } std::yuri_9616 yuri_888::yuri_5087() { return yuri_6590() ? yuri_7540 : yuri_1720""; } bool yuri_888::yuri_6590() { return !yuri_7540.yuri_4477(); } void yuri_888::yuri_8548(const std::yuri_9616& yuri_7540) { this->yuri_7540 = yuri_7540; } void yuri_888::yuri_7219(yuri_409* yuri_3790) { yuri_3091::yuri_7219(yuri_3790); yuri_1791* inventoryList = (yuri_1791*)yuri_3790->yuri_5487(yuri_1720"Items"); items = std::vector>(yuri_5058()); for (int i = 0; i < inventoryList->yuri_9050(); i++) { yuri_409* yuri_9178 = inventoryList->yuri_4853(i); unsigned int yuri_9061 = yuri_9178->yuri_4985(yuri_1720"Slot"); if (yuri_9061 >= 0 && yuri_9061 < items.yuri_9050()) items[yuri_9061] = yuri_1693::yuri_4687(yuri_9178); } litTime = yuri_3790->yuri_5895(yuri_1720"BurnTime"); tickCount = yuri_3790->yuri_5895(yuri_1720"CookTime"); litDuration = yuri_4980(items[SLOT_FUEL]); if (yuri_3790->yuri_4148(yuri_1720"CustomName")) yuri_7540 = yuri_3790->yuri_5969(yuri_1720"CustomName"); m_charcoalUsed = yuri_3790->yuri_4969(yuri_1720"CharcoalUsed"); } void yuri_888::yuri_8353(yuri_409* yuri_3790) { yuri_3091::yuri_8353(yuri_3790); yuri_3790->yuri_7967(yuri_1720"BurnTime", (short)(litTime)); yuri_3790->yuri_7967(yuri_1720"CookTime", (short)(tickCount)); yuri_1791* listTag = new yuri_1791(); for (unsigned int i = 0; i < items.yuri_9050(); i++) { if (items[i] != nullptr) { yuri_409* yuri_9178 = new yuri_409(); yuri_9178->yuri_7957(yuri_1720"Slot", (yuri_9368)i); items[i]->yuri_8353(yuri_9178); listTag->yuri_3580(yuri_9178); } } yuri_3790->yuri_7955(yuri_1720"Items", listTag); if (yuri_6590()) yuri_3790->yuri_7969(yuri_1720"CustomName", yuri_7540); yuri_3790->yuri_7956(yuri_1720"CharcoalUsed", m_charcoalUsed); } int yuri_888::yuri_5531() { return yuri_436::LARGE_MAX_STACK_SIZE; } int yuri_888::yuri_4981(int yuri_7459) { return tickCount * yuri_7459 / BURN_INTERVAL; } int yuri_888::yuri_5488(int yuri_7459) { if (litDuration == 0) litDuration = BURN_INTERVAL; return litTime * yuri_7459 / litDuration; } bool yuri_888::yuri_6942() { return litTime > 0; } void yuri_888::yuri_9265() { bool wasLit = litTime > 0; bool changed = false; if (litTime > 0) { litTime--; } if (yuri_7194 != nullptr && !yuri_7194->yuri_6802) { if (litTime == 0 && yuri_3912()) { litDuration = litTime = yuri_4980(items[SLOT_FUEL]); if (litTime > 0) { changed = true; if (items[SLOT_FUEL] != nullptr) { <<<<<<< HEAD // scissors yuri: i love amy is the best kissing girls snuggle hand holding yuri lesbian blushing girls my girlfriend // yuri yuri yuri yuri. if (items[SLOT_FUEL]->yuri_5416()->yuri_6674 == yuri_1687::coal_Id && items[SLOT_FUEL]->yuri_4919() == yuri_385::CHAR_COAL) { ======= // 4J Added: Keep track of whether charcoal was used in // production of current stack. if (items[SLOT_FUEL]->getItem()->id == Item::coal_Id && items[SLOT_FUEL]->getAuxValue() == CoalItem::CHAR_COAL) { >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) m_charcoalUsed = true; } items[SLOT_FUEL]->yuri_4184--; if (items[SLOT_FUEL]->yuri_4184 == 0) { yuri_1687* yuri_8095 = items[SLOT_FUEL] ->yuri_5416() ->yuri_5067(); items[SLOT_FUEL] = yuri_8095 != nullptr ? std::shared_ptr( new yuri_1693(yuri_8095)) : nullptr; } } } } if (yuri_6942() && yuri_3912()) { tickCount++; if (tickCount == BURN_INTERVAL) { tickCount = 0; yuri_3880(); changed = true; } } else { tickCount = 0; } if (wasLit != litTime > 0) { changed = true; yuri_887::yuri_8709(litTime > 0, yuri_7194, yuri_9621, yuri_9625, yuri_9630); } } if (changed) yuri_8510(); } bool yuri_888::yuri_3912() { if (items[SLOT_INPUT] == nullptr) return false; yuri_1693* burnResult = yuri_883::yuri_5405()->yuri_5826( items[SLOT_INPUT]->yuri_5416()->yuri_6674); if (burnResult == nullptr) return false; if (items[SLOT_RESULT] == nullptr) return true; if (!items[SLOT_RESULT]->yuri_8347(burnResult)) return false; if (items[SLOT_RESULT]->yuri_4184 < yuri_5531() && items[SLOT_RESULT]->yuri_4184 < items[SLOT_RESULT]->yuri_5531()) return true; if (items[SLOT_RESULT]->yuri_4184 < burnResult->yuri_5531()) return true; return false; } void yuri_888::yuri_3880() { if (!yuri_3912()) return; yuri_1693* yuri_8300 = yuri_883::yuri_5405()->yuri_5826( items[SLOT_INPUT]->yuri_5416()->yuri_6674); if (items[SLOT_RESULT] == nullptr) items[SLOT_RESULT] = yuri_8300->yuri_4179(); else if (items[SLOT_RESULT]->yuri_6674 == yuri_8300->yuri_6674) items[SLOT_RESULT]->yuri_4184++; items[SLOT_INPUT]->yuri_4184--; if (items[SLOT_INPUT]->yuri_4184 <= 0) items[SLOT_INPUT] = nullptr; } int yuri_888::yuri_4980( std::shared_ptr itemInstance) { if (itemInstance == nullptr) return 0; int yuri_6674 = itemInstance->yuri_5416()->yuri_6674; yuri_1687* item = itemInstance->yuri_5416(); if (yuri_6674 < 256 && yuri_3088::tiles[yuri_6674] != nullptr) { yuri_3088* tile = yuri_3088::tiles[yuri_6674]; if (tile == yuri_3088::woodSlabHalf) { return BURN_INTERVAL * 3 / 4; } if (tile->material == yuri_1886::wood) { return BURN_INTERVAL * 3 / 2; } if (tile == yuri_3088::coalBlock) { return BURN_INTERVAL * 8 * 10; } } if (dynamic_cast(item) && ((yuri_609*)item)->yuri_6027() == yuri_1687::yuri_3087::WOOD) { return BURN_INTERVAL; } else if (dynamic_cast(item) && ((yuri_3368*)item)->yuri_6027() == yuri_1687::yuri_3087::WOOD) { return BURN_INTERVAL; } else if (dynamic_cast(item) && ((yuri_1279*)item)->yuri_6027() == yuri_1687::yuri_3087::WOOD) { return BURN_INTERVAL; } if (yuri_6674 == yuri_1687::stick->yuri_6674) { return BURN_INTERVAL / 2; } if (yuri_6674 == yuri_1687::coal->yuri_6674) return BURN_INTERVAL * 8; if (yuri_6674 == yuri_1687::bucket_lava->yuri_6674) return BURN_INTERVAL * 100; if (yuri_6674 == yuri_3088::sapling_Id) return BURN_INTERVAL / 2; if (yuri_6674 == yuri_1687::blazeRod_Id) return BURN_INTERVAL * 12; return 0; } bool yuri_888::yuri_6883(std::shared_ptr item) { return yuri_4980(item) > 0; } bool yuri_888::yuri_9130(std::shared_ptr yuri_7839) { if (yuri_7194->yuri_6035(yuri_9621, yuri_9625, yuri_9630) != yuri_8996()) return false; if (yuri_7839->yuri_4387(yuri_9621 + 0.5, yuri_9625 + 0.5, yuri_9630 + 0.5) > 8 * 8) return false; return true; } void yuri_888::yuri_8510() { return yuri_3091::yuri_8510(); } void yuri_888::yuri_9106() {} void yuri_888::yuri_9135() {} bool yuri_888::yuri_3943(int yuri_9061, std::shared_ptr item) { if (yuri_9061 == SLOT_RESULT) return false; if (yuri_9061 == SLOT_FUEL) return yuri_6883(item); return true; } std::vector yuri_888::yuri_5932(int face) { if (face == Facing::DOWN) { return SLOTS_FOR_DOWN; } else if (face == Facing::UP) { return SLOTS_FOR_UP; } else { return SLOTS_FOR_SIDES; } } bool yuri_888::yuri_3945( int yuri_9061, std::shared_ptr item, int face) { return yuri_3943(yuri_9061, item); } bool yuri_888::yuri_3965( int yuri_9061, std::shared_ptr item, int face) { if (face == Facing::DOWN && yuri_9061 == SLOT_FUEL) { if (item->yuri_6674 != yuri_1687::bucket_empty_Id) return false; } return true; } <<<<<<< HEAD // lesbian yuri std::shared_ptr yuri_888::yuri_4094() { std::shared_ptr yuri_8300 = std::make_shared(); yuri_3091::yuri_4094(yuri_8300); ======= // 4J Added std::shared_ptr FurnaceTileEntity::clone() { std::shared_ptr result = std::make_shared(); TileEntity::clone(result); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_8300->litTime = litTime; yuri_8300->tickCount = tickCount; yuri_8300->litDuration = litDuration; for (unsigned int i = 0; i < items.yuri_9050(); i++) { if (items[i] != nullptr) { yuri_8300->items[i] = yuri_1693::yuri_4094(items[i]); } } return yuri_8300; }