Chest.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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(
  16. int typeId, Framework::Vec3<int> pos, int dimensionId);
  17. virtual bool interact(Item* zItem, Entity* zActor) override;
  18. virtual void sendModelInfo(NetworkMessage* zMessage) override;
  19. };
  20. class ChestBlockType : public BasicBlockType
  21. {
  22. public:
  23. ChestBlockType(Framework::Text itemTypeName,
  24. ModelInfo* model,
  25. Framework::Text name,
  26. int mapColor,
  27. bool modelSubscription,
  28. float hardness,
  29. Framework::RCArray<Framework::Text> groupNames);
  30. virtual Block* createBlock(
  31. Framework::Vec3<int> position, int dimensionId) const override;
  32. virtual ItemType* createItemType() const override;
  33. };
  34. class ChestBlockTypeFactory
  35. : public SubTypeFactory<BlockType, ChestBlockType>
  36. {
  37. public:
  38. ChestBlockTypeFactory();
  39. ChestBlockType* fromJson(
  40. Framework::JSON::JSONObject* zJson) const override;
  41. Framework::JSON::JSONObject* toJson(ChestBlockType* zObject) const override;
  42. Framework::JSON::Validator::JSONValidator* getValidator(
  43. Framework::JSON::Validator::ObjectValidationBuilder<
  44. Framework::JSON::Validator::JSONValidator>* builder) const override;
  45. Framework::Text getTypeToken() const override;
  46. };