mirror of
https://github.com/DrPerkyLegit/LCEServerTest.git
synced 2026-06-07 11:24:32 +00:00
removed git history
This commit is contained in:
83
Minecraft.World/PlayerEnderChestContainer.cpp
Normal file
83
Minecraft.World/PlayerEnderChestContainer.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
#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 != nullptr)
|
||||
{
|
||||
CompoundTag *tag = new CompoundTag();
|
||||
tag->putByte(L"Slot", static_cast<byte>(i));
|
||||
item->save(tag);
|
||||
items->add(tag);
|
||||
}
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
bool PlayerEnderChestContainer::stillValid(shared_ptr<Player> player)
|
||||
{
|
||||
if (activeChest != nullptr && !activeChest->stillValid(player))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return SimpleContainer::stillValid(player);
|
||||
}
|
||||
|
||||
void PlayerEnderChestContainer::startOpen()
|
||||
{
|
||||
if (activeChest != nullptr)
|
||||
{
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user