mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-05-20 22:23:51 +00:00
Initial commit
This commit is contained in:
parent
def8cb4153
commit
b691c43c44
19437 changed files with 4363922 additions and 0 deletions
47
Minecraft.World/MenuBackup.cpp
Normal file
47
Minecraft.World/MenuBackup.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#include "stdafx.h"
|
||||
#include "net.minecraft.world.item.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "AbstractContainerMenu.h"
|
||||
#include "Slot.h"
|
||||
#include "MenuBackup.h"
|
||||
|
||||
MenuBackup::MenuBackup(shared_ptr<Inventory> inventory, AbstractContainerMenu *menu)
|
||||
{
|
||||
backups = new unordered_map<short, ItemInstanceArray *>();
|
||||
|
||||
this->inventory = inventory;
|
||||
this->menu = menu;
|
||||
}
|
||||
|
||||
void MenuBackup::save(short changeUid)
|
||||
{
|
||||
ItemInstanceArray *backup = new ItemInstanceArray( (int)menu->slots->size() + 1 );
|
||||
(*backup)[0] = ItemInstance::clone(inventory->getCarried());
|
||||
for (unsigned int i = 0; i < menu->slots->size(); i++)
|
||||
{
|
||||
(*backup)[i + 1] = ItemInstance::clone(menu->slots->at(i)->getItem());
|
||||
}
|
||||
// TODO Is unordered_map use correct?
|
||||
// Was backups.put(changeUid, backup);
|
||||
(*backups)[changeUid] = backup;
|
||||
}
|
||||
|
||||
// Cannot use delete as function name as it is a reserved keyword
|
||||
void MenuBackup::deleteBackup(short changeUid)
|
||||
{
|
||||
// TODO Is the unordered_map use correct?
|
||||
// 4J Was backups.remove(changeUid);
|
||||
backups->erase(changeUid);
|
||||
}
|
||||
|
||||
void MenuBackup::rollback(short changeUid)
|
||||
{
|
||||
ItemInstanceArray *backup = backups->at(changeUid);
|
||||
backups->clear();
|
||||
inventory->setCarried( (*backup)[0] );
|
||||
for (unsigned int i = 0; i < menu->slots->size(); i++)
|
||||
{
|
||||
menu->slots->at(i)->set( (*backup)[i + 1] );
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue