b3feddfef3
* try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki <lokirautio@gmail.com>
83 lines
1.9 KiB
C++
83 lines
1.9 KiB
C++
#include "stdafx.h"
|
|
#include "net.minecraft.world.level.tile.entity.h"
|
|
#include "ContainerOpenPacket.h"
|
|
#include "PlayerEnderChestContainer.h"
|
|
|
|
PlayerEnderChestContainer::PlayerEnderChestContainer() : SimpleContainer(IDS_TILE_ENDERCHEST, L"", false, 9 * 3)
|
|
{
|
|
activeChest = nullptr;
|
|
}
|
|
|
|
int PlayerEnderChestContainer::getContainerType()
|
|
{
|
|
return ContainerOpenPacket::ENDER_CHEST;
|
|
}
|
|
|
|
void PlayerEnderChestContainer::setActiveChest(shared_ptr<EnderChestTileEntity> activeChest)
|
|
{
|
|
this->activeChest = activeChest;
|
|
}
|
|
|
|
void PlayerEnderChestContainer::setItemsByTag(ListTag<CompoundTag> *enderItemsList)
|
|
{
|
|
for (int i = 0; i < getContainerSize(); i++)
|
|
{
|
|
setItem(i, nullptr);
|
|
}
|
|
for (int i = 0; i < enderItemsList->size(); i++)
|
|
{
|
|
CompoundTag *tag = enderItemsList->get(i);
|
|
int slot = tag->getByte(L"Slot") & 0xff;
|
|
if (slot >= 0 && slot < getContainerSize()) setItem(slot, ItemInstance::fromTag(tag));
|
|
}
|
|
}
|
|
|
|
ListTag<CompoundTag> *PlayerEnderChestContainer::createTag()
|
|
{
|
|
ListTag<CompoundTag> *items = new ListTag<CompoundTag>(L"EnderItems");
|
|
for (int i = 0; i < getContainerSize(); i++)
|
|
{
|
|
shared_ptr<ItemInstance> item = getItem(i);
|
|
if (item != NULL)
|
|
{
|
|
CompoundTag *tag = new CompoundTag();
|
|
tag->putByte(L"Slot", (byte) i);
|
|
item->save(tag);
|
|
items->add(tag);
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
|
|
bool PlayerEnderChestContainer::stillValid(shared_ptr<Player> player)
|
|
{
|
|
if (activeChest != NULL && !activeChest->stillValid(player))
|
|
{
|
|
return false;
|
|
}
|
|
return SimpleContainer::stillValid(player);
|
|
}
|
|
|
|
void PlayerEnderChestContainer::startOpen()
|
|
{
|
|
if (activeChest != NULL)
|
|
{
|
|
activeChest->startOpen();
|
|
}
|
|
SimpleContainer::startOpen();
|
|
}
|
|
|
|
void PlayerEnderChestContainer::stopOpen()
|
|
{
|
|
if (activeChest)
|
|
{
|
|
activeChest->stopOpen();
|
|
}
|
|
SimpleContainer::stopOpen();
|
|
activeChest = nullptr;
|
|
}
|
|
|
|
bool PlayerEnderChestContainer::canPlaceItem(int slot, shared_ptr<ItemInstance> item)
|
|
{
|
|
return true;
|
|
} |