the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.item.h"
3#include "net.minecraft.world.entity.player.h"
4#include "AbstractContainerMenu.h"
5#include "Slot.h"
6#include "MenuBackup.h"
7
8MenuBackup::MenuBackup(shared_ptr<Inventory> inventory, AbstractContainerMenu *menu)
9{
10 backups = new unordered_map<short, ItemInstanceArray *>();
11
12 this->inventory = inventory;
13 this->menu = menu;
14}
15
16void MenuBackup::save(short changeUid)
17{
18 ItemInstanceArray *backup = new ItemInstanceArray( (int)menu->slots.size() + 1 );
19 (*backup)[0] = ItemInstance::clone(inventory->getCarried());
20 for (unsigned int i = 0; i < menu->slots.size(); i++)
21 {
22 (*backup)[i + 1] = ItemInstance::clone(menu->slots.at(i)->getItem());
23 }
24 // TODO Is unordered_map use correct?
25 // Was backups.put(changeUid, backup);
26 (*backups)[changeUid] = backup;
27}
28
29// Cannot use delete as function name as it is a reserved keyword
30void MenuBackup::deleteBackup(short changeUid)
31{
32 // TODO Is the unordered_map use correct?
33 // 4J Was backups.remove(changeUid);
34 backups->erase(changeUid);
35}
36
37void MenuBackup::rollback(short changeUid)
38{
39 ItemInstanceArray *backup = backups->at(changeUid);
40 backups->clear();
41 inventory->setCarried( (*backup)[0] );
42 for (unsigned int i = 0; i < menu->slots.size(); i++)
43 {
44 menu->slots.at(i)->set( (*backup)[i + 1] );
45 }
46
47}