ruby_rpg 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/THIRD_PARTY_NOTICES.md +61 -0
  3. data/lib/engine/assets/Bangers-Regular.ttf +0 -0
  4. data/lib/engine/assets/Caveat-Regular.ttf +0 -0
  5. data/lib/engine/assets/JetBrainsMono-Regular.ttf +0 -0
  6. data/lib/engine/assets/NotoSerif-Regular.ttf +0 -0
  7. data/lib/engine/assets/OpenSans-Regular.ttf +0 -0
  8. data/lib/engine/assets/Oswald-Regular.ttf +0 -0
  9. data/lib/engine/assets/PressStart2P-Regular.ttf +0 -0
  10. data/lib/engine/assets/_imported/Bangers-Regular.json +1 -0
  11. data/lib/engine/assets/_imported/Bangers-Regular.png +0 -0
  12. data/lib/engine/assets/_imported/Caveat-Regular.json +1 -0
  13. data/lib/engine/assets/_imported/Caveat-Regular.png +0 -0
  14. data/lib/engine/assets/_imported/JetBrainsMono-Regular.json +1 -0
  15. data/lib/engine/assets/_imported/JetBrainsMono-Regular.png +0 -0
  16. data/lib/engine/assets/_imported/NotoSerif-Regular.json +1 -0
  17. data/lib/engine/assets/_imported/NotoSerif-Regular.png +0 -0
  18. data/lib/engine/assets/_imported/OpenSans-Regular.json +1 -0
  19. data/lib/engine/assets/_imported/OpenSans-Regular.png +0 -0
  20. data/lib/engine/assets/_imported/Oswald-Regular.json +1 -0
  21. data/lib/engine/assets/_imported/Oswald-Regular.png +0 -0
  22. data/lib/engine/assets/_imported/PressStart2P-Regular.json +1 -0
  23. data/lib/engine/assets/_imported/PressStart2P-Regular.png +0 -0
  24. data/lib/engine/components/orthographic_camera.rb +7 -7
  25. data/lib/engine/components/perspective_camera.rb +11 -12
  26. data/lib/engine/components/point_light.rb +1 -1
  27. data/lib/engine/components/spot_light.rb +1 -1
  28. data/lib/engine/font.rb +28 -0
  29. data/lib/engine/game_object.rb +18 -10
  30. data/lib/engine/standard_objects/cube.rb +2 -1
  31. data/lib/engine/standard_objects/plane.rb +2 -1
  32. data/lib/engine/standard_objects/sphere.rb +2 -1
  33. metadata +23 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f192eab2e6de6818b2a7c45818a4c50207f23e19ca2b74cac2dc75865b9189d
4
- data.tar.gz: 40de3ca20300414b245bfcad19a83f3265de0867e6aaaa62539aafe2178945ad
3
+ metadata.gz: 007b1e3b07b58938d2ef46f760a57bcff8ea430db434db6be96804453e864839
4
+ data.tar.gz: 54ba403b3ba8bfa5b5c0a1a9e537b6acce9dcaa20460354592ab1cb738fa617c
5
5
  SHA512:
