| 479 | } |
| 480 | |
| 481 | void Sprite::load(vili::node& data) |
| 482 | { |
| 483 | if (data.contains("path")) |
| 484 | { |
| 485 | this->loadTexture(data.at("path")); |
| 486 | } |
| 487 | |
| 488 | if (data.contains("rect")) |
| 489 | { |
| 490 | obe::Transform::Referential referentialPos; |
| 491 | Transform::UnitVector spritePos(0, 0); |
| 492 | Transform::UnitVector spriteSize(1, 1); |
| 493 | vili::node& rect = data.at("rect"); |
| 494 | if (rect.contains("unit")) |
| 495 | { |
| 496 | this->setWorkingUnit(Transform::stringToUnits(rect.at("unit"))); |
| 497 | } |
| 498 | spritePos.unit = m_unit; |
| 499 | spritePos.x = rect.at("x"); |
| 500 | spritePos.y = rect.at("y"); |
| 501 | spriteSize.unit = m_unit; |
| 502 | spriteSize.x = rect.at("width"); |
| 503 | spriteSize.y = rect.at("height"); |
| 504 | spritePos = spritePos.to<Transform::Units::SceneUnits>(); |
| 505 | spriteSize = spriteSize.to<Transform::Units::SceneUnits>(); |
| 506 | if (rect.contains("referential")) |
| 507 | referentialPos |
| 508 | = obe::Transform::Referential::FromString(rect.at("referential")); |
| 509 | this->setPosition(spritePos, referentialPos); |
| 510 | this->setSize(spriteSize, referentialPos); |
| 511 | } |
| 512 | |
| 513 | if (data.contains("rotation")) |
| 514 | { |
| 515 | this->setRotation(data.at("rotation")); |
| 516 | } |
| 517 | |
| 518 | if (data.contains("layer")) |
| 519 | { |
| 520 | this->setLayer(data.at("layer")); |
| 521 | } |
| 522 | |
| 523 | if (data.contains("zdepth")) |
| 524 | { |
| 525 | this->setZDepth(data.at("zdepth")); |
| 526 | } |
| 527 | |
| 528 | if (data.contains("antiAliasing")) |
| 529 | { |
| 530 | this->setAntiAliasing(data.at("antiAliasing")); |
| 531 | } |
| 532 | |
| 533 | if (data.contains("transform")) |
| 534 | { |
| 535 | std::string spriteXTransformer = "Camera"; |
| 536 | std::string spriteYTransformer = "Camera"; |
| 537 | vili::node& transform = data.at("transform"); |
| 538 | if (transform.contains("x")) |
nothing calls this directly
no test coverage detected