Chest.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include "BasicBlocks.h"
  3. class Chest : public BasicBlock
  4. {
  5. private:
  6. bool open;
  7. int userEntityId;
  8. virtual void onDialogClosed(Framework::Text dialogId) override;
  9. Framework::Text getDialogId() const;
  10. protected:
  11. virtual bool onTick(
  12. TickQueue* zQueue, int numTicks, bool& blocked) override;
  13. public:
  14. Chest(int typeId, Framework::Vec3<int> pos, int dimensionId);
  15. virtual bool interact(Item* zItem, Entity* zActor) override;
  16. virtual void sendModelInfo(NetworkMessage* zMessage) override;
  17. };
  18. class ChestBlockType : public BasicBlockType
  19. {
  20. public:
  21. ChestBlockType();
  22. virtual Block* createBlock(
  23. Framework::Vec3<int> position, int dimensionId) const override;
  24. };
  25. class ChestBlockTypeFactory : public BasicBlockTypeFactory
  26. {
  27. public:
  28. ChestBlockTypeFactory();
  29. BasicBlockType* createValue(
  30. Framework::JSON::JSONObject* zJson) const override;
  31. BasicBlockType* fromJson(Framework::JSON::JSONObject* zJson) const override;
  32. Framework::JSON::JSONObject* toJsonObject(
  33. BasicBlockType* zObject) const override;
  34. JSONObjectValidationBuilder* addToValidator(
  35. JSONObjectValidationBuilder* builder) const override;
  36. const char* getTypeToken() const override;
  37. const char* getTypeName() const;
  38. };