#pragma once #include "DropConfig.h" class BlockType; class BlockReplacementDrop : public DropConfig { private: const BlockType* zBlockType; Framework::Text blockTypeName; public: BlockReplacementDrop(Framework::Text blockTypeName); void initialize() override; Framework::Text getBlockTypeName() const; void doDrop(Entity* zActor, Item* zItem, ItemSkill* zUsedSkill, Framework::Either zDestroyedObject) const override; }; class BlockReplacementDropFactory : public DropConfigFactory { public: BlockReplacementDropFactory(); JSONObjectValidationBuilder* addToValidator( JSONObjectValidationBuilder* builder) const override; const char* getTypeToken() const override; BlockReplacementDrop* createInstance( Framework::JSON::JSONObject* zJson) const override; void addToJson(Framework::JSON::JSONObject* zJson, BlockReplacementDrop* zObject) const override; };