UICraftingGrid.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <Either.h>
  3. #include "UIElement.h"
  4. class UIReference;
  5. class UICraftingGrid : public UIElement
  6. {
  7. private:
  8. int rowSize;
  9. int colSize;
  10. int numOutputSlots;
  11. UIReference* target;
  12. public:
  13. UICraftingGrid();
  14. ~UICraftingGrid();
  15. void setRowSize(int rowSize);
  16. int getRowSize() const;
  17. void setColSize(int colSize);
  18. int getColSize() const;
  19. void setNumOutputSlots(int numOutputSlots);
  20. int getNumOutputSlots() const;
  21. void setTarget(UIReference* target);
  22. UIReference* zTarget() const;
  23. Framework::XML::Element* toUIML(Framework::Either<Block*, Entity*> zTarget,
  24. Entity* zActor) const override;
  25. };
  26. class UICraftingGridElementFactory : public UIElementFactory<UICraftingGrid>
  27. {
  28. public:
  29. UICraftingGridElementFactory();
  30. virtual JSONObjectValidationBuilder* addToValidator(
  31. JSONObjectValidationBuilder* builder) const override;
  32. UICraftingGrid* fromJson(Framework::JSON::JSONObject* zJson) const override;
  33. Framework::JSON::JSONObject* toJsonObject(
  34. UICraftingGrid* zObject) const override;
  35. UICraftingGrid* createElement(
  36. Framework::JSON::JSONObject* zJson) const override;
  37. const char* getTypeToken() const override;
  38. };