#pragma once #include #include "UIElement.h" class UIReference; class UICraftingGrid : public UIElement { private: int rowSize; int colSize; int numOutputSlots; UIReference* target; public: UICraftingGrid(); ~UICraftingGrid(); void setRowSize(int rowSize); int getRowSize() const; void setColSize(int colSize); int getColSize() const; void setNumOutputSlots(int numOutputSlots); int getNumOutputSlots() const; void setTarget(UIReference* target); UIReference* zTarget() const; Framework::XML::Element* toUIML(Framework::Either zTarget, Entity* zActor) const override; }; class UICraftingGridElementFactory : public UIElementFactory { public: UICraftingGridElementFactory(); virtual JSONObjectValidationBuilder* addToValidator( JSONObjectValidationBuilder* builder) const override; UICraftingGrid* fromJson(Framework::JSON::JSONObject* zJson) const override; Framework::JSON::JSONObject* toJsonObject( UICraftingGrid* zObject) const override; UICraftingGrid* createElement( Framework::JSON::JSONObject* zJson) const override; const char* getTypeToken() const override; };