6
- metadata.gz: 81828b0d4e3f5bb54b53dab28178bb89c5a2487f88fb2648e40a7824f3202d2cf1385286c8cd131667e1cf2bb59e5793b9a8c14dea25496b481965478b128d6b
7
- data.tar.gz: 500f19f44753e9f147db960ea750b085947819774bff014a391992805d70d597866b69b42f911a130543da466cae523350c06b7e41d147b791f28552272a84c1
6
+ metadata.gz: ce867115127c2b89fde8c2cc9de02c8d4cb76b73358e5104d75889d886cf5780db38c2a7ce925480e364d3ca3c2d08adc2cfc822daf38b7e462e0d32b2795b6e
7
+ data.tar.gz: 46dfa2e1f02498f220f825efcdbaa9ebf97a1133f58e019fd2ee1c92efd38ae4731e454cb35606f5aaf588a707fbc08b997a01e61e8d9dee31201f8a729e7889
@@ -0,0 +1,61 @@
1
+ # Third Party Notices
2
+
3
+ This project includes the following third-party fonts:
4
+
5
+ ## JetBrains Mono
6
+
7
+ - **Source:** https://github.com/JetBrains/JetBrainsMono
8
+ - **License:** SIL Open Font License 1.1
9
+ - **Copyright:** Copyright 2020 The JetBrains Mono Project Authors
10
+
11
+ ## Open Sans
12
+
13
+ - **Source:** https://github.com/googlefonts/opensans
14
+ - **License:** SIL Open Font License 1.1
15
+ - **Copyright:** Copyright 2020 The Open Sans Project Authors
16
+
17
+ ## Noto Serif
18
+
19
+ - **Source:** https://github.com/notofonts/latin-greek-cyrillic
20
+ - **License:** SIL Open Font License 1.1
21
+ - **Copyright:** Copyright 2022 The Noto Project Authors
22
+
23
+ ## Press Start 2P
24
+
25
+ - **Source:** https://github.com/googlefonts/press-start-2p
26
+ - **License:** SIL Open Font License 1.1
27
+ - **Copyright:** Copyright 2012 The Press Start 2P Project Authors
28
+
29
+ ## Bangers
30
+
31
+ - **Source:** https://github.com/googlefonts/bangers
32
+ - **License:** SIL Open Font License 1.1
33
+ - **Copyright:** Copyright 2010 The Bangers Project Authors
34
+
35
+ ## Caveat
36
+
37
+ - **Source:** https://github.com/googlefonts/caveat
38
+ - **License:** SIL Open Font License 1.1
39
+ - **Copyright:** Copyright 2014 The Caveat Project Authors
40
+
41
+ ## Oswald
42
+
43
+ - **Source:** https://github.com/googlefonts/oswald
44
+ - **License:** SIL Open Font License 1.1
45
+ - **Copyright:** Copyright 2016 The Oswald Project Authors
46
+
47
+ ---
48
+
49
+ ## SIL Open Font License 1.1
50
+
51
+ The above fonts are licensed under the SIL Open Font License, Version 1.1.
52
+
53
+ This license is available with a FAQ at: https://openfontlicense.org
54
+
55
+ ### Summary
56
+
57
+ - You can use these fonts freely in your products and projects - print or digital, commercial or otherwise.
58
+ - You can redistribute the fonts.
59
+ - You can modify the fonts for your own use.
60
+ - You cannot sell the fonts on their own.
61
+ - Modified versions must use a different name.
@@ -0,0 +1 @@
1
+ {"0":{"width":39.0},"1":{"width":39.0},"2":{"width":39.0},"3":{"width":39.0},"4":{"width":39.0},"5":{"width":39.0},"6":{"width":39.0},"7":{"width":39.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":39.0},"14":{"width":39.0},"15":{"width":39.0},"16":{"width":39.0},"17":{"width":39.0},"18":{"width":39.0},"19":{"width":39.0},"20":{"width":39.0},"21":{"width":39.0},"22":{"width":39.0},"23":{"width":39.0},"24":{"width":39.0},"25":{"width":39.0},"26":{"width":39.0},"27":{"width":39.0},"28":{"width":39.0},"29":{"width":39.0},"30":{"width":39.0},"31":{"width":17.25},"32":{"width":23.0},"33":{"width":34.0},"34":{"width":41.0},"35":{"width":31.0},"36":{"width":49.0},"37":{"width":36.0},"38":{"width":21.0},"39":{"width":29.0},"40":{"width":24.0},"41":{"width":28.0},"42":{"width":22.0},"43":{"width":13.0},"44":{"width":24.0},"45":{"width":13.0},"46":{"width":39.0},"47":{"width":31.0},"48":{"width":24.0},"49":{"width":32.0},"50":{"width":31.0},"51":{"width":30.0},"52":{"width":31.0},"53":{"width":32.0},"54":{"width":28.0},"55":{"width":35.0},"56":{"width":33.0},"57":{"width":16.0},"58":{"width":18.0},"59":{"width":23.0},"60":{"width":22.0},"61":{"width":21.0},"62":{"width":31.0},"63":{"width":61.0},"64":{"width":28.0},"65":{"width":31.0},"66":{"width":31.0},"67":{"width":31.0},"68":{"width":27.0},"69":{"width":28.0},"70":{"width":34.0},"71":{"width":33.0},"72":{"width":18.0},"73":{"width":24.0},"74":{"width":36.0},"75":{"width":19.0},"76":{"width":41.0},"77":{"width":33.0},"78":{"width":34.0},"79":{"width":28.0},"80":{"width":34.0},"81":{"width":31.0},"82":{"width":31.0},"83":{"width":29.0},"84":{"width":31.0},"85":{"width":30.0},"86":{"width":43.0},"87":{"width":31.0},"88":{"width":31.0},"89":{"width":32.0},"90":{"width":27.0},"91":{"width":0.0},"92":{"width":24.0},"93":{"width":27.0},"94":{"width":24.0},"95":{"width":21.0},"96":{"width":28.0},"97":{"width":31.0},"98":{"width":31.0},"99":{"width":31.0},"100":{"width":27.0},"101":{"width":28.0},"102":{"width":34.0},"103":{"width":33.0},"104":{"width":17.0},"105":{"width":24.0},"106":{"width":36.0},"107":{"width":19.0},"108":{"width":41.0},"109":{"width":33.0},"110":{"width":34.0},"111":{"width":28.0},"112":{"width":34.0},"113":{"width":31.0},"114":{"width":31.0},"115":{"width":29.0},"116":{"width":31.0},"117":{"width":30.0},"118":{"width":43.0},"119":{"width":31.0},"120":{"width":31.0},"121":{"width":32.0},"122":{"width":22.0},"123":{"width":19.0},"124":{"width":21.0},"125":{"width":29.0},"126":{"width":0.0},"127":{"width":39.0},"128":{"width":39.0},"129":{"width":39.0},"130":{"width":39.0},"131":{"width":39.0},"132":{"width":39.0},"133":{"width":39.0},"134":{"width":39.0},"135":{"width":39.0},"136":{"width":39.0},"137":{"width":39.0},"138":{"width":39.0},"139":{"width":39.0},"140":{"width":39.0},"141":{"width":39.0},"142":{"width":39.0},"143":{"width":39.0},"144":{"width":39.0},"145":{"width":39.0},"146":{"width":39.0},"147":{"width":39.0},"148":{"width":39.0},"149":{"width":39.0},"150":{"width":39.0},"151":{"width":39.0},"152":{"width":39.0},"153":{"width":39.0},"154":{"width":39.0},"155":{"width":39.0},"156":{"width":39.0},"157":{"width":39.0},"158":{"width":39.0},"159":{"width":0.0},"160":{"width":19.0},"161":{"width":32.0},"162":{"width":28.0},"163":{"width":30.0},"164":{"width":33.0},"165":{"width":19.0},"166":{"width":32.0},"167":{"width":31.0},"168":{"width":38.0},"169":{"width":28.0},"170":{"width":32.0},"171":{"width":27.0},"172":{"width":39.0},"173":{"width":36.0},"174":{"width":29.0},"175":{"width":21.0},"176":{"width":23.0},"177":{"width":31.0},"178":{"width":27.0},"179":{"width":21.0},"180":{"width":31.0},"181":{"width":31.0},"182":{"width":16.0},"183":{"width":19.0},"184":{"width":23.0},"185":{"width":34.0},"186":{"width":31.0},"187":{"width":65.0},"188":{"width":71.0},"189":{"width":68.0},"190":{"width":27.0},"191":{"width":28.0},"192":{"width":28.0},"193":{"width":28.0},"194":{"width":33.0},"195":{"width":32.0},"196":{"width":28.0},"197":{"width":36.0},"198":{"width":31.0},"199":{"width":27.0},"200":{"width":27.0},"201":{"width":27.0},"202":{"width":30.0},"203":{"width":18.0},"204":{"width":25.0},"205":{"width":25.0},"206":{"width":28.0},"207":{"width":30.0},"208":{"width":38.0},"209":{"width":34.0},"210":{"width":35.0},"211":{"width":35.0},"212":{"width":40.0},"213":{"width":39.0},"214":{"width":32.0},"215":{"width":37.0},"216":{"width":31.0},"217":{"width":32.0},"218":{"width":32.0},"219":{"width":36.0},"220":{"width":32.0},"221":{"width":27.0},"222":{"width":31.0},"223":{"width":28.0},"224":{"width":28.0},"225":{"width":28.0},"226":{"width":35.0},"227":{"width":32.0},"228":{"width":28.0},"229":{"width":36.0},"230":{"width":31.0},"231":{"width":27.0},"232":{"width":27.0},"233":{"width":28.0},"234":{"width":31.0},"235":{"width":18.0},"236":{"width":21.0},"237":{"width":23.0},"238":{"width":26.0},"239":{"width":30.0},"240":{"width":38.0},"241":{"width":34.0},"242":{"width":34.0},"243":{"width":34.0},"244":{"width":40.0},"245":{"width":36.0},"246":{"width":24.0},"247":{"width":37.0},"248":{"width":31.0},"249":{"width":31.0},"250":{"width":32.0},"251":{"width":35.0},"252":{"width":31.0},"253":{"width":27.0},"254":{"width":32.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":36.0},"1":{"width":36.0},"2":{"width":36.0},"3":{"width":36.0},"4":{"width":36.0},"5":{"width":36.0},"6":{"width":36.0},"7":{"width":36.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":36.0},"14":{"width":36.0},"15":{"width":36.0},"16":{"width":36.0},"17":{"width":36.0},"18":{"width":36.0},"19":{"width":36.0},"20":{"width":36.0},"21":{"width":36.0},"22":{"width":36.0},"23":{"width":36.0},"24":{"width":36.0},"25":{"width":36.0},"26":{"width":36.0},"27":{"width":36.0},"28":{"width":36.0},"29":{"width":36.0},"30":{"width":36.0},"31":{"width":16.25},"32":{"width":24.0},"33":{"width":25.0},"34":{"width":41.0},"35":{"width":34.0},"36":{"width":41.0},"37":{"width":39.0},"38":{"width":18.0},"39":{"width":32.0},"40":{"width":22.0},"41":{"width":31.0},"42":{"width":29.0},"43":{"width":12.0},"44":{"width":22.0},"45":{"width":12.0},"46":{"width":30.0},"47":{"width":30.0},"48":{"width":30.0},"49":{"width":31.0},"50":{"width":30.0},"51":{"width":32.0},"52":{"width":29.0},"53":{"width":28.0},"54":{"width":30.0},"55":{"width":32.0},"56":{"width":31.0},"57":{"width":16.0},"58":{"width":16.0},"59":{"width":28.0},"60":{"width":28.0},"61":{"width":29.0},"62":{"width":32.0},"63":{"width":41.0},"64":{"width":32.0},"65":{"width":34.0},"66":{"width":33.0},"67":{"width":39.0},"68":{"width":38.0},"69":{"width":39.0},"70":{"width":35.0},"71":{"width":43.0},"72":{"width":36.0},"73":{"width":27.0},"74":{"width":41.0},"75":{"width":27.0},"76":{"width":48.0},"77":{"width":44.0},"78":{"width":35.0},"79":{"width":35.0},"80":{"width":35.0},"81":{"width":38.0},"82":{"width":39.0},"83":{"width":38.0},"84":{"width":39.0},"85":{"width":40.0},"86":{"width":52.0},"87":{"width":40.0},"88":{"width":41.0},"89":{"width":39.0},"90":{"width":38.0},"91":{"width":0.0},"92":{"width":28.0},"93":{"width":27.0},"94":{"width":26.0},"95":{"width":22.0},"96":{"width":30.0},"97":{"width":29.0},"98":{"width":24.0},"99":{"width":32.0},"100":{"width":23.0},"101":{"width":29.0},"102":{"width":24.0},"103":{"width":30.0},"104":{"width":17.0},"105":{"width":18.0},"106":{"width":26.0},"107":{"width":20.0},"108":{"width":38.0},"109":{"width":28.0},"110":{"width":24.0},"111":{"width":25.0},"112":{"width":25.0},"113":{"width":27.0},"114":{"width":25.0},"115":{"width":25.0},"116":{"width":25.0},"117":{"width":25.0},"118":{"width":35.0},"119":{"width":25.0},"120":{"width":25.0},"121":{"width":25.0},"122":{"width":32.0},"123":{"width":27.0},"124":{"width":25.0},"125":{"width":29.0},"126":{"width":36.0},"127":{"width":36.0},"128":{"width":36.0},"129":{"width":36.0},"130":{"width":36.0},"131":{"width":36.0},"132":{"width":36.0},"133":{"width":36.0},"134":{"width":36.0},"135":{"width":36.0},"136":{"width":36.0},"137":{"width":36.0},"138":{"width":36.0},"139":{"width":36.0},"140":{"width":36.0},"141":{"width":36.0},"142":{"width":36.0},"143":{"width":36.0},"144":{"width":36.0},"145":{"width":36.0},"146":{"width":36.0},"147":{"width":36.0},"148":{"width":36.0},"149":{"width":36.0},"150":{"width":36.0},"151":{"width":36.0},"152":{"width":36.0},"153":{"width":36.0},"154":{"width":36.0},"155":{"width":36.0},"156":{"width":36.0},"157":{"width":36.0},"158":{"width":36.0},"159":{"width":0.0},"160":{"width":20.0},"161":{"width":33.0},"162":{"width":33.0},"163":{"width":29.0},"164":{"width":39.0},"165":{"width":27.0},"166":{"width":30.0},"167":{"width":27.0},"168":{"width":35.0},"169":{"width":31.0},"170":{"width":38.0},"171":{"width":30.0},"172":{"width":22.0},"173":{"width":35.0},"174":{"width":28.0},"175":{"width":28.0},"176":{"width":29.0},"177":{"width":29.0},"178":{"width":30.0},"179":{"width":28.0},"180":{"width":25.0},"181":{"width":35.0},"182":{"width":14.0},"183":{"width":21.0},"184":{"width":29.0},"185":{"width":26.0},"186":{"width":42.0},"187":{"width":51.0},"188":{"width":48.0},"189":{"width":51.0},"190":{"width":24.0},"191":{"width":34.0},"192":{"width":36.0},"193":{"width":36.0},"194":{"width":40.0},"195":{"width":38.0},"196":{"width":36.0},"197":{"width":54.0},"198":{"width":33.0},"199":{"width":38.0},"200":{"width":38.0},"201":{"width":40.0},"202":{"width":39.0},"203":{"width":36.0},"204":{"width":36.0},"205":{"width":36.0},"206":{"width":36.0},"207":{"width":39.0},"208":{"width":44.0},"209":{"width":35.0},"210":{"width":36.0},"211":{"width":38.0},"212":{"width":40.0},"213":{"width":38.0},"214":{"width":27.0},"215":{"width":39.0},"216":{"width":39.0},"217":{"width":39.0},"218":{"width":39.0},"219":{"width":39.0},"220":{"width":41.0},"221":{"width":33.0},"222":{"width":31.0},"223":{"width":30.0},"224":{"width":31.0},"225":{"width":30.0},"226":{"width":32.0},"227":{"width":30.0},"228":{"width":30.0},"229":{"width":37.0},"230":{"width":24.0},"231":{"width":23.0},"232":{"width":27.0},"233":{"width":26.0},"234":{"width":26.0},"235":{"width":16.0},"236":{"width":22.0},"237":{"width":20.0},"238":{"width":21.0},"239":{"width":28.0},"240":{"width":32.0},"241":{"width":24.0},"242":{"width":28.0},"243":{"width":26.0},"244":{"width":29.0},"245":{"width":27.0},"246":{"width":29.0},"247":{"width":28.0},"248":{"width":25.0},"249":{"width":26.0},"250":{"width":27.0},"251":{"width":28.0},"252":{"width":26.0},"253":{"width":25.0},"254":{"width":25.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":35.0},"1":{"width":35.0},"2":{"width":35.0},"3":{"width":35.0},"4":{"width":35.0},"5":{"width":35.0},"6":{"width":35.0},"7":{"width":35.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":35.0},"14":{"width":35.0},"15":{"width":35.0},"16":{"width":35.0},"17":{"width":35.0},"18":{"width":35.0},"19":{"width":35.0},"20":{"width":35.0},"21":{"width":35.0},"22":{"width":35.0},"23":{"width":35.0},"24":{"width":35.0},"25":{"width":35.0},"26":{"width":35.0},"27":{"width":35.0},"28":{"width":35.0},"29":{"width":35.0},"30":{"width":35.0},"31":{"width":8.75},"32":{"width":35.0},"33":{"width":35.0},"34":{"width":35.0},"35":{"width":35.0},"36":{"width":35.0},"37":{"width":37.0},"38":{"width":35.0},"39":{"width":35.0},"40":{"width":35.0},"41":{"width":35.0},"42":{"width":35.0},"43":{"width":35.0},"44":{"width":35.0},"45":{"width":35.0},"46":{"width":35.0},"47":{"width":35.0},"48":{"width":35.0},"49":{"width":35.0},"50":{"width":35.0},"51":{"width":35.0},"52":{"width":35.0},"53":{"width":35.0},"54":{"width":35.0},"55":{"width":35.0},"56":{"width":35.0},"57":{"width":35.0},"58":{"width":35.0},"59":{"width":35.0},"60":{"width":35.0},"61":{"width":35.0},"62":{"width":35.0},"63":{"width":35.0},"64":{"width":35.0},"65":{"width":35.0},"66":{"width":35.0},"67":{"width":35.0},"68":{"width":35.0},"69":{"width":35.0},"70":{"width":35.0},"71":{"width":35.0},"72":{"width":35.0},"73":{"width":35.0},"74":{"width":35.0},"75":{"width":35.0},"76":{"width":35.0},"77":{"width":35.0},"78":{"width":35.0},"79":{"width":35.0},"80":{"width":35.0},"81":{"width":35.0},"82":{"width":35.0},"83":{"width":35.0},"84":{"width":35.0},"85":{"width":35.0},"86":{"width":35.0},"87":{"width":35.0},"88":{"width":35.0},"89":{"width":35.0},"90":{"width":35.0},"91":{"width":0.0},"92":{"width":35.0},"93":{"width":35.0},"94":{"width":35.0},"95":{"width":35.0},"96":{"width":35.0},"97":{"width":35.0},"98":{"width":35.0},"99":{"width":35.0},"100":{"width":35.0},"101":{"width":35.0},"102":{"width":35.0},"103":{"width":35.0},"104":{"width":35.0},"105":{"width":35.0},"106":{"width":35.0},"107":{"width":35.0},"108":{"width":35.0},"109":{"width":35.0},"110":{"width":35.0},"111":{"width":35.0},"112":{"width":35.0},"113":{"width":35.0},"114":{"width":35.0},"115":{"width":35.0},"116":{"width":35.0},"117":{"width":35.0},"118":{"width":35.0},"119":{"width":35.0},"120":{"width":35.0},"121":{"width":35.0},"122":{"width":35.0},"123":{"width":35.0},"124":{"width":35.0},"125":{"width":35.0},"126":{"width":35.0},"127":{"width":35.0},"128":{"width":35.0},"129":{"width":35.0},"130":{"width":35.0},"131":{"width":35.0},"132":{"width":35.0},"133":{"width":35.0},"134":{"width":35.0},"135":{"width":35.0},"136":{"width":35.0},"137":{"width":35.0},"138":{"width":35.0},"139":{"width":35.0},"140":{"width":35.0},"141":{"width":35.0},"142":{"width":35.0},"143":{"width":35.0},"144":{"width":35.0},"145":{"width":35.0},"146":{"width":35.0},"147":{"width":35.0},"148":{"width":35.0},"149":{"width":35.0},"150":{"width":35.0},"151":{"width":35.0},"152":{"width":35.0},"153":{"width":35.0},"154":{"width":35.0},"155":{"width":35.0},"156":{"width":35.0},"157":{"width":35.0},"158":{"width":35.0},"159":{"width":0.0},"160":{"width":35.0},"161":{"width":35.0},"162":{"width":35.0},"163":{"width":35.0},"164":{"width":35.0},"165":{"width":35.0},"166":{"width":35.0},"167":{"width":35.0},"168":{"width":35.0},"169":{"width":35.0},"170":{"width":35.0},"171":{"width":35.0},"172":{"width":35.0},"173":{"width":35.0},"174":{"width":35.0},"175":{"width":35.0},"176":{"width":35.0},"177":{"width":35.0},"178":{"width":35.0},"179":{"width":35.0},"180":{"width":35.0},"181":{"width":35.0},"182":{"width":35.0},"183":{"width":35.0},"184":{"width":35.0},"185":{"width":35.0},"186":{"width":35.0},"187":{"width":36.0},"188":{"width":36.0},"189":{"width":36.0},"190":{"width":35.0},"191":{"width":35.0},"192":{"width":35.0},"193":{"width":35.0},"194":{"width":35.0},"195":{"width":35.0},"196":{"width":35.0},"197":{"width":35.0},"198":{"width":35.0},"199":{"width":35.0},"200":{"width":35.0},"201":{"width":35.0},"202":{"width":35.0},"203":{"width":35.0},"204":{"width":35.0},"205":{"width":35.0},"206":{"width":35.0},"207":{"width":35.0},"208":{"width":35.0},"209":{"width":35.0},"210":{"width":35.0},"211":{"width":35.0},"212":{"width":35.0},"213":{"width":35.0},"214":{"width":35.0},"215":{"width":35.0},"216":{"width":35.0},"217":{"width":35.0},"218":{"width":35.0},"219":{"width":35.0},"220":{"width":35.0},"221":{"width":35.0},"222":{"width":35.0},"223":{"width":35.0},"224":{"width":35.0},"225":{"width":35.0},"226":{"width":35.0},"227":{"width":35.0},"228":{"width":35.0},"229":{"width":35.0},"230":{"width":35.0},"231":{"width":35.0},"232":{"width":35.0},"233":{"width":35.0},"234":{"width":35.0},"235":{"width":35.0},"236":{"width":35.0},"237":{"width":35.0},"238":{"width":35.0},"239":{"width":35.0},"240":{"width":35.0},"241":{"width":35.0},"242":{"width":35.0},"243":{"width":35.0},"244":{"width":35.0},"245":{"width":35.0},"246":{"width":35.0},"247":{"width":35.0},"248":{"width":35.0},"249":{"width":35.0},"250":{"width":35.0},"251":{"width":35.0},"252":{"width":35.0},"253":{"width":35.0},"254":{"width":35.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":35.0},"1":{"width":35.0},"2":{"width":35.0},"3":{"width":35.0},"4":{"width":35.0},"5":{"width":35.0},"6":{"width":35.0},"7":{"width":35.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":35.0},"14":{"width":35.0},"15":{"width":35.0},"16":{"width":35.0},"17":{"width":35.0},"18":{"width":35.0},"19":{"width":35.0},"20":{"width":35.0},"21":{"width":35.0},"22":{"width":35.0},"23":{"width":35.0},"24":{"width":35.0},"25":{"width":35.0},"26":{"width":35.0},"27":{"width":35.0},"28":{"width":35.0},"29":{"width":35.0},"30":{"width":35.0},"31":{"width":41.75},"32":{"width":20.0},"33":{"width":24.0},"34":{"width":33.0},"35":{"width":33.0},"36":{"width":53.0},"37":{"width":44.0},"38":{"width":13.0},"39":{"width":20.0},"40":{"width":20.0},"41":{"width":30.0},"42":{"width":33.0},"43":{"width":15.0},"44":{"width":18.0},"45":{"width":15.0},"46":{"width":17.0},"47":{"width":33.0},"48":{"width":33.0},"49":{"width":33.0},"50":{"width":33.0},"51":{"width":33.0},"52":{"width":33.0},"53":{"width":33.0},"54":{"width":33.0},"55":{"width":33.0},"56":{"width":33.0},"57":{"width":17.0},"58":{"width":17.0},"59":{"width":33.0},"60":{"width":33.0},"61":{"width":33.0},"62":{"width":28.0},"63":{"width":54.0},"64":{"width":42.0},"65":{"width":39.0},"66":{"width":36.0},"67":{"width":43.0},"68":{"width":37.0},"69":{"width":35.0},"70":{"width":42.0},"71":{"width":47.0},"72":{"width":22.0},"73":{"width":21.0},"74":{"width":43.0},"75":{"width":37.0},"76":{"width":55.0},"77":{"width":45.0},"78":{"width":44.0},"79":{"width":36.0},"80":{"width":44.0},"81":{"width":40.0},"82":{"width":32.0},"83":{"width":36.0},"84":{"width":42.0},"85":{"width":40.0},"86":{"width":62.0},"87":{"width":39.0},"88":{"width":38.0},"89":{"width":35.0},"90":{"width":21.0},"91":{"width":0.0},"92":{"width":21.0},"93":{"width":33.0},"94":{"width":28.0},"95":{"width":16.0},"96":{"width":33.0},"97":{"width":36.0},"98":{"width":29.0},"99":{"width":36.0},"100":{"width":32.0},"101":{"width":26.0},"102":{"width":32.0},"103":{"width":37.0},"104":{"width":19.0},"105":{"width":18.0},"106":{"width":35.0},"107":{"width":18.0},"108":{"width":56.0},"109":{"width":38.0},"110":{"width":34.0},"111":{"width":36.0},"112":{"width":36.0},"113":{"width":28.0},"114":{"width":27.0},"115":{"width":21.0},"116":{"width":37.0},"117":{"width":34.0},"118":{"width":51.0},"119":{"width":34.0},"120":{"width":34.0},"121":{"width":30.0},"122":{"width":25.0},"123":{"width":33.0},"124":{"width":25.0},"125":{"width":33.0},"126":{"width":35.0},"127":{"width":35.0},"128":{"width":35.0},"129":{"width":35.0},"130":{"width":35.0},"131":{"width":35.0},"132":{"width":35.0},"133":{"width":35.0},"134":{"width":35.0},"135":{"width":35.0},"136":{"width":35.0},"137":{"width":35.0},"138":{"width":35.0},"139":{"width":35.0},"140":{"width":35.0},"141":{"width":35.0},"142":{"width":35.0},"143":{"width":35.0},"144":{"width":35.0},"145":{"width":35.0},"146":{"width":35.0},"147":{"width":35.0},"148":{"width":35.0},"149":{"width":35.0},"150":{"width":35.0},"151":{"width":35.0},"152":{"width":35.0},"153":{"width":35.0},"154":{"width":35.0},"155":{"width":35.0},"156":{"width":35.0},"157":{"width":35.0},"158":{"width":35.0},"159":{"width":0.0},"160":{"width":20.0},"161":{"width":33.0},"162":{"width":33.0},"163":{"width":33.0},"164":{"width":33.0},"165":{"width":33.0},"166":{"width":32.0},"167":{"width":34.0},"168":{"width":50.0},"169":{"width":23.0},"170":{"width":30.0},"171":{"width":33.0},"172":{"width":18.0},"173":{"width":50.0},"174":{"width":28.0},"175":{"width":24.0},"176":{"width":33.0},"177":{"width":24.0},"178":{"width":24.0},"179":{"width":16.0},"180":{"width":36.0},"181":{"width":36.0},"182":{"width":15.0},"183":{"width":20.0},"184":{"width":24.0},"185":{"width":23.0},"186":{"width":30.0},"187":{"width":50.0},"188":{"width":50.0},"189":{"width":50.0},"190":{"width":28.0},"191":{"width":42.0},"192":{"width":42.0},"193":{"width":42.0},"194":{"width":42.0},"195":{"width":42.0},"196":{"width":42.0},"197":{"width":56.0},"198":{"width":36.0},"199":{"width":37.0},"200":{"width":37.0},"201":{"width":37.0},"202":{"width":37.0},"203":{"width":22.0},"204":{"width":22.0},"205":{"width":22.0},"206":{"width":22.0},"207":{"width":43.0},"208":{"width":45.0},"209":{"width":44.0},"210":{"width":44.0},"211":{"width":44.0},"212":{"width":44.0},"213":{"width":44.0},"214":{"width":33.0},"215":{"width":44.0},"216":{"width":42.0},"217":{"width":42.0},"218":{"width":42.0},"219":{"width":42.0},"220":{"width":38.0},"221":{"width":36.0},"222":{"width":38.0},"223":{"width":33.0},"224":{"width":33.0},"225":{"width":33.0},"226":{"width":33.0},"227":{"width":33.0},"228":{"width":33.0},"229":{"width":50.0},"230":{"width":29.0},"231":{"width":32.0},"232":{"width":32.0},"233":{"width":32.0},"234":{"width":32.0},"235":{"width":19.0},"236":{"width":19.0},"237":{"width":19.0},"238":{"width":19.0},"239":{"width":34.0},"240":{"width":38.0},"241":{"width":34.0},"242":{"width":34.0},"243":{"width":34.0},"244":{"width":34.0},"245":{"width":34.0},"246":{"width":33.0},"247":{"width":34.0},"248":{"width":37.0},"249":{"width":37.0},"250":{"width":37.0},"251":{"width":37.0},"252":{"width":34.0},"253":{"width":36.0},"254":{"width":34.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":35.0},"1":{"width":35.0},"2":{"width":35.0},"3":{"width":35.0},"4":{"width":35.0},"5":{"width":35.0},"6":{"width":35.0},"7":{"width":35.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":35.0},"14":{"width":35.0},"15":{"width":35.0},"16":{"width":35.0},"17":{"width":35.0},"18":{"width":35.0},"19":{"width":35.0},"20":{"width":35.0},"21":{"width":35.0},"22":{"width":35.0},"23":{"width":35.0},"24":{"width":35.0},"25":{"width":35.0},"26":{"width":35.0},"27":{"width":35.0},"28":{"width":35.0},"29":{"width":35.0},"30":{"width":35.0},"31":{"width":17.75},"32":{"width":16.0},"33":{"width":24.0},"34":{"width":38.0},"35":{"width":34.0},"36":{"width":49.0},"37":{"width":43.0},"38":{"width":13.0},"39":{"width":17.0},"40":{"width":17.0},"41":{"width":33.0},"42":{"width":34.0},"43":{"width":15.0},"44":{"width":19.0},"45":{"width":16.0},"46":{"width":22.0},"47":{"width":34.0},"48":{"width":34.0},"49":{"width":34.0},"50":{"width":34.0},"51":{"width":34.0},"52":{"width":34.0},"53":{"width":34.0},"54":{"width":34.0},"55":{"width":34.0},"56":{"width":34.0},"57":{"width":16.0},"58":{"width":16.0},"59":{"width":34.0},"60":{"width":34.0},"61":{"width":34.0},"62":{"width":25.0},"63":{"width":53.0},"64":{"width":38.0},"65":{"width":38.0},"66":{"width":37.0},"67":{"width":43.0},"68":{"width":33.0},"69":{"width":30.0},"70":{"width":43.0},"71":{"width":44.0},"72":{"width":16.0},"73":{"width":16.0},"74":{"width":37.0},"75":{"width":31.0},"76":{"width":53.0},"77":{"width":44.0},"78":{"width":46.0},"79":{"width":36.0},"80":{"width":46.0},"81":{"width":36.0},"82":{"width":32.0},"83":{"width":33.0},"84":{"width":43.0},"85":{"width":36.0},"86":{"width":54.0},"87":{"width":34.0},"88":{"width":33.0},"89":{"width":34.0},"90":{"width":19.0},"91":{"width":0.0},"92":{"width":19.0},"93":{"width":34.0},"94":{"width":26.0},"95":{"width":16.0},"96":{"width":33.0},"97":{"width":36.0},"98":{"width":28.0},"99":{"width":36.0},"100":{"width":33.0},"101":{"width":23.0},"102":{"width":32.0},"103":{"width":36.0},"104":{"width":15.0},"105":{"width":15.0},"106":{"width":31.0},"107":{"width":15.0},"108":{"width":55.0},"109":{"width":36.0},"110":{"width":36.0},"111":{"width":36.0},"112":{"width":36.0},"113":{"width":24.0},"114":{"width":28.0},"115":{"width":21.0},"116":{"width":36.0},"117":{"width":30.0},"118":{"width":46.0},"119":{"width":31.0},"120":{"width":30.0},"121":{"width":28.0},"122":{"width":22.0},"123":{"width":32.0},"124":{"width":22.0},"125":{"width":34.0},"126":{"width":35.0},"127":{"width":35.0},"128":{"width":35.0},"129":{"width":35.0},"130":{"width":35.0},"131":{"width":35.0},"132":{"width":35.0},"133":{"width":35.0},"134":{"width":35.0},"135":{"width":35.0},"136":{"width":35.0},"137":{"width":35.0},"138":{"width":35.0},"139":{"width":35.0},"140":{"width":35.0},"141":{"width":35.0},"142":{"width":35.0},"143":{"width":35.0},"144":{"width":35.0},"145":{"width":35.0},"146":{"width":35.0},"147":{"width":35.0},"148":{"width":35.0},"149":{"width":35.0},"150":{"width":35.0},"151":{"width":35.0},"152":{"width":35.0},"153":{"width":35.0},"154":{"width":35.0},"155":{"width":35.0},"156":{"width":35.0},"157":{"width":35.0},"158":{"width":35.0},"159":{"width":0.0},"160":{"width":16.0},"161":{"width":34.0},"162":{"width":34.0},"163":{"width":34.0},"164":{"width":34.0},"165":{"width":32.0},"166":{"width":30.0},"167":{"width":34.0},"168":{"width":49.0},"169":{"width":21.0},"170":{"width":29.0},"171":{"width":34.0},"172":{"width":19.0},"173":{"width":49.0},"174":{"width":30.0},"175":{"width":25.0},"176":{"width":34.0},"177":{"width":21.0},"178":{"width":21.0},"179":{"width":16.0},"180":{"width":36.0},"181":{"width":39.0},"182":{"width":16.0},"183":{"width":13.0},"184":{"width":21.0},"185":{"width":22.0},"186":{"width":29.0},"187":{"width":44.0},"188":{"width":45.0},"189":{"width":46.0},"190":{"width":25.0},"191":{"width":38.0},"192":{"width":38.0},"193":{"width":38.0},"194":{"width":38.0},"195":{"width":38.0},"196":{"width":38.0},"197":{"width":51.0},"198":{"width":37.0},"199":{"width":33.0},"200":{"width":33.0},"201":{"width":33.0},"202":{"width":33.0},"203":{"width":16.0},"204":{"width":17.0},"205":{"width":18.0},"206":{"width":17.0},"207":{"width":43.0},"208":{"width":44.0},"209":{"width":46.0},"210":{"width":46.0},"211":{"width":46.0},"212":{"width":46.0},"213":{"width":46.0},"214":{"width":34.0},"215":{"width":46.0},"216":{"width":43.0},"217":{"width":43.0},"218":{"width":43.0},"219":{"width":43.0},"220":{"width":33.0},"221":{"width":36.0},"222":{"width":37.0},"223":{"width":33.0},"224":{"width":33.0},"225":{"width":33.0},"226":{"width":33.0},"227":{"width":33.0},"228":{"width":33.0},"229":{"width":51.0},"230":{"width":28.0},"231":{"width":33.0},"232":{"width":33.0},"233":{"width":33.0},"234":{"width":33.0},"235":{"width":15.0},"236":{"width":16.0},"237":{"width":18.0},"238":{"width":16.0},"239":{"width":35.0},"240":{"width":36.0},"241":{"width":36.0},"242":{"width":36.0},"243":{"width":36.0},"244":{"width":36.0},"245":{"width":36.0},"246":{"width":34.0},"247":{"width":36.0},"248":{"width":36.0},"249":{"width":36.0},"250":{"width":36.0},"251":{"width":36.0},"252":{"width":30.0},"253":{"width":36.0},"254":{"width":30.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":40.0},"1":{"width":40.0},"2":{"width":40.0},"3":{"width":40.0},"4":{"width":40.0},"5":{"width":40.0},"6":{"width":40.0},"7":{"width":40.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":40.0},"14":{"width":40.0},"15":{"width":40.0},"16":{"width":40.0},"17":{"width":40.0},"18":{"width":40.0},"19":{"width":40.0},"20":{"width":40.0},"21":{"width":40.0},"22":{"width":40.0},"23":{"width":40.0},"24":{"width":40.0},"25":{"width":40.0},"26":{"width":40.0},"27":{"width":40.0},"28":{"width":40.0},"29":{"width":40.0},"30":{"width":40.0},"31":{"width":18.5},"32":{"width":12.0},"33":{"width":16.0},"34":{"width":29.0},"35":{"width":29.0},"36":{"width":53.0},"37":{"width":36.0},"38":{"width":8.0},"39":{"width":18.0},"40":{"width":15.0},"41":{"width":23.0},"42":{"width":24.0},"43":{"width":11.0},"44":{"width":18.0},"45":{"width":11.0},"46":{"width":22.0},"47":{"width":31.0},"48":{"width":22.0},"49":{"width":28.0},"50":{"width":28.0},"51":{"width":29.0},"52":{"width":28.0},"53":{"width":30.0},"54":{"width":23.0},"55":{"width":29.0},"56":{"width":30.0},"57":{"width":12.0},"58":{"width":13.0},"59":{"width":22.0},"60":{"width":24.0},"61":{"width":22.0},"62":{"width":29.0},"63":{"width":53.0},"64":{"width":29.0},"65":{"width":31.0},"66":{"width":30.0},"67":{"width":31.0},"68":{"width":24.0},"69":{"width":23.0},"70":{"width":32.0},"71":{"width":33.0},"72":{"width":15.0},"73":{"width":18.0},"74":{"width":30.0},"75":{"width":23.0},"76":{"width":39.0},"77":{"width":31.0},"78":{"width":32.0},"79":{"width":28.0},"80":{"width":32.0},"81":{"width":31.0},"82":{"width":28.0},"83":{"width":24.0},"84":{"width":32.0},"85":{"width":30.0},"86":{"width":43.0},"87":{"width":28.0},"88":{"width":28.0},"89":{"width":25.0},"90":{"width":20.0},"91":{"width":0.0},"92":{"width":18.0},"93":{"width":26.0},"94":{"width":21.0},"95":{"width":16.0},"96":{"width":24.0},"97":{"width":26.0},"98":{"width":24.0},"99":{"width":26.0},"100":{"width":25.0},"101":{"width":17.0},"102":{"width":27.0},"103":{"width":26.0},"104":{"width":14.0},"105":{"width":14.0},"106":{"width":26.0},"107":{"width":14.0},"108":{"width":40.0},"109":{"width":26.0},"110":{"width":25.0},"111":{"width":26.0},"112":{"width":26.0},"113":{"width":19.0},"114":{"width":22.0},"115":{"width":18.0},"116":{"width":26.0},"117":{"width":23.0},"118":{"width":35.0},"119":{"width":23.0},"120":{"width":23.0},"121":{"width":20.0},"122":{"width":18.0},"123":{"width":14.0},"124":{"width":19.0},"125":{"width":26.0},"126":{"width":40.0},"127":{"width":40.0},"128":{"width":40.0},"129":{"width":40.0},"130":{"width":40.0},"131":{"width":40.0},"132":{"width":40.0},"133":{"width":40.0},"134":{"width":40.0},"135":{"width":40.0},"136":{"width":40.0},"137":{"width":40.0},"138":{"width":40.0},"139":{"width":40.0},"140":{"width":40.0},"141":{"width":40.0},"142":{"width":40.0},"143":{"width":40.0},"144":{"width":40.0},"145":{"width":40.0},"146":{"width":40.0},"147":{"width":40.0},"148":{"width":40.0},"149":{"width":40.0},"150":{"width":40.0},"151":{"width":40.0},"152":{"width":40.0},"153":{"width":40.0},"154":{"width":40.0},"155":{"width":40.0},"156":{"width":40.0},"157":{"width":40.0},"158":{"width":40.0},"159":{"width":0.0},"160":{"width":12.0},"161":{"width":23.0},"162":{"width":23.0},"163":{"width":32.0},"164":{"width":28.0},"165":{"width":13.0},"166":{"width":25.0},"167":{"width":24.0},"168":{"width":51.0},"169":{"width":22.0},"170":{"width":27.0},"171":{"width":23.0},"172":{"width":40.0},"173":{"width":52.0},"174":{"width":17.0},"175":{"width":27.0},"176":{"width":24.0},"177":{"width":25.0},"178":{"width":25.0},"179":{"width":16.0},"180":{"width":26.0},"181":{"width":29.0},"182":{"width":10.0},"183":{"width":21.0},"184":{"width":20.0},"185":{"width":25.0},"186":{"width":28.0},"187":{"width":56.0},"188":{"width":56.0},"189":{"width":52.0},"190":{"width":28.0},"191":{"width":29.0},"192":{"width":29.0},"193":{"width":29.0},"194":{"width":29.0},"195":{"width":29.0},"196":{"width":29.0},"197":{"width":37.0},"198":{"width":30.0},"199":{"width":24.0},"200":{"width":24.0},"201":{"width":24.0},"202":{"width":24.0},"203":{"width":15.0},"204":{"width":16.0},"205":{"width":16.0},"206":{"width":16.0},"207":{"width":31.0},"208":{"width":31.0},"209":{"width":32.0},"210":{"width":32.0},"211":{"width":32.0},"212":{"width":32.0},"213":{"width":32.0},"214":{"width":23.0},"215":{"width":32.0},"216":{"width":32.0},"217":{"width":32.0},"218":{"width":32.0},"219":{"width":32.0},"220":{"width":28.0},"221":{"width":30.0},"222":{"width":30.0},"223":{"width":24.0},"224":{"width":24.0},"225":{"width":24.0},"226":{"width":24.0},"227":{"width":24.0},"228":{"width":24.0},"229":{"width":38.0},"230":{"width":24.0},"231":{"width":25.0},"232":{"width":25.0},"233":{"width":25.0},"234":{"width":25.0},"235":{"width":13.0},"236":{"width":15.0},"237":{"width":16.0},"238":{"width":16.0},"239":{"width":28.0},"240":{"width":26.0},"241":{"width":25.0},"242":{"width":25.0},"243":{"width":25.0},"244":{"width":25.0},"245":{"width":25.0},"246":{"width":20.0},"247":{"width":25.0},"248":{"width":26.0},"249":{"width":26.0},"250":{"width":26.0},"251":{"width":26.0},"252":{"width":23.0},"253":{"width":26.0},"254":{"width":23.0}}
@@ -0,0 +1 @@
1
+ {"0":{"width":59.0},"1":{"width":59.0},"2":{"width":59.0},"3":{"width":59.0},"4":{"width":59.0},"5":{"width":59.0},"6":{"width":59.0},"7":{"width":59.0},"8":{"width":0.0},"9":{"width":0.0},"10":{"width":0.0},"11":{"width":0.0},"12":{"width":0.0},"13":{"width":59.0},"14":{"width":59.0},"15":{"width":59.0},"16":{"width":59.0},"17":{"width":59.0},"18":{"width":59.0},"19":{"width":59.0},"20":{"width":59.0},"21":{"width":59.0},"22":{"width":59.0},"23":{"width":59.0},"24":{"width":59.0},"25":{"width":59.0},"26":{"width":59.0},"27":{"width":59.0},"28":{"width":59.0},"29":{"width":59.0},"30":{"width":59.0},"31":{"width":14.75},"32":{"width":59.0},"33":{"width":59.0},"34":{"width":59.0},"35":{"width":59.0},"36":{"width":59.0},"37":{"width":59.0},"38":{"width":59.0},"39":{"width":59.0},"40":{"width":59.0},"41":{"width":59.0},"42":{"width":59.0},"43":{"width":59.0},"44":{"width":59.0},"45":{"width":59.0},"46":{"width":59.0},"47":{"width":59.0},"48":{"width":59.0},"49":{"width":59.0},"50":{"width":59.0},"51":{"width":59.0},"52":{"width":59.0},"53":{"width":59.0},"54":{"width":59.0},"55":{"width":59.0},"56":{"width":59.0},"57":{"width":59.0},"58":{"width":59.0},"59":{"width":59.0},"60":{"width":59.0},"61":{"width":59.0},"62":{"width":59.0},"63":{"width":59.0},"64":{"width":59.0},"65":{"width":59.0},"66":{"width":59.0},"67":{"width":59.0},"68":{"width":59.0},"69":{"width":59.0},"70":{"width":59.0},"71":{"width":59.0},"72":{"width":59.0},"73":{"width":59.0},"74":{"width":59.0},"75":{"width":59.0},"76":{"width":59.0},"77":{"width":59.0},"78":{"width":59.0},"79":{"width":59.0},"80":{"width":59.0},"81":{"width":59.0},"82":{"width":59.0},"83":{"width":59.0},"84":{"width":59.0},"85":{"width":59.0},"86":{"width":59.0},"87":{"width":59.0},"88":{"width":59.0},"89":{"width":59.0},"90":{"width":59.0},"91":{"width":0.0},"92":{"width":59.0},"93":{"width":59.0},"94":{"width":59.0},"95":{"width":59.0},"96":{"width":59.0},"97":{"width":59.0},"98":{"width":59.0},"99":{"width":59.0},"100":{"width":59.0},"101":{"width":59.0},"102":{"width":59.0},"103":{"width":59.0},"104":{"width":59.0},"105":{"width":59.0},"106":{"width":59.0},"107":{"width":59.0},"108":{"width":59.0},"109":{"width":59.0},"110":{"width":59.0},"111":{"width":59.0},"112":{"width":59.0},"113":{"width":59.0},"114":{"width":59.0},"115":{"width":59.0},"116":{"width":59.0},"117":{"width":59.0},"118":{"width":59.0},"119":{"width":59.0},"120":{"width":59.0},"121":{"width":59.0},"122":{"width":59.0},"123":{"width":59.0},"124":{"width":59.0},"125":{"width":59.0},"126":{"width":59.0},"127":{"width":59.0},"128":{"width":59.0},"129":{"width":59.0},"130":{"width":59.0},"131":{"width":59.0},"132":{"width":59.0},"133":{"width":59.0},"134":{"width":59.0},"135":{"width":59.0},"136":{"width":59.0},"137":{"width":59.0},"138":{"width":59.0},"139":{"width":59.0},"140":{"width":59.0},"141":{"width":59.0},"142":{"width":59.0},"143":{"width":59.0},"144":{"width":59.0},"145":{"width":59.0},"146":{"width":59.0},"147":{"width":59.0},"148":{"width":59.0},"149":{"width":59.0},"150":{"width":59.0},"151":{"width":59.0},"152":{"width":59.0},"153":{"width":59.0},"154":{"width":59.0},"155":{"width":59.0},"156":{"width":59.0},"157":{"width":59.0},"158":{"width":59.0},"159":{"width":0.0},"160":{"width":59.0},"161":{"width":59.0},"162":{"width":59.0},"163":{"width":59.0},"164":{"width":59.0},"165":{"width":59.0},"166":{"width":59.0},"167":{"width":59.0},"168":{"width":59.0},"169":{"width":59.0},"170":{"width":59.0},"171":{"width":59.0},"172":{"width":59.0},"173":{"width":59.0},"174":{"width":59.0},"175":{"width":59.0},"176":{"width":59.0},"177":{"width":59.0},"178":{"width":59.0},"179":{"width":59.0},"180":{"width":59.0},"181":{"width":59.0},"182":{"width":59.0},"183":{"width":59.0},"184":{"width":59.0},"185":{"width":59.0},"186":{"width":59.0},"187":{"width":59.0},"188":{"width":59.0},"189":{"width":59.0},"190":{"width":59.0},"191":{"width":59.0},"192":{"width":59.0},"193":{"width":59.0},"194":{"width":59.0},"195":{"width":59.0},"196":{"width":59.0},"197":{"width":59.0},"198":{"width":59.0},"199":{"width":59.0},"200":{"width":59.0},"201":{"width":59.0},"202":{"width":59.0},"203":{"width":59.0},"204":{"width":59.0},"205":{"width":59.0},"206":{"width":59.0},"207":{"width":59.0},"208":{"width":59.0},"209":{"width":59.0},"210":{"width":59.0},"211":{"width":59.0},"212":{"width":59.0},"213":{"width":59.0},"214":{"width":59.0},"215":{"width":59.0},"216":{"width":59.0},"217":{"width":59.0},"218":{"width":59.0},"219":{"width":59.0},"220":{"width":59.0},"221":{"width":59.0},"222":{"width":59.0},"223":{"width":59.0},"224":{"width":59.0},"225":{"width":59.0},"226":{"width":59.0},"227":{"width":59.0},"228":{"width":59.0},"229":{"width":59.0},"230":{"width":59.0},"231":{"width":59.0},"232":{"width":59.0},"233":{"width":59.0},"234":{"width":59.0},"235":{"width":59.0},"236":{"width":59.0},"237":{"width":59.0},"238":{"width":59.0},"239":{"width":59.0},"240":{"width":59.0},"241":{"width":59.0},"242":{"width":59.0},"243":{"width":59.0},"244":{"width":59.0},"245":{"width":59.0},"246":{"width":59.0},"247":{"width":59.0},"248":{"width":59.0},"249":{"width":59.0},"250":{"width":59.0},"251":{"width":59.0},"252":{"width":59.0},"253":{"width":59.0},"254":{"width":59.0}}
@@ -22,11 +22,12 @@ module Engine::Components
22
22
  right = game_object.right
23
23
  up = game_object.up
24
24
  forward = game_object.forward
25
+ world_pos = game_object.world_pos
25
26
 
26
27
  view_matrix = Matrix[
27
- [right[0], right[1], right[2], -right.dot(game_object.pos)],
28
- [up[0], up[1], up[2], -up.dot(game_object.pos)],
29
- [forward[0], forward[1], forward[2], -forward.dot(game_object.pos)],
28
+ [right[0], right[1], right[2], -right.dot(world_pos)],
29
+ [up[0], up[1], up[2], -up.dot(world_pos)],
30
+ [forward[0], forward[1], forward[2], -forward.dot(world_pos)],
30
31
  [0, 0, 0, 1]
31
32
  ]
32
33
 
@@ -39,7 +40,7 @@ module Engine::Components
39
40
  end
40
41
 
41
42
  def position
42
- game_object.pos
43
+ game_object.world_pos
43
44
  end
44
45
 
45
46
  def projection
@@ -49,12 +50,11 @@ module Engine::Components
49
50
  end
50
51
 
51
52
  def update(delta_time)
52
- if game_object.rotation != @rotation || game_object.pos != @pos
53
+ if game_object.world_transform_version != @cached_transform_version
53
54
  @matrix = nil
54
55
  @inverse_vp_matrix = nil
55
56
  end
56
- @rotation = game_object.rotation.dup
57
- @pos = game_object.pos.dup
57
+ @cached_transform_version = game_object.world_transform_version
58
58
  end
59
59
  end
60
60
  end
@@ -22,11 +22,12 @@ module Engine::Components
22
22
  right = game_object.right
23
23
  up = game_object.up
24
24
  forward = game_object.forward
25
+ world_pos = game_object.world_pos
25
26
 
26
27
  transformation_matrix = Matrix[
27
- [right[0], right[1], right[2], -right.dot(game_object.pos)],
28
- [up[0], up[1], up[2], -up.dot(game_object.pos)],
29
- [forward[0], forward[1], forward[2], -forward.dot(game_object.pos)],
28
+ [right[0], right[1], right[2], -right.dot(world_pos)],
29
+ [up[0], up[1], up[2], -up.dot(world_pos)],
30
+ [forward[0], forward[1], forward[2], -forward.dot(world_pos)],
30
31
  [0, 0, 0, 1]
31
32
  ]
32
33
 
@@ -41,7 +42,7 @@ module Engine::Components
41
42
  end
42
43
 
43
44
  def position
44
- game_object.pos
45
+ game_object.world_pos
45
46
  end
46
47
 
47
48
  def projection
@@ -53,24 +54,22 @@ module Engine::Components
53
54
  right = game_object.right
54
55
  up = game_object.up
55
56
  forward = game_object.forward
56
- pos = game_object.pos
57
+ world_pos = game_object.world_pos
57
58
 
58
59
  Matrix[
59
- [right[0], right[1], right[2], -right.dot(pos)],
60
- [up[0], up[1], up[2], -up.dot(pos)],
61
- [forward[0], forward[1], forward[2], -forward.dot(pos)],
60
+ [right[0], right[1], right[2], -right.dot(world_pos)],
61
+ [up[0], up[1], up[2], -up.dot(world_pos)],
62
+ [forward[0], forward[1], forward[2], -forward.dot(world_pos)],
62
63
  [0, 0, 0, 1]
63
64
  ].transpose
64
65
  end
65
66
 
66
67
  def update(delta_time)
67
- if game_object.rotation != @rotation || game_object.pos != @pos || game_object.scale != @scale
68
+ if game_object.world_transform_version != @cached_transform_version
68
69
  @matrix = nil
69
70
  @inverse_vp_matrix = nil
70
71
  end
71
- @rotation = game_object.rotation.dup
72
- @pos = game_object.pos.dup
73
- @scale = game_object.scale.dup
72
+ @cached_transform_version = game_object.world_transform_version
74
73
  end
75
74
  end
76
75
  end
@@ -41,7 +41,7 @@ module Engine::Components
41
41
  end
42
42
 
43
43
  def position
44
- game_object.local_to_world_coordinate(Vector[0, 0, 0])
44
+ game_object.world_pos
45
45
  end
46
46
 
47
47
  def shadow_near
@@ -48,7 +48,7 @@ module Engine::Components
48
48
  end
49
49
 
50
50
  def position
51
- game_object.local_to_world_coordinate(Vector[0, 0, 0])
51
+ game_object.world_pos
52
52
  end
53
53
 
54
54
  def light_space_matrix
data/lib/engine/font.rb CHANGED
@@ -21,6 +21,34 @@ module Engine
21
21
  @font_cache ||= {}
22
22
  end
23
23
 
24
+ def self.open_sans
25
+ self.for("OpenSans-Regular.ttf", source: :engine)
26
+ end
27
+
28
+ def self.noto_serif
29
+ self.for("NotoSerif-Regular.ttf", source: :engine)
30
+ end
31
+
32
+ def self.jetbrains_mono
33
+ self.for("JetBrainsMono-Regular.ttf", source: :engine)
34
+ end
35
+
36
+ def self.press_start_2p
37
+ self.for("PressStart2P-Regular.ttf", source: :engine)
38
+ end
39
+
40
+ def self.bangers
41
+ self.for("Bangers-Regular.ttf", source: :engine)
42
+ end
43
+
44
+ def self.caveat
45
+ self.for("Caveat-Regular.ttf", source: :engine)
46
+ end
47
+
48
+ def self.oswald
49
+ self.for("Oswald-Regular.ttf", source: :engine)
50
+ end
51
+
24
52
  def self.from_serializable_data(data)
25
53
  self.for(data[:font_file_path], source: (data[:source] || :game).to_sym)
26
54
  end
@@ -145,6 +145,11 @@ module Engine
145
145
  @local_version += 1
146
146
  end
147
147
 
148
+ def world_pos
149
+ m = model_matrix
150
+ @cached_world_pos ||= Vector[m[3, 0], m[3, 1], m[3, 2]]
151
+ end
152
+
148
153
  def local_to_world_coordinate(local)
149
154
  local_x4 = Matrix[[local[0], local[1], local[2], 1.0]]
150
155
  world = local_x4 * model_matrix
@@ -158,7 +163,7 @@ module Engine
158
163
  end
159
164
 
160
165
  def local_to_world_direction(local)
161
- local_to_world_coordinate(local) - local_to_world_coordinate(Vector[0, 0, 0])
166
+ local_to_world_coordinate(local) - world_pos
162
167
  end
163
168
 
164
169
  def rotate_around(axis, angle)
@@ -175,6 +180,12 @@ module Engine
175
180
  current_version = world_transform_version
176
181
  return @cached_world_matrix if @cached_world_version == current_version
177
182
 
183
+ # Invalidate derived caches
184
+ @cached_world_pos = nil
185
+ @cached_right = nil
186
+ @cached_up = nil
187
+ @cached_forward = nil
188
+
178
189
  @cached_world_version = current_version
179
190
  @cached_world_matrix = compute_world_matrix
180
191
  end
@@ -241,21 +252,18 @@ module Engine
241
252
  end
242
253
 
243
254
  def up
244
- return @up if @cached_up_rotation == rotation
245
- @cached_up_rotation = rotation.dup
246
- @up = local_to_world_direction(Vector[0, 1, 0])
255
+ model_matrix
256
+ @cached_up ||= local_to_world_direction(Vector[0, 1, 0])
247
257
  end
248
258
 
249
259
  def right
250
- return @right if @cached_right_rotation == rotation
251
- @cached_right_rotation = rotation.dup
252
- @right = local_to_world_direction(Vector[1, 0, 0])
260
+ model_matrix
261
+ @cached_right ||= local_to_world_direction(Vector[1, 0, 0])
253
262
  end
254
263
 
255
264
  def forward
256
- return @forward if @cached_forward_rotation == rotation
257
- @cached_forward_rotation = rotation.dup
258
- @forward = local_to_world_direction(Vector[0, 0, 1])
265
+ model_matrix
266
+ @cached_forward ||= local_to_world_direction(Vector[0, 0, 1])
259
267
  end
260
268
 
261
269
  def self.destroy_all
@@ -3,12 +3,13 @@
3
3
  module Engine
4
4
  module StandardObjects
5
5
  module Cube
6
- def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil)
6
+ def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil, parent: nil)
7
7
  Engine::GameObject.create(
8
8
  name: "Cube",
9
9
  pos: pos,
10
10
  rotation: rotation,
11
11
  scale: scale,
12
+ parent: parent,
12
13
  components: [
13
14
  Engine::Components::MeshRenderer.create(
14
15
  mesh: Engine::Mesh.for("cube", source: :engine),
@@ -3,12 +3,13 @@
3
3
  module Engine
4
4
  module StandardObjects
5
5
  module Plane
6
- def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil)
6
+ def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil, parent: nil)
7
7
  Engine::GameObject.create(
8
8
  name: "Plane",
9
9
  pos: pos,
10
10
  rotation: rotation,
11
11
  scale: scale,
12
+ parent: parent,
12
13
  components: [
13
14
  Engine::Components::MeshRenderer.create(
14
15
  mesh: Engine::Mesh.for("plane", source: :engine),
@@ -3,12 +3,13 @@
3
3
  module Engine
4
4
  module StandardObjects
5
5
  module Sphere
6
- def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil)
6
+ def self.create(pos: Vector[0, 0, 0], rotation: 0, scale: Vector[1, 1, 1], components: [], material: nil, parent: nil)
7
7
  Engine::GameObject.create(
8
8
  name: "Sphere",
9
9
  pos: pos,
10
10
  rotation: rotation,
11
11
  scale: scale,
12
+ parent: parent,
12
13
  components: [
13
14
  Engine::Components::MeshRenderer.create(
14
15
  mesh: Engine::Mesh.for("sphere", source: :engine),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_rpg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Hatfull
@@ -117,12 +117,34 @@ extensions:
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - README.md
120
+ - THIRD_PARTY_NOTICES.md
120
121
  - bin/build.bash
121
122
  - bin/import
122
123
  - ext/gl_native/extconf.rb
123
124
  - ext/gl_native/gl_native.c
124
125
  - ext/glfw_native/extconf.rb
125
126
  - ext/glfw_native/glfw_native.c
127
+ - lib/engine/assets/Bangers-Regular.ttf
128
+ - lib/engine/assets/Caveat-Regular.ttf
129
+ - lib/engine/assets/JetBrainsMono-Regular.ttf
130
+ - lib/engine/assets/NotoSerif-Regular.ttf
131
+ - lib/engine/assets/OpenSans-Regular.ttf
132
+ - lib/engine/assets/Oswald-Regular.ttf
133
+ - lib/engine/assets/PressStart2P-Regular.ttf
134
+ - lib/engine/assets/_imported/Bangers-Regular.json
135
+ - lib/engine/assets/_imported/Bangers-Regular.png
136
+ - lib/engine/assets/_imported/Caveat-Regular.json
137
+ - lib/engine/assets/_imported/Caveat-Regular.png
138
+ - lib/engine/assets/_imported/JetBrainsMono-Regular.json
139
+ - lib/engine/assets/_imported/JetBrainsMono-Regular.png
140
+ - lib/engine/assets/_imported/NotoSerif-Regular.json
141
+ - lib/engine/assets/_imported/NotoSerif-Regular.png
142
+ - lib/engine/assets/_imported/OpenSans-Regular.json
143
+ - lib/engine/assets/_imported/OpenSans-Regular.png
144
+ - lib/engine/assets/_imported/Oswald-Regular.json
145
+ - lib/engine/assets/_imported/Oswald-Regular.png
146
+ - lib/engine/assets/_imported/PressStart2P-Regular.json
147
+ - lib/engine/assets/_imported/PressStart2P-Regular.png
126
148
  - lib/engine/assets/_imported/cube.index_data
127
149
  - lib/engine/assets/_imported/cube.vertex_data
128
150
  - lib/engine/assets/_imported/plane.index_data