CraftingGrid.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "NetworkAPIProcessor.h"
  3. #include <UIMLView.h>
  4. #include <Either.h>
  5. #include <VecN.h>
  6. class CraftingGridElement : public Framework::UIMLElement
  7. {
  8. public:
  9. CraftingGridElement();
  10. //! prüft, ob dieses UIML Element für ein bestimmtes xml Element zuständig ist
  11. bool isApplicableFor(Framework::XML::Element& element) override;
  12. //! erstellt eine neue Zeichnung zu einem gegebenen xml Element
  13. Framework::Zeichnung* parseElement(Framework::XML::Element& element, Framework::UIMLContainer& generalFactory) override;
  14. //! wendet die layout parameter zu einer Zeichnung an
  15. void layout(Framework::XML::Element& element, Framework::Zeichnung& z, int pWidth, int pHeight, Framework::UIMLContainer& generalLayouter) override;
  16. };
  17. class CraftingGridView : public Framework::ZeichnungHintergrund, public NetworkAPIProcessor
  18. {
  19. private:
  20. int rowSize;
  21. int colSize;
  22. int numOutputSlots;
  23. // entity id or block position
  24. Framework::Either<int, Framework::VecN<int, 4>> target;
  25. public:
  26. CraftingGridView(int rowSize, int colSize, int numOutputSlots, Framework::Either<int, Framework::VecN<int, 4>> target);
  27. void api(char* message) override;
  28. bool tick(double tickVal) override;
  29. void render(Framework::Bild& rObj) override;
  30. void doMausEreignis(Framework::MausEreignis& me, bool userRet) override;
  31. };