the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 47 lines 1.3 kB view raw
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}