DefaultBlockItemDrop.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "DefaultBlockItemDrop.h"
  2. #include "Block.h"
  3. DefaultBlockItemDrop::DefaultBlockItemDrop()
  4. : DropConfig()
  5. {}
  6. void DefaultBlockItemDrop::doDrop(Entity* zActor,
  7. Item* zItem,
  8. ItemSkill* zUsedSkill,
  9. Framework::Either<Block*, Entity*> zDestroyedObject) const
  10. {
  11. if (zDestroyedObject.isA())
  12. {
  13. Item* blockItem
  14. = zDestroyedObject.getA()->zBlockType()->getItemFromBlock(
  15. zDestroyedObject.getA());
  16. if (blockItem)
  17. {
  18. Game::INSTANCE->spawnItem(
  19. zDestroyedObject.getA()->getLocation()
  20. + Framework::Vec3<float>(0.5f, 0.5f, 0.5f),
  21. zDestroyedObject.getA()->getDimensionId(),
  22. blockItem);
  23. }
  24. }
  25. }
  26. DefaultBlockItemDropFactory::DefaultBlockItemDropFactory()
  27. : DropConfigFactory()
  28. {}
  29. JSONObjectValidationBuilder* DefaultBlockItemDropFactory::addToValidator(
  30. JSONObjectValidationBuilder* builder) const
  31. {
  32. return DropConfigFactory::addToValidator(builder);
  33. }
  34. const char* DefaultBlockItemDropFactory::getTypeToken() const
  35. {
  36. return "blockItem";
  37. }
  38. DefaultBlockItemDrop* DefaultBlockItemDropFactory::createInstance(
  39. Framework::JSON::JSONObject* zJson) const
  40. {
  41. return new DefaultBlockItemDrop();
  42. }
  43. void DefaultBlockItemDropFactory::addToJson(
  44. Framework::JSON::JSONObject* zJson, DefaultBlockItemDrop* zObject) const
  45. {}