RecipieOutput.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "RecipieOutput.h"
  2. #include <XML.h>
  3. #include "Globals.h"
  4. #include "UIMLToolTip.h"
  5. RecipieOutputElement::RecipieOutputElement()
  6. : Framework::UIMLElement()
  7. {}
  8. //! prüft, ob dieses UIML Element für ein bestimmtes xml Element zuständig
  9. //! ist
  10. bool RecipieOutputElement::isApplicableFor(Framework::XML::Element& element)
  11. {
  12. return element.getName().istGleich("output");
  13. }
  14. //! erstellt eine neue Zeichnung zu einem gegebenen xml Element
  15. Framework::Zeichnung* RecipieOutputElement::parseElement(
  16. Framework::XML::Element& element, Framework::UIMLContainer& generalFactory)
  17. {
  18. SlotInfo info;
  19. info.itemCount = (int)element.getAttributeValue("amount");
  20. int itemType = (int)element.getAttributeValue("itemType");
  21. info.hp = (float)(double)element.getAttributeValue("hp");
  22. info.maxHp = (float)(double)element.getAttributeValue("maxHp");
  23. info.durability = (float)(double)element.getAttributeValue("durability");
  24. info.maxDurability
  25. = (float)(double)element.getAttributeValue("maxDurability");
  26. info.zItem = zItemType(itemType)->zIcon();
  27. return new RecipieOutput(info, element.zChild(0)->toString());
  28. }
  29. bool RecipieOutputElement::updateElement(Framework::XML::Element& element,
  30. Framework::Zeichnung& z,
  31. Framework::UIMLContainer& generalFactory)
  32. {
  33. return false;
  34. }
  35. //! wendet die layout parameter zu einer Zeichnung an
  36. void RecipieOutputElement::layout(Framework::XML::Element& element,
  37. Framework::Zeichnung& z,
  38. int pWidth,
  39. int pHeight,
  40. Framework::UIMLContainer& generalLayouter)
  41. {
  42. UIMLElement::layout(element, z, pWidth, pHeight, generalLayouter);
  43. z.setWidth(50);
  44. z.setHeight(50);
  45. }
  46. RecipieOutput::RecipieOutput(SlotInfo info, Framework::Text toolTipUIML)
  47. : info(info)
  48. {
  49. setStyle(Framework::Zeichnung::Style::Erlaubt
  50. | Framework::Zeichnung::Style::Sichtbar);
  51. UIMLToolTip* tip = new UIMLToolTip();
  52. tip->setUIML(toolTipUIML);
  53. tip->setWarten(0.5);
  54. setToolTipZ(tip);
  55. }
  56. void RecipieOutput::render(Framework::Bild& rObj)
  57. {
  58. ZeichnungHintergrund::render(rObj);
  59. if (!rObj.setDrawOptions(pos.x, pos.y, gr.x, gr.y)) return;
  60. info.render(-1, -1, rObj, 0, 0);
  61. rObj.releaseDrawOptions();
  62. }