TupleScene.swift.gyb 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // This file was generated using gyb. Do not edit it directly. Edit
  2. // TupleScene.swift.gyb instead.
  3. // swiftformat:options --allow-partial-wrapping true
  4. %{
  5. maximum_scene_count = 20
  6. }%
  7. %for i in range(2, maximum_scene_count + 1):
  8. public struct TupleScene${i}<
  9. ${", ".join("Scene%d: Scene" % j for j in range(i))}
  10. >: Scene {
  11. public typealias Node = TupleSceneNode${i}<
  12. ${", ".join("Scene%d" % j for j in range(i))}
  13. >
  14. %for j in range(i):
  15. var scene${j}: Scene${j}
  16. %end
  17. public init(
  18. ${", ".join("_ scene%d: Scene%d" % (j, j) for j in range(i))}
  19. ) {
  20. %for j in range(i):
  21. self.scene${j} = scene${j}
  22. %end
  23. }
  24. }
  25. public final class TupleSceneNode${i}<
  26. ${", ".join("Scene%d: Scene" % j for j in range(i))}
  27. >: SceneGraphNode {
  28. public typealias NodeScene = TupleScene${i}<
  29. ${", ".join("Scene%d" % j for j in range(i))}
  30. >
  31. %for j in range(i):
  32. var node${j}: Scene${j}.Node
  33. %end
  34. public init<Backend: BaseAppBackend>(
  35. from scene: NodeScene,
  36. backend: Backend,
  37. environment: EnvironmentValues
  38. ) {
  39. %for j in range(i):
  40. node${j} = Scene${j}.Node(from: scene.scene${j}, backend: backend, environment: environment)
  41. %end
  42. }
  43. public func updateNode(
  44. _ newScene: NodeScene?,
  45. environment: EnvironmentValues
  46. ) -> SceneNodeUpdateResult {
  47. return SceneNodeUpdateResult(
  48. childResults: [
  49. %for j in range(i):
  50. node${j}.updateNode(newScene?.scene${j}, environment: environment),
  51. %end
  52. ]
  53. )
  54. }
  55. public func update<Backend: BaseAppBackend>(
  56. backend: Backend,
  57. environment: EnvironmentValues
  58. ) {
  59. %for j in range(i):
  60. node${j}.update(backend: backend, environment: environment)
  61. %end
  62. }
  63. }
  64. %end