Chest.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include "BasicBlocks.h"
  3. class Chest : public BasicBlock
  4. {
  5. private:
  6. bool open;
  7. int userEntityId;
  8. virtual void onDestroy() override;
  9. virtual void onDialogClosed(Framework::Text dialogId) override;
  10. Framework::Text getDialogId() const;
  11. protected:
  12. virtual bool onTick(
  13. TickQueue* zQueue, int numTicks, bool& blocked) override;
  14. public:
  15. Chest(int typeId, Framework::Vec3<int> pos, int dimensionId);
  16. virtual bool interact(Item* zItem, Entity* zActor) override;
  17. virtual void sendModelInfo(NetworkMessage* zMessage) override;
  18. };
  19. class ChestBlockType : public BasicBlockType
  20. {
  21. public:
  22. ChestBlockType(Framework::Text itemTypeName,
  23. ModelInfo* model,
  24. Framework::Text name,
  25. int mapColor,
  26. bool modelSubscription,
  27. float hardness,
  28. Framework::RCArray<Framework::Text> groupNames);
  29. virtual Block* createBlock(
  30. Framework::Vec3<int> position, int dimensionId) const override;
  31. };
  32. class ChestBlockTypeFactory : public SubTypeFactory<BlockType, ChestBlockType>
  33. {
  34. public:
  35. ChestBlockTypeFactory();
  36. ChestBlockType* fromJson(Framework::JSON::JSONObject* zJson) const override;
  37. Framework::JSON::JSONObject* toJson(ChestBlockType* zObject) const override;
  38. Framework::JSON::Validator::JSONValidator* getValidator(
  39. Framework::JSON::Validator::ObjectValidationBuilder<
  40. Framework::JSON::Validator::JSONValidator>* builder) const override;
  41. Framework::Text getTypeToken() const override;
  42. };