#pragma once #include "BasicBlocks.h" class Chest : public BasicBlock { private: bool open; int userEntityId; virtual void onDestroy() override; virtual void onDialogClosed(Framework::Text dialogId) override; Framework::Text getDialogId() const; protected: virtual bool onTick( TickQueue* zQueue, int numTicks, bool& blocked) override; public: Chest(int typeId, Framework::Vec3 pos, int dimensionId); virtual bool interact(Item* zItem, Entity* zActor) override; virtual void sendModelInfo(NetworkMessage* zMessage) override; }; class ChestBlockType : public BasicBlockType { public: ChestBlockType(Framework::Text itemTypeName, ModelInfo* model, Framework::Text name, int mapColor, bool modelSubscription, float hardness, Framework::RCArray groupNames); virtual Block* createBlock( Framework::Vec3 position, int dimensionId) const override; }; class ChestBlockTypeFactory : public SubTypeFactory { public: ChestBlockTypeFactory(); ChestBlockType* fromJson(Framework::JSON::JSONObject* zJson) const override; Framework::JSON::JSONObject* toJson(ChestBlockType* zObject) const override; Framework::JSON::Validator::JSONValidator* getValidator( Framework::JSON::Validator::ObjectValidationBuilder< Framework::JSON::Validator::JSONValidator>* builder) const override; Framework::Text getTypeToken() const override; };