CraftingGrid.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include <XML.h>
  2. #include "CraftingGrid.h"
  3. using namespace Framework;
  4. CraftingGridElement::CraftingGridElement()
  5. : UIMLElement()
  6. {}
  7. //! prüft, ob dieses UIML Element für ein bestimmtes xml Element zuständig ist
  8. bool CraftingGridElement::isApplicableFor(Framework::XML::Element& element)
  9. {
  10. return element.getName().istGleich("inventory");
  11. }
  12. //! erstellt eine neue Zeichnung zu einem gegebenen xml Element
  13. Framework::Zeichnung* CraftingGridElement::parseElement(Framework::XML::Element& element, Framework::UIMLContainer& generalFactory)
  14. {
  15. Text targetValue = element.getAttributeValue("target");
  16. Vec3<int> blockPos(0, 0, 0);
  17. Framework::Either<int, VecN<int, 4>> target((int)targetValue);
  18. if (targetValue.hat(','))
  19. {
  20. Text* first = targetValue.getTeilText(0, targetValue.positionVon(",", 0) + 1);
  21. Text* second = targetValue.getTeilText(targetValue.positionVon(",", 0) + 1, targetValue.positionVon(",", 1));
  22. Text* third = targetValue.getTeilText(targetValue.positionVon(",", 1) + 1, targetValue.positionVon(",", 2));
  23. Text* forth = targetValue.getTeilText(targetValue.positionVon(",", 2) + 1);
  24. target = Framework::Either<int, VecN<int, 4>>(VecN<int, 4>({ (int)*first, (int)*second, (int)*third, (int)*forth }));
  25. first->release();
  26. second->release();
  27. third->release();
  28. forth->release();
  29. }
  30. return new CraftingGridView((int)element.getAttributeValue("rowSize"), (int)element.getAttributeValue("colSize"), (int)element.getAttributeValue("numOutputSlots"), target);
  31. }
  32. //! wendet die layout parameter zu einer Zeichnung an
  33. void CraftingGridElement::layout(Framework::XML::Element& element, Framework::Zeichnung& z, int pWidth, int pHeight, Framework::UIMLContainer& generalLayouter)
  34. {
  35. UIMLElement::layout(element, z, pWidth, pHeight, generalLayouter);
  36. }
  37. CraftingGridView::CraftingGridView(int rowSize, int colSize, int numOutputSlots, Either<int, VecN<int, 4>> target)
  38. : ZeichnungHintergrund(),
  39. rowSize(rowSize),
  40. colSize(colSize),
  41. numOutputSlots(numOutputSlots),
  42. target(target)
  43. {}
  44. void CraftingGridView::api(char* message)
  45. {
  46. }
  47. bool CraftingGridView::tick(double tickVal)
  48. {
  49. return ZeichnungHintergrund::tick(tickVal);
  50. }
  51. void CraftingGridView::render(Bild& rObj)
  52. {
  53. ZeichnungHintergrund::render(rObj);
  54. }
  55. void CraftingGridView::doMausEreignis(MausEreignis& me, bool userRet)
  56. {
  57. ZeichnungHintergrund::doMausEreignis(me, userRet);
  58. }