Chest.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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(
  16. Item* zItem, Entity* zActor, bool& itemChanged) override;
  17. virtual void sendModelInfo(NetworkMessage* zMessage) override;
  18. };
  19. class ChestBlockType : public BasicBlockType
  20. {
  21. public:
  22. ChestBlockType();
  23. virtual Block* createBlock(
  24. Framework::Vec3<int> position, int dimensionId) const override;
  25. };
  26. class ChestBlockTypeFactory : public BasicBlockTypeFactory<ChestBlockType>
  27. {
  28. public:
  29. ChestBlockTypeFactory();
  30. ChestBlockType* createValue(
  31. Framework::JSON::JSONObject* zJson) const override;
  32. ChestBlockType* fromJson(Framework::JSON::JSONObject* zJson) const override;
  33. Framework::JSON::JSONObject* toJsonObject(
  34. ChestBlockType* zObject) const override;
  35. JSONObjectValidationBuilder* addToValidator(
  36. JSONObjectValidationBuilder* builder) const override;
  37. const char* getTypeToken() const override;
  38. const char* getTypeName() const;
  39. };