index.vwf.yaml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. # A-Frame & VWF simple scene
  2. # Copyright 2017 Krestianstvo.org project
  3. ---
  4. extends: http://vwf.example.com/aframe/ascene.vwf
  5. properties:
  6. transparent: true
  7. assets: "assets.json"
  8. children:
  9. assetBG:
  10. extends: http://vwf.example.com/aframe/a-asset-image-item.vwf
  11. properties:
  12. itemID: "bg"
  13. itemSrc: "/defaults/assets/bg.jpg"
  14. assetSky:
  15. extends: http://vwf.example.com/aframe/a-asset-image-item.vwf
  16. properties:
  17. itemID: "sky"
  18. itemSrc: "/defaults/assets/skyes/sky3.jpg"
  19. assetBG2:
  20. extends: http://vwf.example.com/aframe/a-asset-image-item.vwf
  21. properties:
  22. itemID: "bg2"
  23. itemSrc: "/defaults/assets/checker.jpg"
  24. assetPlaneObj:
  25. extends: http://vwf.example.com/aframe/a-asset-item.vwf
  26. properties:
  27. itemID: "plane-obj"
  28. itemSrc: "/defaults/assets/models/plane/PUSHILIN_Plane.obj"
  29. assetPlaneMtl:
  30. extends: http://vwf.example.com/aframe/a-asset-item.vwf
  31. properties:
  32. itemID: "plane-mtl"
  33. itemSrc: "/defaults/assets/models/plane/PUSHILIN_Plane.mtl"
  34. myLight:
  35. extends: http://vwf.example.com/aframe/alight.vwf
  36. properties:
  37. type: "directional"
  38. intensity: 0.5
  39. position: "0.5 2.0 1.0"
  40. castShadow: true
  41. myLight2:
  42. extends: http://vwf.example.com/aframe/alight.vwf
  43. properties:
  44. type: "ambient"
  45. intensity: 0.5
  46. model:
  47. extends: http://vwf.example.com/aframe/aobjmodel.vwf
  48. properties:
  49. src: "#plane-obj"
  50. mtl: "#plane-mtl"
  51. position: "-1.2 1.7 -2.5"
  52. rotation: "0 -45 0"
  53. scale: [0.5, 0.5, 0.5]
  54. children:
  55. shadow:
  56. extends: http://vwf.example.com/aframe/shadowComponent.vwf
  57. properties:
  58. cast: true
  59. spaceText:
  60. extends: http://vwf.example.com/aframe/atext.vwf
  61. properties:
  62. value: "Virtual World Framework & A-Frame"
  63. color: "#ddd"
  64. position: "-2 2.5 -2"
  65. spaceText2:
  66. extends: http://vwf.example.com/aframe/atext.vwf
  67. properties:
  68. value: "Project by Krestianstvo.org"
  69. color: "#aaa"
  70. position: "1 3 -4"
  71. boxAnim:
  72. extends: http://vwf.example.com/aframe/abox.vwf
  73. properties:
  74. position: "0 0 -3"
  75. rotation: "0 0 0"
  76. depth: 2
  77. height: 1
  78. width: 1
  79. class: "aabb"
  80. methods:
  81. hitstartEventMethod:
  82. body: |
  83. this.material.opacity = 0.7
  84. hitendEventMethod:
  85. body: |
  86. this.material.opacity = 1.0
  87. children:
  88. aabb-collider-listener:
  89. extends: http://vwf.example.com/aframe/app-aabb-collider-listener-component.vwf
  90. type: "component"
  91. material:
  92. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  93. properties:
  94. color: "#3c7249"
  95. box:
  96. extends: http://vwf.example.com/aframe/abox.vwf
  97. properties:
  98. position: "-1 0.5 -3"
  99. rotation: "0 -30 0"
  100. depth: 2
  101. height: 1
  102. width: 1
  103. clickable: true
  104. children:
  105. material:
  106. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  107. properties:
  108. color: "#3c7249"
  109. transparent: true
  110. raycaster-listener:
  111. extends: http://vwf.example.com/aframe/app-raycaster-listener-component.vwf
  112. type: "component"
  113. cursor-listener:
  114. extends: http://vwf.example.com/aframe/app-cursor-listener-component.vwf
  115. type: "component"
  116. shadow:
  117. extends: http://vwf.example.com/aframe/shadowComponent.vwf
  118. properties:
  119. cast: true
  120. receive: true
  121. events:
  122. clickEvent:
  123. methods:
  124. clickEventMethod:
  125. body: |
  126. if (this.clickable) {
  127. let genColor = this.generateColor();
  128. this.material.color = genColor
  129. }
  130. intersectEventMethod:
  131. body: |
  132. if (this.clickable) {
  133. this.material.opacity = 0.7
  134. }
  135. clearIntersectEventMethod:
  136. body: |
  137. if (this.clickable) {
  138. this.material.opacity = 1.0
  139. }
  140. generateColor:
  141. body: |
  142. var letters = '0123456789ABCDEF';
  143. var color = '#';
  144. for (var i = 0; i < 6; i++) {
  145. color += letters[Math.floor(this.random() * 16)];
  146. } return color
  147. scripts:
  148. - |
  149. this.clickEvent = function(){
  150. this.clickEventMethod();
  151. }
  152. sphere:
  153. extends: http://vwf.example.com/aframe/asphere.vwf
  154. properties:
  155. position: "1 1.25 -4"
  156. radius: 1
  157. children:
  158. material:
  159. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  160. properties:
  161. color: "#e0e014"
  162. wireframe: true
  163. box2:
  164. extends: http://vwf.example.com/aframe/abox.vwf
  165. properties:
  166. position: "2 -0.75 0"
  167. depth: 1
  168. children:
  169. raycaster:
  170. extends: http://vwf.example.com/aframe/raycasterComponent.vwf
  171. type: "component"
  172. properties:
  173. recursive: false
  174. interval: 10
  175. far: 2
  176. objects: ".intersectable"
  177. material:
  178. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  179. properties:
  180. color: "#2167a5"
  181. src: "#bg"
  182. shadow:
  183. extends: http://vwf.example.com/aframe/shadowComponent.vwf
  184. properties:
  185. cast: true
  186. interpolation:
  187. extends: http://vwf.example.com/aframe/interpolation-component.vwf
  188. properties:
  189. enabled: true
  190. deltaPos: 0.001
  191. deltaRot: 0.1
  192. methods:
  193. run:
  194. body: |
  195. var time = vwf.now;
  196. let pos = this.position; //AFRAME.utils.coordinates.parse(this.position);
  197. this.position = [pos[0], pos[1], Math.sin(time)]
  198. this.future( 0.01 ).run(); // schedule the next step
  199. sky:
  200. extends: http://vwf.example.com/aframe/asky.vwf
  201. properties:
  202. children:
  203. material:
  204. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  205. properties:
  206. src: "#sky"
  207. side: "back"
  208. fog: false
  209. groundPlane:
  210. extends: http://vwf.example.com/aframe/aplane.vwf
  211. properties:
  212. height: 50
  213. width: 50
  214. rotation: "-90 0 0"
  215. children:
  216. material:
  217. extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
  218. properties:
  219. repeat: "10 10"
  220. color: "white"
  221. src: "#bg2"
  222. shadow:
  223. extends: http://vwf.example.com/aframe/shadowComponent.vwf
  224. properties:
  225. receive: true
  226. methods:
  227. initialize:
  228. body: |
  229. var runBox = vwf_view.kernel.find("", "/sphere/box2")[0];
  230. console.log(runBox);
  231. vwf_view.kernel.callMethod(runBox, "run");