the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 83 lines 1.9 kB view raw
1#include "stdafx.h" 2#include "net.minecraft.world.level.tile.entity.h" 3#include "ContainerOpenPacket.h" 4#include "PlayerEnderChestContainer.h" 5 6PlayerEnderChestContainer::PlayerEnderChestContainer() : SimpleContainer(IDS_TILE_ENDERCHEST, L"", false, 9 * 3) 7{ 8 activeChest = nullptr; 9} 10 11int PlayerEnderChestContainer::getContainerType() 12{ 13 return ContainerOpenPacket::ENDER_CHEST; 14} 15 16void PlayerEnderChestContainer::setActiveChest(shared_ptr<EnderChestTileEntity> activeChest) 17{ 18 this->activeChest = activeChest; 19} 20 21void PlayerEnderChestContainer::setItemsByTag(ListTag<CompoundTag> *enderItemsList) 22{ 23 for (int i = 0; i < getContainerSize(); i++) 24 { 25 setItem(i, nullptr); 26 } 27 for (int i = 0; i < enderItemsList->size(); i++) 28 { 29 CompoundTag *tag = enderItemsList->get(i); 30 int slot = tag->getByte(L"Slot") & 0xff; 31 if (slot >= 0 && slot < getContainerSize()) setItem(slot, ItemInstance::fromTag(tag)); 32 } 33} 34 35ListTag<CompoundTag> *PlayerEnderChestContainer::createTag() 36{ 37 ListTag<CompoundTag> *items = new ListTag<CompoundTag>(L"EnderItems"); 38 for (int i = 0; i < getContainerSize(); i++) 39 { 40 shared_ptr<ItemInstance> item = getItem(i); 41 if (item != NULL) 42 { 43 CompoundTag *tag = new CompoundTag(); 44 tag->putByte(L"Slot", (byte) i); 45 item->save(tag); 46 items->add(tag); 47 } 48 } 49 return items; 50} 51 52bool PlayerEnderChestContainer::stillValid(shared_ptr<Player> player) 53{ 54 if (activeChest != NULL && !activeChest->stillValid(player)) 55 { 56 return false; 57 } 58 return SimpleContainer::stillValid(player); 59} 60 61void PlayerEnderChestContainer::startOpen() 62{ 63 if (activeChest != NULL) 64 { 65 activeChest->startOpen(); 66 } 67 SimpleContainer::startOpen(); 68} 69 70void PlayerEnderChestContainer::stopOpen() 71{ 72 if (activeChest) 73 { 74 activeChest->stopOpen(); 75 } 76 SimpleContainer::stopOpen(); 77 activeChest = nullptr; 78} 79 80bool PlayerEnderChestContainer::canPlaceItem(int slot, shared_ptr<ItemInstance> item) 81{ 82 return true; 83}