CraftingGrid.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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, Vec3<int>> 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);
  23. target = Framework::Either<int, Vec3<int>>(Vec3<int>((int)*first, (int)*second, (int)*third));
  24. first->release();
  25. second->release();
  26. third->release();
  27. }
  28. return new CraftingGridView((int)element.getAttributeValue("rowSize"), (int)element.getAttributeValue("colSize"), (int)element.getAttributeValue("numOutputSlots"), target);
  29. }
  30. //! wendet die layout parameter zu einer Zeichnung an
  31. void CraftingGridElement::layout(Framework::XML::Element& element, Framework::Zeichnung& z, int pWidth, int pHeight, Framework::UIMLContainer& generalLayouter)
  32. {
  33. UIMLElement::layout(element, z, pWidth, pHeight, generalLayouter);
  34. }
  35. CraftingGridView::CraftingGridView(int rowSize, int colSize, int numOutputSlots, Either<int, Vec3<int>> target)
  36. : ZeichnungHintergrund(),
  37. rowSize(rowSize),
  38. colSize(colSize),
  39. numOutputSlots(numOutputSlots),
  40. target(target)
  41. {}
  42. void CraftingGridView::api(char* message)
  43. {
  44. }
  45. bool CraftingGridView::tick(double tickVal)
  46. {
  47. return ZeichnungHintergrund::tick(tickVal);
  48. }
  49. void CraftingGridView::render(Bild& rObj)
  50. {
  51. ZeichnungHintergrund::render(rObj);
  52. }
  53. void CraftingGridView::doMausEreignis(MausEreignis& me, bool userRet)
  54. {
  55. ZeichnungHintergrund::doMausEreignis(me, userRet);
  56. }