Spaces:
Running
Running
Upload 25 files
Browse files- .gitattributes +7 -0
- 2241598.json +1 -0
- __game-scripts.js +1 -0
- __loading__.js +112 -0
- __modules__.js +47 -0
- __settings__.js +22 -0
- __start__.js +332 -0
- config.json +1 -0
- files/assets/229622863/1/sky_posy.png +3 -0
- files/assets/229622865/1/sky.png +3 -0
- files/assets/229622866/1/sky_negx.png +3 -0
- files/assets/229622867/1/sky_posz.png +3 -0
- files/assets/229622868/1/sky_negz.png +3 -0
- files/assets/229622869/1/sky_negy.png +3 -0
- files/assets/229622870/1/sky_posx.png +3 -0
- files/assets/231387411/1/ammo.js +0 -0
- files/assets/231387412/1/ammo.wasm.js +0 -0
- files/assets/231387413/1/ammo.wasm.wasm +3 -0
- files/assets/233177358/1/Link for GEMINI chat.txt +1 -0
- files/assets/233252911/1/gameData.txt +297 -0
- files/assets/233667890/1/Roboto-Regular.png +0 -0
- index.html +15 -16
- logo.png +0 -0
- manifest.json +1 -0
- playcanvas-stable.min.js +0 -0
- styles.css +43 -0
.gitattributes
CHANGED
@@ -33,3 +33,10 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
files/assets/229622863/1/sky_posy.png filter=lfs diff=lfs merge=lfs -text
|
37 |
+
files/assets/229622865/1/sky.png filter=lfs diff=lfs merge=lfs -text
|
38 |
+
files/assets/229622866/1/sky_negx.png filter=lfs diff=lfs merge=lfs -text
|
39 |
+
files/assets/229622867/1/sky_posz.png filter=lfs diff=lfs merge=lfs -text
|
40 |
+
files/assets/229622868/1/sky_negz.png filter=lfs diff=lfs merge=lfs -text
|
41 |
+
files/assets/229622869/1/sky_negy.png filter=lfs diff=lfs merge=lfs -text
|
42 |
+
files/assets/229622870/1/sky_posx.png filter=lfs diff=lfs merge=lfs -text
|
2241598.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"branch_id":"1f254abe-181f-4512-ad66-4e07e4e5240c","name":"Untitled","created":"2023-11-14T11:28:19.373Z","settings":{"physics":{"gravity":[0,-9.8,0]},"render":{"lightmapFilterRange":10,"fog_end":1000,"lightmapFilterEnabled":false,"ambientBake":false,"tonemapping":4,"lightingAreaLightsEnabled":false,"lightingShadowType":0,"ambientBakeOcclusionContrast":0,"skybox":229622865,"lightingCookieAtlasResolution":2048,"fog_density":0.01,"lightmapFilterSmoothness":0.2,"gamma_correction":1,"exposure":1,"lightingShadowsEnabled":true,"fog_start":1,"skyboxIntensity":1,"global_ambient":[0.2,0.2,0.2],"ambientBakeNumSamples":1,"fog_color":[0,0,0],"lightingCells":[10,3,10],"lightmapMode":1,"lightingCookiesEnabled":false,"clusteredLightingEnabled":true,"ambientBakeSpherePart":0.4,"fog":"none","ambientBakeOcclusionBrightness":0,"lightmapMaxResolution":2048,"lightingMaxLightsPerCell":255,"lightingShadowAtlasResolution":2048,"skyboxMip":0,"lightmapSizeMultiplier":16,"skyboxRotation":[0,0,0],"skyType":"infinite","skyMeshPosition":[0,0,0],"skyMeshRotation":[0,0,0],"skyMeshScale":[100,100,100],"skyCenter":[0,0.1,0]}},"entities":{"e951e842-82e0-11ee-9eae-baf4d5e490e2":{"position":[0,0,0],"scale":[1,1,1],"name":"Root","parent":null,"resource_id":"e951e842-82e0-11ee-9eae-baf4d5e490e2","components":{"screen":{"enabled":true,"screenSpace":true,"scaleMode":"blend","scaleBlend":0.5,"resolution":[1280,720],"referenceResolution":[1280,720],"priority":0}},"rotation":[0,0,0],"tags":[],"enabled":true,"children":["356a494e-1fca-4f47-9902-19664976ab21","ecb845b1-d6c5-4077-b1ed-e378b1a3217c","7473ede9-5a87-4e3d-81ff-8fca1fbb14dc","e5a33aa9-a211-4d15-bc12-5155dc73784e","3c9d8b38-c35c-4a5c-8c16-f801f4bab68b","262ce6aa-9236-4f02-8ef5-0818548b3d7e"]},"356a494e-1fca-4f47-9902-19664976ab21":{"name":"SceneController","tags":[],"enabled":true,"resource_id":"356a494e-1fca-4f47-9902-19664976ab21","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"script":{"enabled":true,"order":["sceneScaffolder"],"scripts":{"sceneScaffolder":{"enabled":true,"attributes":{}}}}}},"ecb845b1-d6c5-4077-b1ed-e378b1a3217c":{"name":"Imageforbuild","tags":[],"enabled":true,"resource_id":"ecb845b1-d6c5-4077-b1ed-e378b1a3217c","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"image","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[-16,-16,-16,-16],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}},"7473ede9-5a87-4e3d-81ff-8fca1fbb14dc":{"name":"Boxforammobuild","tags":[],"enabled":false,"resource_id":"7473ede9-5a87-4e3d-81ff-8fca1fbb14dc","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"render":{"enabled":true,"type":"box","asset":null,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null},"collision":{"enabled":true,"type":"box","halfExtents":[0.5,0.5,0.5],"radius":0.5,"axis":1,"height":2,"convexHull":false,"asset":null,"renderAsset":null,"linearOffset":[0,0,0],"angularOffset":[0,0,0]},"rigidbody":{"enabled":true,"type":"static","mass":1,"linearDamping":0,"angularDamping":0,"linearFactor":[1,1,1],"angularFactor":[1,1,1],"friction":0.5,"restitution":0.5}}},"e5a33aa9-a211-4d15-bc12-5155dc73784e":{"name":"Text","tags":[],"enabled":true,"resource_id":"e5a33aa9-a211-4d15-bc12-5155dc73784e","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"text","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"Text","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[-16,-16,-16,-16],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":true,"autoHeight":true,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}},"3c9d8b38-c35c-4a5c-8c16-f801f4bab68b":{"name":"GameManager","tags":[],"enabled":true,"resource_id":"3c9d8b38-c35c-4a5c-8c16-f801f4bab68b","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"script":{"enabled":true,"order":["gameManager"],"scripts":{"gameManager":{"enabled":true,"attributes":{"gameData":233252911}}}}}},"262ce6aa-9236-4f02-8ef5-0818548b3d7e":{"name":"2D Screen","tags":[],"enabled":true,"resource_id":"262ce6aa-9236-4f02-8ef5-0818548b3d7e","parent":"e951e842-82e0-11ee-9eae-baf4d5e490e2","children":["bde8414d-b899-40f9-84d4-f4d65f1b0eb2"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"screen":{"enabled":true,"screenSpace":true,"scaleMode":"blend","scaleBlend":0.5,"resolution":[1280,720],"referenceResolution":[1280,720],"priority":0}}},"bde8414d-b899-40f9-84d4-f4d65f1b0eb2":{"name":"GameUIPanel","tags":[],"enabled":true,"resource_id":"bde8414d-b899-40f9-84d4-f4d65f1b0eb2","parent":"262ce6aa-9236-4f02-8ef5-0818548b3d7e","children":["28bdabf7-77eb-42b1-99e7-32de20f0a011","d5217136-6e8f-49f0-8583-06c5bcaca07f","e8932e28-c0fd-482f-9acd-1d0997e36ce1"],"position":[640,144,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"group","anchor":[0,0,1,0.4],"pivot":[0.5,0.5],"text":"","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":1312,"height":320,"margin":[-16,-16,-16,-16],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false},"script":{"enabled":true,"order":["uiController"],"scripts":{"uiController":{"enabled":true,"attributes":{"descriptionElement":"28bdabf7-77eb-42b1-99e7-32de20f0a011","choicesContainer":"d5217136-6e8f-49f0-8583-06c5bcaca07f","choiceButtonTemplate":233667893}}}}}},"28bdabf7-77eb-42b1-99e7-32de20f0a011":{"name":"DescriptionText","tags":[],"enabled":true,"resource_id":"28bdabf7-77eb-42b1-99e7-32de20f0a011","parent":"bde8414d-b899-40f9-84d4-f4d65f1b0eb2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"text","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"Text","key":null,"fontAsset":233667890,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":60.813,"height":33.781,"margin":[-30.406,-16.891,-30.406,-16.891],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":true,"autoHeight":true,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}},"d5217136-6e8f-49f0-8583-06c5bcaca07f":{"name":"ChoicesContainer","tags":[],"enabled":true,"resource_id":"d5217136-6e8f-49f0-8583-06c5bcaca07f","parent":"bde8414d-b899-40f9-84d4-f4d65f1b0eb2","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"group","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[-16,-16,-16,-16],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}},"e8932e28-c0fd-482f-9acd-1d0997e36ce1":{"name":"ChoiceButton_Template","tags":[],"enabled":false,"resource_id":"e8932e28-c0fd-482f-9acd-1d0997e36ce1","parent":"bde8414d-b899-40f9-84d4-f4d65f1b0eb2","children":["aa072fda-cbc9-47c3-b258-cff5f6a080b8"],"position":[0,-5143.958615522036,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"button":{"enabled":true,"active":true,"imageEntity":"e8932e28-c0fd-482f-9acd-1d0997e36ce1","hitPadding":[0,0,0,0],"transitionMode":0,"hoverTint":[1,1,1,1],"pressedTint":[1,1,1,1],"inactiveTint":[0.07058823529411765,0.17647058823529413,0.9254901960784314,1],"fadeDuration":0,"hoverSpriteAsset":null,"hoverSpriteFrame":0,"pressedSpriteAsset":null,"pressedSpriteFrame":0,"inactiveSpriteAsset":null,"inactiveSpriteFrame":0,"hoverTextureAsset":null,"pressedTextureAsset":null,"inactiveTextureAsset":null},"element":{"enabled":true,"type":"image","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[0.8352941176470589,0.09411764705882353,0.09411764705882353],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":200,"height":50,"margin":[-100,-5168.959,-100,5118.959],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":true,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}},"template_id":233667893,"template_ent_ids":{"e8932e28-c0fd-482f-9acd-1d0997e36ce1":"1efadbcf-af96-4369-82a9-f5eba8baf0f7","aa072fda-cbc9-47c3-b258-cff5f6a080b8":"73eb8604-08ec-491d-a466-51a0bc96c4a7"}},"aa072fda-cbc9-47c3-b258-cff5f6a080b8":{"name":"ButtonText","tags":[],"enabled":true,"resource_id":"aa072fda-cbc9-47c3-b258-cff5f6a080b8","parent":"e8932e28-c0fd-482f-9acd-1d0997e36ce1","children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"text","anchor":[0,0,1,1],"pivot":[0.5,0.5],"text":"Text","key":null,"fontAsset":233667890,"fontSize":32,"minFontSize":20,"maxFontSize":20,"autoFitWidth":true,"autoFitHeight":true,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[0,0,0],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[0,0,0,0],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}}},"checkpoint_id":"c3b476ee-071f-4391-a075-2e0bd04dc24e","id":2241598}
|
__game-scripts.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
var sceneScaffolder=pc.createScript("sceneScaffolder");sceneScaffolder.prototype.initialize=function(){var e=this.app,t=e.root.findByName("Camera");t&&t.destroy();var o=e.root.findByName("Light");o&&o.destroy();var a=new pc.Entity("SurgeonCamera");a.addComponent("camera",{clearColor:new pc.Color(.95,.98,1),nearClip:.1,farClip:100,fov:60}),a.setPosition(0,1.7,6.5),a.addComponent("script"),a.script.create("cameraController"),a.script.create("interactionController"),e.root.addChild(a),this.createCrosshairUI(e);var n=new pc.Entity("MainSurgicalLight");n.addComponent("light",{type:"spot",color:new pc.Color(1,.98,.92),intensity:3,range:15,innerConeAngle:15,outerConeAngle:35,castShadows:!0,shadowBias:.1,shadowDistance:20,shadowResolution:2048}),n.addComponent("render",{type:"box"}),n.setLocalScale(.5,.2,.5),n.addComponent("collision",{type:"box"}),n.addComponent("rigidbody",{type:"static"}),n.setPosition(0,4,0),n.setEulerAngles(90,0,0),e.root.addChild(n);var d=new pc.Entity("SecondarySurgicalLight");d.addComponent("light",{type:"spot",color:new pc.Color(1,.98,.92),intensity:2.5,range:12,innerConeAngle:20,outerConeAngle:40,castShadows:!0,shadowBias:.1}),d.setPosition(-1.5,3.8,-.5),d.setEulerAngles(75,15,0),e.root.addChild(d);var i=new pc.Entity("AmbientRoomLight");i.addComponent("light",{type:"directional",color:new pc.Color(.9,.95,1),intensity:.4,castShadows:!1}),i.setEulerAngles(30,45,0),e.root.addChild(i);var s=new pc.Entity("SterileFloor"),r=new pc.StandardMaterial;r.diffuse=new pc.Color(.92,.95,.98),r.metalness=.1,r.gloss=.8,r.useMetalness=!0,r.update(),s.addComponent("render",{type:"plane",material:r,receiveShadows:!0,castShadows:!1}),s.setLocalScale(20,1,15),e.root.addChild(s),this.createWall(e,"BackWall",0,2.5,-7.5,20,5,.2,new pc.Color(.95,.97,1)),this.createWall(e,"FrontWall",0,2.5,7.5,20,5,.2,new pc.Color(.95,.97,1)),this.createWall(e,"LeftWall",-10,2.5,0,.2,5,15,new pc.Color(.95,.97,1)),this.createWall(e,"RightWall",10,2.5,0,.2,5,15,new pc.Color(.95,.97,1));var l=new pc.Entity("OperatingTableBase"),c=new pc.StandardMaterial;c.diffuse=new pc.Color(.8,.8,.85),c.metalness=.7,c.gloss=.6,c.useMetalness=!0,c.update(),l.addComponent("render",{type:"cylinder",material:c,castShadows:!0,receiveShadows:!0}),l.setLocalScale(.8,.7,.8),l.setPosition(0,.35,0),e.root.addChild(l);var p=new pc.Entity("OperatingTableSurface"),w=new pc.StandardMaterial;w.diffuse=new pc.Color(.9,.92,.95),w.metalness=.2,w.gloss=.9,w.useMetalness=!0,w.update(),p.addComponent("render",{type:"box",material:w,castShadows:!0,receiveShadows:!0}),p.setLocalScale(2.2,.1,.8),p.setPosition(0,.75,0),p.addComponent("collision",{type:"box",halfExtents:new pc.Vec3(1.1,.05,.4)}),p.addComponent("rigidbody",{type:"static"}),e.root.addChild(p);var C=new pc.Entity("AnesthesiaMachine"),h=new pc.StandardMaterial;h.diffuse=new pc.Color(.7,.75,.8),h.metalness=.8,h.useMetalness=!0,h.update(),C.addComponent("render",{type:"box",material:h,castShadows:!0,receiveShadows:!0}),C.setLocalScale(1.2,1.8,.8),C.setPosition(-4,.9,2),e.root.addChild(C);var m=new pc.Entity("InstrumentTable"),y=new pc.StandardMaterial;y.diffuse=new pc.Color(.85,.87,.9),y.metalness=.6,y.gloss=.8,y.useMetalness=!0,y.update(),m.addComponent("render",{type:"box",material:y,castShadows:!0,receiveShadows:!0}),m.setLocalScale(1.5,1.2,.8),m.setPosition(3,.6,-1),e.root.addChild(m);var S=new pc.Entity("XRayViewer"),u=new pc.StandardMaterial;u.diffuse=new pc.Color(.1,.1,.12),u.metalness=.9,u.useMetalness=!0,u.update(),S.addComponent("render",{type:"box",material:u,castShadows:!0,receiveShadows:!0}),S.setLocalScale(1.8,1.2,.1),S.setPosition(-4,2.5,-6),e.root.addChild(S);var g=new pc.Entity("XRayScreen"),f=new pc.StandardMaterial;f.diffuse=new pc.Color(.9,.95,1),f.emissive=new pc.Color(.3,.35,.4),f.update(),g.addComponent("render",{type:"box",material:f,castShadows:!1,receiveShadows:!1}),g.addComponent("collision",{type:"box"}),g.addComponent("rigidbody",{type:"static"}),g.setLocalScale(1.6,1,.05),g.setPosition(-4,2.5,-5.9),e.root.addChild(g);var v=new pc.Entity("SurgicalLightArm1"),M=new pc.StandardMaterial;M.diffuse=new pc.Color(.9,.9,.92),M.metalness=.8,M.useMetalness=!0,M.update(),v.addComponent("render",{type:"cylinder",material:M,castShadows:!0,receiveShadows:!0}),v.setLocalScale(.15,2,.15),v.setPosition(0,3,0),e.root.addChild(v);var E=new pc.Entity("PatientBody"),b=new pc.StandardMaterial;b.diffuse=new pc.Color(.95,.85,.75),b.metalness=.1,b.gloss=.2,b.useMetalness=!0,b.update(),E.addComponent("render",{type:"box",material:b,castShadows:!0,receiveShadows:!0}),E.addComponent("collision",{type:"box"}),E.addComponent("rigidbody",{type:"static"}),E.setLocalScale(.6,.3,1.8),E.setPosition(0,.95,0),e.root.addChild(E);var L=new pc.Entity("SurgicalDrape"),x=new pc.StandardMaterial;x.diffuse=new pc.Color(.8,.9,.95),x.metalness=0,x.gloss=.1,x.update(),L.addComponent("render",{type:"box",material:x,castShadows:!0,receiveShadows:!0}),L.setLocalScale(.8,.05,2),L.setPosition(0,1.15,0),e.root.addChild(L);var P=new pc.Entity("CArmXRayMachine"),A=new pc.StandardMaterial;A.diffuse=new pc.Color(.75,.78,.82),A.metalness=.7,A.useMetalness=!0,A.update(),P.addComponent("render",{type:"box",material:A,castShadows:!0,receiveShadows:!0}),P.setLocalScale(1,2.2,1.5),P.setPosition(5,1.1,3),P.addComponent("collision",{type:"box",halfExtents:new pc.Vec3(.5,1.1,.75)}),P.addComponent("rigidbody",{type:"static"}),e.root.addChild(P);var B=new pc.Entity("PowerToolsStation"),V=new pc.StandardMaterial;V.diffuse=new pc.Color(.6,.65,.7),V.metalness=.8,V.useMetalness=!0,V.update(),B.addComponent("render",{type:"box",material:V,castShadows:!0,receiveShadows:!0}),B.setLocalScale(.8,1.5,.6),B.setPosition(-3.5,.75,-2.5),e.root.addChild(B);var T=new pc.Entity("BoneCementMixer"),O=new pc.StandardMaterial;O.diffuse=new pc.Color(.85,.85,.88),O.metalness=.6,O.useMetalness=!0,O.update(),T.addComponent("render",{type:"cylinder",material:O,castShadows:!0,receiveShadows:!0}),T.setLocalScale(.4,.8,.4),T.setPosition(2.5,.4,2.5),e.root.addChild(T),this.createVitalSignsMonitor(e,new pc.Vec3(-2,0,3)),console.log("Orthopaedic Operating Theatre scaffolded successfully!"),console.log("Orthopaedic Operating Theatre scaffolded successfully!"),console.log("Environment includes:"),console.log("- Sterile room with clinical lighting"),console.log("- Central operating table with patient"),console.log("- Anesthesia machine and monitoring equipment"),console.log("- X-ray viewer and C-arm machine"),console.log("- Surgical instrument tables"),console.log("- Orthopaedic-specific equipment (drills, cement mixer)"),console.log("- Proper surgical lighting setup")},sceneScaffolder.prototype.createWall=function(e,t,o,a,n,d,i,s,r){var l=new pc.Entity(t),c=new pc.StandardMaterial;c.diffuse=r,c.metalness=.1,c.gloss=.3,c.useMetalness=!0,c.update(),l.addComponent("render",{type:"box",material:c,castShadows:!1,receiveShadows:!0}),l.setPosition(o,a,n),l.setLocalScale(d,i,s),e.root.addChild(l)},sceneScaffolder.prototype.createVitalSignsMonitor=function(e,t){var o=new pc.Entity("VitalSignsMonitor");o.setPosition(t);var a=new pc.Entity("MonitorCartBody"),n=new pc.StandardMaterial;n.diffuse=new pc.Color(.8,.82,.85),n.useMetalness=!0,n.metalness=.4,n.gloss=.5,n.update(),a.addComponent("render",{type:"box",material:n}),a.setLocalScale(.6,1,.5),a.setLocalPosition(0,.5,0),a.addComponent("collision",{type:"box"}),a.addComponent("rigidbody",{type:"static"}),o.addChild(a);var d=new pc.Entity("MonitorScreen"),i=new pc.StandardMaterial;i.diffuse.set(.05,.05,.1),i.emissive.set(.02,.02,.05),i.update(),d.addComponent("render",{type:"box",material:i}),d.setLocalScale(.58,.45,.03),d.setLocalPosition(0,.7,.27),d.addComponent("collision",{type:"box"}),d.addComponent("rigidbody",{type:"static"}),o.addChild(d);var s=new pc.Entity("MonitorBase");return s.addComponent("render",{type:"box",material:n}),s.setLocalScale(.7,.05,.7),s.setLocalPosition(0,.025,0),o.addChild(s),e.root.addChild(o),o},sceneScaffolder.prototype.createCrosshairUI=function(e){var t=new pc.Entity("UIScreen");t.addComponent("screen",{referenceResolution:new pc.Vec2(1280,720),scaleBlend:.5,scaleMode:pc.SCALEMODE_BLEND,screenSpace:!0}),e.root.addChild(t);var o=new pc.Entity("CrosshairOutline");o.addComponent("image",{type:pc.ELEMENTTYPE_IMAGE,anchor:new pc.Vec4(.5,.5,.5,.5),pivot:new pc.Vec2(.5,.5),width:6,height:6,color:new pc.Color(0,0,0,.5)}),t.addChild(o);var a=new pc.Entity("CrosshairDot");a.addComponent("image",{type:pc.ELEMENTTYPE_IMAGE,anchor:new pc.Vec4(.5,.5,.5,.5),pivot:new pc.Vec2(.5,.5),width:2,height:2,color:new pc.Color(1,1,1,.8)}),t.addChild(a),console.log("Compound Crosshair UI created.")};var CameraController=pc.createScript("cameraController");CameraController.attributes.add("mouseSensitivity",{type:"number",default:.5,title:"Mouse Sensitivity (Unused for Q/E)"}),CameraController.attributes.add("keyboardRotationSpeed",{type:"number",default:90,title:"Keyboard Rotation Speed"}),CameraController.attributes.add("movementSpeed",{type:"number",default:5,title:"Movement Speed"}),CameraController.attributes.add("pitchLimit",{type:"number",default:89,title:"Pitch Angle Limit"}),CameraController.prototype.initialize=function(){console.log("CameraController: Initializing script instance:",this),this.eulers=new pc.Vec3;var e=this.entity.getEulerAngles();this.eulers.set(e.x,e.y,e.z),this.pitch=this.eulers.x,this.yaw=this.eulers.y,this.moveDirection=new pc.Vec3,this.isPointerActuallyLocked=!1,console.log("CameraController initialized. Initial Pitch: "+this.pitch+", Initial Yaw: "+this.yaw),console.log("To control camera: WASD to move, Q/E to rotate left/right.")},CameraController.prototype.update=function(e){var t=this.app,i=this.movementSpeed,r=this.entity.forward,a=this.entity.right,o=0,s=0;if(t.keyboard.isPressed(pc.KEY_W)&&(s-=1),t.keyboard.isPressed(pc.KEY_S)&&(s+=1),t.keyboard.isPressed(pc.KEY_A)&&(o-=1),t.keyboard.isPressed(pc.KEY_D)&&(o+=1),0!==o||0!==s){this.moveDirection.set(0,0,0);var l=r.clone().mulScalar(-s),n=a.clone().mulScalar(o);this.moveDirection.add(l).add(n),this.moveDirection.lengthSq()>0&&(this.moveDirection.normalize().mulScalar(i*e),this.entity.translateLocal(this.moveDirection))}var c=0;t.keyboard.isPressed(pc.KEY_Q)&&(c=1),t.keyboard.isPressed(pc.KEY_E)&&(c=-1),this.yaw+=c*this.keyboardRotationSpeed*e;var d=0;t.keyboard.isPressed(pc.KEY_UP)&&(d=-1),t.keyboard.isPressed(pc.KEY_DOWN)&&(d=1),this.pitch+=d*this.keyboardRotationSpeed*e,this.pitch=pc.math.clamp(this.pitch,-this.pitchLimit,this.pitchLimit),this.entity.setLocalEulerAngles(this.pitch,this.yaw,0)};var SceneScaffolder=pc.createScript("sceneScaffolder");SceneScaffolder.prototype.initialize=function(){var e=this.app,a=e.root.findByName("Camera");a&&a.destroy();var o=e.root.findByName("Light");o&&o.destroy();var t=new pc.Entity("MyControllableCamera");t.addComponent("camera",{clearColor:new pc.Color(.1,.1,.1),nearClip:.1,farClip:1e3,fov:45}),t.setPosition(0,1.6,5),t.addComponent("script"),t.script.create("cameraController"),e.root.addChild(t);var n=new pc.Entity("MyLight");n.addComponent("light",{type:"directional",color:new pc.Color(1,1,1),intensity:1,castShadows:!0,shadowBias:.2,shadowDistance:50,normalOffsetBias:.05,shadowResolution:2048}),n.setEulerAngles(45,30,0),e.root.addChild(n);var r=new pc.Entity("GroundPlane"),d=new pc.StandardMaterial;d.diffuse=new pc.Color(.5,.5,.5),d.update(),r.addComponent("render",{type:"plane",material:d,castShadows:!1,receiveShadows:!0}),r.setLocalScale(50,1,50),e.root.addChild(r);var i=new pc.Entity("MyCube"),s=new pc.StandardMaterial;s.diffuse=new pc.Color(1,0,0),s.shininess=50,s.update(),i.addComponent("render",{type:"box",material:s,castShadows:!0,receiveShadows:!0}),i.setPosition(0,1,0),e.root.addChild(i);var l=new pc.Entity("MySphere"),c=new pc.StandardMaterial;c.diffuse=new pc.Color(0,0,1),c.shininess=70,c.metalness=.3,c.useMetalness=!0,c.update(),l.addComponent("render",{type:"sphere",material:c,castShadows:!0,receiveShadows:!0}),l.setPosition(3,1.5,2),e.root.addChild(l),console.log("Controllable 3D environment scaffolded from code!")};var OrthopaedicTheatreScaffolder=pc.createScript("orthopaedicTheatreScaffolder");OrthopaedicTheatreScaffolder.prototype.initialize=function(){var e=this.app,a=e.root.findByName("Camera");a&&a.destroy();var t=e.root.findByName("Light");t&&t.destroy();var o=new pc.Entity("SurgeonCamera");o.addComponent("camera",{clearColor:new pc.Color(.95,.98,1),nearClip:.1,farClip:100,fov:60}),o.setPosition(0,1.7,8),o.addComponent("script"),o.script.create("cameraController"),e.root.addChild(o);var n=new pc.Entity("MainSurgicalLight");n.addComponent("light",{type:"spot",color:new pc.Color(1,.98,.92),intensity:3,range:15,innerConeAngle:15,outerConeAngle:35,castShadows:!0,shadowBias:.1,shadowDistance:20,shadowResolution:2048}),n.setPosition(0,4,0),n.setEulerAngles(90,0,0),e.root.addChild(n);var s=new pc.Entity("SecondarySurgicalLight");s.addComponent("light",{type:"spot",color:new pc.Color(1,.98,.92),intensity:2.5,range:12,innerConeAngle:20,outerConeAngle:40,castShadows:!0,shadowBias:.1}),s.setPosition(-1.5,3.8,-.5),s.setEulerAngles(75,15,0),e.root.addChild(s);var r=new pc.Entity("AmbientRoomLight");r.addComponent("light",{type:"directional",color:new pc.Color(.9,.95,1),intensity:.4,castShadows:!1}),r.setEulerAngles(30,45,0),e.root.addChild(r);var d=new pc.Entity("SterileFloor"),l=new pc.StandardMaterial;l.diffuse=new pc.Color(.92,.95,.98),l.metalness=.1,l.gloss=.8,l.useMetalness=!0,l.update(),d.addComponent("render",{type:"plane",material:l,receiveShadows:!0,castShadows:!1}),d.setLocalScale(20,1,15),e.root.addChild(d),this.createWall(e,"BackWall",0,2.5,-7.5,20,5,.2,new pc.Color(.95,.97,1)),this.createWall(e,"FrontWall",0,2.5,7.5,20,5,.2,new pc.Color(.95,.97,1)),this.createWall(e,"LeftWall",-10,2.5,0,.2,5,15,new pc.Color(.95,.97,1)),this.createWall(e,"RightWall",10,2.5,0,.2,5,15,new pc.Color(.95,.97,1));var i=new pc.Entity("OperatingTableBase"),c=new pc.StandardMaterial;c.diffuse=new pc.Color(.8,.8,.85),c.metalness=.7,c.gloss=.6,c.useMetalness=!0,c.update(),i.addComponent("render",{type:"cylinder",material:c,castShadows:!0,receiveShadows:!0}),i.setLocalScale(.8,.7,.8),i.setPosition(0,.35,0),e.root.addChild(i);var p=new pc.Entity("OperatingTableSurface"),w=new pc.StandardMaterial;w.diffuse=new pc.Color(.9,.92,.95),w.metalness=.2,w.gloss=.9,w.useMetalness=!0,w.update(),p.addComponent("render",{type:"box",material:w,castShadows:!0,receiveShadows:!0}),p.setLocalScale(2.2,.1,.8),p.setPosition(0,.75,0),e.root.addChild(p);var h=new pc.Entity("AnesthesiaMachine"),S=new pc.StandardMaterial;S.diffuse=new pc.Color(.7,.75,.8),S.metalness=.8,S.useMetalness=!0,S.update(),h.addComponent("render",{type:"box",material:S,castShadows:!0,receiveShadows:!0}),h.setLocalScale(1.2,1.8,.8),h.setPosition(-4,.9,2),e.root.addChild(h);var C=new pc.Entity("InstrumentTable"),m=new pc.StandardMaterial;m.diffuse=new pc.Color(.85,.87,.9),m.metalness=.6,m.gloss=.8,m.useMetalness=!0,m.update(),C.addComponent("render",{type:"box",material:m,castShadows:!0,receiveShadows:!0}),C.setLocalScale(1.5,1.2,.8),C.setPosition(3,.6,-1),e.root.addChild(C);var u=new pc.Entity("XRayViewer"),y=new pc.StandardMaterial;y.diffuse=new pc.Color(.1,.1,.12),y.metalness=.9,y.useMetalness=!0,y.update(),u.addComponent("render",{type:"box",material:y,castShadows:!0,receiveShadows:!0}),u.setLocalScale(1.8,1.2,.1),u.setPosition(-4,2.5,-6),e.root.addChild(u);var g=new pc.Entity("XRayScreen"),f=new pc.StandardMaterial;f.diffuse=new pc.Color(.9,.95,1),f.emissive=new pc.Color(.3,.35,.4),f.update(),g.addComponent("render",{type:"box",material:f,castShadows:!1,receiveShadows:!1}),g.setLocalScale(1.6,1,.05),g.setPosition(-4,2.5,-5.9),e.root.addChild(g);var v=new pc.Entity("SurgicalLightArm1"),M=new pc.StandardMaterial;M.diffuse=new pc.Color(.9,.9,.92),M.metalness=.8,M.useMetalness=!0,M.update(),v.addComponent("render",{type:"cylinder",material:M,castShadows:!0,receiveShadows:!0}),v.setLocalScale(.15,2,.15),v.setPosition(0,3,0),e.root.addChild(v);var E=new pc.Entity("PatientBody"),L=new pc.StandardMaterial;L.diffuse=new pc.Color(.95,.85,.75),L.metalness=.1,L.gloss=.2,L.useMetalness=!0,L.update(),E.addComponent("render",{type:"box",material:L,castShadows:!0,receiveShadows:!0}),E.setLocalScale(.6,.3,1.8),E.setPosition(0,.95,0),e.root.addChild(E);var P=new pc.Entity("SurgicalDrape"),b=new pc.StandardMaterial;b.diffuse=new pc.Color(.8,.9,.95),b.metalness=0,b.gloss=.1,b.update(),P.addComponent("render",{type:"box",material:b,castShadows:!0,receiveShadows:!0}),P.setLocalScale(.8,.05,2),P.setPosition(0,1.15,0),e.root.addChild(P);var x=new pc.Entity("CArmXRayMachine"),A=new pc.StandardMaterial;A.diffuse=new pc.Color(.75,.78,.82),A.metalness=.7,A.useMetalness=!0,A.update(),x.addComponent("render",{type:"box",material:A,castShadows:!0,receiveShadows:!0}),x.setLocalScale(1,2.2,1.5),x.setPosition(5,1.1,3),e.root.addChild(x);var T=new pc.Entity("PowerToolsStation"),W=new pc.StandardMaterial;W.diffuse=new pc.Color(.6,.65,.7),W.metalness=.8,W.useMetalness=!0,W.update(),T.addComponent("render",{type:"box",material:W,castShadows:!0,receiveShadows:!0}),T.setLocalScale(.8,1.5,.6),T.setPosition(-3.5,.75,-2.5),e.root.addChild(T);var B=new pc.Entity("BoneCementMixer"),O=new pc.StandardMaterial;O.diffuse=new pc.Color(.85,.85,.88),O.metalness=.6,O.useMetalness=!0,O.update(),B.addComponent("render",{type:"cylinder",material:O,castShadows:!0,receiveShadows:!0}),B.setLocalScale(.4,.8,.4),B.setPosition(2.5,.4,2.5),e.root.addChild(B),console.log("Orthopaedic Operating Theatre scaffolded successfully!"),console.log("Environment includes:"),console.log("- Sterile room with clinical lighting"),console.log("- Central operating table with patient"),console.log("- Anesthesia machine and monitoring equipment"),console.log("- X-ray viewer and C-arm machine"),console.log("- Surgical instrument tables"),console.log("- Orthopaedic-specific equipment (drills, cement mixer)"),console.log("- Proper surgical lighting setup")},OrthopaedicTheatreScaffolder.prototype.createWall=function(e,a,t,o,n,s,r,d,l){var i=new pc.Entity(a),c=new pc.StandardMaterial;c.diffuse=l,c.metalness=.1,c.gloss=.3,c.useMetalness=!0,c.update(),i.addComponent("render",{type:"box",material:c,castShadows:!1,receiveShadows:!0}),i.setPosition(t,o,n),i.setLocalScale(s,r,d),e.root.addChild(i)};var InteractionController=pc.createScript("interactionController");InteractionController.attributes.add("interactionDistance",{type:"number",default:5,title:"Interaction Distance"}),InteractionController.attributes.add("highlightColor",{type:"rgba",default:[.4,.4,0,1],title:"Highlight Color (Emissive)"}),InteractionController.prototype.initialize=function(){this.highlightedEntity=null,this.originalEmissive=new pc.Color;const t=this.app.scene.layers.getLayerById(pc.LAYERID_IMMEDIATE),i=this.entity.camera,e=i.layers;-1===e.indexOf(t.id)&&(i.layers=e.concat(t.id)),console.log("Interaction Controller is active. Look at an object to highlight it, press 'F' to interact.")},InteractionController.prototype.update=function(t){if("undefined"!=typeof Ammo){var i=this.entity.getPosition(),e=(new pc.Vec3).copy(this.entity.forward).mulScalar(this.interactionDistance).add(i),n=this.app.systems.rigidbody.raycastFirst(i,e),o=n?n.entity:null;o!==this.highlightedEntity&&(this.highlightedEntity&&this.setHighlight(this.highlightedEntity,!1),o&&this.setHighlight(o,!0),this.highlightedEntity=o),this.app.keyboard.wasPressed(pc.KEY_F)&&this.highlightedEntity&&this.interactWith(this.highlightedEntity)}},InteractionController.prototype.interactWith=function(t){console.log("Interacting with:",t.name);var i=t;if(t.parent&&"VitalSignsMonitor"===t.parent.name&&(i=t.parent),"VitalSignsMonitor"===i.name){var e=i.findByName("MonitorScreen");if(e){void 0===e.isOn&&(e.isOn=!1),e.isOn=!e.isOn;var n=e.render.material;n.emissive.set(e.isOn?.5:0,e.isOn?.8:0,e.isOn?1:0),n.update(),console.log("Monitor screen state set to:",e.isOn?"ON":"OFF")}}else if("PatientBody"===t.name){var o=this.app.root.findByName("SurgicalDrape");o&&(o.enabled=!o.enabled,console.log("Surgical drape visibility set to:",o.enabled))}else if("MainSurgicalLight"===t.name)void 0===t.isAdjusted&&(t.isAdjusted=!1),t.isAdjusted=!t.isAdjusted,t.isAdjusted?(t.setEulerAngles(75,20,0),console.log("Surgical light adjusted.")):(t.setEulerAngles(90,0,0),console.log("Surgical light reset."));else if("XRayScreen"===t.name){void 0===t.colorIndex&&(t.colorIndex=0);var r=[new pc.Color(.9,.95,1),new pc.Color(.9,1,.9),new pc.Color(1,.9,.9)];t.colorIndex=(t.colorIndex+1)%r.length;var s=t.render.material;s.diffuse.copy(r[t.colorIndex]),s.update(),console.log("X-Ray screen color changed to index:",t.colorIndex)}},InteractionController.prototype.setHighlight=function(t,i){if((!t||"MonitorScreen"!==t.name)&&t&&t.render&&t.render.material){var e=t.render.material;i?(this.originalEmissive.copy(e.emissive),e.emissive.set(this.highlightColor.r,this.highlightColor.g,this.highlightColor.b)):e.emissive.copy(this.originalEmissive),e.update()}};var GameManager=pc.createScript("gameManager");GameManager.attributes.add("gameData",{type:"asset",assetType:"text",title:"Game Data JSON"}),GameManager.prototype.initialize=function(){this.storyData=null,this.currentLocation="tavern",this.currentRoom="start",this.isUiReady=!1,this.app.on("ui:choiceMade",this.onChoiceMade,this),this.app.on("ui:ready",this.onUiReady,this),this.gameData&&this.gameData.resource?(this.storyData=JSON.parse(this.gameData.resource),console.log("GameManager: Data loaded and parsed."),this.isUiReady&&this.displayCurrentState()):console.error("GameManager: Game Data JSON asset is not linked or has not loaded yet.")},GameManager.prototype.onUiReady=function(){console.log("GameManager: Received 'ui:ready' event."),this.isUiReady=!0,this.storyData&&this.displayCurrentState()},GameManager.prototype.displayCurrentState=function(){if(this.storyData&&this.isUiReady){var t=this.storyData[this.currentLocation][this.currentRoom];t?(console.log("GameManager: Firing 'story:display' event for room:",this.currentRoom),this.app.fire("story:display",{description:t.description,choices:t.choices})):console.error("GameManager: Could not find room data for:",this.currentLocation,this.currentRoom)}},GameManager.prototype.onChoiceMade=function(t){if(this.storyData){var a=this.storyData[this.currentLocation][this.currentRoom].transitions[t];if(a){if(a.includes("_")){var e=a.split("_");this.currentLocation=e[0],this.currentRoom=e[1]}else this.currentRoom=a;this.displayCurrentState()}else console.error("GameManager: No transition found for choice:",t)}};var UiController=pc.createScript("uiController");UiController.attributes.add("descriptionElement",{type:"entity",title:"Description Text Entity"}),UiController.attributes.add("choicesContainer",{type:"entity",title:"Choices Container Entity"}),UiController.attributes.add("choiceButtonTemplate",{type:"asset",assetType:"template",title:"Choice Button Template"}),UiController.prototype.initialize=function(){this.app.on("story:display",this.onDisplay,this),console.log("UiController: Initialized and listening for 'story:display' events."),this.validateSetup(),this.app.fire("ui:ready"),console.log("UiController: Fired 'ui:ready' event.")},UiController.prototype.validateSetup=function(){console.log("UiController: Validating setup..."),this.descriptionElement||console.error("UiController VALIDATION ERROR: 'Description Text Entity' is not assigned in the editor!"),this.choicesContainer||console.error("UiController VALIDATION ERROR: 'Choices Container Entity' is not assigned in the editor!"),this.choiceButtonTemplate?"template"!==this.choiceButtonTemplate.type&&console.error("UiController VALIDATION ERROR: The asset assigned to 'Choice Button Template' must be a Template asset."):console.error("UiController VALIDATION ERROR: 'Choice Button Template' asset is not assigned in the editor!")},UiController.prototype.onDisplay=function(t){console.log("UiController: Received 'story:display' event."),t?(this.updateDescription(t.description),this.updateChoices(t.choices)):console.error("UiController: Received event but data was null or undefined.")},UiController.prototype.updateDescription=function(t){this.descriptionElement&&this.descriptionElement.element&&(this.descriptionElement.element.text=t||"Description text is missing.")},UiController.prototype.updateChoices=function(t){if(this.choicesContainer){for(;this.choicesContainer.children.length>0;)this.choicesContainer.children[0].destroy();t&&t.length>0&&t.forEach((function(t,e){this.createChoiceButton(t,e)}),this)}},UiController.prototype.createChoiceButton=function(t,e){if(this.choiceButtonTemplate&&this.choiceButtonTemplate.resource){var i=this.choiceButtonTemplate.resource.instantiate();this.choicesContainer.addChild(i);var o=i.element,n=e%2==0,r=10+50*Math.floor(e/2);o.width=180,o.height=40,n?(o.anchor=new pc.Vec4(0,1,0,1),o.pivot=new pc.Vec2(0,1),i.setLocalPosition(10,-r,0)):(o.anchor=new pc.Vec4(1,1,1,1),o.pivot=new pc.Vec2(1,1),i.setLocalPosition(-10,-r,0));var s=i.findByName("ButtonText");s&&s.element&&(s.element.text=t),i.button&&i.button.on("click",(function(){this.app.fire("ui:choiceMade",t)}),this)}};var GameAutoLocationDatabase=pc.createScript("gameAutoLocationDatabase");GameAutoLocationDatabase.prototype.initialize=function(){},GameAutoLocationDatabase.prototype.update=function(a){};
|
__loading__.js
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
pc.script.createLoadingScreen(function (app) {
|
2 |
+
var showSplash = function () {
|
3 |
+
// splash wrapper
|
4 |
+
var wrapper = document.createElement('div');
|
5 |
+
wrapper.id = 'application-splash-wrapper';
|
6 |
+
document.body.appendChild(wrapper);
|
7 |
+
|
8 |
+
// splash
|
9 |
+
var splash = document.createElement('div');
|
10 |
+
splash.id = 'application-splash';
|
11 |
+
wrapper.appendChild(splash);
|
12 |
+
splash.style.display = 'none';
|
13 |
+
|
14 |
+
var logo = document.createElement('img');
|
15 |
+
logo.src = ASSET_PREFIX + 'logo.png';
|
16 |
+
splash.appendChild(logo);
|
17 |
+
logo.onload = function () {
|
18 |
+
splash.style.display = 'block';
|
19 |
+
};
|
20 |
+
|
21 |
+
var container = document.createElement('div');
|
22 |
+
container.id = 'progress-bar-container';
|
23 |
+
splash.appendChild(container);
|
24 |
+
|
25 |
+
var bar = document.createElement('div');
|
26 |
+
bar.id = 'progress-bar';
|
27 |
+
container.appendChild(bar);
|
28 |
+
|
29 |
+
};
|
30 |
+
|
31 |
+
var hideSplash = function () {
|
32 |
+
var splash = document.getElementById('application-splash-wrapper');
|
33 |
+
splash.parentElement.removeChild(splash);
|
34 |
+
};
|
35 |
+
|
36 |
+
var setProgress = function (value) {
|
37 |
+
var bar = document.getElementById('progress-bar');
|
38 |
+
if (bar) {
|
39 |
+
value = Math.min(1, Math.max(0, value));
|
40 |
+
bar.style.width = value * 100 + '%';
|
41 |
+
}
|
42 |
+
};
|
43 |
+
|
44 |
+
var createCss = function () {
|
45 |
+
var css = [
|
46 |
+
'body {',
|
47 |
+
' background-color: #283538;',
|
48 |
+
'}',
|
49 |
+
|
50 |
+
'#application-splash-wrapper {',
|
51 |
+
' position: absolute;',
|
52 |
+
' top: 0;',
|
53 |
+
' left: 0;',
|
54 |
+
' height: 100%;',
|
55 |
+
' width: 100%;',
|
56 |
+
' background-color: #283538;',
|
57 |
+
'}',
|
58 |
+
|
59 |
+
'#application-splash {',
|
60 |
+
' position: absolute;',
|
61 |
+
' top: calc(50% - 28px);',
|
62 |
+
' width: 264px;',
|
63 |
+
' left: calc(50% - 132px);',
|
64 |
+
'}',
|
65 |
+
|
66 |
+
'#application-splash img {',
|
67 |
+
' width: 100%;',
|
68 |
+
'}',
|
69 |
+
|
70 |
+
'#progress-bar-container {',
|
71 |
+
' margin: 20px auto 0 auto;',
|
72 |
+
' height: 2px;',
|
73 |
+
' width: 100%;',
|
74 |
+
' background-color: #1d292c;',
|
75 |
+
'}',
|
76 |
+
|
77 |
+
'#progress-bar {',
|
78 |
+
' width: 0%;',
|
79 |
+
' height: 100%;',
|
80 |
+
' background-color: #f60;',
|
81 |
+
'}',
|
82 |
+
'@media (max-width: 480px) {',
|
83 |
+
' #application-splash {',
|
84 |
+
' width: 170px;',
|
85 |
+
' left: calc(50% - 85px);',
|
86 |
+
' }',
|
87 |
+
'}'
|
88 |
+
|
89 |
+
].join('\n');
|
90 |
+
|
91 |
+
var style = document.createElement('style');
|
92 |
+
style.type = 'text/css';
|
93 |
+
if (style.styleSheet) {
|
94 |
+
style.styleSheet.cssText = css;
|
95 |
+
} else {
|
96 |
+
style.appendChild(document.createTextNode(css));
|
97 |
+
}
|
98 |
+
|
99 |
+
document.head.appendChild(style);
|
100 |
+
};
|
101 |
+
|
102 |
+
|
103 |
+
createCss();
|
104 |
+
|
105 |
+
showSplash();
|
106 |
+
|
107 |
+
app.on('preload:end', function () {
|
108 |
+
app.off('preload:progress');
|
109 |
+
});
|
110 |
+
app.on('preload:progress', setProgress);
|
111 |
+
app.on('start', hideSplash);
|
112 |
+
});
|
__modules__.js
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var loadModules = function (modules, urlPrefix, doneCallback) { // eslint-disable-line no-unused-vars
|
2 |
+
|
3 |
+
if (typeof modules === "undefined" || modules.length === 0) {
|
4 |
+
// caller may depend on callback behaviour being async
|
5 |
+
setTimeout(doneCallback);
|
6 |
+
} else {
|
7 |
+
let remaining = modules.length;
|
8 |
+
const moduleLoaded = () => {
|
9 |
+
if (--remaining === 0) {
|
10 |
+
doneCallback();
|
11 |
+
}
|
12 |
+
};
|
13 |
+
|
14 |
+
modules.forEach(function (m) {
|
15 |
+
pc.WasmModule.setConfig(m.moduleName, {
|
16 |
+
glueUrl: urlPrefix + m.glueUrl,
|
17 |
+
wasmUrl: urlPrefix + m.wasmUrl,
|
18 |
+
fallbackUrl: urlPrefix + m.fallbackUrl
|
19 |
+
});
|
20 |
+
|
21 |
+
if (!m.hasOwnProperty('preload') || m.preload) {
|
22 |
+
if (m.moduleName === 'BASIS') {
|
23 |
+
// preload basis transcoder
|
24 |
+
pc.basisInitialize();
|
25 |
+
moduleLoaded();
|
26 |
+
} else if (m.moduleName === 'DracoDecoderModule') {
|
27 |
+
// preload draco decoder
|
28 |
+
if (pc.dracoInitialize) {
|
29 |
+
// 1.63 onwards
|
30 |
+
pc.dracoInitialize();
|
31 |
+
moduleLoaded();
|
32 |
+
} else {
|
33 |
+
// 1.62 and earlier
|
34 |
+
pc.WasmModule.getInstance(m.moduleName, () => { moduleLoaded(); });
|
35 |
+
}
|
36 |
+
} else {
|
37 |
+
// load remaining modules in global scope
|
38 |
+
pc.WasmModule.getInstance(m.moduleName, () => { moduleLoaded(); });
|
39 |
+
}
|
40 |
+
} else {
|
41 |
+
moduleLoaded();
|
42 |
+
}
|
43 |
+
});
|
44 |
+
}
|
45 |
+
};
|
46 |
+
|
47 |
+
window.loadModules = loadModules;
|
__settings__.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.ASSET_PREFIX = "";
|
2 |
+
window.SCRIPT_PREFIX = "";
|
3 |
+
window.SCENE_PATH = "2241598.json";
|
4 |
+
window.CONTEXT_OPTIONS = {
|
5 |
+
'antialias': true,
|
6 |
+
'alpha': false,
|
7 |
+
'preserveDrawingBuffer': false,
|
8 |
+
'deviceTypes': [`webgl2`, `webgl1`],
|
9 |
+
'powerPreference': "high-performance"
|
10 |
+
};
|
11 |
+
window.SCRIPTS = [ 229622890, 229623301, 231069532, 231069534, 231153551, 233252909, 233663885, 233728142 ];
|
12 |
+
window.CONFIG_FILENAME = "config.json";
|
13 |
+
window.INPUT_SETTINGS = {
|
14 |
+
useKeyboard: true,
|
15 |
+
useMouse: true,
|
16 |
+
useGamepads: false,
|
17 |
+
useTouch: true
|
18 |
+
};
|
19 |
+
pc.script.legacy = false;
|
20 |
+
window.PRELOAD_MODULES = [
|
21 |
+
{'moduleName' : 'Ammo', 'glueUrl' : 'files/assets/231387412/1/ammo.wasm.js', 'wasmUrl' : 'files/assets/231387413/1/ammo.wasm.wasm', 'fallbackUrl' : 'files/assets/231387411/1/ammo.js', 'preload' : true},
|
22 |
+
];
|
__start__.js
ADDED
@@ -0,0 +1,332 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function () {
|
2 |
+
// Shared Lib
|
3 |
+
var CANVAS_ID = 'application-canvas';
|
4 |
+
|
5 |
+
// Needed as we will have edge cases for particular versions of iOS
|
6 |
+
// returns null if not iOS
|
7 |
+
var getIosVersion = function () {
|
8 |
+
if (/iP(hone|od|ad)/.test(navigator.platform)) {
|
9 |
+
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
|
10 |
+
var version = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
|
11 |
+
return version;
|
12 |
+
}
|
13 |
+
|
14 |
+
return null;
|
15 |
+
};
|
16 |
+
|
17 |
+
var lastWindowHeight = window.innerHeight;
|
18 |
+
var lastWindowWidth = window.innerWidth;
|
19 |
+
var windowSizeChangeIntervalHandler = null;
|
20 |
+
|
21 |
+
var pcBootstrap = {
|
22 |
+
reflowHandler: null,
|
23 |
+
iosVersion: getIosVersion(),
|
24 |
+
|
25 |
+
createCanvas: function () {
|
26 |
+
var canvas = document.createElement('canvas');
|
27 |
+
canvas.setAttribute('id', CANVAS_ID);
|
28 |
+
canvas.setAttribute('tabindex', 0);
|
29 |
+
|
30 |
+
// Disable I-bar cursor on click+drag
|
31 |
+
canvas.onselectstart = function () { return false; };
|
32 |
+
|
33 |
+
// Disable long-touch select on iOS devices
|
34 |
+
canvas.style['-webkit-user-select'] = 'none';
|
35 |
+
|
36 |
+
document.body.appendChild(canvas);
|
37 |
+
|
38 |
+
return canvas;
|
39 |
+
},
|
40 |
+
|
41 |
+
|
42 |
+
resizeCanvas: function (app, canvas) {
|
43 |
+
canvas.style.width = '';
|
44 |
+
canvas.style.height = '';
|
45 |
+
app.resizeCanvas(canvas.width, canvas.height);
|
46 |
+
|
47 |
+
var fillMode = app._fillMode;
|
48 |
+
|
49 |
+
if (fillMode === pc.FILLMODE_NONE || fillMode === pc.FILLMODE_KEEP_ASPECT) {
|
50 |
+
if ((fillMode === pc.FILLMODE_NONE && canvas.clientHeight < window.innerHeight) || (canvas.clientWidth / canvas.clientHeight >= window.innerWidth / window.innerHeight)) {
|
51 |
+
canvas.style.marginTop = Math.floor((window.innerHeight - canvas.clientHeight) / 2) + 'px';
|
52 |
+
} else {
|
53 |
+
canvas.style.marginTop = '';
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
lastWindowHeight = window.innerHeight;
|
58 |
+
lastWindowWidth = window.innerWidth;
|
59 |
+
|
60 |
+
// Work around when in landscape to work on iOS 12 otherwise
|
61 |
+
// the content is under the URL bar at the top
|
62 |
+
if (this.iosVersion && this.iosVersion[0] <= 12) {
|
63 |
+
window.scrollTo(0, 0);
|
64 |
+
}
|
65 |
+
},
|
66 |
+
|
67 |
+
reflow: function (app, canvas) {
|
68 |
+
this.resizeCanvas(app, canvas);
|
69 |
+
|
70 |
+
// Poll for size changes as the window inner height can change after the resize event for iOS
|
71 |
+
// Have one tab only, and rotate from portrait -> landscape -> portrait
|
72 |
+
if (windowSizeChangeIntervalHandler === null) {
|
73 |
+
windowSizeChangeIntervalHandler = setInterval(function () {
|
74 |
+
if (lastWindowHeight !== window.innerHeight || lastWindowWidth !== window.innerWidth) {
|
75 |
+
this.resizeCanvas(app, canvas);
|
76 |
+
}
|
77 |
+
}.bind(this), 100);
|
78 |
+
|
79 |
+
// Don't want to do this all the time so stop polling after some short time
|
80 |
+
setTimeout(function () {
|
81 |
+
if (!!windowSizeChangeIntervalHandler) {
|
82 |
+
clearInterval(windowSizeChangeIntervalHandler);
|
83 |
+
windowSizeChangeIntervalHandler = null;
|
84 |
+
}
|
85 |
+
}, 2000);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
};
|
89 |
+
|
90 |
+
// Expose the reflow to users so that they can override the existing
|
91 |
+
// reflow logic if need be
|
92 |
+
window.pcBootstrap = pcBootstrap;
|
93 |
+
})();
|
94 |
+
|
95 |
+
|
96 |
+
(function () {
|
97 |
+
// template varants
|
98 |
+
var LTC_MAT_1 = [];
|
99 |
+
var LTC_MAT_2 = [];
|
100 |
+
|
101 |
+
// varants
|
102 |
+
var canvas = pcBootstrap.createCanvas();
|
103 |
+
var app = new pc.AppBase(canvas);
|
104 |
+
|
105 |
+
function initCSS() {
|
106 |
+
if (document.head.querySelector) {
|
107 |
+
// css media query for aspect ratio changes
|
108 |
+
// TODO: Change these from private properties
|
109 |
+
var css = `@media screen and (min-aspect-ratio: ${app._width}/${app._height}) {
|
110 |
+
#application-canvas.fill-mode-KEEP_ASPECT {
|
111 |
+
width: auto;
|
112 |
+
height: 100%;
|
113 |
+
margin: 0 auto;
|
114 |
+
}
|
115 |
+
}`;
|
116 |
+
document.head.querySelector('style').innerHTML += css;
|
117 |
+
}
|
118 |
+
|
119 |
+
// Configure resolution and resize event
|
120 |
+
if (canvas.classList) {
|
121 |
+
canvas.classList.add(`fill-mode-${app.fillMode}`);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
function displayError(html) {
|
126 |
+
var div = document.createElement('div');
|
127 |
+
div.innerHTML = `<table style="background-color: #8CE; width: 100%; height: 100%;">
|
128 |
+
<tr>
|
129 |
+
<td align="center">
|
130 |
+
<div style="display: table-cell; vertical-align: middle;">
|
131 |
+
<div style="">${html}</div>
|
132 |
+
</div>
|
133 |
+
</td>
|
134 |
+
</tr>
|
135 |
+
</table>`;
|
136 |
+
document.body.appendChild(div);
|
137 |
+
}
|
138 |
+
|
139 |
+
function createGraphicsDevice(callback) {
|
140 |
+
var deviceOptions = window.CONTEXT_OPTIONS ? window.CONTEXT_OPTIONS : {};
|
141 |
+
|
142 |
+
if (typeof window.Promise === 'function') {
|
143 |
+
var LEGACY_WEBGL = 'webgl';
|
144 |
+
var deviceTypes = [...deviceOptions.deviceTypes, LEGACY_WEBGL];
|
145 |
+
|
146 |
+
var gpuLibPath = window.ASSET_PREFIX ? (window.ASSET_PREFIX.replace(/\/$/g, '') + '/') : '';
|
147 |
+
|
148 |
+
// new graphics device creation function with promises
|
149 |
+
var gfxOptions = {
|
150 |
+
deviceTypes: deviceTypes,
|
151 |
+
glslangUrl: gpuLibPath + 'glslang.js',
|
152 |
+
twgslUrl: gpuLibPath + 'twgsl.js',
|
153 |
+
powerPreference: deviceOptions.powerPreference,
|
154 |
+
antialias: deviceOptions.antialias !== false,
|
155 |
+
alpha: deviceOptions.alpha === true,
|
156 |
+
preserveDrawingBuffer: !!deviceOptions.preserveDrawingBuffer
|
157 |
+
};
|
158 |
+
|
159 |
+
pc.createGraphicsDevice(canvas, gfxOptions).then((device) => {
|
160 |
+
callback(device);
|
161 |
+
}).catch((e) => {
|
162 |
+
console.error('Device creation error:', e);
|
163 |
+
callback(null);
|
164 |
+
})
|
165 |
+
} else {
|
166 |
+
var igl1 = deviceOptions.deviceTypes.indexOf('webgl1');
|
167 |
+
var igl2 = deviceOptions.deviceTypes.indexOf('webgl2');
|
168 |
+
|
169 |
+
// old webgl graphics device creation
|
170 |
+
var options = {
|
171 |
+
powerPreference: deviceOptions.powerPreference,
|
172 |
+
antialias: deviceOptions.antialias !== false,
|
173 |
+
alpha: deviceOptions.transparentCanvas !== false,
|
174 |
+
preserveDrawingBuffer: !!deviceOptions.preserveDrawingBuffer,
|
175 |
+
preferWebGl2: igl2 > igl1
|
176 |
+
};
|
177 |
+
|
178 |
+
if (pc.platform.browser && !!navigator.xr) {
|
179 |
+
options.xrCompatible = true;
|
180 |
+
}
|
181 |
+
|
182 |
+
callback(new pc.WebglGraphicsDevice(canvas, options));
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
function initApp(device) {
|
187 |
+
try {
|
188 |
+
var createOptions = new pc.AppOptions();
|
189 |
+
createOptions.graphicsDevice = device;
|
190 |
+
|
191 |
+
createOptions.componentSystems = [
|
192 |
+
pc.RigidBodyComponentSystem,
|
193 |
+
pc.CollisionComponentSystem,
|
194 |
+
pc.JointComponentSystem,
|
195 |
+
pc.AnimationComponentSystem,
|
196 |
+
pc.AnimComponentSystem,
|
197 |
+
pc.ModelComponentSystem,
|
198 |
+
pc.RenderComponentSystem,
|
199 |
+
pc.CameraComponentSystem,
|
200 |
+
pc.LightComponentSystem,
|
201 |
+
pc.script.legacy ? pc.ScriptLegacyComponentSystem : pc.ScriptComponentSystem,
|
202 |
+
pc.AudioSourceComponentSystem,
|
203 |
+
pc.SoundComponentSystem,
|
204 |
+
pc.AudioListenerComponentSystem,
|
205 |
+
pc.ParticleSystemComponentSystem,
|
206 |
+
pc.ScreenComponentSystem,
|
207 |
+
pc.ElementComponentSystem,
|
208 |
+
pc.ButtonComponentSystem,
|
209 |
+
pc.ScrollViewComponentSystem,
|
210 |
+
pc.ScrollbarComponentSystem,
|
211 |
+
pc.SpriteComponentSystem,
|
212 |
+
pc.LayoutGroupComponentSystem,
|
213 |
+
pc.LayoutChildComponentSystem,
|
214 |
+
pc.ZoneComponentSystem,
|
215 |
+
pc.GSplatComponentSystem,
|
216 |
+
].filter(Boolean);
|
217 |
+
|
218 |
+
createOptions.resourceHandlers = [
|
219 |
+
pc.RenderHandler,
|
220 |
+
pc.AnimationHandler,
|
221 |
+
pc.AnimClipHandler,
|
222 |
+
pc.AnimStateGraphHandler,
|
223 |
+
pc.ModelHandler,
|
224 |
+
pc.MaterialHandler,
|
225 |
+
pc.TextureHandler,
|
226 |
+
pc.TextHandler,
|
227 |
+
pc.JsonHandler,
|
228 |
+
pc.AudioHandler,
|
229 |
+
pc.ScriptHandler,
|
230 |
+
pc.SceneHandler,
|
231 |
+
pc.CubemapHandler,
|
232 |
+
pc.HtmlHandler,
|
233 |
+
pc.CssHandler,
|
234 |
+
pc.ShaderHandler,
|
235 |
+
pc.HierarchyHandler,
|
236 |
+
pc.FolderHandler,
|
237 |
+
pc.FontHandler,
|
238 |
+
pc.BinaryHandler,
|
239 |
+
pc.TextureAtlasHandler,
|
240 |
+
pc.SpriteHandler,
|
241 |
+
pc.TemplateHandler,
|
242 |
+
pc.ContainerHandler,
|
243 |
+
pc.GSplatHandler
|
244 |
+
].filter(Boolean);
|
245 |
+
|
246 |
+
createOptions.elementInput = new pc.ElementInput(canvas, {
|
247 |
+
useMouse: INPUT_SETTINGS.useMouse,
|
248 |
+
useTouch: INPUT_SETTINGS.useTouch
|
249 |
+
});
|
250 |
+
createOptions.keyboard = INPUT_SETTINGS.useKeyboard ? new pc.Keyboard(window) : null;
|
251 |
+
createOptions.mouse = INPUT_SETTINGS.useMouse ? new pc.Mouse(canvas) : null;
|
252 |
+
createOptions.gamepads = INPUT_SETTINGS.useGamepads ? new pc.GamePads() : null;
|
253 |
+
createOptions.touch = INPUT_SETTINGS.useTouch && pc.platform.touch ? new pc.TouchDevice(canvas) : null;
|
254 |
+
createOptions.assetPrefix = window.ASSET_PREFIX || '';
|
255 |
+
createOptions.scriptPrefix = window.SCRIPT_PREFIX || '';
|
256 |
+
createOptions.scriptsOrder = window.SCRIPTS || [];
|
257 |
+
createOptions.soundManager = new pc.SoundManager();
|
258 |
+
createOptions.lightmapper = pc.Lightmapper;
|
259 |
+
createOptions.batchManager = pc.BatchManager;
|
260 |
+
createOptions.xr = pc.XrManager;
|
261 |
+
|
262 |
+
app.init(createOptions);
|
263 |
+
return true;
|
264 |
+
|
265 |
+
} catch (e) {
|
266 |
+
displayError('Could not initialize application. Error: ' + e);
|
267 |
+
console.error(e);
|
268 |
+
return false;
|
269 |
+
}
|
270 |
+
}
|
271 |
+
|
272 |
+
function configure() {
|
273 |
+
app.configure(window.CONFIG_FILENAME, (err) => {
|
274 |
+
if (err) {
|
275 |
+
console.error(err);
|
276 |
+
return;
|
277 |
+
}
|
278 |
+
|
279 |
+
initCSS(canvas, app._fillMode, app._width, app._height);
|
280 |
+
|
281 |
+
if (LTC_MAT_1.length && LTC_MAT_2.length && app.setAreaLightLuts.length === 2) {
|
282 |
+
app.setAreaLightLuts(LTC_MAT_1, LTC_MAT_2);
|
283 |
+
}
|
284 |
+
|
285 |
+
// do the first reflow after a timeout because of
|
286 |
+
// iOS showing a squished iframe sometimes
|
287 |
+
setTimeout(() => {
|
288 |
+
pcBootstrap.reflow(app, canvas);
|
289 |
+
pcBootstrap.reflowHandler = function () {
|
290 |
+
pcBootstrap.reflow(app, canvas);
|
291 |
+
};
|
292 |
+
|
293 |
+
window.addEventListener('resize', pcBootstrap.reflowHandler, false);
|
294 |
+
window.addEventListener('orientationchange', pcBootstrap.reflowHandler, false);
|
295 |
+
|
296 |
+
app.preload(() => {
|
297 |
+
app.scenes.loadScene(window.SCENE_PATH, (err) => {
|
298 |
+
if (err) {
|
299 |
+
console.error(err);
|
300 |
+
return;
|
301 |
+
}
|
302 |
+
|
303 |
+
app.start();
|
304 |
+
})
|
305 |
+
})
|
306 |
+
});
|
307 |
+
});
|
308 |
+
}
|
309 |
+
|
310 |
+
function main() {
|
311 |
+
createGraphicsDevice((device) => {
|
312 |
+
if (!device) {
|
313 |
+
return;
|
314 |
+
}
|
315 |
+
|
316 |
+
if (!initApp(device)) {
|
317 |
+
return;
|
318 |
+
}
|
319 |
+
|
320 |
+
if (window.PRELOAD_MODULES.length) {
|
321 |
+
loadModules(window.PRELOAD_MODULES, window.ASSET_PREFIX, () => {
|
322 |
+
configure(() => {
|
323 |
+
console.timeEnd('start');
|
324 |
+
});
|
325 |
+
})
|
326 |
+
} else {
|
327 |
+
configure();
|
328 |
+
}
|
329 |
+
});
|
330 |
+
}
|
331 |
+
main();
|
332 |
+
})(); // Add scope to avoid polluting window scope
|
config.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"application_properties":{"i18nAssets":[],"useTouch":true,"layerOrder":[{"layer":0,"enabled":true,"transparent":false},{"layer":1,"enabled":true,"transparent":false},{"layer":2,"enabled":true,"transparent":false},{"layer":0,"enabled":true,"transparent":true},{"layer":3,"enabled":true,"transparent":false},{"layer":3,"enabled":true,"transparent":true},{"layer":4,"enabled":true,"transparent":true}],"externalScripts":[],"height":720,"vr":false,"useModelV2":false,"antiAlias":true,"layers":{"0":{"transparentSortMode":3,"opaqueSortMode":2,"name":"World"},"1":{"transparentSortMode":3,"opaqueSortMode":2,"name":"Depth"},"2":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Skybox"},"3":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Immediate"},"4":{"transparentSortMode":1,"opaqueSortMode":1,"name":"UI"}},"width":1280,"useDevicePixelRatio":true,"useKeyboard":true,"maxAssetRetries":5,"powerPreference":"high-performance","batchGroups":[],"preserveDrawingBuffer":false,"useLegacyScripts":false,"enableSharedArrayBuffer":false,"fillMode":"FILL_WINDOW","scripts":[229622890,229623301,231069532,231069534,231153551,233252909,233663885,233728142],"useMouse":true,"use3dPhysics":false,"transparentCanvas":false,"resolutionMode":"AUTO","loadingScreenScript":null,"useGamepads":false,"engineV2":true,"editor":{},"libraries":[]},"scenes":[{"name":"Untitled","url":"2241598.json"}],"assets":{"229622863":{"name":"sky_posy.png","type":"texture","file":{"filename":"sky_posy.png","hash":"f11af8966b2e0fe99e343108d777403d","size":170046,"variants":{},"url":"files/assets/229622863/1/sky_posy.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622863"},"229622865":{"name":"sky","type":"cubemap","file":{"filename":"sky.png","size":147883,"hash":"9a07d61f34e67a5e96fb6e579ce5c813","url":"files/assets/229622865/1/sky.png"},"data":{"name":"New Cubemap","textures":[229622870,229622866,229622863,229622869,229622867,229622868],"minFilter":5,"magFilter":1,"anisotropy":1,"rgbm":true},"preload":true,"tags":[],"i18n":{},"id":"229622865"},"229622866":{"name":"sky_negx.png","type":"texture","file":{"filename":"sky_negx.png","hash":"34f64e48aa3125598094e24eeb02d574","size":155167,"variants":{},"url":"files/assets/229622866/1/sky_negx.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622866"},"229622867":{"name":"sky_posz.png","type":"texture","file":{"filename":"sky_posz.png","hash":"53a9aab04b23a2e8f7be2d99115ca09d","size":198593,"variants":{},"url":"files/assets/229622867/1/sky_posz.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622867"},"229622868":{"name":"sky_negz.png","type":"texture","file":{"filename":"sky_negz.png","hash":"2be10e522c5e12bc0b791b48181895b9","size":147065,"variants":{},"url":"files/assets/229622868/1/sky_negz.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622868"},"229622869":{"name":"sky_negy.png","type":"texture","file":{"filename":"sky_negy.png","hash":"ff5cfefbc0d5d485bf9a0b9a31b25810","size":152642,"variants":{},"url":"files/assets/229622869/1/sky_negy.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622869"},"229622870":{"name":"sky_posx.png","type":"texture","file":{"filename":"sky_posx.png","hash":"bb45a6c2eed8c3763777eaed6f44527f","size":172680,"variants":{},"url":"files/assets/229622870/1/sky_posx.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":true,"mipmaps":true,"srgb":false},"preload":true,"tags":[],"i18n":{},"id":"229622870"},"229622890":{"name":"sceneScaffolder.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"sceneScaffolder":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"229622890"},"229623301":{"name":"CameraController.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"orbitCamera":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"229623301"},"231069532":{"name":"sceneScaffolderOriginal.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"sceneScaffolderOriginal":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"231069532"},"231069534":{"name":"sceneScaffolderOrthoOT.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"sceneScaffolderOrthoOt":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"231069534"},"231153551":{"name":"interactionController.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"231153551"},"231387411":{"name":"ammo.js","type":"script","file":{"filename":"ammo.js","size":1895438,"hash":"34480c72ed787337db20c105cb9ba69d","url":"files/assets/231387411/1/ammo.js"},"data":{"order":100,"scripts":{},"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"231387411"},"231387412":{"name":"ammo.wasm.js","type":"script","file":{"filename":"ammo.wasm.js","size":391789,"hash":"6b7ab3989e4f9f17c86e44380f9181c6","url":"files/assets/231387412/1/ammo.wasm.js"},"data":{"order":100,"scripts":{},"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"231387412"},"231387413":{"name":"ammo.wasm.wasm","type":"wasm","file":{"filename":"ammo.wasm.wasm","size":659433,"hash":"a6819ea71a53e67f1dfe3e42957c2971","url":"files/assets/231387413/1/ammo.wasm.wasm"},"data":{"moduleName":"Ammo","glueScriptId":231387412,"fallbackScriptId":231387411,"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"231387413"},"233177358":{"name":"Link for GEMINI chat.txt","type":"text","file":{"filename":"Link for GEMINI chat.txt","size":1,"hash":"68b329da9893e34099c7d8ad5cb9c940","url":"files/assets/233177358/1/Link%20for%20GEMINI%20chat.txt"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"233177358"},"233252909":{"name":"gameManager.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"gameManager":{"attributesOrder":["gameData"],"attributes":{"gameData":{"type":"asset","assetType":"text","title":"Game Data JSON"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"233252909"},"233252911":{"name":"gameData.txt","type":"text","file":{"filename":"gameData.txt","size":10769,"hash":"1393a3cfadb808259906eac7789bc4e8","url":"files/assets/233252911/1/gameData.txt"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"233252911"},"233663885":{"name":"uiController.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"uiController":{"attributesOrder":["descriptionElement","choicesContainer","choiceButtonTemplate"],"attributes":{"descriptionElement":{"type":"entity","title":"Description Text Entity"},"choicesContainer":{"type":"entity","title":"Choices Container Entity"},"choiceButtonTemplate":{"type":"asset","assetType":"template","title":"Choice Button Template"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"233663885"},"233667890":{"name":"Roboto-Regular.ttf","type":"font","file":{"filename":"Roboto-Regular.png","hash":"abcf92f0e0ff7e330802c19de17bbe70","size":96129,"url":"files/assets/233667890/1/Roboto-Regular.png"},"data":{"version":2,"intensity":0,"info":{"face":"Roboto-Regular","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":7.921875,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":8.234375,"xoffset":27.7890625,"yoffset":20.7109375,"scale":1,"range":8,"bounds":[2.5,-0.171875,5.921875,22.75]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":10.234375,"xoffset":26.6640625,"yoffset":11.859375,"scale":1,"range":8,"bounds":[2.125,16.28125,8.546875,24]},"35":{"id":35,"letter":"#","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":19.703125,"xoffset":21.421875,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.859375,0,19.296875,22.75]},"36":{"id":36,"letter":"$","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.0078125,"yoffset":20.40625,"scale":1,"range":8,"bounds":[1.71875,-3.25,16.265625,26.4375]},"37":{"id":37,"letter":"%","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":23.4375,"xoffset":20.15625,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.640625,-0.328125,22.046875,23.078125]},"38":{"id":38,"letter":"&","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":19.890625,"xoffset":21.3125,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.578125,-0.3125,19.796875,23.0625]},"39":{"id":39,"letter":"'","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":5.578125,"xoffset":29.21875,"yoffset":11.7421875,"scale":1,"range":8,"bounds":[1.609375,16.515625,3.953125,24]},"40":{"id":40,"letter":"(","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":10.9375,"xoffset":25.796875,"yoffset":22.8359375,"scale":1,"range":8,"bounds":[2.078125,-7.34375,10.328125,25.671875]},"41":{"id":41,"letter":")","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":11.125,"xoffset":27.2734375,"yoffset":22.8359375,"scale":1,"range":8,"bounds":[0.59375,-7.34375,8.859375,25.671875]},"42":{"id":42,"letter":"*","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":13.78125,"xoffset":25.1171875,"yoffset":15.8671875,"scale":1,"range":8,"bounds":[0.4375,9.515625,13.328125,22.75]},"43":{"id":43,"letter":"+","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":18.140625,"xoffset":22.984375,"yoffset":21.4375,"scale":1,"range":8,"bounds":[1.21875,2.28125,16.8125,18.84375]},"44":{"id":44,"letter":",","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":6.28125,"xoffset":29.3671875,"yoffset":32.5546875,"scale":1,"range":8,"bounds":[0.453125,-4.53125,4.8125,3.421875]},"45":{"id":45,"letter":"-","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":8.828125,"xoffset":27.609375,"yoffset":22.3359375,"scale":1,"range":8,"bounds":[0.578125,8.484375,8.203125,10.84375]},"46":{"id":46,"letter":".","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":8.421875,"xoffset":27.953125,"yoffset":30.453125,"scale":1,"range":8,"bounds":[2.25,-0.171875,5.84375,3.265625]},"47":{"id":47,"letter":"/","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":13.1875,"xoffset":25.734375,"yoffset":21.6015625,"scale":1,"range":8,"bounds":[0.28125,-1.953125,12.25,22.75]},"48":{"id":48,"letter":"0","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.0234375,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.796875,-0.3125,16.15625,23.0625]},"49":{"id":49,"letter":"1","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":24.9765625,"yoffset":20.5703125,"scale":1,"range":8,"bounds":[2.65625,0,11.390625,22.859375]},"50":{"id":50,"letter":"2","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":22.875,"yoffset":20.46875,"scale":1,"range":8,"bounds":[1.453125,0,16.796875,23.0625]},"51":{"id":51,"letter":"3","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.3203125,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.46875,-0.3125,15.890625,23.0625]},"52":{"id":52,"letter":"4","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":22.9609375,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.828125,0,17.25,22.75]},"53":{"id":53,"letter":"5","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":22.4453125,"yoffset":20.78125,"scale":1,"range":8,"bounds":[2.40625,-0.3125,16.703125,22.75]},"54":{"id":54,"letter":"6","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":22.75,"yoffset":20.7734375,"scale":1,"range":8,"bounds":[2.0625,-0.3125,16.4375,22.765625]},"55":{"id":55,"letter":"7","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.109375,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.203125,0,16.578125,22.75]},"56":{"id":56,"letter":"8","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.015625,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.75,-0.3125,16.21875,23.0625]},"57":{"id":57,"letter":"9","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":17.96875,"xoffset":23.28125,"yoffset":20.4765625,"scale":1,"range":8,"bounds":[1.5625,-0.015625,15.875,23.0625]},"58":{"id":58,"letter":":","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":7.75,"xoffset":28.1015625,"yoffset":23.5546875,"scale":1,"range":8,"bounds":[2.09375,-0.171875,5.703125,17.0625]},"59":{"id":59,"letter":";","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":6.765625,"xoffset":29.015625,"yoffset":25.734375,"scale":1,"range":8,"bounds":[0.640625,-4.53125,5.328125,17.0625]},"60":{"id":60,"letter":"<","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":16.265625,"xoffset":24.484375,"yoffset":21.8984375,"scale":1,"range":8,"bounds":[1.125,3.046875,13.90625,17.15625]},"61":{"id":61,"letter":"=","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":17.5625,"xoffset":23.109375,"yoffset":21.265625,"scale":1,"range":8,"bounds":[2.375,6.234375,15.40625,15.234375]},"62":{"id":62,"letter":">","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":16.71875,"xoffset":23.234375,"yoffset":21.8828125,"scale":1,"range":8,"bounds":[2.09375,3.0625,15.4375,17.171875]},"63":{"id":63,"letter":"?","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":15.109375,"xoffset":24.4921875,"yoffset":20.5546875,"scale":1,"range":8,"bounds":[1.171875,-0.171875,13.84375,23.0625]},"64":{"id":64,"letter":"@","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":28.734375,"xoffset":17.4997749775,"yoffset":24.359375,"scale":1,"range":8,"bounds":[1.82147277228,-7.078125,27.1789772727,22.359375]},"65":{"id":65,"letter":"A","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":20.875,"xoffset":21.5546875,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.4375,0,20.453125,22.75]},"66":{"id":66,"letter":"B","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":19.921875,"xoffset":21.6171875,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,18.125,22.75]},"67":{"id":67,"letter":"C","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":20.828125,"xoffset":21.3828125,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.859375,-0.3125,19.375,23.0625]},"68":{"id":68,"letter":"D","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":20.984375,"xoffset":21.1328125,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,19.09375,22.75]},"69":{"id":69,"letter":"E","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":18.1875,"xoffset":22.1328125,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,17.09375,22.75]},"70":{"id":70,"letter":"F","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":17.6875,"xoffset":22.3125,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,16.734375,22.75]},"71":{"id":71,"letter":"G","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":21.796875,"xoffset":21.328125,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.90625,-0.3125,19.4375,23.0625]},"72":{"id":72,"letter":"H","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":22.8125,"xoffset":20.6171875,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,20.125,22.75]},"73":{"id":73,"letter":"I","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":8.703125,"xoffset":27.640625,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.859375,0,5.859375,22.75]},"74":{"id":74,"letter":"J","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":17.65625,"xoffset":23.9921875,"yoffset":20.78125,"scale":1,"range":8,"bounds":[0.828125,-0.3125,15.1875,22.75]},"75":{"id":75,"letter":"K","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":20.0625,"xoffset":20.640625,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,20.078125,22.75]},"76":{"id":76,"letter":"L","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":17.21875,"xoffset":22.4609375,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,16.4375,22.75]},"77":{"id":77,"letter":"M","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":27.9375,"xoffset":18.0390625,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,25.28125,22.75]},"78":{"id":78,"letter":"N","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":22.8125,"xoffset":20.6171875,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,20.125,22.75]},"79":{"id":79,"letter":"O","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":22,"xoffset":21.0078125,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.84375,-0.3125,20.140625,23.0625]},"80":{"id":80,"letter":"P","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":20.1875,"xoffset":21.1796875,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.640625,0,19,22.75]},"81":{"id":81,"letter":"Q","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":22,"xoffset":21.1015625,"yoffset":22.390625,"scale":1,"range":8,"bounds":[1.703125,-3.84375,20.09375,23.0625]},"82":{"id":82,"letter":"R","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":19.703125,"xoffset":21.1171875,"yoffset":20.625,"scale":1,"range":8,"bounds":[2.625,0,19.140625,22.75]},"83":{"id":83,"letter":"S","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":18.984375,"xoffset":22.484375,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.25,-0.3125,17.78125,23.0625]},"84":{"id":84,"letter":"T","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":19.09375,"xoffset":22.4375,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.765625,0,18.359375,22.75]},"85":{"id":85,"letter":"U","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":20.75,"xoffset":21.578125,"yoffset":20.78125,"scale":1,"range":8,"bounds":[2.1875,-0.3125,18.65625,22.75]},"86":{"id":86,"letter":"V","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":20.359375,"xoffset":21.8046875,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.4375,0,19.953125,22.75]},"87":{"id":87,"letter":"W","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":28.390625,"xoffset":17.671875,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.953125,0,27.703125,22.75]},"88":{"id":88,"letter":"X","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":20.0625,"xoffset":21.9453125,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.890625,0,19.21875,22.75]},"89":{"id":89,"letter":"Y","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":19.21875,"xoffset":22.421875,"yoffset":20.625,"scale":1,"range":8,"bounds":[0.234375,0,18.921875,22.75]},"90":{"id":90,"letter":"Z","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":19.15625,"xoffset":22.375,"yoffset":20.625,"scale":1,"range":8,"bounds":[1.34375,0,17.90625,22.75]},"91":{"id":91,"letter":"[","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":8.484375,"xoffset":26.7734375,"yoffset":21.4375,"scale":1,"range":8,"bounds":[2.28125,-4.875,8.171875,26]},"92":{"id":92,"letter":"\\","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":13.125,"xoffset":25.25,"yoffset":21.6015625,"scale":1,"range":8,"bounds":[0.625,-1.953125,12.875,22.75]},"93":{"id":93,"letter":"]","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":8.484375,"xoffset":28.90625,"yoffset":21.4375,"scale":1,"range":8,"bounds":[0.140625,-4.875,6.046875,26]},"94":{"id":94,"letter":"^","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":13.375,"xoffset":25.34375,"yoffset":14.9296875,"scale":1,"range":8,"bounds":[1,11.390625,12.3125,22.75]},"95":{"id":95,"letter":"_","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":14.4375,"xoffset":24.78125,"yoffset":33.1796875,"scale":1,"range":8,"bounds":[0.0625,-2.359375,14.375,0]},"96":{"id":96,"letter":"`","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":9.890625,"xoffset":27.8515625,"yoffset":10.296875,"scale":1,"range":8,"bounds":[0.890625,19.40625,7.40625,24]},"97":{"id":97,"letter":"a","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":17.40625,"xoffset":23.3203125,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.703125,-0.3125,15.65625,17.21875]},"98":{"id":98,"letter":"b","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":17.953125,"xoffset":22.65625,"yoffset":20.15625,"scale":1,"range":8,"bounds":[2.1875,-0.3125,16.5,24]},"99":{"id":99,"letter":"c","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":16.75,"xoffset":23.4375,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.4375,-0.3125,15.6875,17.21875]},"100":{"id":100,"letter":"d","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":18.046875,"xoffset":23.3828125,"yoffset":20.15625,"scale":1,"range":8,"bounds":[1.484375,-0.3125,15.75,24]},"101":{"id":101,"letter":"e","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":16.953125,"xoffset":23.375,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.453125,-0.3125,15.796875,17.21875]},"102":{"id":102,"letter":"f","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":11.109375,"xoffset":25.953125,"yoffset":19.8359375,"scale":1,"range":8,"bounds":[0.9375,0,11.15625,24.328125]},"103":{"id":103,"letter":"g","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":17.953125,"xoffset":23.359375,"yoffset":26.71875,"scale":1,"range":8,"bounds":[1.5,-6.65625,15.78125,17.21875]},"104":{"id":104,"letter":"h","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":17.625,"xoffset":23.1640625,"yoffset":20,"scale":1,"range":8,"bounds":[2.1875,0,15.484375,24]},"105":{"id":105,"letter":"i","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":7.765625,"xoffset":28.0859375,"yoffset":20.46875,"scale":1,"range":8,"bounds":[2.203125,0,5.625,23.0625]},"106":{"id":106,"letter":"j","x":925,"y":265,"width":64,"height":64,"map":0,"xadvance":7.640625,"xoffset":29.8125,"yoffset":23.8828125,"scale":1,"range":8,"bounds":[-1.015625,-6.828125,5.390625,23.0625]},"107":{"id":107,"letter":"k","x":1,"y":331,"width":64,"height":64,"map":0,"xadvance":16.21875,"xoffset":22.8046875,"yoffset":20,"scale":1,"range":8,"bounds":[2.203125,0,16.1875,24]},"108":{"id":108,"letter":"l","x":67,"y":331,"width":64,"height":64,"map":0,"xadvance":7.765625,"xoffset":28.1171875,"yoffset":20,"scale":1,"range":8,"bounds":[2.4375,0,5.328125,24]},"109":{"id":109,"letter":"m","x":133,"y":331,"width":64,"height":64,"map":0,"xadvance":28.046875,"xoffset":17.9765625,"yoffset":23.390625,"scale":1,"range":8,"bounds":[2.171875,0,25.875,17.21875]},"110":{"id":110,"letter":"n","x":199,"y":331,"width":64,"height":64,"map":0,"xadvance":17.65625,"xoffset":23.1640625,"yoffset":23.390625,"scale":1,"range":8,"bounds":[2.1875,0,15.484375,17.21875]},"111":{"id":111,"letter":"o","x":265,"y":331,"width":64,"height":64,"map":0,"xadvance":18.25,"xoffset":22.8828125,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.421875,-0.3125,16.8125,17.21875]},"112":{"id":112,"letter":"p","x":331,"y":331,"width":64,"height":64,"map":0,"xadvance":17.953125,"xoffset":22.671875,"yoffset":26.640625,"scale":1,"range":8,"bounds":[2.1875,-6.5,16.46875,17.21875]},"113":{"id":113,"letter":"q","x":397,"y":331,"width":64,"height":64,"map":0,"xadvance":18.1875,"xoffset":23.390625,"yoffset":26.640625,"scale":1,"range":8,"bounds":[1.484375,-6.5,15.734375,17.21875]},"114":{"id":114,"letter":"r","x":463,"y":331,"width":64,"height":64,"map":0,"xadvance":10.828125,"xoffset":25.7265625,"yoffset":23.390625,"scale":1,"range":8,"bounds":[2.1875,0,10.359375,17.21875]},"115":{"id":115,"letter":"s","x":529,"y":331,"width":64,"height":64,"map":0,"xadvance":16.5,"xoffset":23.796875,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.484375,-0.3125,14.921875,17.21875]},"116":{"id":116,"letter":"t","x":595,"y":331,"width":64,"height":64,"map":0,"xadvance":10.453125,"xoffset":27.2578125,"yoffset":21.65625,"scale":1,"range":8,"bounds":[0.140625,-0.3125,9.34375,21]},"117":{"id":117,"letter":"u","x":661,"y":331,"width":64,"height":64,"map":0,"xadvance":17.640625,"xoffset":23.21875,"yoffset":23.703125,"scale":1,"range":8,"bounds":[2.125,-0.3125,15.4375,16.90625]},"118":{"id":118,"letter":"v","x":727,"y":331,"width":64,"height":64,"map":0,"xadvance":15.5,"xoffset":24.2890625,"yoffset":23.546875,"scale":1,"range":8,"bounds":[0.515625,0,14.90625,16.90625]},"119":{"id":119,"letter":"w","x":793,"y":331,"width":64,"height":64,"map":0,"xadvance":24.046875,"xoffset":20.015625,"yoffset":23.546875,"scale":1,"range":8,"bounds":[0.671875,0,23.296875,16.90625]},"120":{"id":120,"letter":"x","x":859,"y":331,"width":64,"height":64,"map":0,"xadvance":15.859375,"xoffset":24.1015625,"yoffset":23.546875,"scale":1,"range":8,"bounds":[0.640625,0,15.15625,16.90625]},"121":{"id":121,"letter":"y","x":925,"y":331,"width":64,"height":64,"map":0,"xadvance":15.140625,"xoffset":24.453125,"yoffset":26.9609375,"scale":1,"range":8,"bounds":[0.34375,-6.828125,14.75,16.90625]},"122":{"id":122,"letter":"z","x":1,"y":397,"width":64,"height":64,"map":0,"xadvance":15.859375,"xoffset":23.9140625,"yoffset":23.546875,"scale":1,"range":8,"bounds":[1.375,0,14.796875,16.90625]},"123":{"id":123,"letter":"{","x":67,"y":397,"width":64,"height":64,"map":0,"xadvance":10.828125,"xoffset":26.265625,"yoffset":22.3828125,"scale":1,"range":8,"bounds":[1,-5.71875,10.46875,24.953125]},"124":{"id":124,"letter":"|","x":133,"y":397,"width":64,"height":64,"map":0,"xadvance":7.796875,"xoffset":28.1015625,"yoffset":22.734375,"scale":1,"range":8,"bounds":[2.734375,-4.21875,5.0625,22.75]},"125":{"id":125,"letter":"}","x":199,"y":397,"width":64,"height":64,"map":0,"xadvance":10.828125,"xoffset":26.9609375,"yoffset":22.3828125,"scale":1,"range":8,"bounds":[0.296875,-5.71875,9.78125,24.953125]},"126":{"id":126,"letter":"~","x":265,"y":397,"width":64,"height":64,"map":0,"xadvance":21.765625,"xoffset":21.109375,"yoffset":22.59375,"scale":1,"range":8,"bounds":[2.046875,6.28125,19.734375,12.53125]}},"kerning":{"32":{"84":-0.625},"34":{"39":-1.671875,"65":-1.875,"97":-0.78125,"99":-0.921875,"100":-0.921875,"101":-0.921875,"103":-0.921875,"109":-0.3125,"110":-0.3125,"111":-0.953125,"112":-0.3125,"113":-0.921875,"115":-1.25,"119":0.171875},"39":{"34":-1.671875,"65":-1.875,"97":-0.78125,"99":-0.921875,"100":-0.921875,"101":-0.921875,"103":-0.921875,"109":-0.3125,"110":-0.3125,"111":-0.953125,"112":-0.3125,"113":-0.921875,"115":-1.25,"119":0.171875},"40":{"86":0.3125,"87":0.28125,"89":0.34375},"44":{"34":-2.65625,"39":-2.65625},"46":{"34":-2.65625,"39":-2.65625},"65":{"34":-1.875,"39":-1.875,"63":-0.953125,"67":-0.171875,"71":-0.171875,"79":-0.171875,"81":-0.171875,"84":-2.015625,"85":-0.265625,"86":-1.359375,"87":-1.078125,"89":-1.46875,"111":-0.1875,"116":-0.265625,"117":-0.171875,"118":-0.78125,"119":-0.515625,"121":-0.78125,"122":0.1875},"66":{"84":-0.421875,"86":-0.375,"89":-0.859375},"67":{"41":-0.40625,"84":-0.453125,"93":-0.1875,"125":-0.265625},"68":{"44":-1.59375,"46":-1.59375,"65":-0.328125,"84":-0.421875,"86":-0.34375,"88":-0.34375,"89":-0.671875,"90":-0.359375},"69":{"84":0.3125,"99":-0.296875,"100":-0.296875,"101":-0.296875,"102":-0.28125,"103":-0.296875,"111":-0.296875,"113":-0.296875,"117":-0.265625,"118":-0.40625,"119":-0.34375,"121":-0.40625},"70":{"44":-3.65625,"46":-3.65625,"65":-2.65625,"74":-4.125,"84":0.3125,"97":-0.53125,"99":-0.328125,"100":-0.328125,"101":-0.328125,"103":-0.328125,"111":-0.328125,"113":-0.328125,"114":-0.40625,"117":-0.34375,"118":-0.375,"121":-0.375},"72":{"65":0.28125,"84":-0.453125,"88":0.265625,"89":-0.4375},"73":{"65":0.28125,"84":-0.453125,"88":0.265625,"89":-0.4375},"74":{"65":-0.34375},"75":{"45":-1,"67":-0.484375,"71":-0.484375,"79":-0.484375,"81":-0.484375,"99":-0.40625,"100":-0.40625,"101":-0.40625,"103":-0.40625,"109":-0.359375,"110":-0.359375,"111":-0.421875,"112":-0.359375,"113":-0.40625,"117":-0.359375,"118":-0.625,"119":-0.984375,"121":-0.625},"76":{"34":-5.25,"39":-5.25,"65":0.296875,"67":-1.015625,"71":-1.015625,"79":-1.015625,"81":-1.015625,"84":-4.296875,"85":-0.84375,"86":-2.734375,"87":-2.234375,"89":-3.734375,"117":-0.6875,"118":-2.078125,"119":-1.4375,"121":-2.078125},"77":{"65":0.28125,"84":-0.453125,"88":0.265625,"89":-0.4375},"78":{"65":0.28125,"84":-0.453125,"88":0.265625,"89":-0.4375},"79":{"44":-1.59375,"46":-1.59375,"65":-0.328125,"84":-0.421875,"86":-0.34375,"88":-0.34375,"89":-0.671875,"90":-0.359375},"80":{"44":-5.0625,"46":-5.0625,"65":-2.15625,"74":-3.125,"88":-0.484375,"90":-0.40625,"97":-0.171875,"99":-0.203125,"100":-0.203125,"101":-0.203125,"103":-0.203125,"111":-0.203125,"113":-0.203125,"116":0.21875,"118":0.234375,"121":0.234375},"81":{"84":-0.671875,"86":-0.4375,"87":-0.3125,"89":-0.546875},"82":{"84":-1.25,"86":-0.296875,"89":-0.75},"84":{"32":-0.625,"44":-3.40625,"45":-3.625,"46":-3.40625,"65":-1.234375,"67":-0.4375,"71":-0.4375,"74":-3.75,"79":-0.4375,"81":-0.4375,"83":-0.25,"86":0.25,"87":0.234375,"89":0.25,"97":-1.765625,"99":-1.546875,"100":-1.546875,"101":-1.546875,"103":-1.546875,"109":-1.703125,"110":-1.703125,"111":-1.546875,"112":-1.703125,"113":-1.546875,"114":-1.171875,"115":-1.8125,"117":-1.484375,"118":-1.125,"119":-0.890625,"120":-1.203125,"121":-1.125,"122":-0.9375},"85":{"65":-0.34375},"86":{"41":0.3125,"44":-3.515625,"45":-0.578125,"46":-3.515625,"65":-1.171875,"67":-0.203125,"71":-0.203125,"79":-0.203125,"81":-0.203125,"93":0.265625,"97":-0.71875,"99":-0.6875,"100":-0.6875,"101":-0.6875,"103":-0.6875,"111":-0.71875,"113":-0.6875,"114":-0.46875,"117":-0.4375,"118":-0.171875,"121":-0.171875,"125":0.296875},"87":{"41":0.234375,"44":-1.921875,"45":-0.9375,"46":-1.921875,"65":-0.671875,"84":0.21875,"93":0.1875,"97":-0.515625,"99":-0.484375,"100":-0.484375,"101":-0.484375,"103":-0.484375,"111":-0.484375,"113":-0.484375,"114":-0.328125,"117":-0.296875,"125":0.21875},"88":{"45":-0.71875,"67":-0.390625,"71":-0.390625,"79":-0.390625,"81":-0.390625,"86":0.21875,"99":-0.40625,"100":-0.40625,"101":-0.40625,"103":-0.40625,"111":-0.328125,"113":-0.40625,"117":-0.328125,"118":-0.484375,"121":-0.484375},"89":{"38":-0.46875,"41":0.3125,"42":-0.765625,"44":-3.296875,"45":-0.8125,"46":-3.296875,"65":-1.46875,"67":-0.453125,"71":-0.453125,"74":-1.5,"79":-0.453125,"81":-0.453125,"83":-0.25,"84":0.265625,"85":-1.5,"86":0.28125,"87":0.265625,"88":0.203125,"93":0.28125,"97":-1.140625,"99":-1.015625,"100":-1.015625,"101":-1.015625,"102":-0.34375,"103":-1.015625,"109":-0.625,"110":-0.625,"111":-1.015625,"112":-0.625,"113":-1.015625,"114":-0.625,"115":-0.90625,"116":-0.34375,"117":-0.609375,"118":-0.3125,"120":-0.359375,"121":-0.3125,"122":-0.46875,"125":0.296875},"90":{"65":0.203125,"67":-0.40625,"71":-0.40625,"79":-0.40625,"81":-0.40625,"99":-0.328125,"100":-0.328125,"101":-0.328125,"103":-0.328125,"111":-0.328125,"113":-0.328125,"117":-0.296875,"118":-0.421875,"119":-0.421875,"121":-0.421875},"91":{"74":-0.28125,"85":-0.28125},"97":{"34":-1.046875,"39":-1.046875,"118":-0.234375,"121":-0.234375},"98":{"34":-0.453125,"39":-0.453125,"118":-0.171875,"120":-0.234375,"121":-0.171875,"122":-0.234375},"99":{"34":-0.171875,"39":-0.171875},"101":{"34":-0.21875,"39":-0.21875,"118":-0.203125,"121":-0.203125},"102":{"34":0.25,"39":0.25,"41":0.3125,"93":0.28125,"99":-0.375,"100":-0.375,"101":-0.375,"103":-0.375,"113":-0.375,"125":0.296875},"104":{"34":-1.625,"39":-1.625},"107":{"99":-0.3125,"100":-0.3125,"101":-0.3125,"103":-0.3125,"113":-0.3125},"109":{"34":-1.625,"39":-1.625},"110":{"34":-1.625,"39":-1.625},"111":{"34":-2.125,"39":-2.125,"118":-0.234375,"120":-0.328125,"121":-0.234375,"122":-0.25},"112":{"34":-0.453125,"39":-0.453125,"118":-0.171875,"120":-0.234375,"121":-0.171875,"122":-0.234375},"114":{"34":0.25,"39":0.25,"44":-1.921875,"46":-1.921875,"97":-0.625,"99":-0.296875,"100":-0.296875,"101":-0.296875,"102":0.234375,"103":-0.296875,"111":-0.3125,"113":-0.296875,"116":0.78125,"118":0.28125,"119":0.265625,"121":0.28125},"116":{"111":-0.3125},"118":{"34":0.234375,"39":0.234375,"44":-1.671875,"46":-1.671875,"97":-0.234375,"99":-0.203125,"100":-0.203125,"101":-0.203125,"102":0.203125,"103":-0.203125,"111":-0.234375,"113":-0.203125},"119":{"44":-1.9375,"46":-1.9375},"120":{"99":-0.3125,"100":-0.3125,"101":-0.3125,"103":-0.3125,"111":-0.3125,"113":-0.3125},"121":{"34":0.234375,"39":0.234375,"44":-1.671875,"46":-1.671875,"97":-0.234375,"99":-0.203125,"100":-0.203125,"101":-0.203125,"102":0.203125,"103":-0.203125,"111":-0.234375,"113":-0.203125},"122":{"99":-0.25,"100":-0.25,"101":-0.25,"103":-0.25,"111":-0.25,"113":-0.25},"123":{"74":-0.3125,"85":-0.3125}}},"preload":true,"tags":[],"i18n":{},"id":"233667890"},"233667893":{"name":"ChoiceButton_Template","type":"template","file":null,"data":{"entities":{"1efadbcf-af96-4369-82a9-f5eba8baf0f7":{"name":"ChoiceButton_Template","tags":[],"enabled":true,"resource_id":"1efadbcf-af96-4369-82a9-f5eba8baf0f7","parent":null,"children":["73eb8604-08ec-491d-a466-51a0bc96c4a7"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"button":{"enabled":true,"active":true,"imageEntity":"1efadbcf-af96-4369-82a9-f5eba8baf0f7","hitPadding":[0,0,0,0],"transitionMode":0,"hoverTint":[1,1,1,1],"pressedTint":[1,1,1,1],"inactiveTint":[1,1,1,1],"fadeDuration":0,"hoverSpriteAsset":null,"hoverSpriteFrame":0,"pressedSpriteAsset":null,"pressedSpriteFrame":0,"inactiveSpriteAsset":null,"inactiveSpriteFrame":0,"hoverTextureAsset":null,"pressedTextureAsset":null,"inactiveTextureAsset":null},"element":{"enabled":true,"type":"image","anchor":[0.5,0.5,0.5,0.5],"pivot":[0.5,0.5],"text":"","key":null,"fontAsset":null,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":false,"autoFitHeight":false,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[1,1,1],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[-16,-16,-16,-16],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":true,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}},"73eb8604-08ec-491d-a466-51a0bc96c4a7":{"name":"ButtonText","tags":[],"enabled":true,"resource_id":"73eb8604-08ec-491d-a466-51a0bc96c4a7","parent":"1efadbcf-af96-4369-82a9-f5eba8baf0f7","children":[],"position":[16,16,0],"rotation":[0,0,0],"scale":[1,1,1],"components":{"element":{"enabled":true,"type":"text","anchor":[0,0,1,1],"pivot":[0.5,0.5],"text":"Text","key":null,"fontAsset":233667890,"fontSize":32,"minFontSize":8,"maxFontSize":32,"autoFitWidth":true,"autoFitHeight":true,"maxLines":null,"lineHeight":32,"wrapLines":true,"spacing":1,"color":[0,0,0],"opacity":1,"textureAsset":null,"spriteAsset":null,"spriteFrame":0,"pixelsPerUnit":null,"width":32,"height":32,"margin":[0,0,0,0],"alignment":[0.5,0.5],"outlineColor":[0,0,0,1],"outlineThickness":0,"shadowColor":[0,0,0,1],"shadowOffset":[0,0],"rect":[0,0,1,1],"materialAsset":null,"autoWidth":false,"autoHeight":false,"fitMode":"stretch","useInput":false,"batchGroupId":null,"mask":false,"layers":[4],"enableMarkup":false}}}}},"preload":true,"tags":[],"i18n":{},"id":"233667893"},"233728142":{"name":"gameAutoLocationDatabase.js","type":"script","file":{"filename":"__game-scripts.js","size":25352,"hash":"e4d1053521fb8014cdf548efbd8a6917","url":"__game-scripts.js"},"data":{"scripts":{"gameAutoLocationDatabase":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"233728142"}}}
|
files/assets/229622863/1/sky_posy.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622865/1/sky.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622866/1/sky_negx.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622867/1/sky_posz.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622868/1/sky_negz.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622869/1/sky_negy.png
ADDED
![]() |
Git LFS Details
|
files/assets/229622870/1/sky_posx.png
ADDED
![]() |
Git LFS Details
|
files/assets/231387411/1/ammo.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
files/assets/231387412/1/ammo.wasm.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
files/assets/231387413/1/ammo.wasm.wasm
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:772899614f44ea350189c1c7f181c9d76cf6820c3ead129e8e3d3c0f46dc1799
|
3 |
+
size 659433
|
files/assets/233177358/1/Link for GEMINI chat.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
|
files/assets/233252911/1/gameData.txt
ADDED
@@ -0,0 +1,297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"tavern": {
|
3 |
+
"start": {
|
4 |
+
"description": "The air crackles with anticipation as you step into the bustling event planning expo. Caterers offer tantalizing samples, florists boast breathtaking arrangements, and a charismatic DJ promises an unforgettable party atmosphere.",
|
5 |
+
"choices": [
|
6 |
+
"approach the DJ",
|
7 |
+
"sample the catering",
|
8 |
+
"admire the floral displays"
|
9 |
+
],
|
10 |
+
"transitions": {
|
11 |
+
"approach the DJ": "tavern_rumor",
|
12 |
+
"sample the catering": "tavern_grog",
|
13 |
+
"admire the floral displays": "tavern_start"
|
14 |
+
},
|
15 |
+
"consequences": {},
|
16 |
+
"media": []
|
17 |
+
},
|
18 |
+
"rumor": {
|
19 |
+
"description": "The DJ, a master of hype, spins tales of legendary events he's orchestrated. He mentions a client, a mysterious socialite, planning an extravagant masked ball with a budget that could make your career.",
|
20 |
+
"choices": [
|
21 |
+
"express your interest",
|
22 |
+
"dismiss him as a showman"
|
23 |
+
],
|
24 |
+
"transitions": {
|
25 |
+
"express your interest": "tavern_map",
|
26 |
+
"dismiss him as a showman": "tavern_start"
|
27 |
+
},
|
28 |
+
"consequences": {},
|
29 |
+
"media": []
|
30 |
+
},
|
31 |
+
"grog": {
|
32 |
+
"description": "You savor the exquisite flavors of miniature gourmet dishes. The caterer, a true artist, describes their vision for a multi-sensory dining experience.",
|
33 |
+
"choices": [
|
34 |
+
"inquire about their rates",
|
35 |
+
"network with other attendees"
|
36 |
+
],
|
37 |
+
"transitions": {
|
38 |
+
"inquire about their rates": "tavern_grog",
|
39 |
+
"network with other attendees": "tavern_start"
|
40 |
+
},
|
41 |
+
"media": []
|
42 |
+
},
|
43 |
+
"map": {
|
44 |
+
"description": "The DJ, sensing your ambition, offers a tantalizing clue: the socialite is looking for a fresh perspective. He suggests you submit a proposal, highlighting your unique vision.",
|
45 |
+
"choices": [
|
46 |
+
"propose a themed experience",
|
47 |
+
"focus on logistics and budget"
|
48 |
+
],
|
49 |
+
"transitions": {
|
50 |
+
"propose a themed experience": "docks_prepare",
|
51 |
+
"focus on logistics and budget": "tavern_haggle"
|
52 |
+
},
|
53 |
+
"consequences": {},
|
54 |
+
"media": []
|
55 |
+
},
|
56 |
+
"haggle": {
|
57 |
+
"description": "The DJ warns you that the socialite is notoriously demanding. \"She expects perfection,\" he cautions.",
|
58 |
+
"choices": [
|
59 |
+
"assure him you deliver excellence",
|
60 |
+
"reconsider your options"
|
61 |
+
],
|
62 |
+
"transitions": {
|
63 |
+
"assure him you deliver excellence": "docks_prepare",
|
64 |
+
"reconsider your options": "tavern_start"
|
65 |
+
},
|
66 |
+
"consequences": {},
|
67 |
+
"media": []
|
68 |
+
},
|
69 |
+
"fight": {
|
70 |
+
"description": "You overhear another event planner bragging about securing the masked ball contract. Jealousy burns, and you're tempted to challenge their claim.",
|
71 |
+
"choices": [
|
72 |
+
"confront the planner",
|
73 |
+
"stay focused on your goals"
|
74 |
+
],
|
75 |
+
"transitions": {
|
76 |
+
"confront the planner": "tavern_victory",
|
77 |
+
"stay focused on your goals": "tavern_defeat"
|
78 |
+
},
|
79 |
+
"consequences": {},
|
80 |
+
"media": []
|
81 |
+
},
|
82 |
+
"victory": {
|
83 |
+
"description": "You confront the planner, exposing their lies. The truth prevails, and word of your integrity reaches the socialite.",
|
84 |
+
"choices": [
|
85 |
+
"prepare your proposal"
|
86 |
+
],
|
87 |
+
"transitions": {
|
88 |
+
"prepare your proposal": "docks_prepare"
|
89 |
+
},
|
90 |
+
"consequences": {},
|
91 |
+
"media": []
|
92 |
+
},
|
93 |
+
"defeat": {
|
94 |
+
"description": "You decide not to stoop to their level. Trusting your instincts, you continue networking and refining your pitch.",
|
95 |
+
"choices": [
|
96 |
+
"continue networking"
|
97 |
+
],
|
98 |
+
"transitions": {
|
99 |
+
"continue networking": "tavern_start"
|
100 |
+
},
|
101 |
+
"consequences": {},
|
102 |
+
"media": []
|
103 |
+
}
|
104 |
+
},
|
105 |
+
"docks": {
|
106 |
+
"prepare": {
|
107 |
+
"description": "Armed with a killer concept, you retreat to your studio to craft the perfect proposal. It's time to gather your team: the best florists, caterers, entertainers...",
|
108 |
+
"choices": [
|
109 |
+
"contact your florist",
|
110 |
+
"secure a caterer"
|
111 |
+
],
|
112 |
+
"transitions": {
|
113 |
+
"contact your florist": "docks_ship",
|
114 |
+
"secure a caterer": "docks_crew"
|
115 |
+
},
|
116 |
+
"media": []
|
117 |
+
},
|
118 |
+
"ship": {
|
119 |
+
"description": "Your trusted florist presents a stunning array of options, from elegant orchids to whimsical fairy lights. You envision transforming the venue into a magical landscape.",
|
120 |
+
"choices": [
|
121 |
+
"finalize the floral arrangements",
|
122 |
+
"explore additional decor"
|
123 |
+
],
|
124 |
+
"transitions": {
|
125 |
+
"finalize the floral arrangements": "docks_captain",
|
126 |
+
"explore additional decor": "docks_prepare"
|
127 |
+
},
|
128 |
+
"media": []
|
129 |
+
},
|
130 |
+
"crew": {
|
131 |
+
"description": "You browse through portfolios of caterers, each offering a unique culinary experience. The decision is crucial: the food must be as unforgettable as the event itself.",
|
132 |
+
"choices": [
|
133 |
+
"choose a gourmet caterer",
|
134 |
+
"opt for a themed buffet"
|
135 |
+
],
|
136 |
+
"transitions": {
|
137 |
+
"choose a gourmet caterer": "docks_captain",
|
138 |
+
"opt for a themed buffet": "docks_captain"
|
139 |
+
},
|
140 |
+
"consequences": {},
|
141 |
+
"media": []
|
142 |
+
},
|
143 |
+
"captain": {
|
144 |
+
"description": "With each element falling into place, your vision for the masked ball comes alive. The proposal is complete - a masterpiece of creativity and meticulous planning.",
|
145 |
+
"choices": [
|
146 |
+
"submit your proposal"
|
147 |
+
],
|
148 |
+
"transitions": {
|
149 |
+
"submit your proposal": "openSea_start"
|
150 |
+
},
|
151 |
+
"media": []
|
152 |
+
}
|
153 |
+
},
|
154 |
+
"openSea": {
|
155 |
+
"start": {
|
156 |
+
"description": "Days turn into nights as you await a response. The uncertainty is agonizing, your hopes rising and falling with every ring of the phone.",
|
157 |
+
"choices": [
|
158 |
+
"check your emails obsessively",
|
159 |
+
"distract yourself with another project"
|
160 |
+
],
|
161 |
+
"transitions": {
|
162 |
+
"check your emails obsessively": "openSea_storm",
|
163 |
+
"distract yourself with another project": "openSea_mutiny"
|
164 |
+
},
|
165 |
+
"media": []
|
166 |
+
},
|
167 |
+
"storm": {
|
168 |
+
"description": "A wave of despair crashes over you as you receive a generic rejection email. Your carefully crafted proposal, your dreams... dashed.",
|
169 |
+
"choices": [
|
170 |
+
"analyze the email for feedback",
|
171 |
+
"move on to the next opportunity"
|
172 |
+
],
|
173 |
+
"transitions": {
|
174 |
+
"analyze the email for feedback": "openSea_ghostShip",
|
175 |
+
"move on to the next opportunity": "openSea_start"
|
176 |
+
},
|
177 |
+
"media": []
|
178 |
+
},
|
179 |
+
"mutiny": {
|
180 |
+
"description": "Your phone vibrates - an unknown number. Your heart races as you answer. It's the socialite's assistant, and they're impressed.",
|
181 |
+
"choices": [
|
182 |
+
"accept their invitation to meet",
|
183 |
+
"negotiate your terms"
|
184 |
+
],
|
185 |
+
"transitions": {
|
186 |
+
"accept their invitation to meet": "openSea_ghostShip",
|
187 |
+
"negotiate your terms": "openSea_start"
|
188 |
+
},
|
189 |
+
"consequences": {},
|
190 |
+
"media": []
|
191 |
+
},
|
192 |
+
"ghostShip": {
|
193 |
+
"description": "You meet the socialite - an enigmatic figure radiating elegance and power. They're intrigued by your vision, your passion.",
|
194 |
+
"choices": [
|
195 |
+
"present your ideas in detail",
|
196 |
+
"listen to their expectations"
|
197 |
+
],
|
198 |
+
"transitions": {
|
199 |
+
"present your ideas in detail": "ghostShip_deck",
|
200 |
+
"listen to their expectations": "openSea_start"
|
201 |
+
},
|
202 |
+
"media": []
|
203 |
+
}
|
204 |
+
},
|
205 |
+
"ghostShip": {
|
206 |
+
"deck": {
|
207 |
+
"description": "The socialite listens intently as you unveil your plans, their eyes sparkling with approval. They love your innovative concepts, your attention to detail.",
|
208 |
+
"choices": [
|
209 |
+
"discuss the budget and timeline",
|
210 |
+
"negotiate your fee"
|
211 |
+
],
|
212 |
+
"transitions": {
|
213 |
+
"discuss the budget and timeline": "ghostShip_brig",
|
214 |
+
"negotiate your fee": "ghostShip_quarters"
|
215 |
+
},
|
216 |
+
"media": []
|
217 |
+
},
|
218 |
+
"brig": {
|
219 |
+
"description": "Negotiations are swift and decisive. The socialite appreciates your professionalism and agrees to your terms. The masked ball is yours to create!",
|
220 |
+
"choices": [
|
221 |
+
"celebrate your success",
|
222 |
+
"start planning immediately"
|
223 |
+
],
|
224 |
+
"transitions": {
|
225 |
+
"celebrate your success": "ghostShip_clue",
|
226 |
+
"start planning immediately": "ghostShip_treasure"
|
227 |
+
},
|
228 |
+
"media": []
|
229 |
+
},
|
230 |
+
"quarters": {
|
231 |
+
"description": "You secure a contract that exceeds your wildest dreams. The masked ball, a testament to your talent and dedication, will be your masterpiece.",
|
232 |
+
"choices": [
|
233 |
+
"assemble your dream team",
|
234 |
+
"order the first batch of champagne"
|
235 |
+
],
|
236 |
+
"transitions": {
|
237 |
+
"assemble your dream team": "ghostShip_clue",
|
238 |
+
"order the first batch of champagne": "ghostShip_treasure"
|
239 |
+
},
|
240 |
+
"media": []
|
241 |
+
},
|
242 |
+
"clue": {
|
243 |
+
"description": "Excitement courses through you as you share the good news with your team. The best in the business, they're ready to help you execute this extraordinary event.",
|
244 |
+
"choices": [
|
245 |
+
"begin the preparations"
|
246 |
+
],
|
247 |
+
"transitions": {
|
248 |
+
"begin the preparations": "ghostShip_treasure"
|
249 |
+
},
|
250 |
+
"media": []
|
251 |
+
},
|
252 |
+
"treasure": {
|
253 |
+
"description": "Weeks of tireless work culminate in the grand opening of the masked ball. It's a triumph - a symphony of elegance, enchantment, and pure joy.",
|
254 |
+
"choices": [
|
255 |
+
"bask in the glory of your success",
|
256 |
+
"network with potential clients"
|
257 |
+
],
|
258 |
+
"transitions": {
|
259 |
+
"bask in the glory of your success": "ghostShip_victory",
|
260 |
+
"network with potential clients": "openSea_return"
|
261 |
+
},
|
262 |
+
"consequences": {},
|
263 |
+
"media": []
|
264 |
+
},
|
265 |
+
"victory": {
|
266 |
+
"description": "The masked ball becomes legendary, exceeding all expectations. Your name is on everyone's lips, synonymous with unforgettable events.",
|
267 |
+
"choices": [
|
268 |
+
"claim your place as an event icon"
|
269 |
+
],
|
270 |
+
"transitions": {
|
271 |
+
"claim your place as an event icon": "openSea_return"
|
272 |
+
},
|
273 |
+
"consequences": {},
|
274 |
+
"media": []
|
275 |
+
}
|
276 |
+
},
|
277 |
+
"openSea_return": {
|
278 |
+
"return": {
|
279 |
+
"description": "Your star continues to rise as you orchestrate one successful event after another. Your creativity knows no bounds, your reputation solidified.",
|
280 |
+
"choices": [
|
281 |
+
"embrace your destiny as an event maestro"
|
282 |
+
],
|
283 |
+
"transitions": {
|
284 |
+
"embrace your destiny as an event maestro": "end_end"
|
285 |
+
},
|
286 |
+
"media": []
|
287 |
+
}
|
288 |
+
},
|
289 |
+
"end": {
|
290 |
+
"end": {
|
291 |
+
"description": "From humble beginnings at an industry expo, you've become an icon, transforming dreams into dazzling reality. The world is your canvas, and every event is a masterpiece.",
|
292 |
+
"choices": [],
|
293 |
+
"transitions": {},
|
294 |
+
"media": []
|
295 |
+
}
|
296 |
+
}
|
297 |
+
}
|
files/assets/233667890/1/Roboto-Regular.png
ADDED
![]() |
index.html
CHANGED
@@ -1,19 +1,18 @@
|
|
1 |
<!doctype html>
|
2 |
<html>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
</body>
|
19 |
</html>
|
|
|
1 |
<!doctype html>
|
2 |
<html>
|
3 |
+
<head>
|
4 |
+
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover' />
|
5 |
+
<meta charset='utf-8'>
|
6 |
+
<link rel="stylesheet" type="text/css" href="styles.css">
|
7 |
+
<link rel="manifest" href="manifest.json">
|
8 |
+
<style></style>
|
9 |
+
<title>Blank Project</title>
|
10 |
+
<script src="playcanvas-stable.min.js"></script>
|
11 |
+
<script src="__settings__.js"></script>
|
12 |
+
</head>
|
13 |
+
<body>
|
14 |
+
<script src="__modules__.js"></script>
|
15 |
+
<script src="__start__.js"></script>
|
16 |
+
<script src="__loading__.js"></script>
|
17 |
+
</body>
|
|
|
18 |
</html>
|
logo.png
ADDED
![]() |
manifest.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"short_name":"Blank Project","name":"Blank Project","start_url":"","display":"fullscreen","icons":[{"src":"thumbs/180.jpg","sizes":"180x180","type":"image/jpeg"},{"src":"thumbs/360.jpg","sizes":"360x360","type":"image/jpeg"},{"src":"thumbs/540.jpg","sizes":"540x540","type":"image/jpeg"},{"src":"thumbs/720.jpg","sizes":"720x720","type":"image/jpeg"}]}
|
playcanvas-stable.min.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
styles.css
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
html {
|
2 |
+
height: 100%;
|
3 |
+
width: 100%;
|
4 |
+
background-color: #1d292c;
|
5 |
+
}
|
6 |
+
body {
|
7 |
+
margin: 0;
|
8 |
+
max-height: 100%;
|
9 |
+
height: 100%;
|
10 |
+
overflow: hidden;
|
11 |
+
background-color: #1d292c;
|
12 |
+
font-family: Helvetica, arial, sans-serif;
|
13 |
+
position: relative;
|
14 |
+
width: 100%;
|
15 |
+
|
16 |
+
-webkit-tap-highlight-color: transparent;
|
17 |
+
}
|
18 |
+
|
19 |
+
#application-canvas {
|
20 |
+
display: block;
|
21 |
+
position: absolute;
|
22 |
+
top: 0;
|
23 |
+
left: 0;
|
24 |
+
right: 0;
|
25 |
+
bottom: 0;
|
26 |
+
}
|
27 |
+
#application-canvas.fill-mode-NONE {
|
28 |
+
margin: auto;
|
29 |
+
}
|
30 |
+
#application-canvas.fill-mode-KEEP_ASPECT {
|
31 |
+
width: 100%;
|
32 |
+
height: auto;
|
33 |
+
margin: 0;
|
34 |
+
}
|
35 |
+
#application-canvas.fill-mode-FILL_WINDOW {
|
36 |
+
width: 100%;
|
37 |
+
height: 100%;
|
38 |
+
margin: 0;
|
39 |
+
}
|
40 |
+
|
41 |
+
canvas:focus {
|
42 |
+
outline: none;
|
43 |
+
}
|