BlockReplacementDrop.h 996 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include "DropConfig.h"
  3. class BlockType;
  4. class BlockReplacementDrop : public DropConfig
  5. {
  6. private:
  7. const BlockType* zBlockType;
  8. Framework::Text blockTypeName;
  9. public:
  10. BlockReplacementDrop(Framework::Text blockTypeName);
  11. void initialize() override;
  12. Framework::Text getBlockTypeName() const;
  13. void doDrop(Entity* zActor,
  14. Item* zItem,
  15. ItemSkill* zUsedSkill,
  16. Framework::Either<Block*, Entity*> zDestroyedObject) const override;
  17. };
  18. class BlockReplacementDropFactory
  19. : public DropConfigFactory<BlockReplacementDrop>
  20. {
  21. public:
  22. BlockReplacementDropFactory();
  23. JSONObjectValidationBuilder* addToValidator(
  24. JSONObjectValidationBuilder* builder) const override;
  25. const char* getTypeToken() const override;
  26. BlockReplacementDrop* createInstance(
  27. Framework::JSON::JSONObject* zJson) const override;
  28. void addToJson(Framework::JSON::JSONObject* zJson,
  29. BlockReplacementDrop* zObject) const override;
  30. };