12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include "DefaultInventoryDrop.h"
- #include <Block.h>
- #include <Entity.h>
- #include <Inventory.h>
- #include <ItemSlot.h>
- DefaultInventoryItemDrop::DefaultInventoryItemDrop()
- : DropConfig()
- {}
- void DefaultInventoryItemDrop::doDrop(Entity* zActor,
- Item* zItem,
- ItemSkill* zUsedSkill,
- Framework::Either<Block*, Entity*> zDestroyedObject) const
- {
- Inventory* inventory;
- if (zDestroyedObject.isA())
- {
- inventory = dynamic_cast<Inventory*>(zDestroyedObject.getA());
- }
- else
- {
- inventory = dynamic_cast<Inventory*>(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<float>(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
- {}
|