#include "DefaultInventoryDrop.h" #include #include #include #include DefaultInventoryItemDrop::DefaultInventoryItemDrop() : DropConfig() {} void DefaultInventoryItemDrop::doDrop(Entity* zActor, Item* zItem, ItemSkill* zUsedSkill, Framework::Either zDestroyedObject) const { Inventory* inventory; if (zDestroyedObject.isA()) { inventory = dynamic_cast(zDestroyedObject.getA()); } else { inventory = dynamic_cast(zDestroyedObject.getB()); } for (ItemSlot* slot : *inventory) { if (!slot->isEmpty()) { ItemStack* stack = slot->takeItemsOut(slot->getNumberOfItems(), NO_DIRECTION); if (stack) { Game::INSTANCE->spawnItem( inventory->getLocation() + Framework::Vec3(0.5f, 0.5f, 0.5f), inventory->getDimensionId(), stack); } } } } DefaultInventoryItemDropFactory::DefaultInventoryItemDropFactory() : DropConfigFactory() {} JSONObjectValidationBuilder* DefaultInventoryItemDropFactory::addToValidator( JSONObjectValidationBuilder* builder) const { return DropConfigFactory::addToValidator(builder); } const char* DefaultInventoryItemDropFactory::getTypeToken() const { return "inventoryContent"; } DefaultInventoryItemDrop* DefaultInventoryItemDropFactory::createInstance( Framework::JSON::JSONObject* zJson) const { return new DefaultInventoryItemDrop(); } void DefaultInventoryItemDropFactory::addToJson( Framework::JSON::JSONObject* zJson, DefaultInventoryItemDrop* zObject) const {}