Dark Place // Platformer

Instructions: Welcome to another platformer: -Sandy- A Platformer! \nPress the WASD arrows to move and get to know some COVID-19 facts too!\nMore levels coming soon! 23rd on trending!\nCheck Out My New Game: \nhttps://scratch.mit.edu/projects/392301219/\n

@Stage\n\n@Guide\n\n@Main\n\nwhen flag clicked\nPreInit\nbroadcast (EngineInit v) and wait\nbroadcast (MyInit v) and wait\nforever\n    OldTime\n    broadcast (update v) and wait\n    Erase\n    broadcast (Predraw v)\n    broadcast (draw v)\n    broadcast (PostDraw v) and wait\n    DeltaTime\nend\n\ndefine PreInit\nset [#fps v] to [?]\nset [color v] effect to (1)\nreset timer\nhide\n\ndefine DeltaTime\nset [#deltatime v] to ((86400) * ((days since 2000) - (~oldTime)))\nset [#fps v] to (round ((1) / (#DeltaTime)))\nif <(#DeltaTime) > (#MaxDeltaTime)> then\n    set [#deltatime v] to (#MaxDeltaTime)\nend\n\ndefine Erase\nerase all\n\ndefine OldTime\nset [~oldtime v] to (days since 2000)\n\nset [#deltatime v] to (#MaxDeltaTime)\n\n@Draw3D\n\nCalc Trig\n\nset [@camerarotatex v] to ((~cameraX_Rot_temp) - (item (~g) of [@gameobject_rotx v]))\n\nSet Ver1 (((~GetX1) * (zrotcos)) - ((~GetY1) * (zrotsin))) (((~GetX1) * (zrotsin)) + ((~GetY1) * (zrotcos))) (~GetZ1)\nset [@cameraz v] to (~GetZ1)\n\ndefine int draw line (x1) (y1) (x2) (y2) (start size) (end size) (x normal) (y normal) (size diff) (x diff) (y diff)\nset [~tempx1 v] to (x1)\nset [~tempy1 v] to (y1)\nif <(start size) > [1]> then\n    set [~temp v] to (start size)\nelse\n    set [~temp v] to [1]\nend\nif <(~temp) < (end size)> then\n    repeat until <((~temp) * (2)) > (end size)>\n        set [~temp2 v] to ((((2) * (~temp)) - (start size)) / (size diff))\n        set [~tempx2 v] to ((x1) + ((x diff) * (~temp2)))\n        set [~tempy2 v] to ((y1) + ((y diff) * (~temp2)))\n        set pen size to (1)\n        go to x: ((~tempX2) - ((~temp) * (x normal))) y: ((~tempY2) - ((~temp) * (y normal)))\n        pen down\n        set pen size to (~temp)\n        go to x: (~tempX1) y: (~tempY1)\n        go to x: ((~tempX2) + ((~temp) * (x normal))) y: ((~tempY2) + ((~temp) * (y normal)))\n        pen up\n        set [~tempx1 v] to (~tempX2)\n        set [~tempy1 v] to (~tempY2)\n        set [~temp v] to ((~temp) * (2))\n    end\n    go to x: ((x2) - (((end size) - (~temp)) * (x normal))) y: ((y2) - (((end size) - (~temp)) * (y normal)))\n    set pen size to (1)\n    pen down\n    set pen size to (~temp)\n    go to x: (~tempX1) y: (~tempY1)\n    go to x: ((x2) + (((end size) - (~temp)) * (x normal))) y: ((y2) + (((end size) - (~temp)) * (y normal)))\n    pen up\n    go to x: (x2) y: (y2)\n    set pen size to (end size)\n    pen down\n    pen up\nend\n\ndefine draw line from x (x1) y (y1) to x (x2) y (y2) start width (start size) end width (end size)\nif <(start size) = (end size)> then\n    go to x: (x1) y: (y1)\n    set pen size to (1)\n    pen down\n    set pen size to (start size)\n    go to x: (x2) y: (y2)\n    pen up\nelse\n    set [~mag v] to (([sqrt v] of ((((x2) - (x1)) * ((x2) - (x1))) + (((y2) - (y1)) * ((y2) - (y1)))) ) * (2))\n    if <(end size) > (start size)> then\n        int draw line (x1) (y1) (x2) (y2) (start size) (end size) (((y2) - (y1)) / (~Mag)) (((x1) - (x2)) / (~Mag)) ((end size) - (start size)) ((x2) - (x1)) ((y2) - (y1))\n    else\n        int draw line (x2) (y2) (x1) (y1) (end size) (start size) (((y1) - (y2)) / (~Mag)) (((x2) - (x1)) / (~Mag)) ((start size) - (end size)) ((x1) - (x2)) ((y1) - (y2))\n    end\nend\n\ndefine GetDrawOrder\ndelete all of [debug v]\ndelete all of [#layervalues v]\ndelete all of [#layerids v]\ndelete all of [#layertype v]\nif <(@EngineUseChunks) = [1]> then\n    GetDrawOrder - GameObjects\n    GetDrawOrder - Sprite3D\n    GetDrawOrder - Line3D\n    GetDrawOrder - Triangle and Quads\n    GetDrawOrder - Text3D\nelse\n    GetDrawOrder - GameObjects - NoChunks\n    GetDrawOrder - Sprite3D - NoChunks\n    GetDrawOrder - Line3D - NoChunks\n    GetDrawOrder - Triangles and Quads - NoChunks\n    GetDrawOrder - Text3D - NoChunks\nend\n\ndefine Add Layer (zvalue) (id) type (type)\nset [~sort_low v] to [0]\nset [~sort_high v] to ((length of [#layervalues v]) - (0))\nrepeat until <not <(~sort_Low) < (~sort_High)>>\n    set [~sort_mid v] to ([floor v] of (((~sort_Low) + (~sort_High)) / (2)) )\n    if <(zvalue) < (item ((~sort_Mid) + (1)) of [#layervalues v])> then\n        set [~sort_low v] to ((~sort_Mid) + (1))\n    else\n        set [~sort_high v] to (~sort_Mid)\n    end\nend\nset [~sort_id v] to ((~sort_Low) + (1))\ninsert (zvalue) at (~sort_Id) of [#layervalues v] \ninsert (id) at (~sort_Id) of [#layerids v] \ninsert (type) at (~sort_Id) of [#layertype v] \n\ndefine Set Ver1 (x) (y) (z)\nset [~getx1 v] to (x)\nset [~gety1 v] to (y)\nset [~getz1 v] to (z)\n\ndefine T_Set Draw Triangle on coords (x1) (y1) (x2) (y2) (x3) (y3) resolution (resolution) styleColor (color) styleBrightness (brightness)\nset [~t_a1 v] to ([sqrt v] of ((((x2) - (x3)) * ((x2) - (x3))) + (((y2) - (y3)) * ((y2) - (y3)))) )\nset [~t_a2 v] to ([sqrt v] of ((((x1) - (x3)) * ((x1) - (x3))) + (((y1) - (y3)) * ((y1) - (y3)))) )\nset [~t_a3 v] to ([sqrt v] of ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2)))) )\nset [~t_s v] to ((1) / ((~T_a1) + ((~T_a2) + (~T_a3))))\nset [~t_cx v] to (((((~T_a1) * (x1)) + ((~T_a2) * (x2))) + ((~T_a3) * (x3))) * (~T_s))\nset [~t_cy v] to (((((~T_a1) * (y1)) + ((~T_a2) * (y2))) + ((~T_a3) * (y3))) * (~T_s))\nset [~t_circlerad v] to ([sqrt v] of (((((~T_a2) + (~T_a3)) - (~T_a1)) * ((((~T_a3) + (~T_a1)) - (~T_a2)) * (((~T_a1) + (~T_a2)) - (~T_a3)))) * (~T_s)) )\nset [~t_vx1 v] to ((~T_cx) - (x1))\nset [~t_vy1 v] to ((~T_cy) - (y1))\nset [~t_vx2 v] to ((~T_cx) - (x2))\nset [~t_vy2 v] to ((~T_cy) - (y2))\nset [~t_vx3 v] to ((~T_cx) - (x3))\nset [~t_vy3 v] to ((~T_cy) - (y3))\nif <<(~T_a1) < (~T_a2)> and <(~T_a1) < (~T_a3)>> then\n    set [~t_vmag v] to ([sqrt v] of (((~T_vx1) * (~T_vx1)) + ((~T_vy1) * (~T_vy1))) )\nelse\n    if <(~T_a2) < (~T_a3)> then\n        set [~t_vmag v] to ([sqrt v] of (((~T_vx2) * (~T_vx2)) + ((~T_vy2) * (~T_vy2))) )\n    else\n        set [~t_vmag v] to ([sqrt v] of (((~T_vx3) * (~T_vx3)) + ((~T_vy3) * (~T_vy3))) )\n    end\nend\nset [~t_r v] to ((((~T_vMag) * (2)) - (~T_CircleRad)) / ((~T_vMag) * (4)))\nset [~t_vmag v] to [1]\ngo to x: (round (~T_cx)) y: (round (~T_cy))\nset pen size to (~T_CircleRad)\npen down\nrepeat ([ceiling v] of (([log v] of ((resolution) / (~T_CircleRad)) ) / ([log v] of (~T_r) )) )\n    set [~t_vmag v] to ((~T_vMag) * (~T_r))\n    set pen size to ((~T_CircleRad) * (~T_vMag))\n    go to x: ((x1) + ((~T_vx1) * (~T_vMag))) y: ((y1) + ((~T_vy1) * (~T_vMag)))\n    go to x: ((x2) + ((~T_vx2) * (~T_vMag))) y: ((y2) + ((~T_vy2) * (~T_vMag)))\n    go to x: ((x3) + ((~T_vx3) * (~T_vMag))) y: ((y3) + ((~T_vy3) * (~T_vMag)))\n    go to x: ((x1) + ((~T_vx1) * (~T_vMag))) y: ((y1) + ((~T_vy1) * (~T_vMag)))\n    change pen (brightness v) by (brightness)\n    change pen (color v) by (color)\nend\nset pen size to ([ceiling v] of ((resolution) * (0.55)) )\ngo to x: (x1) y: (y1)\ngo to x: (x2) y: (y2)\ngo to x: (x3) y: (y3)\ngo to x: (x1) y: (y1)\npen up\n\nwhen I receive [draw v]\nDraw Everything\n\nwhen I receive [engineinit v]\nInit\n\ndefine Init\nhide\nset rotation style [all around v]\n\ndefine Draw Everything\nGetDrawOrder\nset [~i v] to [0]\nrepeat (length of [#layerids v])\n    change [~i v] by (1)\n    if <(item (~i) of [#layertype v]) > [2]> then\n        if <(item (~i) of [#layertype v]) = [3]> then\n            if <(item (~i) of [#layerids v]) < [0]> then\n                Draw World Quad\n            else\n                Draw World Triangle Unit\n            end\n        else\n            Draw World Text3D\n        end\n    else\n        if <(item (~i) of [#layertype v]) = [1]> then\n            Draw World Sprite\n        else\n            if <(item (~i) of [#layertype v]) = [0]> then\n                Draw Mesh\n            else\n                Draw World Line\n            end\n        end\n    end\nend\n\ndefine Rotate Vertex (x) (y) (z)\nSet Ver1 ((x) - (@CameraX)) ((y) - (@CameraY)) ((z) - (@CameraZ))\nSet Ver1 (((~GetZ1) * (#CamSinY)) + ((~GetX1) * (#CamCosY))) (~GetY1) (((~GetZ1) * (#CamCosY)) - ((~GetX1) * (#CamSinY)))\nSet Ver1 (~GetX1) (((~GetY1) * (#CamCosX)) - ((~GetZ1) * (#CamSinX))) (((~GetY1) * (#CamSinX)) + ((~GetZ1) * (#CamCosX)))\nSet Ver1 (((~GetX1) * (#CamCosZ)) - ((~GetY1) * (#CamSinZ))) (((~GetX1) * (#CamSinZ)) + ((~GetY1) * (#CamCosZ))) (~GetZ1)\n\ndefine CalculateVertexes\nif <(item ((~faceVertexN1) + ()) of [~meshvertexstate v]) = [0]> then\n    set [~temp v] to (~faceVertexN1)\n    CalculateOneVertex\nend\nif <(item ((~faceVertexN2) + ()) of [~meshvertexstate v]) = [0]> then\n    set [~temp v] to (~faceVertexN2)\n    CalculateOneVertex\nend\nif <(item ((~faceVertexN3) + ()) of [~meshvertexstate v]) = [0]> then\n    set [~temp v] to (~faceVertexN3)\n    CalculateOneVertex\nend\n\ndefine BackFaceCulling\nset [~return v] to [0]\nif <not <((((~tempX0) / (~Mag)) * (~normalX)) + ((((~tempY0) / (~Mag)) * (~normalY)) + (((~tempZ0) / (~Mag)) * (~normalZ)))) > [0]>> then\n    set [~return v] to [1]\nend\n\ndefine Calc Trig\nset [#camsinx v] to ([sin v] of (@CameraRotateX) )\nset [#camsiny v] to ([sin v] of (@CameraRotateY) )\nset [#camsinz v] to ([sin v] of (@CameraRotateZ) )\nset [#camcosx v] to ([cos v] of (@CameraRotateX) )\nset [#camcosy v] to ([cos v] of (@CameraRotateY) )\nset [#camcosz v] to ([cos v] of (@CameraRotateZ) )\n\ndefine Set Camera Position relative to object (objrotx) (objroty) (objrotz)\nset [~objrotate_sinx v] to ([sin v] of (objrotx) )\nset [~objrotate_cosx v] to ([cos v] of (objrotx) )\nset [~objrotate_siny v] to ([sin v] of (objroty) )\nset [~objrotate_cosy v] to ([cos v] of (objroty) )\nset [~objrotate_sinz v] to ([sin v] of (objrotz) )\nset [~objrotate_cosz v] to ([cos v] of (objrotz) )\nSet Rot [C]\nSet Rot [O]\nSet Rot [R]\nSet Rot [D]\nset [~cameraxtemp v] to ((~RdetX) / (~Rdet))\nset [~cameraytemp v] to ((~RdetY) / (~Rdet))\nset [~cameraztemp v] to ((~RdetZ) / (~Rdet))\nset [~sinx v] to (~Rzy)\nset [~cosx v] to ([sqrt v] of ((1) - ((~sinX) * (~sinX))) )\nset [~siny v] to (() - ((~Rzx) / (~cosX)))\nset [~cosy v] to ((~Rzz) / (~cosX))\nset [~sinz v] to (() - ((~Rxy) / (~cosX)))\nset [~cosz v] to ((~Ryy) / (~cosX))\n\ndefine CalculateOneVertex\nif <(item ((~temp) + ()) of [~meshvertexstate v]) = [0]> then\n    RotateVertexTemp ((item (~getGameObjectID) of [@gameobjectsizex v]) * (item ((~temp) + (~vertexADD)) of [#vertex_x v])) ((item (~getGameObjectID) of [@gameobjectsizey v]) * (item ((~temp) + (~vertexADD)) of [#vertex_y v])) ((item (~getGameObjectID) of [@gameobjectsizez v]) * (item ((~temp) + (~vertexADD)) of [#vertex_z v]))\n    replace item ((~temp) + ()) of [~meshvertexx v] with ((@FocalLength) * ((~GetX1) / (~GetZ1)))\n    replace item ((~temp) + ()) of [~meshvertexy v] with ((@FocalLength) * ((~GetY1) / (~GetZ1)))\n    if <(~GetZ1) > (#MinCameraDist)> then\n        replace item ((~temp) + ()) of [~meshvertexstate v] with [1]\n    else\n        replace item ((~temp) + ()) of [~meshvertexstate v] with [2]\n    end\nend\n\ndefine RotateLight - gameObjID (id)\nreplace item (((id) * (3)) - (2)) of [#gameobjectlightdata v] with ((((#LightX) * (~xxOO)) + ((#LightY) * (~yxOO))) + ((#LightZ) * (~zxOO)))\nreplace item (((id) * (3)) - (1)) of [#gameobjectlightdata v] with ((((#LightX) * (~xyOO)) + ((#LightY) * (~yyOO))) + ((#LightZ) * (~zyOO)))\nreplace item ((id) * (3)) of [#gameobjectlightdata v] with ((((#LightX) * (~xzOO)) + ((#LightY) * (~yzOO))) + ((#LightZ) * (~zzOO)))\n\ndefine GetDrawOrder - GameObjects\nset [~g v] to [0]\nrepeat (length of [#chunkactive_gameobject v])\n    change [~g v] by (1)\n    set [~getgameobjectid v] to (item (~g) of [#chunkactive_gameobject v])\n    if <(item (~getGameObjectID) of [@gameobjectactive v]) = [1]> then\n        set [~cameraxtemp v] to ((@CameraX) - ((item (~getGameObjectID) of [@gameobjectx v]) + (item (((~getGameObjectID) * (3)) - (2)) of [@gameobjectdrawoffset v])))\n        set [~cameraytemp v] to ((@CameraY) - ((item (~getGameObjectID) of [@gameobjecty v]) + (item (((~getGameObjectID) * (3)) - (1)) of [@gameobjectdrawoffset v])))\n        set [~cameraztemp v] to ((@CameraZ) - ((item (~getGameObjectID) of [@gameobjectz v]) + (item ((~getGameObjectID) * (3)) of [@gameobjectdrawoffset v])))\n        set [~mag v] to ([sqrt v] of (((~cameraXtemp) * (~cameraXtemp)) + (((~cameraYtemp) * (~cameraYtemp)) + ((~cameraZtemp) * (~cameraZtemp)))) )\n        if <(~Mag) < (@ViewRange)> then\n            Add Layer (~Mag) (~getGameObjectID) type [0]\n        end\n    end\nend\n\ndefine GetDrawOrder - Sprite3D\nset [~s v] to [0]\nrepeat (length of [#chunkactive_sprites v])\n    change [~s v] by (1)\n    set [~getspriteid v] to (item (~s) of [#chunkactive_sprites v])\n    if <(item (~getSpriteID) of [@sprite3d_active v]) = [1]> then\n        set [~tempx0 v] to ((item (~getSpriteID) of [@sprite3d_x v]) - (@CameraX))\n        set [~tempy0 v] to ((item (~getSpriteID) of [@sprite3d_y v]) - (@CameraY))\n        set [~tempz0 v] to ((item (~getSpriteID) of [@sprite3d_z v]) - (@CameraZ))\n        set [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\n        if <(~Mag) < (@ViewRange)> then\n            replace item (~getSpriteID) of [#sprite3d_distcamera v] with (~Mag)\n            Add Layer (~Mag) (~getSpriteID) type [1]\n        end\n    end\nend\n\ndefine Draw Mesh\nset size to (100000) %\nset [~getgameobjectid v] to (item (~i) of [#layerids v])\nset [~cameraxtemp v] to ((@CameraX) - (item (~getGameObjectID) of [@gameobjectx v]))\nset [~cameraytemp v] to ((@CameraY) - (item (~getGameObjectID) of [@gameobjecty v]))\nset [~cameraztemp v] to ((@CameraZ) - (item (~getGameObjectID) of [@gameobjectz v]))\nSet Camera Position relative to object (item (~getGameObjectID) of [@gameobject_rotx v]) (item (~getGameObjectID) of [@gameobject_roty v]) (item (~getGameObjectID) of [@gameobject_rotz v])\nRotateLight - gameObjID (~getGameObjectID)\ndelete all of [~meshvertexx v]\ndelete all of [~meshvertexy v]\ndelete all of [~meshvertexstate v]\ndelete all of [~meshlayervalue v]\ndelete all of [~meshlayerid v]\nrepeat ((item ((item (~getGameObjectID) of [@gameobjectmeshid v]) + (1)) of [#vertexescount v]) - (item (item (~getGameObjectID) of [@gameobjectmeshid v]) of [#vertexescount v]))\n    add [0] to [~meshvertexx v]\n    add [0] to [~meshvertexy v]\n    add [0] to [~meshvertexstate v]\nend\nset [~vertexadd v] to (item (item (~getGameObjectID) of [@gameobjectmeshid v]) of [#vertexescount v])\nset [~faceadd v] to ((item (item (~getGameObjectID) of [@gameobjectmeshid v]) of [#facescount v]) / (3))\nset [~normaladd v] to (item (item (~getGameObjectID) of [@gameobjectmeshid v]) of [#normalscount v])\nset [~mtr v] to (~faceADD)\nrepeat (((item ((item (~getGameObjectID) of [@gameobjectmeshid v]) + (1)) of [#facescount v]) - (item (item (~getGameObjectID) of [@gameobjectmeshid v]) of [#facescount v])) / (3))\n    set [~facevertexn1 v] to (item (((~mTr) * (3)) + (1)) of [#meshfacedata v])\n    set [~facevertexn2 v] to (item (((~mTr) * (3)) + (2)) of [#meshfacedata v])\n    set [~facevertexn3 v] to (item (((~mTr) * (3)) + (3)) of [#meshfacedata v])\n    set [~tempx0 v] to ((((((item ((~faceVertexN1) + (~vertexADD)) of [#vertex_x v]) + (item ((~faceVertexN2) + (~vertexADD)) of [#vertex_x v])) + (item ((~faceVertexN3) + (~vertexADD)) of [#vertex_x v])) / (3)) * (item (~getGameObjectID) of [@gameobjectsizex v])) - (~cameraXtemp))\n    set [~tempy0 v] to ((((((item ((~faceVertexN1) + (~vertexADD)) of [#vertex_y v]) + (item ((~faceVertexN2) + (~vertexADD)) of [#vertex_y v])) + (item ((~faceVertexN3) + (~vertexADD)) of [#vertex_y v])) / (3)) * (item (~getGameObjectID) of [@gameobjectsizey v])) - (~cameraYtemp))\n    set [~tempz0 v] to ((((((item ((~faceVertexN1) + (~vertexADD)) of [#vertex_z v]) + (item ((~faceVertexN2) + (~vertexADD)) of [#vertex_z v])) + (item ((~faceVertexN3) + (~vertexADD)) of [#vertex_z v])) / (3)) * (item (~getGameObjectID) of [@gameobjectsizez v])) - (~cameraZtemp))\n    set [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\n    if <(~Mag) < (@ViewRange)> then\n        CalculateVertexes\n        if <<(item (~faceVertexN1) of [~meshvertexstate v]) < [2]> and <<(item (~faceVertexN2) of [~meshvertexstate v]) < [2]> and <(item (~faceVertexN3) of [~meshvertexstate v]) < [2]>>> then\n            set [~normalx v] to (item ((((item ((~mTr) + (1)) of [#pointertonormal v]) * (3)) + (-2)) + (~normalAdd)) of [#meshnormal v])\n            set [~normaly v] to (item ((((item ((~mTr) + (1)) of [#pointertonormal v]) * (3)) + (-1)) + (~normalAdd)) of [#meshnormal v])\n            set [~normalz v] to (item ((((item ((~mTr) + (1)) of [#pointertonormal v]) * (3)) + (0)) + (~normalAdd)) of [#meshnormal v])\n            if <(item (~getGameObjectID) of [@gameobjectbackfaceculling v]) = [1]> then\n                BackFaceCulling\n                if <not <(~return) = [0]>> then\n                    Add Mesh Layer (~Mag) (~mTr)\n                end\n            else\n                Add Mesh Layer (~Mag) (~mTr)\n            end\n        end\n    end\n    change [~mtr v] by (1)\nend\nDraw Mesh Triangles\n\ndefine Draw World Sprite\nset [~getspriteid v] to (item (~i) of [#layerids v])\nRotate Vertex (item (~getSpriteID) of [@sprite3d_x v]) (item (~getSpriteID) of [@sprite3d_y v]) (item (~getSpriteID) of [@sprite3d_z v])\nif <(~GetZ1) > (#MinCameraDist)> then\n    set [brightness v] effect to (0)\n    set [color v] effect to (0)\n    set size to (100000) %\n    go to x: ((@FocalLength) * ((~GetX1) / (~GetZ1))) y: ((@FocalLength) * ((~GetY1) / (~GetZ1)))\n    switch costume to (item (~getSpriteID) of [@sprite3d_costumename v])\n    set [ghost v] effect to (item (~getSpriteID) of [@sprite3d_alpha v])\n    set size to (((item (~getSpriteID) of [@sprite3d_size v]) * (@FocalLength)) / (item (~getSpriteID) of [#sprite3d_distcamera v])) %\n    point in direction (((90) - (@CameraRotateZ)) + (item (~getSpriteID) of [@sprite3d_rotation v]))\n    stamp\nend\n\ndefine GetDrawOrder - Line3D\nset [~s v] to [0]\nrepeat (length of [#chunkactive_lines v])\n    change [~s v] by (1)\n    set [~getlineid v] to (item (~s) of [#chunkactive_lines v])\n    if <(item (~getLineID) of [@lineactive v]) = [1]> then\n        set [~tempx0 v] to ((((item (~getLineID) of [@linesx2 v]) + (item (~getLineID) of [@linesx2 v])) / (2)) - (@CameraX))\n        set [~tempy0 v] to ((((item (~getLineID) of [@linesy1 v]) + (item (~getLineID) of [@linesy2 v])) / (2)) - (@CameraY))\n        set [~tempz0 v] to ((((item (~getLineID) of [@linesz1 v]) + (item (~getLineID) of [@linesz2 v])) / (2)) - (@CameraZ))\n        set [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\n        Distance Point (@CameraX) (@CameraY) (@CameraZ) to line segment (item (~getLineID) of [@linesx1 v]) (item (~getLineID) of [@linesy1 v]) (item (~getLineID) of [@linesz1 v]) | (item (~getLineID) of [@linesx2 v]) (item (~getLineID) of [@linesy2 v]) (item (~getLineID) of [@linesz2 v])\n        if <(~Mag) < (@ViewRange)> then\n            GetDistanceModulus ((((item (~getLineID) of [@linesx1 v]) + (item (~getLineID) of [@linesx2 v])) / (2)) - (@CameraX)) ((((item (~getLineID) of [@linesy1 v]) + (item (~getLineID) of [@linesy2 v])) / (2)) - (@CameraY)) ((((item (~getLineID) of [@linesz1 v]) + (item (~getLineID) of [@linesz2 v])) / (2)) - (@CameraZ))\n            replace item (~getLineID) of [#line3d_distcamera v] with (~Mag)\n            Add Layer (~Mag) (~getLineID) type [2]\n        end\n    end\nend\n\ndefine Draw World Line\nset [~getlineid v] to (item (~i) of [#layerids v])\nRotate Vertex (item (~getLineID) of [@linesx1 v]) (item (~getLineID) of [@linesy1 v]) (item (~getLineID) of [@linesz1 v])\nset [~tempx0 v] to (~GetX1)\nset [~tempy0 v] to (~GetY1)\nset [~tempz0 v] to (~GetZ1)\nRotate Vertex (item (~getLineID) of [@linesx2 v]) (item (~getLineID) of [@linesy2 v]) (item (~getLineID) of [@linesz2 v])\nif <<(~tempZ0) > (#MinCameraDist)> and <(~GetZ1) > (#MinCameraDist)>> then\n    switch costume to (size v)\n    set size to (100000) %\n    switch costume to (full v)\n    set pen size to (((item (~getLineID) of [@linesize v]) * (@FocalLength)) / (item (~getLineID) of [#line3d_distcamera v]))\n    set pen color to (item (~getLineID) of [@linecolor v])\n    set [~tempx1 v] to ((item (~getLineID) of [@linesx1 v]) - (@CameraX))\n    set [~tempy1 v] to ((item (~getLineID) of [@linesy1 v]) - (@CameraY))\n    set [~tempz1 v] to ((item (~getLineID) of [@linesz1 v]) - (@CameraZ))\n    set [~mag v] to ([sqrt v] of ((((~tempX1) * (~tempX1)) + ((~tempY1) * (~tempY1))) + ((~tempZ1) * (~tempZ1))) )\n    set [~tempx1 v] to ((item (~getLineID) of [@linesx2 v]) - (@CameraX))\n    set [~tempy1 v] to ((item (~getLineID) of [@linesy2 v]) - (@CameraY))\n    set [~tempz1 v] to ((item (~getLineID) of [@linesz2 v]) - (@CameraZ))\n    set [~mag2 v] to ([sqrt v] of ((((~tempX1) * (~tempX1)) + ((~tempY1) * (~tempY1))) + ((~tempZ1) * (~tempZ1))) )\n    draw line from x ((@FocalLength) * ((~tempX0) / (~tempZ0))) y ((@FocalLength) * ((~tempY0) / (~tempZ0))) to x ((@FocalLength) * ((~GetX1) / (~GetZ1))) y ((@FocalLength) * ((~GetY1) / (~GetZ1))) start width (((item (~getLineID) of [@linesize v]) * (@FocalLength)) / (~Mag)) end width (((item (~getLineID) of [@linesize v]) * (@FocalLength)) / (~Mag2))\nend\n\ngo to x: (-124) y: (10)\npen down\ngo to x: (-124) y: (10)\npen up\n\ndefine Distance Point (vx) (vy) (vz) to line segment (ax) (ay) (az) | (bx) (by) (bz)\nset [~abx v] to ((bx) - (ax))\nset [~aby v] to ((by) - (ay))\nset [~abz v] to ((bz) - (az))\nset [~avx v] to ((vx) - (ax))\nset [~avy v] to ((vy) - (ay))\nset [~avz v] to ((vz) - (az))\nif <not <(((~avX) * (~abX)) + (((~avY) * (~abY)) + ((~avZ) * (~abZ)))) > [0]>> then\n    GetDistanceModulus (~avX) (~avY) (~avZ)\n    stop [this script v]\nend\nset [~bvx v] to ((vx) - (bx))\nset [~bvy v] to ((vy) - (by))\nset [~bvz v] to ((vz) - (bz))\nif <not <(((~bvX) * (~abX)) + (((~bvY) * (~abY)) + ((~bvZ) * (~abZ)))) < [0]>> then\n    GetDistanceModulus (~bvX) (~bvY) (~bvZ)\n    stop [this script v]\nend\nset [~tempx0 v] to (((~abY) * (~avZ)) - ((~abZ) * (~avY)))\nset [~tempy0 v] to (((~abZ) * (~avX)) - ((~abX) * (~avZ)))\nset [~tempz0 v] to (((~abX) * (~avY)) - ((~abY) * (~avX)))\nGetDistanceModulus (~abX) (~abY) (~abZ)\nset [~temp v] to (~Mag)\nGetDistanceModulus (~tempX0) (~tempY0) (~tempZ0)\nset [~mag v] to ((~Mag) / (~temp))\n\ndefine GetDistanceModulus (x) (y) (z)\nset [~mag v] to ([sqrt v] of (((x) * (x)) + (((y) * (y)) + ((z) * (z)))) )\n\ndefine RotateVertexTemp (x) (y) (z)\nSet Ver1 ((x) - (~cameraXtemp)) ((y) - (~cameraYtemp)) ((z) - (~cameraZtemp))\nSet Ver1 (((~GetZ1) * (~sinY)) + ((~GetX1) * (~cosY))) (~GetY1) (((~GetZ1) * (~cosY)) - ((~GetX1) * (~sinY)))\nSet Ver1 (~GetX1) (((~GetY1) * (~cosX)) - ((~GetZ1) * (~sinX))) (((~GetY1) * (~sinX)) + ((~GetZ1) * (~cosX)))\nSet Ver1 (((~GetX1) * (~cosZ)) - ((~GetY1) * (~sinZ))) (((~GetX1) * (~sinZ)) + ((~GetY1) * (~cosZ))) (~GetZ1)\n\ndefine Set Rot [C]\nset [~xxc v] to (((#CamCosY) * (#CamCosZ)) - ((#CamSinX) * ((#CamSinY) * (#CamSinZ))))\nset [~xyc v] to (() - ((#CamCosX) * (#CamSinZ)))\nset [~xzc v] to (((#CamSinY) * (#CamCosZ)) + ((#CamSinX) * ((#CamCosY) * (#CamSinZ))))\nset [~yxc v] to (((#CamCosY) * (#CamSinZ)) + ((#CamSinX) * ((#CamSinY) * (#CamCosZ))))\nset [~yyc v] to ((#CamCosX) * (#CamCosZ))\nset [~yzc v] to (((#CamSinY) * (#CamSinZ)) - ((#CamSinX) * ((#CamCosY) * (#CamCosZ))))\nset [~zxc v] to (() - ((#CamCosX) * (#CamSinY)))\nset [~zyc v] to (#CamSinX)\nset [~zzc v] to ((#CamCosX) * (#CamCosY))\n\ndefine Set Rot [O]\nset [~xxoo v] to (((~objRotate_CosY) * (~objRotate_CosZ)) - ((~objRotate_SinX) * ((~objRotate_SinY) * (~objRotate_SinZ))))\nset [~xyoo v] to (() - ((~objRotate_CosX) * (~objRotate_SinZ)))\nset [~xzoo v] to (((~objRotate_SinY) * (~objRotate_CosZ)) + ((~objRotate_SinX) * ((~objRotate_CosY) * (~objRotate_SinZ))))\nset [~yxoo v] to (((~objRotate_CosY) * (~objRotate_SinZ)) + ((~objRotate_SinX) * ((~objRotate_SinY) * (~objRotate_CosZ))))\nset [~yyoo v] to ((~objRotate_CosX) * (~objRotate_CosZ))\nset [~yzoo v] to (((~objRotate_SinY) * (~objRotate_SinZ)) - ((~objRotate_SinX) * ((~objRotate_CosY) * (~objRotate_CosZ))))\nset [~zxoo v] to (() - ((~objRotate_CosX) * (~objRotate_SinY)))\nset [~zyoo v] to (~objRotate_SinX)\nset [~zzoo v] to ((~objRotate_CosX) * (~objRotate_CosY))\n\ndefine Set Rot [R]\nset [~rxx v] to (((~xxC) * (~xxOO)) + (((~xyC) * (~yxOO)) + ((~xzC) * (~zxOO))))\nset [~rxy v] to (((~xxC) * (~xyOO)) + (((~xyC) * (~yyOO)) + ((~xzC) * (~zyOO))))\nset [~rxz v] to (((~xxC) * (~xzOO)) + (((~xyC) * (~yzOO)) + ((~xzC) * (~zzOO))))\nset [~ryx v] to (((~yxC) * (~xxOO)) + (((~yyC) * (~yxOO)) + ((~yzC) * (~zxOO))))\nset [~ryy v] to (((~yxC) * (~xyOO)) + (((~yyC) * (~yyOO)) + ((~yzC) * (~zyOO))))\nset [~ryz v] to (((~yxC) * (~xzOO)) + (((~yyC) * (~yzOO)) + ((~yzC) * (~zzOO))))\nset [~rzx v] to (((~zxC) * (~xxOO)) + (((~zyC) * (~yxOO)) + ((~zzC) * (~zxOO))))\nset [~rzy v] to (((~zxC) * (~xyOO)) + (((~zyC) * (~yyOO)) + ((~zzC) * (~zyOO))))\nset [~rzz v] to (((~zxC) * (~xzOO)) + (((~zyC) * (~yzOO)) + ((~zzC) * (~zzOO))))\n\ndefine Set Rot [D]\nset [~rx v] to (((~xxC) * (~cameraXtemp)) + (((~xyC) * (~cameraYtemp)) + ((~xzC) * (~cameraZtemp))))\nset [~ry v] to (((~yxC) * (~cameraXtemp)) + (((~yyC) * (~cameraYtemp)) + ((~yzC) * (~cameraZtemp))))\nset [~rz v] to (((~zxC) * (~cameraXtemp)) + (((~zyC) * (~cameraYtemp)) + ((~zzC) * (~cameraZtemp))))\nset [~rdet v] to ((((~Rxx) * ((~Ryy) * (~Rzz))) + (((~Rxy) * ((~Ryz) * (~Rzx))) + ((~Rxz) * ((~Ryx) * (~Rzy))))) - (((~Rxz) * ((~Ryy) * (~Rzx))) + (((~Rxx) * ((~Ryz) * (~Rzy))) + ((~Rxy) * ((~Ryx) * (~Rzz))))))\nset [~rdetx v] to ((((~Rx) * ((~Ryy) * (~Rzz))) + (((~Rxy) * ((~Ryz) * (~Rz))) + ((~Rxz) * ((~Ry) * (~Rzy))))) - (((~Rxz) * ((~Ryy) * (~Rz))) + (((~Rx) * ((~Ryz) * (~Rzy))) + ((~Rxy) * ((~Ry) * (~Rzz))))))\nset [~rdety v] to ((((~Rxx) * ((~Ry) * (~Rzz))) + (((~Rx) * ((~Ryz) * (~Rzx))) + ((~Rxz) * ((~Ryx) * (~Rz))))) - (((~Rxz) * ((~Ry) * (~Rzx))) + (((~Rxx) * ((~Ryz) * (~Rz))) + ((~Rx) * ((~Ryx) * (~Rzz))))))\nset [~rdetz v] to ((((~Rxx) * ((~Ryy) * (~Rz))) + (((~Rxy) * ((~Ry) * (~Rzx))) + ((~Rx) * ((~Ryx) * (~Rzy))))) - (((~Rx) * ((~Ryy) * (~Rzx))) + (((~Rxx) * ((~Ry) * (~Rzy))) + ((~Rxy) * ((~Ryx) * (~Rz))))))\n\ndefine GetDrawOrder - Triangle and Quads\nset [~s v] to [1]\nrepeat (length of [#chunkactive_triangles v])\n    set [~gettriangleid v] to (item (~s) of [#chunkactive_triangles v])\n    set [~t v] to (((~getTriangleID) - (1)) * (`TriangleDataPerInst))\n    if <(item (~getTriangleID) of [#triangleisquad v]) = [0]> then\n        if <(item (~getTriangleID) of [@triangle_active v]) = [1]> then\n            Sorting triangle units\n            if <(~Mag) < (@ViewRange)> then\n                Add Layer (~Mag) ((~getTriangleID) - (1)) type [3]\n            end\n        end\n    else\n        if <(item (~getTriangleID) of [@triangle_active v]) = [1]> then\n            Sorting Quads\n            if <(~Mag) < (@ViewRange)> then\n                Add Layer (~Mag) ((0) - (~getTriangleID)) type [3]\n            end\n        end\n    end\n    change [~s v] by (1)\nend\n\ndefine Draw World Triangle Unit\nset [~gettriangleid v] to ((item (~i) of [#layerids v]) + (1))\nset [~gettriangleidadd v] to ((item (~i) of [#layerids v]) * (`TriangleDataPerInst))\nRotate Vertex (item ((~getTriangleIDAdd) + (1)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (2)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (3)) of [#triangledata v])\nset [~tempx0 v] to (~GetX1)\nset [~tempy0 v] to (~GetY1)\nset [~tempz0 v] to (~GetZ1)\nRotate Vertex (item ((~getTriangleIDAdd) + (4)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (5)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (6)) of [#triangledata v])\nset [~tempx2 v] to (~GetX1)\nset [~tempy2 v] to (~GetY1)\nset [~tempz2 v] to (~GetZ1)\nRotate Vertex (item ((~getTriangleIDAdd) + (7)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (8)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (9)) of [#triangledata v])\nif <<<(~tempZ0) > ((#MinCameraDist) * (0))> and <(~tempZ2) > ((#MinCameraDist) * (0))>> and <(~GetZ1) > ((#MinCameraDist) * (0))>> then\n    set [~lightchange v] to ((((item ((~getTriangleIDAdd) + (10)) of [#triangledata v]) * (#LightX)) + ((item ((~getTriangleIDAdd) + (11)) of [#triangledata v]) * (#LightY))) + ((item ((~getTriangleIDAdd) + (12)) of [#triangledata v]) * (#LightZ)))\n    set [~lightchange v] to ((20) + ((50) * ((~lightChange) * ((<((((item ((~getTriangleIDAdd) + (14)) of [#triangledata v]) - (@CameraX)) * (item ((~getTriangleIDAdd) + (10)) of [#triangledata v])) + ((((item ((~getTriangleIDAdd) + (15)) of [#triangledata v]) - (@CameraY)) * (item ((~getTriangleIDAdd) + (11)) of [#triangledata v])) + (((item ((~getTriangleIDAdd) + (16)) of [#triangledata v]) - (@CameraZ)) * (item ((~getTriangleIDAdd) + (12)) of [#triangledata v])))) < [0]> * (2)) - (1)))))\n    switch costume to (size v)\n    set size to (100000) %\n    switch costume to (full v)\n    set pen color to (item (~getTriangleID) of [@trianglecolor v])\n    change pen (brightness v) by (~lightChange)\n    T_Set Draw Triangle on coords ((@FocalLength) * ((~tempX0) / (~tempZ0))) ((@FocalLength) * ((~tempY0) / (~tempZ0))) ((@FocalLength) * ((~tempX2) / (~tempZ2))) ((@FocalLength) * ((~tempY2) / (~tempZ2))) ((@FocalLength) * ((~GetX1) / (~GetZ1))) ((@FocalLength) * ((~GetY1) / (~GetZ1))) resolution ((@Resolution) + (([ceiling v] of ((item (~i) of [#layermagnitude v]) / (8000)) ) + (0.001))) styleColor (item (~getTriangleID) of [@trianglestylecolor v]) styleBrightness (item (~getTriangleID) of [@trianglestylebrightness v])\nend\n\ndefine Sorting triangle units\nset [~tempx0 v] to ((item ((~t) + (14)) of [#triangledata v]) - (@CameraX))\nset [~tempy0 v] to ((item ((~t) + (15)) of [#triangledata v]) - (@CameraY))\nset [~tempz0 v] to ((item ((~t) + (16)) of [#triangledata v]) - (@CameraZ))\nset [~mag v] to ((`TriangleDistMult) * ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) ))\n\ndefine Draw World Quad\nset [~gettriangleid v] to (() - (item (~i) of [#layerids v]))\nset [~gettriangleidadd v] to (((-1) - (item (~i) of [#layerids v])) * (`TriangleDataPerInst))\nRotate Vertex (item ((~getTriangleIDAdd) + (1)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (2)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (3)) of [#triangledata v])\nset [~tempx0 v] to (~GetX1)\nset [~tempy0 v] to (~GetY1)\nset [~tempz0 v] to (~GetZ1)\nRotate Vertex (item ((~getTriangleIDAdd) + (4)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (5)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (6)) of [#triangledata v])\nset [~tempx2 v] to (~GetX1)\nset [~tempy2 v] to (~GetY1)\nset [~tempz2 v] to (~GetZ1)\nRotate Vertex (item ((~getTriangleIDAdd) + (7)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (8)) of [#triangledata v]) (item ((~getTriangleIDAdd) + (9)) of [#triangledata v])\nset [~tempx3 v] to (~GetX1)\nset [~tempy3 v] to (~GetY1)\nset [~tempz3 v] to (~GetZ1)\nRotate Vertex (item ((~getTriangleIDAdd) + ((4) + (`TriangleDataPerInst))) of [#triangledata v]) (item ((~getTriangleIDAdd) + ((5) + (`TriangleDataPerInst))) of [#triangledata v]) (item ((~getTriangleIDAdd) + ((6) + (`TriangleDataPerInst))) of [#triangledata v])\nif <<<(~tempZ0) > ((#MinCameraDist) * (0))> and <(~tempZ2) > ((#MinCameraDist) * (0))>> and <<(~tempZ3) > ((#MinCameraDist) * (0))> and <(~GetZ1) > ((#MinCameraDist) * (0))>>> then\n    set [~lightchange v] to ((((item ((~getTriangleIDAdd) + (10)) of [#triangledata v]) * (#LightX)) + ((item ((~getTriangleIDAdd) + (11)) of [#triangledata v]) * (#LightY))) + ((item ((~getTriangleIDAdd) + (12)) of [#triangledata v]) * (#LightZ)))\n    set [~lightchange v] to ((20) + ((50) * ((~lightChange) * ((<((((item ((~getTriangleIDAdd) + (14)) of [#triangledata v]) - (@CameraX)) * (item ((~getTriangleIDAdd) + (10)) of [#triangledata v])) + ((((item ((~getTriangleIDAdd) + (15)) of [#triangledata v]) - (@CameraY)) * (item ((~getTriangleIDAdd) + (11)) of [#triangledata v])) + (((item ((~getTriangleIDAdd) + (16)) of [#triangledata v]) - (@CameraZ)) * (item ((~getTriangleIDAdd) + (12)) of [#triangledata v])))) < [0]> * (2)) - (1)))))\n    switch costume to (size v)\n    set size to (1000000) %\n    switch costume to (full v)\n    set pen color to (item (~getTriangleID) of [@trianglecolor v])\n    change pen (brightness v) by (~lightChange)\n    T_Set Draw Triangle on coords ((@FocalLength) * ((~tempX0) / (~tempZ0))) ((@FocalLength) * ((~tempY0) / (~tempZ0))) ((@FocalLength) * ((~tempX2) / (~tempZ2))) ((@FocalLength) * ((~tempY2) / (~tempZ2))) ((@FocalLength) * ((~tempX3) / (~tempZ3))) ((@FocalLength) * ((~tempY3) / (~tempZ3))) resolution ((@Resolution) + ([ceiling v] of (((item (~i) of [#layermagnitude v]) / (8000)) + (0.1)) )) styleColor (item (~getTriangleID) of [@trianglestylecolor v]) styleBrightness (item (~getTriangleID) of [@trianglestylebrightness v])\n    switch costume to (size v)\n    set size to (100000) %\n    switch costume to (full v)\n    set pen color to (item (~getTriangleID) of [@trianglecolor v])\n    change pen (brightness v) by (~lightChange)\n    T_Set Draw Triangle on coords ((@FocalLength) * ((~tempX3) / (~tempZ3))) ((@FocalLength) * ((~tempY3) / (~tempZ3))) ((@FocalLength) * ((~GetX1) / (~GetZ1))) ((@FocalLength) * ((~GetY1) / (~GetZ1))) ((@FocalLength) * ((~tempX0) / (~tempZ0))) ((@FocalLength) * ((~tempY0) / (~tempZ0))) resolution ((@Resolution) + (((item (~i) of [#layermagnitude v]) / (8000)) + (0.1))) styleColor (item (~getTriangleID) of [@trianglestylecolor v]) styleBrightness (item (~getTriangleID) of [@trianglestylebrightness v])\nend\n\ndefine Sorting Quads\nset [~tempx0 v] to ((((item ((~t) + (14)) of [#triangledata v]) + (item ((~t) + ((14) + (`TriangleDataPerInst))) of [#triangledata v])) / (2)) - (@CameraX))\nset [~tempy0 v] to ((((item ((~t) + (15)) of [#triangledata v]) + (item ((~t) + ((15) + (`TriangleDataPerInst))) of [#triangledata v])) / (2)) - (@CameraY))\nset [~tempz0 v] to ((((item ((~t) + (16)) of [#triangledata v]) + (item ((~t) + ((16) + (`TriangleDataPerInst))) of [#triangledata v])) / (2)) - (@CameraZ))\nset [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\nset [~mag v] to (((~Mag) * (1)) + (110))\n\ndefine Add Mesh Layer (zvalue) (id)\nset [~sort_low v] to [0]\nset [~sort_high v] to ((length of [~meshlayervalue v]) - (0))\nrepeat until <not <(~sort_Low) < (~sort_High)>>\n    set [~sort_mid v] to ([floor v] of (((~sort_Low) + (~sort_High)) / (2)) )\n    if <(zvalue) < (item ((~sort_Mid) + (1)) of [~meshlayervalue v])> then\n        set [~sort_low v] to ((~sort_Mid) + (1))\n    else\n        set [~sort_high v] to (~sort_Mid)\n    end\nend\nset [~sort_id v] to ((~sort_Low) + (1))\ninsert (zvalue) at (~sort_Id) of [~meshlayervalue v] \ninsert (id) at (~sort_Id) of [~meshlayerid v] \n\ndefine Draw Mesh Triangles\nset [~mtr v] to [0]\nrepeat (length of [~meshlayerid v])\n    change [~mtr v] by (1)\n    set [~facevertexn1 v] to (item (((item (~mTr) of [~meshlayerid v]) * (3)) + (1)) of [#meshfacedata v])\n    set [~facevertexn2 v] to (item (((item (~mTr) of [~meshlayerid v]) * (3)) + (2)) of [#meshfacedata v])\n    set [~facevertexn3 v] to (item (((item (~mTr) of [~meshlayerid v]) * (3)) + (3)) of [#meshfacedata v])\n    set [~normalx v] to (item ((((item ((item (~mTr) of [~meshlayerid v]) + (1)) of [#pointertonormal v]) * (3)) + (-2)) + (~normalAdd)) of [#meshnormal v])\n    set [~normaly v] to (item ((((item ((item (~mTr) of [~meshlayerid v]) + (1)) of [#pointertonormal v]) * (3)) + (-1)) + (~normalAdd)) of [#meshnormal v])\n    set [~normalz v] to (item ((((item ((item (~mTr) of [~meshlayerid v]) + (1)) of [#pointertonormal v]) * (3)) + (0)) + (~normalAdd)) of [#meshnormal v])\n    set [~material_id v] to ((((~getGameObjectID) - (1)) * (`MaxMaterials)) + (item ((item (~mTr) of [~meshlayerid v]) + (1)) of [#meshmaterial v]))\n    set pen color to (item (~material_ID) of [@gameobjectmaterialdata v])\n    change pen (brightness v) by ((0) + ((40) * ((((~normalX) * (item (((~getGameObjectID) * (3)) - (2)) of [#gameobjectlightdata v])) + ((~normalY) * (item (((~getGameObjectID) * (3)) - (1)) of [#gameobjectlightdata v]))) + ((~normalZ) * (item ((~getGameObjectID) * (3)) of [#gameobjectlightdata v])))))\n    T_Set Draw Triangle on coords (item (~faceVertexN1) of [~meshvertexx v]) (item (~faceVertexN1) of [~meshvertexy v]) (item (~faceVertexN2) of [~meshvertexx v]) (item (~faceVertexN2) of [~meshvertexy v]) (item (~faceVertexN3) of [~meshvertexx v]) (item (~faceVertexN3) of [~meshvertexy v]) resolution ((@Resolution) + (([ceiling v] of ((item (~i) of [#layermagnitude v]) / (20000)) ) + (0.001))) styleColor (item (~getGameObjectID) of [@gameobjectstylecolor v]) styleBrightness (item (~getGameObjectID) of [@gameobjectstylebrightness v])\nend\n\ndefine GetDrawOrder - Text3D\nset [~g v] to [0]\nrepeat (length of [#chunkactive_text3d v])\n    change [~g v] by (1)\n    set [~gettextid v] to (item (~g) of [#chunkactive_text3d v])\n    if <(item (~getTextID) of [@text3d_active v]) = [1]> then\n        set [~cameraxtemp v] to ((@CameraX) - (item (~getTextID) of [@text3d_x v]))\n        set [~cameraytemp v] to ((@CameraY) - (item (~getTextID) of [@text3d_y v]))\n        set [~cameraztemp v] to ((@CameraZ) - (item (~getTextID) of [@text3d_z v]))\n        set [~mag v] to ([sqrt v] of (((~cameraXtemp) * (~cameraXtemp)) + (((~cameraYtemp) * (~cameraYtemp)) + ((~cameraZtemp) * (~cameraZtemp)))) )\n        if <(~Mag) < (@ViewRange)> then\n            replace item (~getTextID) of [#text3d_cameradist v] with (~Mag)\n            Add Layer (~Mag) (~getTextID) type [4]\n        end\n    end\nend\n\ndefine Draw World Text3D\nset [~gettextid v] to (item (~i) of [#layerids v])\nRotate Vertex (item (~getTextID) of [@text3d_x v]) (item (~getTextID) of [@text3d_y v]) (item (~getTextID) of [@text3d_z v])\nif <(~GetZ1) > (#MinCameraDist)> then\n    Draw Text (item (~getTextID) of [@text3d_text v]) at ((@FocalLength) * ((~GetX1) / (~GetZ1))) ((@FocalLength) * ((~GetY1) / (~GetZ1))) size ((((item (~getTextID) of [@text3d_size v]) * (@FocalLength)) / (item (~getTextID) of [#text3d_cameradist v])) / (10)) color [0 <-> 200] (item (~getTextID) of [@text3d_color v]) brightness [-100 <-> 100] (item (~getTextID) of [@text3d_brightness v]) transparency (item (~getTextID) of [@text3d_alpha v])\nend\n\ndefine Draw Text (text) at (x) (y) size (size) color [0 <-> 200] (color) brightness [-100 <-> 100] (brightness) transparency (tr)\nset [~cc v] to [0]\nset [color v] effect to (color)\nset [brightness v] effect to (brightness)\nset [ghost v] effect to (tr)\nset size to (100000) %\ngo to x: ((x) - (((length of (text)) * ((size) * (13))) / (2))) y: (y)\nrepeat (length of (text))\n    change [~cc v] by (1)\n    switch costume to (letter (~cc) of (text))\n    set size to ((100) * (size)) %\n    stamp\n    set size to (100000) %\n    switch costume to (full v)\n    change x by ((size) * (13))\nend\n\ndefine GetDrawOrder - GameObjects - NoChunks\nset [~getgameobjectid v] to [0]\nrepeat (length of [@gameobjectactive v])\n    change [~getgameobjectid v] by (1)\n    if <(item (~getGameObjectID) of [@gameobjectactive v]) = [1]> then\n        set [~cameraxtemp v] to ((@CameraX) - ((item (~getGameObjectID) of [@gameobjectx v]) + (item (((~getGameObjectID) * (3)) - (2)) of [@gameobjectdrawoffset v])))\n        set [~cameraytemp v] to ((@CameraY) - ((item (~getGameObjectID) of [@gameobjecty v]) + (item (((~getGameObjectID) * (3)) - (1)) of [@gameobjectdrawoffset v])))\n        set [~cameraztemp v] to ((@CameraZ) - ((item (~getGameObjectID) of [@gameobjectz v]) + (item ((~getGameObjectID) * (3)) of [@gameobjectdrawoffset v])))\n        set [~mag v] to ([sqrt v] of (((~cameraXtemp) * (~cameraXtemp)) + (((~cameraYtemp) * (~cameraYtemp)) + ((~cameraZtemp) * (~cameraZtemp)))) )\n        if <(~Mag) < (@ViewRange)> then\n            Add Layer (~Mag) (~getGameObjectID) type [0]\n        end\n    end\nend\n\ndefine GetDrawOrder - Sprite3D - NoChunks\nset [~getspriteid v] to [0]\nrepeat (length of [@sprite3d_active v])\n    change [~getspriteid v] by (1)\n    if <(item (~getSpriteID) of [@sprite3d_active v]) = [1]> then\n        set [~tempx0 v] to ((item (~getSpriteID) of [@sprite3d_x v]) - (@CameraX))\n        set [~tempy0 v] to ((item (~getSpriteID) of [@sprite3d_y v]) - (@CameraY))\n        set [~tempz0 v] to ((item (~getSpriteID) of [@sprite3d_z v]) - (@CameraZ))\n        set [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\n        if <(~Mag) < (@ViewRange)> then\n            replace item (~getSpriteID) of [#sprite3d_distcamera v] with (~Mag)\n            Add Layer (~Mag) (~getSpriteID) type [1]\n        end\n    end\nend\n\ndefine GetDrawOrder - Line3D - NoChunks\nset [~getlineid v] to [0]\nrepeat (length of [@lineactive v])\n    change [~getlineid v] by (1)\n    if <(item (~getLineID) of [@lineactive v]) = [1]> then\n        set [~tempx0 v] to ((((item (~getLineID) of [@linesx2 v]) + (item (~getLineID) of [@linesx2 v])) / (2)) - (@CameraX))\n        set [~tempy0 v] to ((((item (~getLineID) of [@linesy1 v]) + (item (~getLineID) of [@linesy2 v])) / (2)) - (@CameraY))\n        set [~tempz0 v] to ((((item (~getLineID) of [@linesz1 v]) + (item (~getLineID) of [@linesz2 v])) / (2)) - (@CameraZ))\n        set [~mag v] to ([sqrt v] of (((~tempX0) * (~tempX0)) + (((~tempY0) * (~tempY0)) + ((~tempZ0) * (~tempZ0)))) )\n        Distance Point (@CameraX) (@CameraY) (@CameraZ) to line segment (item (~getLineID) of [@linesx1 v]) (item (~getLineID) of [@linesy1 v]) (item (~getLineID) of [@linesz1 v]) | (item (~getLineID) of [@linesx2 v]) (item (~getLineID) of [@linesy2 v]) (item (~getLineID) of [@linesz2 v])\n        if <(~Mag) < (@ViewRange)> then\n            GetDistanceModulus ((((item (~getLineID) of [@linesx1 v]) + (item (~getLineID) of [@linesx2 v])) / (2)) - (@CameraX)) ((((item (~getLineID) of [@linesy1 v]) + (item (~getLineID) of [@linesy2 v])) / (2)) - (@CameraY)) ((((item (~getLineID) of [@linesz1 v]) + (item (~getLineID) of [@linesz2 v])) / (2)) - (@CameraZ))\n            replace item (~getLineID) of [#line3d_distcamera v] with (~Mag)\n            Add Layer (~Mag) (~getLineID) type [2]\n        end\n    end\nend\n\ndefine GetDrawOrder - Text3D - NoChunks\nset [~gettextid v] to [0]\nrepeat (length of [@text3d_active v])\n    change [~gettextid v] by (1)\n    if <(item (~getTextID) of [@text3d_active v]) = [1]> then\n        set [~cameraxtemp v] to ((@CameraX) - (item (~getTextID) of [@text3d_x v]))\n        set [~cameraytemp v] to ((@CameraY) - (item (~getTextID) of [@text3d_y v]))\n        set [~cameraztemp v] to ((@CameraZ) - (item (~getTextID) of [@text3d_z v]))\n        set [~mag v] to ([sqrt v] of (((~cameraXtemp) * (~cameraXtemp)) + (((~cameraYtemp) * (~cameraYtemp)) + ((~cameraZtemp) * (~cameraZtemp)))) )\n        if <(~Mag) < (@ViewRange)> then\n            replace item (~getTextID) of [#text3d_cameradist v] with (~Mag)\n            Add Layer (~Mag) (~getTextID) type [4]\n        end\n    end\nend\n\ndefine GetDrawOrder - Triangles and Quads - NoChunks\nset [~gettriangleid v] to [0]\nrepeat ((length of [@triangle_active v]) - (`NumberOfQuads))\n    change [~gettriangleid v] by (1)\n    set [~t v] to (((~getTriangleID) - (1)) * (`TriangleDataPerInst))\n    if <(item (~getTriangleID) of [#triangleisquad v]) = [0]> then\n        if <(item (~getTriangleID) of [@triangle_active v]) = [1]> then\n            Sorting triangle units\n            if <(~Mag) < (@ViewRange)> then\n                Add Layer (~Mag) ((~getTriangleID) - (1)) type [3]\n            end\n        end\n    else\n        if <(item (~getTriangleID) of [@triangle_active v]) = [1]> then\n            Sorting Quads\n            if <(~Mag) < (@ViewRange)> then\n                Add Layer (~Mag) ((0) - (~getTriangleID)) type [3]\n            end\n        end\n        change [~gettriangleid v] by (1)\n    end\nend\n\n@Update\n\nrepeat until <<(*boxCollision) = [1]> or <(!sy) < [-200]>>\n    change [!sy v] by (-20)\n    *Box Shadow Collision (!sx) (!sy) (!sz) size [10]\nend\n\ndefine [Load] Load scene from data (data)\n[E] Engine Init\nset [~load_chunks v] to []\nset [~load_points v] to []\nset [~load_lines v] to []\nset [~load_triangles v] to []\nset [~load_camera v] to []\nset [*load_iter v] to [1]\nset [~load_length v] to (length of (data))\nrepeat until <<(*load_iter) > (~load_length)> or <(letter (*load_iter) of (data)) = [~]>>\n    set [~load_chunks v] to (join (~load_chunks) (letter (*load_iter) of (data)))\n    change [*load_iter v] by (1)\nend\nchange [*load_iter v] by (1)\nrepeat until <<(*load_iter) > (~load_length)> or <(letter (*load_iter) of (data)) = [~]>>\n    set [~load_camera v] to (join (~load_camera) (letter (*load_iter) of (data)))\n    change [*load_iter v] by (1)\nend\nchange [*load_iter v] by (1)\nrepeat until <<(*load_iter) > (~load_length)> or <(letter (*load_iter) of (data)) = [~]>>\n    set [~load_points v] to (join (~load_points) (letter (*load_iter) of (data)))\n    change [*load_iter v] by (1)\nend\nchange [*load_iter v] by (1)\nrepeat until <<(*load_iter) > (~load_length)> or <(letter (*load_iter) of (data)) = [~]>>\n    set [~load_lines v] to (join (~load_lines) (letter (*load_iter) of (data)))\n    change [*load_iter v] by (1)\nend\nchange [*load_iter v] by (1)\nrepeat until <<(*load_iter) > (~load_length)> or <(letter (*load_iter) of (data)) = [~]>>\n    set [~load_triangles v] to (join (~load_triangles) (letter (*load_iter) of (data)))\n    change [*load_iter v] by (1)\nend\n[Ch] Load Chunks data (~load_chunks)\nset [*load_iter v] to [0]\ndelete all of [~load_list v]\nset [~load_temp v] to []\nrepeat (length of (~load_points))\n    change [*load_iter v] by (1)\n    if <(letter (*load_iter) of (~load_points)) = [;]> then\n        add (~load_temp) to [~load_list v]\n        set [~load_temp v] to []\n    else\n        if <(letter (*load_iter) of (~load_points)) = [|]> then\n            add (item (1) of [~load_list v]) to [^load_d_type v]\n            add (item (2) of [~load_list v]) to [^load_d_objecttype v]\n            add (item (3) of [~load_list v]) to [@loadpointx v]\n            add (item (4) of [~load_list v]) to [@loadpointy v]\n            add (item (5) of [~load_list v]) to [@loadpointz v]\n            set [~load_iter2 v] to [0]\n            repeat ((length of [~load_list v]) - (5))\n                change [~load_iter2 v] by (1)\n                add (item ((5) + (~load_iter2)) of [~load_list v]) to [^load_d v]\n            end\n            repeat ((^Load_D_Size) - ((length of [~load_list v]) - (5)))\n                add [] to [^load_d v]\n            end\n            delete all of [~load_list v]\n            set [~load_temp v] to []\n        else\n            set [~load_temp v] to (join (~load_temp) (letter (*load_iter) of (~load_points)))\n        end\n    end\nend\nset [*load_iter v] to [0]\ndelete all of [~load_list v]\nset [~load_temp v] to []\nrepeat (length of (~load_lines))\n    change [*load_iter v] by (1)\n    if <(letter (*load_iter) of (~load_lines)) = [;]> then\n        add (~load_temp) to [~load_list v]\n        set [~load_temp v] to []\n    else\n        if <(letter (*load_iter) of (~load_lines)) = [|]> then\n            [L] Add Line 3D p1: (item (2) of [~load_list v]) (item (3) of [~load_list v]) (item (4) of [~load_list v]) p2: (item (5) of [~load_list v]) (item (6) of [~load_list v]) (item (7) of [~load_list v]) color [0] [0] [0] [0] size (item (9) of [~load_list v]) chunkID [-1 auto] [-1]\n            replace item (*newID) of [^ld_type v] with (item (1) of [~load_list v])\n            replace item (*newID) of [@linecolor v] with (item (8) of [~load_list v])\n            set [~load_iter2 v] to [0]\n            set [~load_dataid v] to [1]\n            repeat (9)\n                delete (1) of [~load_list v]\n            end\n            [Load] Setting - Line\n            delete all of [~load_list v]\n            set [~load_temp v] to []\n        else\n            set [~load_temp v] to (join (~load_temp) (letter (*load_iter) of (~load_lines)))\n        end\n    end\nend\nset [*load_iter v] to [0]\ndelete all of [~load_list v]\nset [~load_temp v] to []\nrepeat (length of (~load_triangles))\n    change [*load_iter v] by (1)\n    if <(letter (*load_iter) of (~load_triangles)) = [;]> then\n        add (~load_temp) to [~load_list v]\n        set [~load_temp v] to []\n    else\n        if <(letter (*load_iter) of (~load_triangles)) = [|]> then\n            if <(item (2) of [~load_list v]) = [1]> then\n                [Q] Add Quad p1 (item (3) of [~load_list v]) (item (4) of [~load_list v]) (item (5) of [~load_list v]) p2 (item (6) of [~load_list v]) (item (7) of [~load_list v]) (item (8) of [~load_list v]) p3 (item (9) of [~load_list v]) (item (10) of [~load_list v]) (item (11) of [~load_list v]) p4 (item (12) of [~load_list v]) (item (13) of [~load_list v]) (item (14) of [~load_list v]) color [0] [0] [0] [0] style - color (item (16) of [~load_list v]) brightness (item (17) of [~load_list v]) chunk [-1 auto] [-1]\n                replace item (*newID) of [^td_type v] with (item (1) of [~load_list v])\n                replace item (*newID) of [@trianglecolor v] with (item (15) of [~load_list v])\n                set [~load_iter2 v] to [0]\n                set [~load_dataid v] to [1]\n                repeat (17)\n                    delete (1) of [~load_list v]\n                end\n                [Load] Setting - Triangle\n                delete all of [~load_list v]\n                set [~load_temp v] to []\n            else\n                [Tr] Add Triangle p1: (item (3) of [~load_list v]) (item (4) of [~load_list v]) (item (5) of [~load_list v]) p2: (item (6) of [~load_list v]) (item (7) of [~load_list v]) (item (8) of [~load_list v]) p3: (item (9) of [~load_list v]) (item (10) of [~load_list v]) (item (11) of [~load_list v]) Color [0] [0] [0] [0] Is part of quad: [0] style - color: (item (13) of [~load_list v]) brightness (item (14) of [~load_list v]) triangleChunk[-1 auto] [-1]\n                replace item (*newID) of [^td_type v] with (item (1) of [~load_list v])\n                replace item (*newID) of [@trianglecolor v] with (item (12) of [~load_list v])\n                set [~load_iter2 v] to [0]\n                set [~load_dataid v] to [1]\n                repeat (14)\n                    delete (1) of [~load_list v]\n                end\n                [Load] Setting - Triangle\n                delete all of [~load_list v]\n                set [~load_temp v] to []\n            end\n        else\n            set [~load_temp v] to (join (~load_temp) (letter (*load_iter) of (~load_triangles)))\n        end\n    end\nend\nset [*load_iter v] to [0]\ndelete all of [@startcamera v]\nset [~load_temp v] to []\nrepeat (length of (~load_camera))\n    change [*load_iter v] by (1)\n    if <(letter (*load_iter) of (~load_camera)) = [;]> then\n        add (~load_temp) to [@startcamera v]\n        set [~load_temp v] to []\n    else\n        set [~load_temp v] to (join (~load_temp) (letter (*load_iter) of (~load_camera)))\n    end\nend\nset [@camerax v] to (item (1) of [@startcamera v])\nset [@cameray v] to (item (2) of [@startcamera v])\nset [@cameraz v] to (item (3) of [@startcamera v])\nset [@camerarotatex v] to (item (4) of [@startcamera v])\nset [@camerarotatey v] to (item (5) of [@startcamera v])\nset [@camerarotatez v] to (item (6) of [@startcamera v])\n[Load] Points Setting\n\ndefine [R] Raycast Line (orx) (ory) (orz) (drx) (dry) (drz) line segment (x1) (y1) (z1) (x2) (y2) (z2) radius (r)\nset [*collisionresult v] to [0]\nset [~pabx v] to ((x2) - (x1))\nset [~paby v] to ((y2) - (y1))\nset [~pabz v] to ((z2) - (z1))\nset [~pdax v] to ((orx) - (x1))\nset [~pday v] to ((ory) - (y1))\nset [~pdaz v] to ((orz) - (z1))\nset [~cx v] to (((~PabX) * (~PabX)) + (((~PabY) * (~PabY)) + ((~PabZ) * (~PabZ))))\nset [~cy v] to (((~PabX) * (drx)) + (((~PabY) * (dry)) + ((~PabZ) * (drz))))\nset [~cz v] to (((~PabX) * (~PdaX)) + (((~PabY) * (~PdaY)) + ((~PabZ) * (~PdaZ))))\nset [~dx v] to (((drx) * (~PdaX)) + (((dry) * (~PdaY)) + ((drz) * (~PdaZ))))\nset [~dy v] to (((~PdaX) * (~PdaX)) + (((~PdaY) * (~PdaY)) + ((~PdaZ) * (~PdaZ))))\nset [~t_a1 v] to ((~cx) - ((~cy) * (~cy)))\nset [~t_a2 v] to (((~cx) * (~dx)) - ((~cz) * (~cy)))\nset [~t_a3 v] to ((((~cx) * (~dy)) - ((~cz) * (~cz))) - ((~cx) * ((r) * (r))))\nset [~r_nd v] to (((~T_a2) * (~T_a2)) - ((~T_a1) * (~T_a3)))\nif <not <(~r_nd) < [0]>> then\n    set [~t v] to (((0) - ((~T_a2) + ([sqrt v] of (~r_nd) ))) / (~T_a1))\n    set [~r_pn v] to ((~cz) + ((~T) * (~cy)))\n    if <<(~r_pn) > [0]> and <(~r_pn) < (~cx)>> then\n        set [*collisionresult v] to [1]\n        set [~col_dist v] to (~T)\n        stop [this script v]\n    end\n    if <(~r_pn) > [0]> then\n        set [~pcax v] to ((orx) - (x2))\n        set [~pcay v] to ((ory) - (y2))\n        set [~pcaz v] to ((orz) - (z2))\n    else\n        set [~pcax v] to (x1)\n        set [~pcay v] to (y1)\n        set [~pcaz v] to (z1)\n    end\n    set [~t_a2 v] to (((drx) * (~PcaX)) + (((dry) * (~PcaY)) + ((drz) * (~PcaZ))))\n    set [~t_a3 v] to ((((~PcaX) * (~PcaX)) + (((~PcaY) * (~PcaY)) + ((~PcaZ) * (~PcaZ)))) - ((r) * (r)))\n    set [~r_nd v] to (((~T_a2) * (~T_a2)) - (~T_a3))\n    if <(~r_nd) > [0]> then\n        set [*collisionresult v] to [1]\n        set [~col_dist v] to (() - ((~T_a2) + ([sqrt v] of (~r_nd) )))\n    end\nend\n\ndefine [C] Triangle ray collision: origin (ox) (oy) (oz) direction (dx) (dy) (dz) to current triangle\nset [*collisionresult v] to [0]\nset [~r_nd v] to (((dx) * (item ((~triAdd) + (10)) of [#triangledata v])) + (((dy) * (item ((~triAdd) + (11)) of [#triangledata v])) + ((dz) * (item ((~triAdd) + (12)) of [#triangledata v]))))\nset [~r_pn v] to (((ox) * (item ((~triAdd) + (10)) of [#triangledata v])) + (((oy) * (item ((~triAdd) + (11)) of [#triangledata v])) + ((oz) * (item ((~triAdd) + (12)) of [#triangledata v]))))\nset [~t v] to (((item ((~triAdd) + (13)) of [#triangledata v]) - (~r_pn)) / (~r_nd))\nif <(~T) < [0]> then\n    stop [this script v]\nend\nset [*returnx v] to ((ox) + ((dx) * (~T)))\nset [*returny v] to ((oy) + ((dy) * (~T)))\nset [*returnz v] to ((oz) + ((dz) * (~T)))\n[R] Part of Triangle raycast - a (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) b (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v]) c (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v])\nset [*colx v] to ((1) - ((((~dx) * (~tempX)) + (((~dy) * (~tempY)) + ((~dz) * (~tempZ)))) / (((~dx) * (~ax)) + (((~dy) * (~ay)) + ((~dz) * (~az))))))\nif <<(*colX) < [0]> or <(*colX) > [1]>> then\n    stop [this script v]\nend\n[R] Part of Triangle raycast - a (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v]) b (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v]) c (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v])\nset [*coly v] to ((1) - ((((~dx) * (~tempX)) + (((~dy) * (~tempY)) + ((~dz) * (~tempZ)))) / (((~dx) * (~ax)) + (((~dy) * (~ay)) + ((~dz) * (~az))))))\nif <<(*colY) < [0]> or <(*colY) > [1]>> then\n    stop [this script v]\nend\n[R] Part of Triangle raycast - a (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v]) b (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) c (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v])\nset [*colz v] to ((1) - ((((~dx) * (~tempX)) + (((~dy) * (~tempY)) + ((~dz) * (~tempZ)))) / (((~dx) * (~ax)) + (((~dy) * (~ay)) + ((~dz) * (~az))))))\nif <<(*colZ) < [0]> or <(*colZ) > [1]>> then\n    stop [this script v]\nend\nset [*collisionresult v] to [1]\nset [~col_dist v] to (~T)\n\ndefine [T] Atan2 (y) (x)\nif <(x) = [0]> then\n    if <(y) < [0]> then\n        set [*getangle v] to [-90]\n    else\n        set [*getangle v] to [90]\n    end\nelse\n    if <(x) > [0]> then\n        set [*getangle v] to ([atan v] of ((y) / (x)) )\n    else\n        set [*getangle v] to (([atan v] of ((y) / (x)) ) + (180))\n    end\nend\n\nif <(y) < [0]> then\n    set [*getangle v] to (([atan v] of ((y) / (x)) ) + (-180))\nend\n\ndefine [T] Camera Look at position (tx) (ty) (tz)\nset [~a_vx v] to ((tx) - (@CameraX))\nset [~a_vy v] to ((ty) - (@CameraY))\nset [~a_vz v] to ((tz) - (@CameraZ))\nset [~a_mag v] to ([sqrt v] of (((~A_Vx) * (~A_Vx)) + (((~A_Vy) * (~A_Vy)) + ((~A_Vz) * (~A_Vz)))) )\nset [~a_vx v] to ((~A_Vx) / (~A_mag))\nset [~a_vy v] to ((~A_Vy) / (~A_mag))\nset [~a_vz v] to ((~A_Vz) / (~A_mag))\nif <(~A_Vz) > [0]> then\n    set [@camerarotatey v] to ([asin v] of ((~A_Vx) / (() - ([sqrt v] of ((1) - ((~A_Vy) * (~A_Vy))) ))) )\nelse\n    set [@camerarotatey v] to ((180) - ([asin v] of ((~A_Vx) / (() - ([sqrt v] of ((1) - ((~A_Vy) * (~A_Vy))) ))) ))\nend\nset [@camerarotatex v] to ([asin v] of (~A_Vy) )\n\ndefine !Camera Movement\nif <(!deadState) = [0]> then\n    if <key (left arrow v) pressed?> then\n        change [@camerax v] by (((#DeltaTime) * (10)) * ((-CameraMoveSpeed) * (#CamCosY)))\n        change [@cameraz v] by (((#DeltaTime) * (10)) * ((-CameraMoveSpeed) * (#CamSinY)))\n    end\n    if <key (right arrow v) pressed?> then\n        change [@camerax v] by (((#DeltaTime) * (10)) * ((() - (-CameraMoveSpeed)) * (#CamCosY)))\n        change [@cameraz v] by (((#DeltaTime) * (10)) * ((() - (-CameraMoveSpeed)) * (#CamSinY)))\n    end\n    set [~vy v] to [0]\n    if <key (up arrow v) pressed?> then\n        set [~vy v] to [3000]\n    end\n    if <key (down arrow v) pressed?> then\n        set [~vy v] to [-320]\n    end\n    set [~vx v] to ((@CameraX) - (item (-PlayerGameObjectID) of [@gameobjectx v]))\n    set [~vz v] to ((@CameraZ) - (item (-PlayerGameObjectID) of [@gameobjectz v]))\n    set [~mag v] to ([sqrt v] of (((~vx) * (~vx)) + (() + ((~vz) * (~vz)))) )\n    change [@camerax v] by ((((((~vx) / (~mag)) * (600)) + (item (-PlayerGameObjectID) of [@gameobjectx v])) - (@CameraX)) * ((#DeltaTime) * (10)))\n    change [@cameray v] by ((((~vy) + ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (320))) - (@CameraY)) * ((#DeltaTime) * (6)))\n    change [@cameraz v] by ((((((~vz) / (~mag)) * (600)) + (item (-PlayerGameObjectID) of [@gameobjectz v])) - (@CameraZ)) * ((#DeltaTime) * (10)))\nend\n[T] Camera Look at position (item (-PlayerGameObjectID) of [@gameobjectx v]) (item (-PlayerGameObjectID) of [@gameobjecty v]) (item (-PlayerGameObjectID) of [@gameobjectz v])\n\nwhen I receive [update v]\n[E] Update\n\ndefine [E] Calc Camera Vector\nset [#camsinx v] to ([sin v] of (@CameraRotateX) )\nset [#camsiny v] to ([sin v] of (@CameraRotateY) )\nset [#camcosx v] to ([cos v] of (@CameraRotateX) )\nset [#camcosy v] to ([cos v] of (@CameraRotateY) )\nset [#camcosz v] to ([cos v] of (@CameraRotateZ) )\nset [#camsinz v] to ([sin v] of (@CameraRotateZ) )\nset [#cameravx v] to (() - ((#CamCosX) * (#CamSinY)))\nset [#cameravy v] to ((#CamSinX) - ())\nset [#cameravz v] to ((#CamCosX) * (#CamCosY))\n\nwhen I receive [engineinit v]\n[E] Engine Init\n\ndefine [G] DeleteGameObjectData\ndelete all of [@gameobjectmeshid v]\ndelete all of [@gameobjectx v]\ndelete all of [@gameobjecty v]\ndelete all of [@gameobjectz v]\ndelete all of [@gameobject_rotx v]\ndelete all of [@gameobject_roty v]\ndelete all of [@gameobject_rotz v]\ndelete all of [#gameobjectlightdata v]\ndelete all of [@gameobjectsizex v]\ndelete all of [@gameobjectsizey v]\ndelete all of [@gameobjectsizez v]\ndelete all of [@gameobjectactive v]\ndelete all of [@gameobjectdrawoffset v]\ndelete all of [@gameobjectchunk v]\ndelete all of [^gd_type v]\ndelete all of [^gd v]\ndelete all of [@gameobjectstylecolor v]\ndelete all of [@gameobjectstylebrightness v]\ndelete all of [@gameobjectmaterialdata v]\ndelete all of [@gameobjectbackfaceculling v]\n\ndefine [G] Add GameObject - mesh ID (meshid) material group ID (material id) position (x) (y) (z) rotation (rotatex) (rotatey) (rotatez) size (sizex) (sizey) (sizez) drawOffset (ox) (oy) (oz) chunkID [-1 auto] (chunkid)\nset [~newslot v] to [1]\nset [~p v] to [1]\nrepeat until <<(~newSlot) = [0]> or <(~p) > (length of [#gameobjectpointers v])>>\n    if <(item (~p) of [#gameobjectpointers v]) = [0]> then\n        set [~newslot v] to [0]\n    end\n    change [~p v] by (1)\nend\nif <(~newSlot) = [1]> then\n    set [*newid v] to (~p)\n    add [1] to [#gameobjectpointers v]\n    add (meshid) to [@gameobjectmeshid v]\n    add ((x) + (~chunkRelX)) to [@gameobjectx v]\n    add (y) to [@gameobjecty v]\n    add ((z) + (~chunkRelZ)) to [@gameobjectz v]\n    add (rotatex) to [@gameobject_rotx v]\n    add (rotatey) to [@gameobject_roty v]\n    add (rotatez) to [@gameobject_rotz v]\n    add (sizex) to [@gameobjectsizex v]\n    add (sizey) to [@gameobjectsizey v]\n    add (sizez) to [@gameobjectsizez v]\n    repeat (3)\n        add [] to [#gameobjectlightdata v]\n    end\n    add [1] to [@gameobjectactive v]\n    add (ox) to [@gameobjectdrawoffset v]\n    add (oy) to [@gameobjectdrawoffset v]\n    add (oz) to [@gameobjectdrawoffset v]\n    add [0] to [@gameobjectstylecolor v]\n    add [-5] to [@gameobjectstylebrightness v]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        add (~newChunk) to [@gameobjectchunk v]\n    else\n        add (chunkid) to [@gameobjectchunk v]\n    end\n    add [0] to [^gd_type v]\n    repeat (^GBD_Size)\n        add [] to [^gd v]\n    end\n    set [~m v] to [0]\n    repeat (`MaxMaterials)\n        change [~m v] by (1)\n        add (item ((item (material id) of [#materialgroupid v]) + (~m)) of [#meshdefaultmaterialcolor v]) to [@gameobjectmaterialdata v]\n    end\n    add [1] to [@gameobjectbackfaceculling v]\nelse\n    set [*newid v] to ((~p) - (1))\n    replace item (*newID) of [#gameobjectpointers v] with [1]\n    replace item (*newID) of [@gameobjectmeshid v] with (meshid)\n    replace item (*newID) of [@gameobjectx v] with ((x) + (~chunkRelX))\n    replace item (*newID) of [@gameobjecty v] with (y)\n    replace item (*newID) of [@gameobjectz v] with ((z) + (~chunkRelZ))\n    replace item (*newID) of [@gameobject_rotx v] with (rotatex)\n    replace item (*newID) of [@gameobject_roty v] with (rotatey)\n    replace item (*newID) of [@gameobject_rotz v] with (rotatez)\n    replace item (*newID) of [@gameobjectsizex v] with (sizex)\n    replace item (*newID) of [@gameobjectsizey v] with (sizey)\n    replace item (*newID) of [@gameobjectsizez v] with (sizez)\n    replace item (*newID) of [@gameobjectsizez v] with (sizez)\n    replace item (*newID) of [@gameobjectactive v] with [1]\n    replace item ((((*newID) - (1)) * (3)) + (1)) of [@gameobjectdrawoffset v] with (ox)\n    replace item ((((*newID) - (1)) * (3)) + (2)) of [@gameobjectdrawoffset v] with (oy)\n    replace item ((((*newID) - (1)) * (3)) + (3)) of [@gameobjectdrawoffset v] with (oz)\n    replace item (*newID) of [@gameobjectstylecolor v] with [0]\n    replace item (*newID) of [@gameobjectstylebrightness v] with [-5]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        replace item (*newID) of [@gameobjectchunk v] with (~newChunk)\n    else\n        replace item (*newID) of [@gameobjectchunk v] with (chunkid)\n    end\n    replace item (*newID) of [^gd_type v] with (chunkid)\n    set [~dataiter v] to (((*newID) - (1)) * (^GBD_Size))\n    repeat (^GBD_Size)\n        change [~dataiter v] by (1)\n        replace item (~dataIter) of [^gd_type v] with []\n    end\n    set [~m v] to [0]\n    repeat (`MaxMaterials)\n        change [~m v] by (1)\n        replace item ((((*newID) - (1)) * (`MaxMaterials)) + (~m)) of [@gameobjectmaterialdata v] with (item ((item (material id) of [#materialgroupid v]) + (~m)) of [#meshdefaultmaterialcolor v])\n    end\n    replace item (*newID) of [@gameobjectbackfaceculling v] with [1]\nend\n\ndefine !My Init\n!Delete My Data\n!Init 3D\n!My Variable Init\n[Load] Load scene from data (item (1) of [@scenedata v])\n!My Objects\n\ndefine [E] Update\ndelete all of [debug2 v]\n!Camera Movement\n[E] Calc Camera Vector\n[R] Delete Raycast data\n[R] Get Ray From Screen Pos (mouse x) (mouse y)\n[R] Raycast all triangles\n[R] Raycast all sprites\n!My Update\n[E] Set Light\n\ndelete all of [@startcamera v]\nadd (@CameraX) to [@startcamera v]\nadd (@CameraY) to [@startcamera v]\nadd (@CameraZ) to [@startcamera v]\nadd (@CameraRotateX) to [@startcamera v]\nadd (@CameraRotateY) to [@startcamera v]\nadd (@CameraRotateZ) to [@startcamera v]\nadd (@LightAngle) to [@startcamera v]\n\ndefine !My Update\n!Translate Triangles and Quads\n!Falling Platforms\n[Ch] Check Current Chunk - pos: (item (-PlayerGameObjectID) of [@gameobjectx v]) (item (-PlayerGameObjectID) of [@gameobjectz v])\n!Player Update\n!Update Coins\nreplace item (-UsernameTextID) of [@text3d_x v] with (item (-PlayerGameObjectID) of [@gameobjectx v])\nreplace item (-UsernameTextID) of [@text3d_y v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (135))\nreplace item (-UsernameTextID) of [@text3d_z v] with (item (-PlayerGameObjectID) of [@gameobjectz v])\nif <mouse down?> then\n    if <(item (1) of [*raycast_types v]) = [4]> then\n        replace item (item (1) of [*raycast_ids v]) of [@trianglecolor v] with ((item (item (1) of [*raycast_ids v]) of [@trianglecolor v]) + ((-10) * ((256) * ((256) * (256)))))\n    else\n        if <($mouse_pressed) = [1]> then\n            if <(item (1) of [*raycast_types v]) = [2]> then\n                if <(item (1) of [*raycast_ids v]) = [2]> then\n                    start sound [Meow v]\n                end\n            end\n        end\n    end\nend\n\ndefine [G] Destroy GameObject of ID (id)\ndelete (id) of [@gameobjectmeshid v]\ndelete (id) of [@gameobjectsizex v]\ndelete (id) of [@gameobjectsizey v]\ndelete (id) of [@gameobjectsizez v]\ndelete (id) of [@gameobject_rotx v]\ndelete (id) of [@gameobject_roty v]\ndelete (id) of [@gameobject_rotz v]\ndelete (id) of [@gameobjectsizex v]\ndelete (id) of [@gameobjectsizey v]\ndelete (id) of [@gameobjectsizez v]\nrepeat (3)\n    delete (((id) * (3)) - (2)) of [#gameobjectlightdata v]\n    delete (((id) * (3)) - (2)) of [@gameobjectdrawoffset v]\nend\ndelete (id) of [@gameobjectchunk v]\ndelete (id) of [^gd_type v]\nrepeat (^GBD_Size)\n    delete ((((id) - (1)) * (^GBD_Size)) + (1)) of [#gameobjectlightdata v]\nend\ndelete (id) of [@gameobjectstylecolor v]\ndelete (id) of [@gameobjectstylebrightness v]\nrepeat (`MaxMaterials)\n    delete ((((id) - (1)) * (`MaxMaterials)) + (1)) of [@gameobjectmaterialdata v]\nend\ndelete (id) of [@gameobjectbackfaceculling v]\n\ndefine [S] Add Sprite3D - costume name (costumename) at (x) (y) (z) size (size) chunkID [-1 auto] (chunkid)\nset [~newslot v] to [1]\nset [~p v] to [1]\nrepeat until <<(~newSlot) = [0]> or <(~p) > (length of [#spritepointers v])>>\n    if <(item (~p) of [#spritepointers v]) = [0]> then\n        set [~newslot v] to [0]\n    end\n    change [~p v] by (1)\nend\nif <(~newSlot) = [1]> then\n    set [*newid v] to (~p)\n    add (costumename) to [@sprite3d_costumename v]\n    add [1] to [#spritepointers v]\n    add ((x) + (~chunkRelX)) to [@sprite3d_x v]\n    add (y) to [@sprite3d_y v]\n    add ((z) + (~chunkRelZ)) to [@sprite3d_z v]\n    add (size) to [@sprite3d_size v]\n    add [0] to [@sprite3d_rotation v]\n    add [0] to [@sprite3d_alpha v]\n    add [] to [#sprite3d_distcamera v]\n    add [1] to [@sprite3d_active v]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        add (~newChunk) to [@spritechunk v]\n    else\n        add (chunkid) to [@spritechunk v]\n    end\n    add [0] to [^sd_type v]\n    repeat (^SD_Size)\n        add [] to [^sd v]\n    end\nelse\n    set [*newid v] to ((~p) - (1))\n    replace item (*newID) of [#spritepointers v] with [1]\n    replace item (*newID) of [@sprite3d_costumename v] with (costumename)\n    replace item (*newID) of [@sprite3d_x v] with ((x) + (~chunkRelX))\n    replace item (*newID) of [@sprite3d_y v] with (y)\n    replace item (*newID) of [@sprite3d_z v] with ((z) + (~chunkRelZ))\n    replace item (*newID) of [@sprite3d_size v] with (size)\n    replace item (*newID) of [@sprite3d_rotation v] with [0]\n    replace item (*newID) of [@sprite3d_alpha v] with [0]\n    replace item (*newID) of [@sprite3d_active v] with [1]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        replace item (*newID) of [@spritechunk v] with (~newChunk)\n    else\n        replace item (*newID) of [@spritechunk v] with (chunkid)\n    end\n    replace item (*newID) of [^sd_type v] with [0]\n    set [~dataiter v] to (((*newID) - (1)) * (^SD_Size))\n    repeat (^SD_Size)\n        change [~dataiter v] by (1)\n        replace item (~dataIter) of [^sd v] with []\n    end\nend\n\ndefine [S] DeleteSprite3D data\ndelete all of [@sprite3d_costumename v]\ndelete all of [@sprite3d_x v]\ndelete all of [@sprite3d_y v]\ndelete all of [@sprite3d_z v]\ndelete all of [@sprite3d_size v]\ndelete all of [@sprite3d_alpha v]\ndelete all of [@sprite3d_rotation v]\ndelete all of [#sprite3d_distcamera v]\ndelete all of [@sprite3d_active v]\ndelete all of [@spritechunk v]\ndelete all of [^sd_type v]\ndelete all of [^sd v]\n\ndefine [E] DeleteALL\n!Delete My Data\n[G] DeleteGameObjectData\n[S] DeleteSprite3D data\n[L] DeleteLinesData\n[Tr Q] Delete Triangle Data\n[Tx] Delete Text Data\n[E] Delete Pointers\n[E] Delete Load Points Data\n\ndefine [L] DeleteLinesData\ndelete all of [@linesx1 v]\ndelete all of [@linesx2 v]\ndelete all of [@linesy1 v]\ndelete all of [@linesy2 v]\ndelete all of [@linesz1 v]\ndelete all of [@linesz2 v]\ndelete all of [#line3d_distcamera v]\ndelete all of [@linecolor v]\ndelete all of [@linesize v]\ndelete all of [@lineactive v]\ndelete all of [@line_chunk v]\ndelete all of [#lines3dpointers v]\ndelete all of [^ld_type v]\ndelete all of [^ld v]\n\ndefine [S] Destroy Sprite3D (id)\ndelete (id) of [@sprite3d_costumename v]\ndelete (id) of [@sprite3d_x v]\ndelete (id) of [@sprite3d_y v]\ndelete (id) of [@sprite3d_z v]\ndelete (id) of [@sprite3d_rotation v]\ndelete (id) of [@sprite3d_alpha v]\ndelete (id) of [@sprite3d_size v]\ndelete (id) of [#sprite3d_distcamera v]\ndelete (id) of [@spritechunk v]\ndelete (id) of [^sd_type v]\nrepeat (^SD_Size)\n    delete ((((id) - (1)) * (^SD_Size)) + (1)) of [^sd v]\nend\n\ndefine [L] Add Line 3D p1: (x1) (y1) (z1) p2: (x2) (y2) (z2) color (r) (g) (b) (a) size (size) chunkID [-1 auto] (chunkid)\nset [~newslot v] to [1]\nset [~p v] to [1]\nrepeat until <<(~newSlot) = [0]> or <(~p) > (length of [#lines3dpointers v])>>\n    if <(item (~p) of [#lines3dpointers v]) = [0]> then\n        set [~newslot v] to [0]\n    end\n    change [~p v] by (1)\nend\nif <(~newSlot) = [1]> then\n    set [*newid v] to (~p)\n    add ((x1) + (~chunkRelX)) to [@linesx1 v]\n    add ((x2) + (~chunkRelX)) to [@linesx2 v]\n    add (y1) to [@linesy1 v]\n    add (y2) to [@linesy2 v]\n    add ((z1) + (~chunkRelZ)) to [@linesz1 v]\n    add ((z2) + (~chunkRelZ)) to [@linesz2 v]\n    add (((((a) + (1)) * (16777216)) + ((r) * (65536))) + (((g) * (256)) + (b))) to [@linecolor v]\n    add (size) to [@linesize v]\n    add [] to [#line3d_distcamera v]\n    add [1] to [@lineactive v]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((((x1) + (~chunkRelX)) + ((x2) + (~chunkRelX))) / (2)) ((((z1) + (~chunkRelZ)) + ((z2) + (~chunkRelZ))) / (2))\n        add (~newChunk) to [@line_chunk v]\n    else\n        add (chunkid) to [@line_chunk v]\n    end\n    add [1] to [#lines3dpointers v]\n    add [0] to [^ld_type v]\n    repeat (^LD_Size)\n        add [] to [^ld v]\n    end\nelse\n    set [*newid v] to ((~p) - (1))\n    replace item (*newID) of [@linesx1 v] with ((x1) + (~chunkRelX))\n    replace item (*newID) of [@linesx2 v] with ((x2) + (~chunkRelX))\n    replace item (*newID) of [@linesy1 v] with (y1)\n    replace item (*newID) of [@linesy2 v] with (y2)\n    replace item (*newID) of [@linesz1 v] with ((z1) + (~chunkRelZ))\n    replace item (*newID) of [@linesz2 v] with ((z2) + (~chunkRelZ))\n    replace item (*newID) of [@linecolor v] with (((((a) + (1)) * (16777216)) + ((r) * (65536))) + (((g) * (256)) + (b)))\n    replace item (*newID) of [@linesize v] with (size)\n    replace item (*newID) of [@lineactive v] with [1]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((((x1) + (~chunkRelX)) + ((x2) + (~chunkRelX))) / (2)) ((((z1) + (~chunkRelZ)) + ((z2) + (~chunkRelZ))) / (2))\n        replace item (*newID) of [@line_chunk v] with (~newChunk)\n    else\n        replace item (*newID) of [@line_chunk v] with (chunkid)\n    end\n    replace item (*newID) of [#lines3dpointers v] with [1]\n    replace item (*newID) of [^ld_type v] with [0]\n    set [~dataiter v] to (((*newID) - (1)) * (^LD_Size))\n    repeat (^LD_Size)\n        change [~dataiter v] by (1)\n        replace item (~dataIter) of [^ld v] with []\n    end\nend\n\ndefine [Q] Add Quad p1 (x1) (y1) (z1) p2 (x2) (y2) (z2) p3 (x3) (y3) (z3) p4 (x4) (y4) (z4) color (r) (g) (b) (a) style - color (color) brightness (brightness) chunk [-1 auto] (chunk)\n[Tr] Add Triangle p1: (x1) (y1) (z1) p2: (x2) (y2) (z2) p3: (x3) (y3) (z3) Color (r) (g) (b) (a) Is part of quad: [1] style - color: (color) brightness (brightness) triangleChunk[-1 auto] (chunk)\n[Tr] Add Triangle p1: (x3) (y3) (z3) p2: (x4) (y4) (z4) p3: (x1) (y1) (z1) Color (r) (g) (b) (a) Is part of quad: [2] style - color: (color) brightness (brightness) triangleChunk[-1 auto] (chunk)\nchange [`numberofquads v] by (1)\nset [~co v] to [1]\nrepeat (3)\n    if <(item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v]) < (item ((((*newID) - (2)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v])> then\n        replace item ((((*newID) - (2)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v] with (item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v])\n    end\n    change [~co v] by (2)\nend\nset [~co v] to [2]\nrepeat (3)\n    if <(item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v]) > (item ((((*newID) - (2)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v])> then\n        replace item ((((*newID) - (2)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v] with (item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (~co)) of [#trianglecolldata v])\n    end\n    change [~co v] by (2)\nend\nchange [*newid v] by (-1)\n\ndefine [Tr Q] Delete Triangle Data\ndelete all of [#triangledata v]\ndelete all of [@trianglecolor v]\ndelete all of [@triangle_active v]\ndelete all of [@trianglex v]\ndelete all of [@triangley v]\ndelete all of [@trianglez v]\ndelete all of [#triangleisquad v]\ndelete all of [#trianglecolldata v]\ndelete all of [#triangletranslatevalues v]\ndelete all of [@trianglestylebrightness v]\ndelete all of [@trianglestylecolor v]\ndelete all of [@trianglechunk v]\ndelete all of [^td_type v]\ndelete all of [^td v]\n\ndefine [L] Destroy Line3D (id)\ndelete (id) of [@linesx1 v]\ndelete (id) of [@linesx2 v]\ndelete (id) of [@linesy1 v]\ndelete (id) of [@linesy2 v]\ndelete (id) of [@linesz1 v]\ndelete (id) of [@linesz2 v]\ndelete (id) of [#line3d_distcamera v]\ndelete (id) of [@linecolor v]\ndelete (id) of [@linesize v]\ndelete (id) of [^ld_type v]\nrepeat (^LD_Size)\n    delete ((((id) - (1)) * (^LD_Size)) + (1)) of [^ld_type v]\nend\n\ndefine [Tr] Destroy Triangle (id)\nif <(item (id) of [#triangleisquad v]) = [1]> then\n    change [`numberofquads v] by (-1)\n    replace item ((id) + (1)) of [#triangleisquad v] with [0]\nelse\n    if <(item (id) of [#triangledata v]) = [2]> then\n        change [`numberofquads v] by (-1)\n        replace item ((id) + (-1)) of [#triangleisquad v] with [0]\n    end\nend\n[E] Destroy Triangle single data (id)\nrepeat (`TriangleDataPerInst)\n    delete ((((id) - (1)) * (`TriangleDataPerInst)) + (1)) of [#triangledata v]\nend\nrepeat (`TriangleCollPerInst)\n    delete ((((id) - (1)) * (`TriangleCollPerInst)) + (1)) of [#trianglecolldata v]\nend\n\ndefine [C] Sphere vs Triangle (x) (y) (z) radius (r) Triangle ID: (trid)\nset [*collisionresult v] to [0]\nset [~triadd v] to (((trid) - (1)) * (`TriangleDataPerInst))\nset [~coladd v] to (((trid) - (1)) * (`TriangleCollPerInst))\nset [~dot v] to ((((x) * (item ((~triAdd) + (10)) of [#triangledata v])) + (((y) * (item ((~triAdd) + (11)) of [#triangledata v])) + ((z) * (item ((~triAdd) + (12)) of [#triangledata v])))) - (item ((~triAdd) + (13)) of [#triangledata v]))\nif <<((x) + (r)) > (item ((~colAdd) + (1)) of [#trianglecolldata v])> and <((x) - (r)) < (item ((~colAdd) + (2)) of [#trianglecolldata v])>> then\n    if <<((y) + (r)) > (item ((~colAdd) + (3)) of [#trianglecolldata v])> and <((y) - (r)) < (item ((~colAdd) + (4)) of [#trianglecolldata v])>> then\n        if <<((z) + (r)) > (item ((~colAdd) + (5)) of [#trianglecolldata v])> and <((z) - (r)) < (item ((~colAdd) + (6)) of [#trianglecolldata v])>> then\n            if <([abs v] of (~dot) ) < (r)> then\n                [C] Precise Collision Sphere to current Triangle (x) (y) (z) radius (r)\n            end\n        end\n    end\nend\n\ndefine [E] Set Light\nset [#lightx v] to (([cos v] of (@LightAngle) ) * (0.75))\nset [#lighty v] to [0.5]\nset [#lightz v] to (([sin v] of (@LightAngle) ) * (0.75))\n\ndefine [T] Get Angle between v1: (v1x) (v1y) (v1z) v2: (v2x) (v2y) (v2z) roll (roll)\nset [~a_vx v] to ((v2x) - (v1x))\nset [~a_vy v] to ((v2y) - (v1y))\nset [~a_vz v] to ((v2z) - (v1z))\nset [~a_mag v] to ([sqrt v] of (((~A_Vx) * (~A_Vx)) + (((~A_Vy) * (~A_Vy)) + ((~A_Vz) * (~A_Vz)))) )\nset [~a_vx v] to ((~A_Vx) / (~A_mag))\nset [~a_vy v] to ((~A_Vy) / (~A_mag))\nset [~a_vz v] to ((~A_Vz) / (~A_mag))\nif <(~A_Vz) = [0]> then\n    if <(~A_Vx) > [0]> then\n        set [*getanglex v] to ((roll) + (180))\n    else\n        set [*getanglex v] to ((roll) + (0))\n    end\n    set [*getangley v] to [-90]\n    [T] Atan2 (~A_Vy) (~A_Vx)\n    set [*getanglez v] to ((*getAngle) - (180))\nelse\n    if <(~A_Vz) > [0]> then\n        [T] Atan2 ((~A_Vy) * (~A_Vx)) ((1) - ((~A_Vy) * (~A_Vy)))\n        set [*getanglez v] to ((*getAngle) + (roll))\n        [T] Atan2 (((~A_Vx) * ([sin v] of (*getAngleZ) )) - ((~A_Vy) * ([cos v] of (*getAngleZ) ))) (~A_Vz)\n        set [*getanglex v] to (*getAngle)\n        [T] Atan2 ((((~A_Vx) * ([cos v] of (*getAngleZ) )) + ((~A_Vy) * ([sin v] of (*getAngleZ) ))) * ([cos v] of (*getAngleX) )) (~A_Vz)\n        set [*getangley v] to (*getAngle)\n    else\n        [T] Atan2 ((~A_Vy) * (~A_Vx)) ((1) - ((~A_Vy) * (~A_Vy)))\n        set [*getanglez v] to (((*getAngle) + (roll)) - (180))\n        [T] Atan2 (((~A_Vx) * ([sin v] of (*getAngleZ) )) - ((~A_Vy) * ([cos v] of (*getAngleZ) ))) (~A_Vz)\n        set [*getanglex v] to (*getAngle)\n        [T] Atan2 ((((~A_Vx) * ([cos v] of (*getAngleZ) )) + ((~A_Vy) * ([sin v] of (*getAngleZ) ))) * ([cos v] of (*getAngleX) )) (~A_Vz)\n        set [*getangley v] to ((*getAngle) - (180))\n    end\nend\n\ndefine [Tr] Add Triangle p1: (x1) (y1) (z1) p2: (x2) (y2) (z2) p3: (x3) (y3) (z3) Color (r) (g) (b) (a) Is part of quad: (quadpart) style - color: (color) brightness (brightness) triangleChunk[-1 auto] (chunk)\nset [~newslot v] to [1]\nif <(quadpart) = [0]> then\n    set [~p v] to [1]\n    repeat until <<(~newSlot) = [0]> or <(~p) > (length of [#trianglepointers v])>>\n        if <(item (~p) of [#trianglepointers v]) = [0]> then\n            set [~newslot v] to [0]\n        end\n        change [~p v] by (1)\n    end\n    if <(~newSlot) = [1]> then\n        set [*newid v] to (~p)\n    else\n        set [*newid v] to ((~p) - (1))\n    end\nelse\n    if <(quadpart) = [1]> then\n        set [~p v] to [1]\n        repeat until <<(~newSlot) = [0]> or <(~p) > ((length of [#trianglepointers v]) - (1))>>\n            if <<(item (~p) of [#trianglepointers v]) = [0]> and <(item ((~p) + (1)) of [#trianglepointers v]) = [0]>> then\n                set [~newslot v] to [0]\n            end\n            change [~p v] by (1)\n        end\n        if <(~newSlot) = [1]> then\n            if <<(length of [#trianglepointers v]) > [0]> and <(item (length of [#trianglepointers v]) of [#trianglepointers v]) = [0]>> then\n                set [~newslot v] to [0]\n                set [*newid v] to (length of [#trianglepointers v])\n            else\n                set [~newslot v] to [1]\n                set [*newid v] to ((length of [#trianglepointers v]) + (1))\n            end\n        else\n            set [*newid v] to ((~p) - (1))\n        end\n    else\n        change [*newid v] by (1)\n        if <not <(*newID) > (length of [#trianglepointers v])>> then\n            set [~newslot v] to [0]\n        end\n    end\nend\nif <(~newSlot) = [1]> then\n    repeat (`TriangleDataPerInst)\n        add [] to [#triangledata v]\n    end\n    repeat (`TriangleCollPerInst)\n        add [] to [#trianglecolldata v]\n    end\n    repeat (3)\n        add [] to [#triangletranslatevalues v]\n    end\n    add [] to [@triangle_active v]\n    add [] to [@trianglecolor v]\n    add [] to [@trianglex v]\n    add [] to [@triangley v]\n    add [] to [@trianglez v]\n    add [] to [@trianglestylecolor v]\n    add [] to [@trianglestylebrightness v]\n    add [] to [#triangleisquad v]\n    add [] to [#trianglepointers v]\n    add [] to [@trianglechunk v]\n    add [] to [^td_type v]\n    repeat (^TD_Size)\n        add [] to [^td v]\n    end\nend\nreplace item (*newID) of [@triangle_active v] with [1]\nreplace item (*newID) of [@trianglecolor v] with (((((a) + (1)) * (16777216)) + ((r) * (65536))) + (((g) * (256)) + (b)))\nreplace item (*newID) of [@trianglex v] with [0]\nreplace item (*newID) of [@triangley v] with [0]\nreplace item (*newID) of [@trianglez v] with [0]\nreplace item (*newID) of [@trianglestylecolor v] with (color)\nreplace item (*newID) of [@trianglestylebrightness v] with (brightness)\nreplace item (*newID) of [#triangleisquad v] with (quadpart)\nreplace item (*newID) of [^td_type v] with [0]\nset [~dataiter v] to (((*newID) - (1)) * (^TD_Size))\nrepeat (^TD_Size)\n    change [~dataiter v] by (1)\n    replace item (~dataIter) of [^td_type v] with []\nend\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (1)) of [#triangledata v] with ((x1) + (~chunkRelX))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (2)) of [#triangledata v] with (y1)\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (3)) of [#triangledata v] with ((z1) + (~chunkRelZ))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (4)) of [#triangledata v] with ((x2) + (~chunkRelX))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (5)) of [#triangledata v] with (y2)\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (6)) of [#triangledata v] with ((z2) + (~chunkRelZ))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (7)) of [#triangledata v] with ((x3) + (~chunkRelX))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (8)) of [#triangledata v] with (y3)\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (9)) of [#triangledata v] with ((z3) + (~chunkRelZ))\ndelete all of [~templist v]\nadd ((x3) - (x1)) to [~templist v]\nadd ((y3) - (y1)) to [~templist v]\nadd ((z3) - (z1)) to [~templist v]\nadd ((x2) - (x1)) to [~templist v]\nadd ((y2) - (y1)) to [~templist v]\nadd ((z2) - (z1)) to [~templist v]\nif <(((item (3) of [~templist v]) * (item (4) of [~templist v])) - ((item (1) of [~templist v]) * (item (6) of [~templist v]))) < [0]> then\n    add (((item (3) of [~templist v]) * (item (5) of [~templist v])) - ((item (2) of [~templist v]) * (item (6) of [~templist v]))) to [~templist v]\n    add (((item (1) of [~templist v]) * (item (6) of [~templist v])) - ((item (3) of [~templist v]) * (item (4) of [~templist v]))) to [~templist v]\n    add (((item (2) of [~templist v]) * (item (4) of [~templist v])) - ((item (1) of [~templist v]) * (item (5) of [~templist v]))) to [~templist v]\nelse\n    add (((item (2) of [~templist v]) * (item (6) of [~templist v])) - ((item (3) of [~templist v]) * (item (5) of [~templist v]))) to [~templist v]\n    add (((item (3) of [~templist v]) * (item (4) of [~templist v])) - ((item (1) of [~templist v]) * (item (6) of [~templist v]))) to [~templist v]\n    add (((item (1) of [~templist v]) * (item (5) of [~templist v])) - ((item (2) of [~templist v]) * (item (4) of [~templist v]))) to [~templist v]\nend\nadd ([sqrt v] of (((item (7) of [~templist v]) * (item (7) of [~templist v])) + (((item (8) of [~templist v]) * (item (8) of [~templist v])) + ((item (9) of [~templist v]) * (item (9) of [~templist v])))) ) to [~templist v]\nreplace item (7) of [~templist v] with ((item (7) of [~templist v]) / (item (10) of [~templist v]))\nreplace item (8) of [~templist v] with ((item (8) of [~templist v]) / (item (10) of [~templist v]))\nreplace item (9) of [~templist v] with ((item (9) of [~templist v]) / (item (10) of [~templist v]))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (10)) of [#triangledata v] with (item (7) of [~templist v])\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (11)) of [#triangledata v] with (item (8) of [~templist v])\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (12)) of [#triangledata v] with (item (9) of [~templist v])\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (13)) of [#triangledata v] with ((((x1) + (~chunkRelX)) * (item (7) of [~templist v])) + (((y1) * (item (8) of [~templist v])) + (((z1) + (~chunkRelZ)) * (item (9) of [~templist v]))))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (14)) of [#triangledata v] with ((((x1) + ((x2) + (x3))) / (3)) + (~chunkRelX))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (15)) of [#triangledata v] with (((y1) + ((y2) + (y3))) / (3))\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (16)) of [#triangledata v] with ((((z1) + ((z2) + (z3))) / (3)) + (~chunkRelZ))\n[T] Get Falling Slope according to normal (item (7) of [~templist v]) (item (8) of [~templist v]) (item (9) of [~templist v])\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (17)) of [#triangledata v] with (*returnX)\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (18)) of [#triangledata v] with (*returnY)\nreplace item ((((*newID) - (1)) * (`TriangleDataPerInst)) + (19)) of [#triangledata v] with (*returnZ)\n[T] Get Min And Max ((x1) + (~chunkRelX)) ((x2) + (~chunkRelX)) ((x3) + (~chunkRelX))\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (1)) of [#trianglecolldata v] with (*min)\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (2)) of [#trianglecolldata v] with (*max)\nadd (((*min) + (*max)) / (2)) to [~templist v]\n[T] Get Min And Max (y1) (y2) (y3)\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (3)) of [#trianglecolldata v] with (*min)\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (4)) of [#trianglecolldata v] with (*max)\nadd (((*min) + (*max)) / (2)) to [~templist v]\n[T] Get Min And Max ((z1) + (~chunkRelZ)) ((z2) + (~chunkRelZ)) ((z3) + (~chunkRelZ))\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (5)) of [#trianglecolldata v] with (*min)\nreplace item ((((*newID) - (1)) * (`TriangleCollPerInst)) + (6)) of [#trianglecolldata v] with (*max)\nadd (((*min) + (*max)) / (2)) to [~templist v]\nreplace item ((((*newID) - (1)) * (3)) + (1)) of [#triangletranslatevalues v] with [0]\nreplace item ((((*newID) - (1)) * (3)) + (2)) of [#triangletranslatevalues v] with [0]\nreplace item ((((*newID) - (1)) * (3)) + (3)) of [#triangletranslatevalues v] with [0]\nif <(chunk) = [-1]> then\n    [Ch] Get Chunk from Coordinate (item (11) of [~templist v]) (item (13) of [~templist v])\n    replace item (*newID) of [@trianglechunk v] with (~newChunk)\nelse\n    replace item (*newID) of [@trianglechunk v] with (chunk)\nend\nreplace item (*newID) of [#trianglepointers v] with [1]\n\ndefine !Init 3D\nset [@camerax v] to (item (1) of [@startcamera v])\nset [@cameray v] to (item (2) of [@startcamera v])\nset [@cameraz v] to (item (3) of [@startcamera v])\nset [@camerarotatex v] to (item (4) of [@startcamera v])\nset [@camerarotatey v] to (item (5) of [@startcamera v])\nset [@camerarotatez v] to (item (6) of [@startcamera v])\n[E] Calc Camera Vector\nset [@lightangle v] to [-135]\nset [debug v] to [0]\nset [debug2 v] to [0]\nset [debug3 v] to [0]\ndelete all of [debug3 v]\n\ndefine !My Variable Init\nset [!velx v] to [0]\nset [!vely v] to [0]\nset [!velgravityy v] to [0]\nset [!velz v] to [0]\nset [!falling v] to [10]\nset [!playerangle v] to [0]\nset [!targetangle v] to [270]\nset [!stretch v] to [1]\nset [!deadstate v] to [0]\nset [!timer v] to [0]\nset [!wasonground v] to [0]\nset [!animationstate v] to [0]\nset [!isjumpwalk v] to [0]\nset [-playerradius v] to [50]\nset [-playerycoloffset v] to [50]\nset [-cameramovespeed v] to [100]\nset [-playermovespeed v] to [300]\nset [-velslowdown v] to [200]\nset [-velslip v] to [3200]\nset [-movepoweronslippery v] to [700]\n\ndefine [C] Sphere vs ALL triangles (x) (y) (z) radius (radius)\nset [*col_iter v] to [0]\nset [*finalcollision v] to [0]\nrepeat until <<(*col_iter) = (length of [-collidableplatforms v])> or <(*finalCollision) = [1]>>\n    change [*col_iter v] by (1)\n    if <(item (item (*col_iter) of [-collidableplatforms v]) of [@triangle_active v]) = [1]> then\n        if <(item (item (*col_iter) of [-collidableplatforms v]) of [#triangleisquad v]) = [1]> then\n            [C] Sphere vs Quad (x) (y) (z) radius (radius) quad ID (item (*col_iter) of [-collidableplatforms v])\n        else\n            [C] Sphere vs Triangle (x) (y) (z) radius (radius) Triangle ID: (item (*col_iter) of [-collidableplatforms v])\n        end\n        set [*finalcollision v] to (*collisionResult)\n    end\nend\n\ndefine !Walk (x) (z)\nreplace item (-PlayerGameObjectID) of [@gameobjectx v] with ((item (-PlayerGameObjectID) of [@gameobjectx v]) + (x))\nreplace item (-PlayerGameObjectID) of [@gameobjectz v] with ((item (-PlayerGameObjectID) of [@gameobjectz v]) + (z))\nset [!slope v] to [0]\n[C] GameObject vs ALL triangles (-PlayerGameObjectID) radius (-PlayerRadius) offset [0] (-PlayerYColOffset) [0]\nif <(*finalCollision) = [0]> then\n    [C] Sphere vs ALL Lines (item (-PlayerGameObjectID) of [@gameobjectx v]) ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)) (item (-PlayerGameObjectID) of [@gameobjectz v]) radius (-PlayerRadius)\nend\nif <(*finalCollision) = [1]> then\n    if <(!velGravityY) = [0]> then\n        repeat until <<(!slope) = [4]> or <(*finalCollision) = [0]>>\n            change [!slope v] by (1)\n            replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (4))\n            [C] GameObject vs ALL triangles (-PlayerGameObjectID) radius (-PlayerRadius) offset [0] (-PlayerYColOffset) [0]\n            if <(*finalCollision) = [0]> then\n                [C] Sphere vs ALL Lines (item (-PlayerGameObjectID) of [@gameobjectx v]) ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)) (item (-PlayerGameObjectID) of [@gameobjectz v]) radius (-PlayerRadius)\n            end\n        end\n        replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-4))\n        if <(!slope) = [4]> then\n            replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) - (!slope))\n            replace item (-PlayerGameObjectID) of [@gameobjectx v] with ((item (-PlayerGameObjectID) of [@gameobjectx v]) - (x))\n            replace item (-PlayerGameObjectID) of [@gameobjectz v] with ((item (-PlayerGameObjectID) of [@gameobjectz v]) - (z))\n            set [!velx v] to ((!velX) * ((1) - ((#DeltaTime) * (8))))\n            set [!velz v] to ((!velZ) * ((1) - ((#DeltaTime) * (8))))\n        end\n    else\n        replace item (-PlayerGameObjectID) of [@gameobjectx v] with ((item (-PlayerGameObjectID) of [@gameobjectx v]) - (x))\n        replace item (-PlayerGameObjectID) of [@gameobjectz v] with ((item (-PlayerGameObjectID) of [@gameobjectz v]) - (z))\n    end\nend\n\ndefine !Walk Move\nset [~havecontrol v] to [0]\nif <key (w v) pressed?> then\n    if <key (a v) pressed?> then\n        set [!targetangle v] to ((@CameraRotateY) + (315))\n        set [~havecontrol v] to [1]\n    else\n        if <key (d v) pressed?> then\n            set [!targetangle v] to ((@CameraRotateY) + (225))\n            set [~havecontrol v] to [1]\n        else\n            set [!targetangle v] to ((@CameraRotateY) + (270))\n            set [~havecontrol v] to [1]\n        end\n    end\nelse\n    if <key (s v) pressed?> then\n        if <key (a v) pressed?> then\n            set [!targetangle v] to ((@CameraRotateY) + (45))\n            set [~havecontrol v] to [1]\n        else\n            if <key (d v) pressed?> then\n                set [!targetangle v] to ((@CameraRotateY) + (135))\n                set [~havecontrol v] to [1]\n            else\n                set [!targetangle v] to ((@CameraRotateY) + (90))\n                set [~havecontrol v] to [1]\n            end\n        end\n    else\n        if <key (a v) pressed?> then\n            set [!targetangle v] to ((@CameraRotateY) + (0))\n            set [~havecontrol v] to [1]\n        else\n            if <key (d v) pressed?> then\n                set [!targetangle v] to ((@CameraRotateY) + (180))\n                set [~havecontrol v] to [1]\n            end\n        end\n    end\nend\nset [!movex v] to [0]\nset [!movez v] to [0]\nif <(~haveControl) = [1]> then\n    set [!iswalking v] to [1]\n    set [!movex v] to (() - ([cos v] of (!targetAngle) ))\n    set [!movez v] to (() - ([sin v] of (!targetAngle) ))\nend\nset [!playerangle v] to ((!playerAngle) mod (360))\nset [!targetangle v] to ((!targetAngle) mod (360))\n[T] Calculate Shortest Rotation Direction (!playerAngle) ((270) - (!targetAngle))\nif <([abs v] of (*return) ) < ((#DeltaTime) * (100))> then\n    set [!playerangle v] to ((270) - (!targetAngle))\nelse\n    change [!playerangle v] by (((*return) * ((3) * (#DeltaTime))) + (((<(*return) > [0]> * (2)) + (-1)) * ((90) * (#DeltaTime))))\nend\nreplace item (-PlayerGameObjectID) of [@gameobject_roty v] with (!playerAngle)\n\ndefine !Calculate Shadow\nset [!sx v] to (item (-PlayerGameObjectID) of [@gameobjectx v])\nset [!sy v] to ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (0))\nset [!sz v] to (item (-PlayerGameObjectID) of [@gameobjectz v])\nreplace item (-ShadowSpriteID) of [@sprite3d_active v] with [1]\n[C] Sphere vs ALL triangles (!sx) (!sy) (!sz) radius [20]\nrepeat until <<(*finalCollision) = [1]> or <(!sy) < [-200]>>\n    change [!sy v] by (-20)\n    [C] Sphere vs ALL triangles (!sx) (!sy) (!sz) radius [20]\nend\nif <(!sy) < [-200]> then\n    replace item (-ShadowSpriteID) of [@sprite3d_active v] with [0]\nelse\n    repeat until <(*finalCollision) = [0]>\n        change [!sy v] by (1.372)\n        [C] Sphere vs ALL triangles (!sx) (!sy) (!sz) radius [20]\n    end\n    replace item (-ShadowSpriteID) of [@sprite3d_x v] with (!sx)\n    replace item (-ShadowSpriteID) of [@sprite3d_y v] with ((!sy) - (20))\n    replace item (-ShadowSpriteID) of [@sprite3d_z v] with (!sz)\n    replace item (-ShadowSpriteID) of [@sprite3d_alpha v] with ((((((item (-PlayerGameObjectID) of [@gameobjecty v]) + ()) - (-PlayerRadius)) - (!sy)) / (6)) + (40))\n    replace item (-ShadowSpriteID) of [@sprite3d_size v] with ((((((item (-PlayerGameObjectID) of [@gameobjecty v]) + ()) - (-PlayerRadius)) - (!sy)) / (1)) + (300))\nend\n\ndefine [C] GameObject vs ALL triangles (g) radius (r) offset (ox) (oy) (oz)\n[C] Sphere vs ALL triangles ((item (g) of [@gameobjectx v]) + (ox)) ((item (g) of [@gameobjecty v]) + (oy)) ((item (g) of [@gameobjectz v]) + (oz)) radius (r)\n\ndefine [Q] Destroy Quad (id)\nif <(item (id) of [#triangleisquad v]) = [1]> then\n    change [`numberofquads v] by (-1)\n    repeat ((`TriangleDataPerInst) * (2))\n        delete ((((id) - (1)) * (`TriangleDataPerInst)) + (1)) of [#triangledata v]\n    end\n    repeat ((`TriangleCollPerInst) * (2))\n        delete ((((id) - (1)) * (`TriangleCollPerInst)) + (1)) of [#trianglecolldata v]\n    end\n    [E] Destroy Triangle single data (id)\n    [E] Destroy Triangle single data (id)\nelse\n    if <(item (id) of [#triangleisquad v]) = [2]> then\n        change [`numberofquads v] by (-1)\n        repeat ((`TriangleDataPerInst) * (2))\n            delete ((((id) - (2)) * (`TriangleDataPerInst)) + (1)) of [#triangledata v]\n        end\n        repeat ((`TriangleCollPerInst) * (2))\n            delete ((((id) - (2)) * (`TriangleCollPerInst)) + (1)) of [#trianglecolldata v]\n        end\n        [E] Destroy Triangle single data ((id) + (-1))\n        [E] Destroy Triangle single data ((id) + (-1))\n    end\nend\n\ndefine [Q] Set Quad IsActive ID: (id) active (active)\nif <(item (id) of [#triangleisquad v]) = [1]> then\n    replace item (id) of [@triangle_active v] with (active)\n    replace item ((id) + (1)) of [@triangle_active v] with (active)\nelse\n    if <(item (id) of [#triangleisquad v]) = [2]> then\n        replace item ((id) + (-1)) of [@triangle_active v] with (active)\n        replace item (id) of [@triangle_active v] with (active)\n    end\nend\n\ndefine !RotateCamera\nif <key (t v) pressed?> then\n    change [@camerarotatex v] by ((#DeltaTime) * (-45))\nend\nif <key (g v) pressed?> then\n    change [@camerarotatex v] by ((#DeltaTime) * (45))\nend\nif <key (f v) pressed?> then\n    change [@camerarotatey v] by ((#DeltaTime) * (45))\nend\nif <key (h v) pressed?> then\n    change [@camerarotatey v] by ((#DeltaTime) * (-45))\nend\nif <key (z v) pressed?> then\n    change [@camerarotatez v] by ((#DeltaTime) * (45))\nend\nif <key (c v) pressed?> then\n    change [@camerarotatez v] by ((#DeltaTime) * (-45))\nend\n\ndefine !My Objects\n\ndefine [T] Calculate Shortest Rotation Direction (from) (to)\nset [~left v] to (((to) - (from)) + (360))\nset [~right v] to ((from) - (to))\nif <(from) < (to)> then\n    if <(to) > [0]> then\n        set [~left v] to ((to) - (from))\n        set [~right v] to (((from) - (to)) + (360))\n    else\n        set [~left v] to (((from) - (to)) + (360))\n        set [~right v] to ((to) - (from))\n    end\nend\nif <(~left) > (~right)> then\n    set [*return v] to (() - (~right))\nelse\n    set [*return v] to (~left)\nend\n\ndefine [E] Destroy Triangle single data (id)\ndelete (id) of [@trianglecolor v]\ndelete (id) of [@triangle_active v]\ndelete (id) of [@trianglestylecolor v]\ndelete (id) of [@trianglestylebrightness v]\ndelete (id) of [@trianglex v]\ndelete (id) of [@triangley v]\ndelete (id) of [@trianglez v]\ndelete (id) of [#triangleisquad v]\ndelete (id) of [@trianglechunk v]\ndelete (id) of [^td_type v]\nrepeat (^TD_Size)\n    delete ((((id) - (1)) * (^TD_Size)) + (1)) of [^td v]\nend\n\ndefine [Tr] Translate Triangle (trid) for (x) (y) (z)\nif <not <<(x) = [0]> and <<(y) = [0]> and <(z) = [0]>>>> then\n    replace item (trid) of [@trianglex v] with ((item (trid) of [@trianglex v]) + (x))\n    replace item (trid) of [@triangley v] with ((item (trid) of [@triangley v]) + (y))\n    replace item (trid) of [@trianglez v] with ((item (trid) of [@trianglez v]) + (z))\n    set [~triadd v] to (((trid) - (1)) * (`TriangleDataPerInst))\n    replace item ((~triAdd) + (1)) of [#triangledata v] with ((item ((~triAdd) + (1)) of [#triangledata v]) + (x))\n    replace item ((~triAdd) + (2)) of [#triangledata v] with ((item ((~triAdd) + (2)) of [#triangledata v]) + (y))\n    replace item ((~triAdd) + (3)) of [#triangledata v] with ((item ((~triAdd) + (3)) of [#triangledata v]) + (z))\n    replace item ((~triAdd) + (4)) of [#triangledata v] with ((item ((~triAdd) + (4)) of [#triangledata v]) + (x))\n    replace item ((~triAdd) + (5)) of [#triangledata v] with ((item ((~triAdd) + (5)) of [#triangledata v]) + (y))\n    replace item ((~triAdd) + (6)) of [#triangledata v] with ((item ((~triAdd) + (6)) of [#triangledata v]) + (z))\n    replace item ((~triAdd) + (7)) of [#triangledata v] with ((item ((~triAdd) + (7)) of [#triangledata v]) + (x))\n    replace item ((~triAdd) + (8)) of [#triangledata v] with ((item ((~triAdd) + (8)) of [#triangledata v]) + (y))\n    replace item ((~triAdd) + (9)) of [#triangledata v] with ((item ((~triAdd) + (9)) of [#triangledata v]) + (z))\n    replace item ((~triAdd) + (13)) of [#triangledata v] with (((item ((~triAdd) + (1)) of [#triangledata v]) * (item ((~triAdd) + (10)) of [#triangledata v])) + (((item ((~triAdd) + (2)) of [#triangledata v]) * (item ((~triAdd) + (11)) of [#triangledata v])) + ((item ((~triAdd) + (3)) of [#triangledata v]) * (item ((~triAdd) + (12)) of [#triangledata v]))))\n    replace item ((~triAdd) + (14)) of [#triangledata v] with ((item ((~triAdd) + (14)) of [#triangledata v]) + (x))\n    replace item ((~triAdd) + (15)) of [#triangledata v] with ((item ((~triAdd) + (15)) of [#triangledata v]) + (y))\n    replace item ((~triAdd) + (16)) of [#triangledata v] with ((item ((~triAdd) + (16)) of [#triangledata v]) + (z))\n    set [~coladd v] to (((trid) - (1)) * (`TriangleCollPerInst))\n    replace item ((~colAdd) + (1)) of [#trianglecolldata v] with ((item ((~colAdd) + (1)) of [#trianglecolldata v]) + (x))\n    replace item ((~colAdd) + (2)) of [#trianglecolldata v] with ((item ((~colAdd) + (2)) of [#trianglecolldata v]) + (x))\n    replace item ((~colAdd) + (3)) of [#trianglecolldata v] with ((item ((~colAdd) + (3)) of [#trianglecolldata v]) + (y))\n    replace item ((~colAdd) + (4)) of [#trianglecolldata v] with ((item ((~colAdd) + (4)) of [#trianglecolldata v]) + (y))\n    replace item ((~colAdd) + (5)) of [#trianglecolldata v] with ((item ((~colAdd) + (5)) of [#trianglecolldata v]) + (z))\n    replace item ((~colAdd) + (6)) of [#trianglecolldata v] with ((item ((~colAdd) + (6)) of [#trianglecolldata v]) + (z))\nend\nreplace item (((trid) * (3)) - (2)) of [#triangletranslatevalues v] with (x)\nreplace item (((trid) * (3)) - (1)) of [#triangletranslatevalues v] with (y)\nreplace item ((trid) * (3)) of [#triangletranslatevalues v] with (z)\n\ndefine [Tr Q] Translate Triangle or Quad ID: (trid) for (x) (y) (z)\nif <(item (trid) of [#triangleisquad v]) = [1]> then\n    [Tr] Translate Triangle (trid) for (x) (y) (z)\n    [Tr] Translate Triangle ((trid) + (1)) for (x) (y) (z)\nelse\n    if <(item (trid) of [#triangleisquad v]) = [2]> then\n        [Tr] Translate Triangle ((trid) + (-1)) for (x) (y) (z)\n        [Tr] Translate Triangle (trid) for (x) (y) (z)\n    else\n        [Tr] Translate Triangle (trid) for (x) (y) (z)\n    end\nend\n\ndefine [Tr] Set Position Of Triangle (id) to (x) (y) (z)\n[Tr] Translate Triangle (id) for ((x) - (item (id) of [@trianglex v])) ((y) - (item (id) of [@triangley v])) ((z) - (item (id) of [@trianglez v]))\n\ndefine [Tr Q] Set Position Of Triangle or Quad (id) to (x) (y) (z)\n[Tr Q] Translate Triangle or Quad ID: (id) for ((x) - (item (id) of [@trianglex v])) ((y) - (item (id) of [@triangley v])) ((z) - (item (id) of [@trianglez v]))\n\ndefine [T] Get Min And Max (a) (b) (c)\nif <<(a) > (c)> and <(b) > (c)>> then\n    set [*min v] to (c)\n    if <(b) > (a)> then\n        set [*max v] to (b)\n    else\n        set [*max v] to (a)\n    end\nelse\n    if <(b) > (a)> then\n        set [*min v] to (a)\n        if <(b) > (c)> then\n            set [*max v] to (b)\n        else\n            set [*max v] to (c)\n        end\n    else\n        set [*min v] to (b)\n        if <(a) > (c)> then\n            set [*max v] to (a)\n        else\n            set [*max v] to (c)\n        end\n    end\nend\n\ndefine [C] Precise Collision Sphere to current Triangle (x) (y) (z) radius (r)\nset [~tempx v] to ((x) - ((item ((~triAdd) + (10)) of [#triangledata v]) * (~dot)))\nset [~tempy v] to ((y) - ((item ((~triAdd) + (11)) of [#triangledata v]) * (~dot)))\nset [~tempz v] to ((z) - ((item ((~triAdd) + (12)) of [#triangledata v]) * (~dot)))\nset [~ax v] to ((item ((~triAdd) + (1)) of [#triangledata v]) - (~tempX))\nset [~ay v] to ((item ((~triAdd) + (2)) of [#triangledata v]) - (~tempY))\nset [~az v] to ((item ((~triAdd) + (3)) of [#triangledata v]) - (~tempZ))\nset [~bx v] to ((item ((~triAdd) + (4)) of [#triangledata v]) - (~tempX))\nset [~by v] to ((item ((~triAdd) + (5)) of [#triangledata v]) - (~tempY))\nset [~bz v] to ((item ((~triAdd) + (6)) of [#triangledata v]) - (~tempZ))\nset [~cx v] to ((item ((~triAdd) + (7)) of [#triangledata v]) - (~tempX))\nset [~cy v] to ((item ((~triAdd) + (8)) of [#triangledata v]) - (~tempY))\nset [~cz v] to ((item ((~triAdd) + (9)) of [#triangledata v]) - (~tempZ))\nset [~pbcx v] to (((~by) * (~cz)) - ((~bz) * (~cy)))\nset [~pbcy v] to (((~bz) * (~cx)) - ((~bx) * (~cz)))\nset [~pbcz v] to (((~bx) * (~cy)) - ((~by) * (~cx)))\nset [~pcax v] to (((~cy) * (~az)) - ((~cz) * (~ay)))\nset [~pcay v] to (((~cz) * (~ax)) - ((~cx) * (~az)))\nset [~pcaz v] to (((~cx) * (~ay)) - ((~cy) * (~ax)))\nset [~pabx v] to (((~ay) * (~bz)) - ((~az) * (~by)))\nset [~paby v] to (((~az) * (~bx)) - ((~ax) * (~bz)))\nset [~pabz v] to (((~ax) * (~by)) - ((~ay) * (~bx)))\nif <not <<(((~PbcX) * (~PcaX)) + (((~PbcY) * (~PcaY)) + ((~PbcZ) * (~PcaZ)))) < [0]> or <(((~PbcX) * (~PabX)) + (((~PbcY) * (~PabY)) + ((~PbcZ) * (~PabZ)))) < [0]>>> then\n    set [*colx v] to (~tempX)\n    set [*coly v] to (~tempY)\n    set [*colz v] to (~tempZ)\n    change [~tempx v] by (() - (x))\n    change [~tempy v] by (() - (y))\n    change [~tempz v] by (() - (z))\n    set [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\n    if <(~mag) < (r)> then\n        set [*collisionresult v] to [1]\n    end\n    stop [this script v]\nend\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) | (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nset [*colx v] to (*returnX)\nset [*coly v] to (*returnY)\nset [*colz v] to (*returnZ)\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) | (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~temp v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~temp) < (~mag)> then\n    set [~mag v] to (~temp)\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nend\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v]) | (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~temp v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~temp) < (~mag)> then\n    set [~mag v] to (~temp)\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nend\nif <(~mag) < ((r) * (1))> then\n    set [*collisionresult v] to [1]\nend\n\ndefine [C] Closest Point To Line Segment p: (px) (py) (pz) Line: (x1) (y1) (z1) | (x2) (y2) (z2)\nset [~vx v] to ((x2) - (x1))\nset [~vy v] to ((y2) - (y1))\nset [~vz v] to ((z2) - (z1))\nset [~t v] to (((((px) - (x1)) * (~vx)) + ((((py) - (y1)) * (~vy)) + (((pz) - (z1)) * (~vz)))) / (((~vx) * (~vx)) + (((~vy) * (~vy)) + ((~vz) * (~vz)))))\nif <(~T) > [1]> then\n    set [~t v] to [1]\nend\nif <(~T) < [0]> then\n    set [~t v] to [0]\nend\nset [*returnx v] to ((x1) + ((~vx) * (~T)))\nset [*returny v] to ((y1) + ((~vy) * (~T)))\nset [*returnz v] to ((z1) + ((~vz) * (~T)))\n\ndefine [G] Translate GameObject (id) for (x) (y) (z)\nreplace item (id) of [@gameobjectx v] with ((item (id) of [@gameobjectx v]) + (x))\nreplace item (id) of [@gameobjecty v] with ((item (id) of [@gameobjecty v]) + (y))\nreplace item (id) of [@gameobjectz v] with ((item (id) of [@gameobjectz v]) + (z))\n\ndefine !Player Platformer Collision\n[C] GameObject vs ALL triangles (-PlayerGameObjectID) radius (-PlayerRadius) offset [0] (-PlayerYColOffset) [0]\nset [~collisioncounter v] to [0]\nset [!playertargetnormalx v] to [0]\nset [!playertargetnormaly v] to [1]\nset [!playertargetnormalz v] to [0]\nif <(*finalCollision) = [1]> then\n    if <(item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (11)) of [#triangledata v]) > [0.1]> then\n        set [!playertargetnormalx v] to (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (10)) of [#triangledata v])\n        set [!playertargetnormaly v] to (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (11)) of [#triangledata v])\n        set [!playertargetnormalz v] to (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (12)) of [#triangledata v])\n    end\n    if <not <(!velGravityY) > [0]>> then\n        [G] Translate GameObject (-PlayerGameObjectID) for (item (((item (*col_iter) of [#chunkactive_triangles v]) * (3)) - (2)) of [#triangletranslatevalues v]) (item (((item (*col_iter) of [#chunkactive_triangles v]) * (3)) - (1)) of [#triangletranslatevalues v]) (item (((item (*col_iter) of [#chunkactive_triangles v]) * (3)) - (0)) of [#triangletranslatevalues v])\n    end\n    if <(item (item (*col_iter) of [#chunkactive_triangles v]) of [^td_type v]) = [s]> then\n        change [!velx v] by ((([abs v] of (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (18)) of [#triangledata v]) ) * (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (17)) of [#triangledata v])) * ((#DeltaTime) * (-VelSlip)))\n        change [!velz v] by ((([abs v] of (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (18)) of [#triangledata v]) ) * (item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (19)) of [#triangledata v])) * ((#DeltaTime) * (-VelSlip)))\n        set [!mag v] to ([sqrt v] of (((!velX) * (!velX)) + ((!velZ) * (!velZ))) )\n        set [!vely v] to ((0) + ((() - (!mag)) * (((item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (17)) of [#triangledata v]) * ((!velX) / (!mag))) + ((item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (19)) of [#triangledata v]) * ((!velZ) / (!mag))))))\n        set [!collideslippery v] to [1]\n        replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-10))\n    else\n        set [!collideslippery v] to [0]\n        if <(item (item (*col_iter) of [#chunkactive_triangles v]) of [^td_type v]) = [f]> then\n            replace item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (^TD_Size)) + (1)) of [^td v] with [1]\n        end\n    end\n    set [!velgravityy v] to [0]\n    set [!wascollided v] to [1]\n    repeat until <(*finalCollision) = [0]>\n        if <(~collisionCounter) < [20]> then\n            change [~collisioncounter v] by (1)\n            if <(*colY) > ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset))> then\n                if <(item (((*col_iter) * (3)) - (1)) of [#triangletranslatevalues v]) < [0]> then\n                    replace item (-PlayerGameObjectID) of [@gameobjecty v] with (((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-4)) + ((item (((*col_iter) * (3)) - (1)) of [#triangletranslatevalues v]) * (2)))\n                else\n                    replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-4))\n                end\n            else\n                replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (2))\n                if <(!falling) > [0.5]> then\n                    start sound [FallGround v]\n                end\n                set [!falling v] to [0]\n                set [!isjumpwalk v] to [0]\n                set [!wasonground v] to [1]\n            end\n            [C] GameObject vs ALL triangles (-PlayerGameObjectID) radius (-PlayerRadius) offset [0] (-PlayerYColOffset) [0]\n        else\n            start sound [Toy Zing v]\n            change [!stretch v] by (-0.25)\n            stop [this script v]\n        end\n    end\nend\n!Player Line Collision\n\ndefine !Reset Level\nreplace item (-PlayerGameObjectID) of [@gameobjectx v] with (-StartX)\nreplace item (-PlayerGameObjectID) of [@gameobjecty v] with (-StartY)\nreplace item (-PlayerGameObjectID) of [@gameobjectz v] with (-StartZ)\nset [!velgravityy v] to [0]\nset [!velx v] to [0]\nset [!vely v] to [0]\nset [!velz v] to [0]\nset [!falling v] to [10]\nset [!stretch v] to [1]\nset [@camerax v] to (item (1) of [@startcamera v])\nset [@cameray v] to (item (2) of [@startcamera v])\nset [@cameraz v] to (item (3) of [@startcamera v])\n*Reset Boxes\n\ndefine !Player Update\nchange [!timer v] by (#DeltaTime)\nset [!iswalking v] to [0]\nreplace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + ((#DeltaTime) * (!velY)))\nreplace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + ((#DeltaTime) * (!velGravityY)))\n!Walk Move\n!Walk ((!velX) * (#DeltaTime)) ((!velZ) * (#DeltaTime))\nif <(!collideSlippery) = [0]> then\n    !Walk (((!moveX) * (-PlayerMoveSpeed)) * (#DeltaTime)) [0]\n    !Walk [0] (((!moveZ) * (-PlayerMoveSpeed)) * (#DeltaTime))\n    !Slow down slippery velocity ((-VelSlowDown) * (10))\n    set [!vely v] to [0]\nelse\n    change [!velx v] by ((!moveX) * ((#DeltaTime) * (-MovePowerOnSlippery)))\n    change [!velz v] by ((!moveZ) * ((#DeltaTime) * (-MovePowerOnSlippery)))\n    !Slow down slippery velocity (-VelSlowDown)\nend\nchange [!velgravityy v] by (() - ((#DeltaTime) * (950)))\nchange [!falling v] by (#DeltaTime)\nset [!wascollided v] to [0]\nreplace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-10))\n!Player Platformer Collision\nif <(!wasCollided) = [0]> then\n    replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (10))\n    if <(!wasOnGround) = [1]> then\n        set [!wasonground v] to [0]\n        set [!animationstate v] to [0]\n    end\nend\nif <<key (space v) pressed?> and <(!falling) < [0.2]>> then\n    if <(!collideSlippery) = [0]> then\n        set [!velgravityy v] to [350]\n        set [!stretch v] to [1]\n        if <(!falling) = [0]> then\n            start sound [Jump v]\n            replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (11))\n            set [!isjumpwalk v] to (!isWalking)\n        end\n    end\nend\nif <(item (-PlayerGameObjectID) of [@gameobjecty v]) < [-200]> then\n    if <(!deadState) = [0]> then\n        start sound [padanje u rupu v]\n        set [!deadstate v] to [1.4]\n    end\nend\nif <(!deadState) > [0]> then\n    change [!deadstate v] by (() - (#DeltaTime))\n    if <not <(!deadState) > [0]>> then\n        set [!deadstate v] to [0]\n        !Reset Level\n    end\nend\n!Player Stretch\n!PlayerAnimation\n!Calculate Shadow\n[T] Normal Rotate (!playerTargetNormalX) (!playerTargetNormalY) (!playerTargetNormalZ)\nreplace item (-PlayerGameObjectID) of [@gameobject_rotx v] with ((item (-PlayerGameObjectID) of [@gameobject_rotx v]) + (((*getAngleX) - (item (-PlayerGameObjectID) of [@gameobject_rotx v])) * ((#DeltaTime) * (5))))\nreplace item (-PlayerGameObjectID) of [@gameobject_rotz v] with ((item (-PlayerGameObjectID) of [@gameobject_rotz v]) + (((*getAngleZ) - (item (-PlayerGameObjectID) of [@gameobject_rotz v])) * ((#DeltaTime) * (5))))\n\ndefine [E] Delete Pointers\ndelete all of [#spritepointers v]\ndelete all of [#gameobjectpointers v]\ndelete all of [#trianglepointers v]\ndelete all of [#text3dpointers v]\n\ndefine [S] Remove Sprite (id)\nreplace item (id) of [#spritepointers v] with [0]\nreplace item (id) of [@sprite3d_active v] with [0]\n\ndefine !Delete My Data\n[E] Delete Class Data\n\ndefine [G] Remove GameObject (id)\nreplace item (id) of [#gameobjectpointers v] with [0]\nreplace item (id) of [@gameobjectactive v] with [0]\n\ndefine [C] AABB vs AABB collision- first (minx1) (maxx1) (miny1) (maxy1) (minz1) (maxz1) second (minx2) (maxx2) (miny2) (maxy2) (minz2) (maxz2)\nset [*collisionresult v] to (<<<(minz1) < (maxz2)> and <(minz2) < (maxz1)>> and <<<(minx1) < (maxx2)> and <(minx2) < (maxx1)>> and <<(miny2) < (maxy1)> and <(miny1) < (maxy2)>>>> + ())\n\ndefine [Ch] Set Chunk (x) (z) to (val)\nreplace item (((x) + ((z) * (#chunkSizeX))) + (1)) of [#chunkdata v] with (val)\n\ndefine [Ch] Check Current Chunk - pos: (xpos) (zpos)\nset [#currentchunkx v] to ([floor v] of (((xpos) - (#chunkStartX)) / (#chunkSize)) )\nset [#currentchunkz v] to ([floor v] of (((zpos) - (#chunkStartZ)) / (#chunkSize)) )\nif <<not <(item (((#currentChunkX) + ((#currentChunkZ) * (#chunkSizeX))) + (1)) of [#chunkdata v]) = (#currentChunkValue)>> and <not <(item (((#currentChunkX) + ((#currentChunkZ) * (#chunkSizeX))) + (1)) of [#chunkdata v]) = [0]>>> then\n    set [#currentchunkvalue v] to (item (((#currentChunkX) + ((#currentChunkZ) * (#chunkSizeX))) + (1)) of [#chunkdata v])\n    [Ch] Update Chunks\nend\n\ndefine [Ch] Chunk Init\nset [~currentchunkvalue v] to [-1]\nset [~chunkrelx v] to [0]\nset [~chunkrelz v] to [0]\n\ndefine [Ch] Update Chunks\ndelete all of [~getchunks v]\nset [~temp v] to []\nset [~ch v] to [0]\nadd (#currentChunkValue) to [~getchunks v]\nrepeat (length of (item (#currentChunkValue) of [#chunkconnections v]))\n    change [~ch v] by (1)\n    if <(letter (~ch) of (item (#currentChunkValue) of [#chunkconnections v])) = [;]> then\n        add (~temp) to [~getchunks v]\n        set [~temp v] to []\n    else\n        set [~temp v] to (join (~temp) (letter (~ch) of (item (#currentChunkValue) of [#chunkconnections v])))\n    end\nend\n[Ch] Set Active Chunks\n\ndefine [Ch] Get Chunk from Coordinate (x) (z)\nset [~newchunk v] to (item ((([floor v] of (((x) - (#chunkStartX)) / (#chunkSize)) ) + (([floor v] of (((z) - (#chunkStartZ)) / (#chunkSize)) ) * (#chunkSizeX))) + (1)) of [#chunkdata v])\n\ndefine [Ch] Set Active Chunks\n[E] Delete Class Data\ndelete all of [#chunkactive_gameobject v]\nset [~i v] to [0]\nrepeat (length of [@gameobjectchunk v])\n    change [~i v] by (1)\n    if <(item (~i) of [#gameobjectpointers v]) = [1]> then\n        [Ch] Check is chunk active (item (~i) of [@gameobjectchunk v])\n        if <(~chunkActive) = [1]> then\n            add (~i) to [#chunkactive_gameobject v]\n            [G] Add GameObjects into lists (~i)\n        end\n    end\nend\ndelete all of [#chunkactive_triangles v]\nset [~i v] to [0]\nrepeat ((length of [@trianglechunk v]) - (`NumberOfQuads))\n    change [~i v] by (1)\n    if <(item (~i) of [#trianglepointers v]) = [1]> then\n        [Ch] Check is chunk active (item (~i) of [@trianglechunk v])\n        if <(~chunkActive) = [1]> then\n            add (~i) to [#chunkactive_triangles v]\n            [Tr Q] Add Triangle or Quad into lists (~i)\n        end\n    end\n    if <(item (~i) of [#triangleisquad v]) = [1]> then\n        change [~i v] by (1)\n    end\nend\ndelete all of [#chunkactive_sprites v]\nset [~i v] to [0]\nrepeat (length of [@spritechunk v])\n    change [~i v] by (1)\n    if <(item (~i) of [#spritepointers v]) = [1]> then\n        [Ch] Check is chunk active (item (~i) of [@spritechunk v])\n        if <(~chunkActive) = [1]> then\n            add (~i) to [#chunkactive_sprites v]\n            [S] Add Sprites into lists (~i)\n        end\n    end\nend\ndelete all of [#chunkactive_lines v]\nset [~i v] to [0]\nrepeat (length of [@line_chunk v])\n    change [~i v] by (1)\n    if <(item (~i) of [#lines3dpointers v]) = [1]> then\n        [Ch] Check is chunk active (item (~i) of [@line_chunk v])\n        if <(~chunkActive) = [1]> then\n            add (~i) to [#chunkactive_lines v]\n            [L] Add lines into lists (~i)\n        end\n    end\nend\ndelete all of [#chunkactive_text3d v]\nset [~i v] to [0]\nrepeat (length of [@text3d_chunk v])\n    change [~i v] by (1)\n    if <(item (~i) of [#text3dpointers v]) = [1]> then\n        [Ch] Check is chunk active (item (~i) of [@text3d_chunk v])\n        if <(~chunkActive) = [1]> then\n            add (~i) to [#chunkactive_text3d v]\n        end\n    end\nend\n\ndefine // (comment)\n\ndefine [Ch] Check is chunk active (chunk)\nif <(chunk) = [0]> then\n    set [~chunkactive v] to [1]\nelse\n    set [~ch v] to [0]\n    set [~chunkactive v] to [0]\n    repeat (length of [~getchunks v])\n        change [~ch v] by (1)\n        if <(chunk) = (item (~ch) of [~getchunks v])> then\n            set [~chunkactive v] to [1]\n            stop [this script v]\n        end\n    end\nend\n\ndefine [C] Precise Collision - Sphere to current Quad (x) (y) (z) radius (r)\nset [~tempx v] to ((x) - ((item ((~triAdd) + (10)) of [#triangledata v]) * (~dot)))\nset [~tempy v] to ((y) - ((item ((~triAdd) + (11)) of [#triangledata v]) * (~dot)))\nset [~tempz v] to ((z) - ((item ((~triAdd) + (12)) of [#triangledata v]) * (~dot)))\nset [~ax v] to ((item ((~triAdd) + (1)) of [#triangledata v]) - (~tempX))\nset [~ay v] to ((item ((~triAdd) + (2)) of [#triangledata v]) - (~tempY))\nset [~az v] to ((item ((~triAdd) + (3)) of [#triangledata v]) - (~tempZ))\nset [~bx v] to ((item ((~triAdd) + (4)) of [#triangledata v]) - (~tempX))\nset [~by v] to ((item ((~triAdd) + (5)) of [#triangledata v]) - (~tempY))\nset [~bz v] to ((item ((~triAdd) + (6)) of [#triangledata v]) - (~tempZ))\nset [~cx v] to ((item ((~triAdd) + (7)) of [#triangledata v]) - (~tempX))\nset [~cy v] to ((item ((~triAdd) + (8)) of [#triangledata v]) - (~tempY))\nset [~cz v] to ((item ((~triAdd) + (9)) of [#triangledata v]) - (~tempZ))\nset [~dx v] to ((item (((~triAdd) + (`TriangleDataPerInst)) + (4)) of [#triangledata v]) - (~tempX))\nset [~dy v] to ((item (((~triAdd) + (`TriangleDataPerInst)) + (5)) of [#triangledata v]) - (~tempY))\nset [~dz v] to ((item (((~triAdd) + (`TriangleDataPerInst)) + (6)) of [#triangledata v]) - (~tempZ))\nset [~pabx v] to (((~ay) * (~bz)) - ((~az) * (~by)))\nset [~paby v] to (((~az) * (~bx)) - ((~ax) * (~bz)))\nset [~pabz v] to (((~ax) * (~by)) - ((~ay) * (~bx)))\nset [~pbcx v] to (((~by) * (~cz)) - ((~bz) * (~cy)))\nset [~pbcy v] to (((~bz) * (~cx)) - ((~bx) * (~cz)))\nset [~pbcz v] to (((~bx) * (~cy)) - ((~by) * (~cx)))\nset [~pcax v] to (((~cy) * (~dz)) - ((~cz) * (~dy)))\nset [~pcay v] to (((~cz) * (~dx)) - ((~cx) * (~dz)))\nset [~pcaz v] to (((~cx) * (~dy)) - ((~cy) * (~dx)))\nset [~pdax v] to (((~dy) * (~az)) - ((~dz) * (~ay)))\nset [~pday v] to (((~dz) * (~ax)) - ((~dx) * (~az)))\nset [~pdaz v] to (((~dx) * (~ay)) - ((~dy) * (~ax)))\nif <<<(((~PbcX) * (~PabX)) + (((~PbcY) * (~PabY)) + ((~PbcZ) * (~PabZ)))) > [0]> and <(((~PbcX) * (~PcaX)) + (((~PbcY) * (~PcaY)) + ((~PbcZ) * (~PcaZ)))) > [0]>> and <(((~PdaX) * (~PcaX)) + (((~PdaY) * (~PcaY)) + ((~PdaZ) * (~PcaZ)))) > [0]>> then\n    set [*colx v] to (~tempX)\n    set [*coly v] to (~tempY)\n    set [*colz v] to (~tempZ)\n    change [~tempx v] by (() - (x))\n    change [~tempy v] by (() - (y))\n    change [~tempz v] by (() - (z))\n    set [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\n    if <(~mag) < (r)> then\n        set [*collisionresult v] to [1]\n    end\n    stop [this script v]\nend\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) | (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nset [*colx v] to (*returnX)\nset [*coly v] to (*returnY)\nset [*colz v] to (*returnZ)\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (1)) of [#triangledata v]) (item ((~triAdd) + (2)) of [#triangledata v]) (item ((~triAdd) + (3)) of [#triangledata v]) | (item (((~triAdd) + (`TriangleDataPerInst)) + (4)) of [#triangledata v]) (item (((~triAdd) + (`TriangleDataPerInst)) + (5)) of [#triangledata v]) (item (((~triAdd) + (`TriangleDataPerInst)) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~temp v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~temp) < (~mag)> then\n    set [~mag v] to (~temp)\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nend\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v]) | (item ((~triAdd) + (4)) of [#triangledata v]) (item ((~triAdd) + (5)) of [#triangledata v]) (item ((~triAdd) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~temp v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~temp) < (~mag)> then\n    set [~mag v] to (~temp)\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nend\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (item ((~triAdd) + (7)) of [#triangledata v]) (item ((~triAdd) + (8)) of [#triangledata v]) (item ((~triAdd) + (9)) of [#triangledata v]) | (item (((~triAdd) + (`TriangleDataPerInst)) + (4)) of [#triangledata v]) (item (((~triAdd) + (`TriangleDataPerInst)) + (5)) of [#triangledata v]) (item (((~triAdd) + (`TriangleDataPerInst)) + (6)) of [#triangledata v])\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~temp v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~temp) < (~mag)> then\n    set [~mag v] to (~temp)\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nend\nif <(~mag) < ((r) * (1))> then\n    set [*collisionresult v] to [1]\nend\n\ndefine [C] Sphere vs Quad (x) (y) (z) radius (r) quad ID (quadid)\nset [*collisionresult v] to [0]\nset [~triadd v] to (((quadid) - (1)) * (`TriangleDataPerInst))\nset [~coladd v] to (((quadid) - (1)) * (`TriangleCollPerInst))\nset [~dot v] to ((((x) * (item ((~triAdd) + (10)) of [#triangledata v])) + (((y) * (item ((~triAdd) + (11)) of [#triangledata v])) + ((z) * (item ((~triAdd) + (12)) of [#triangledata v])))) - (item ((~triAdd) + (13)) of [#triangledata v]))\nif <<((x) + (r)) > (item ((~colAdd) + (1)) of [#trianglecolldata v])> and <((x) - (r)) < (item ((~colAdd) + (2)) of [#trianglecolldata v])>> then\n    if <<((y) + (r)) > (item ((~colAdd) + (3)) of [#trianglecolldata v])> and <((y) - (r)) < (item ((~colAdd) + (4)) of [#trianglecolldata v])>> then\n        if <<((z) + (r)) > (item ((~colAdd) + (5)) of [#trianglecolldata v])> and <((z) - (r)) < (item ((~colAdd) + (6)) of [#trianglecolldata v])>> then\n            if <([abs v] of (~dot) ) < (r)> then\n                [C] Precise Collision - Sphere to current Quad (x) (y) (z) radius (r)\n            end\n        end\n    end\nend\n\ndefine [E] Engine Init\n[E] DeleteALL\n[Ch] Chunk Init\n\ndefine [Tx] Add Text3D - Text: (text) at (x) (y) (z) size (size) color (color) brightness (brightness) chunk[-1 auto] (chunkid)\nset [~newslot v] to [1]\nset [~p v] to [1]\nrepeat until <<(~newSlot) = [0]> or <(~p) > (length of [#text3dpointers v])>>\n    if <(item (~p) of [#text3dpointers v]) = [0]> then\n        set [~newslot v] to [0]\n    end\n    change [~p v] by (1)\nend\nif <(~newSlot) = [1]> then\n    set [*newid v] to (~p)\n    add [1] to [@text3d_active v]\n    add ((x) + (~chunkRelX)) to [@text3d_x v]\n    add (y) to [@text3d_y v]\n    add ((z) + (~chunkRelZ)) to [@text3d_z v]\n    add (text) to [@text3d_text v]\n    add (size) to [@text3d_size v]\n    add (color) to [@text3d_color v]\n    add (brightness) to [@text3d_brightness v]\n    add [0] to [@text3d_alpha v]\n    add [] to [#text3d_cameradist v]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        add (~newChunk) to [@text3d_chunk v]\n    else\n        add (chunkid) to [@text3d_chunk v]\n    end\n    add [1] to [#text3dpointers v]\n    add [0] to [^textd_type v]\n    repeat (^TextD_Size)\n        add [0] to [^textd v]\n    end\nelse\n    set [*newid v] to ((~p) - (1))\n    replace item (*newID) of [@text3d_x v] with ((x) + (~chunkRelX))\n    replace item (*newID) of [@text3d_y v] with (y)\n    replace item (*newID) of [@text3d_z v] with ((z) + (~chunkRelZ))\n    replace item (*newID) of [@text3d_color v] with (color)\n    replace item (*newID) of [@text3d_size v] with (size)\n    replace item (*newID) of [@text3d_text v] with (text)\n    replace item (*newID) of [@text3d_brightness v] with (brightness)\n    replace item (*newID) of [@text3d_alpha v] with [0]\n    if <(chunkid) = [-1]> then\n        [Ch] Get Chunk from Coordinate ((x) + (~chunkRelX)) ((z) + (~chunkRelZ))\n        replace item (*newID) of [@text3d_chunk v] with (~newChunk)\n    else\n        replace item (*newID) of [@text3d_chunk v] with (chunkid)\n    end\n    replace item (*newID) of [#text3dpointers v] with [1]\n    replace item (*newID) of [^textd_type v] with [0]\n    set [~dataiter v] to (((*newID) - (1)) * (^TextD_Size))\n    repeat (^TextD_Size)\n        change [~dataiter v] by (1)\n        replace item (~dataIter) of [^textd_type v] with []\n    end\nend\n\ndefine [Tx] Delete Text Data\ndelete all of [@text3d_active v]\ndelete all of [@text3d_alpha v]\ndelete all of [@text3d_brightness v]\ndelete all of [@text3d_color v]\ndelete all of [@text3d_size v]\ndelete all of [@text3d_text v]\ndelete all of [@text3d_x v]\ndelete all of [@text3d_y v]\ndelete all of [@text3d_z v]\ndelete all of [#text3d_cameradist v]\ndelete all of [@text3d_chunk v]\ndelete all of [^textd_type v]\ndelete all of [^textd v]\n\ndefine [Tx] Destroy Text (id)\ndelete (id) of [@text3d_active v]\ndelete (id) of [@text3d_alpha v]\ndelete (id) of [@text3d_brightness v]\ndelete (id) of [@text3d_color v]\ndelete (id) of [@text3d_size v]\ndelete (id) of [@text3d_text v]\ndelete (id) of [@text3d_x v]\ndelete (id) of [@text3d_y v]\ndelete (id) of [@text3d_z v]\ndelete (id) of [#text3d_cameradist v]\ndelete (id) of [@text3d_chunk v]\ndelete (id) of [^textd_type v]\n\ndefine [Ch] Set Chunk Relative X (x) Z (z)\nset [~chunkrelx v] to (((x) * (#chunkSize)) + (#chunkStartX))\nset [~chunkrelz v] to (((z) * (#chunkSize)) + (#chunkStartZ))\n\ndefine [Ch] Reset chunk relative\nset [~chunkrelx v] to [0]\nset [~chunkrelz v] to [0]\n\ndefine !Translate Triangles and Quads\nset [!_iter v] to [0]\nrepeat (length of [-movingplatforms v])\n    change [!_iter v] by (1)\n    set [!getid v] to (item (!_iter) of [-movingplatforms v])\n    set [!getx v] to (((([sin v] of ((!timer) * (45)) ) + (1)) / (2)) * ((item ((((!getID) - (1)) * (^TD_Size)) + (4)) of [^td v]) - (item ((((!getID) - (1)) * (^TD_Size)) + (1)) of [^td v])))\n    set [!gety v] to (((([sin v] of ((!timer) * (45)) ) + (1)) / (2)) * ((item ((((!getID) - (1)) * (^TD_Size)) + (5)) of [^td v]) - (item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v])))\n    set [!getz v] to (((([sin v] of ((!timer) * (45)) ) + (1)) / (2)) * ((item ((((!getID) - (1)) * (^TD_Size)) + (6)) of [^td v]) - (item ((((!getID) - (1)) * (^TD_Size)) + (3)) of [^td v])))\n    [Tr Q] Set Position Of Triangle or Quad (item (!_iter) of [-movingplatforms v]) to (!getX) (!getY) (!getZ)\nend\n\ndefine [T] Unrotate Vertex (x) (y) (z)\n[T] Set Ver1 (x) (y) (z)\n[T] Set Ver1 (((~GetX1) * (#CamCosZ)) - ((~GetY1) * (() - (#CamSinZ)))) (((~GetX1) * (() - (#CamSinZ))) + ((~GetY1) * (#CamCosZ))) (~GetZ1)\n[T] Set Ver1 (~GetX1) (((~GetY1) * (#CamCosX)) - ((~GetZ1) * (() - (#CamSinX)))) (((~GetY1) * (() - (#CamSinX))) + ((~GetZ1) * (#CamCosX)))\n[T] Set Ver1 (((~GetZ1) * (() - (#CamSinY))) + ((~GetX1) * (#CamCosY))) (~GetY1) (((~GetZ1) * (#CamCosY)) - ((~GetX1) * (() - (#CamSinY))))\n[T] Set Ver1 ((~GetX1) + (@CameraX)) ((~GetY1) + (@CameraY)) ((~GetZ1) + (@CameraZ))\n\ndefine [T] Set Ver1 (x) (y) (z)\nset [~getx1 v] to (x)\nset [~gety1 v] to (y)\nset [~getz1 v] to (z)\n\ndefine [T] Rotate Vertex (x) (y) (z)\n[T] Set Ver1 ((x) - (@CameraX)) ((y) - (@CameraY)) ((z) - (@CameraZ))\n[T] Set Ver1 (((~GetZ1) * (#CamSinY)) + ((~GetX1) * (#CamCosY))) (~GetY1) (((~GetZ1) * (#CamCosY)) - ((~GetX1) * (#CamSinY)))\n[T] Set Ver1 (~GetX1) (((~GetY1) * (#CamCosX)) - ((~GetZ1) * (#CamSinX))) (((~GetY1) * (#CamSinX)) + ((~GetZ1) * (#CamCosX)))\n[T] Set Ver1 (((~GetX1) * (#CamCosZ)) - ((~GetY1) * (#CamSinZ))) (((~GetX1) * (#CamSinZ)) + ((~GetY1) * (#CamCosZ))) (~GetZ1)\n\ndefine [R] Get Ray From Screen Pos (sx) (sy)\n[T] Unrotate Vertex (((sx) / (@FocalLength)) * ((#MinCameraDist) + (300))) (((sy) / (@FocalLength)) * ((#MinCameraDist) + (300))) ((#MinCameraDist) + (300))\nset [#rayx v] to (~GetX1)\nset [#rayy v] to (~GetY1)\nset [#rayz v] to (~GetZ1)\n[T] Unrotate Vertex (((sx) / (@FocalLength)) * ((#MinCameraDist) + (2000))) (((sy) / (@FocalLength)) * ((#MinCameraDist) + (2000))) ((#MinCameraDist) + (2000))\nset [~a_vx v] to ((~GetX1) - (#RayX))\nset [~a_vy v] to ((~GetY1) - (#RayY))\nset [~a_vz v] to ((~GetZ1) - (#RayZ))\nset [~a_mag v] to ([sqrt v] of (((~A_Vx) * (~A_Vx)) + (((~A_Vy) * (~A_Vy)) + ((~A_Vz) * (~A_Vz)))) )\nset [#rayvx v] to ((~A_Vx) / (~A_mag))\nset [#rayvy v] to ((~A_Vy) / (~A_mag))\nset [#rayvz v] to ((~A_Vz) / (~A_mag))\n\ndefine [R] Raycast all triangles\nset [*col_iter v] to [0]\nrepeat until <(*col_iter) = (length of [#chunkactive_triangles v])>\n    change [*col_iter v] by (1)\n    set [~triadd v] to (((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst))\n    if <(item (item (*col_iter) of [#chunkactive_triangles v]) of [#triangleisquad v]) = [1]> then\n        [C] Triangle ray collision: origin (#RayX) (#RayY) (#RayZ) direction (#RayVx) (#RayVy) (#RayVz) to current triangle\n        if <(*collisionResult) = [0]> then\n            set [~triadd v] to ((item (*col_iter) of [#chunkactive_triangles v]) * (`TriangleDataPerInst))\n            [C] Triangle ray collision: origin (#RayX) (#RayY) (#RayZ) direction (#RayVx) (#RayVy) (#RayVz) to current triangle\n            if <(*collisionResult) = [1]> then\n                [R] Add Raycast Layer (~col_dist) (item (*col_iter) of [#chunkactive_triangles v]) type [4]\n            end\n        else\n            [R] Add Raycast Layer (~col_dist) (item (*col_iter) of [#chunkactive_triangles v]) type [4]\n        end\n    else\n        [C] Triangle ray collision: origin (#RayX) (#RayY) (#RayZ) direction (#RayVx) (#RayVy) (#RayVz) to current triangle\n        if <(*collisionResult) = [1]> then\n            [R] Add Raycast Layer (~col_dist) (item (*col_iter) of [#chunkactive_triangles v]) type [4]\n        end\n    end\nend\n\ndefine [R] Add Raycast Layer (zvalue) (id) type (type)\nset [~sort_low v] to [0]\nset [~sort_high v] to ((length of [*raycast_values v]) - (0))\nrepeat until <not <(~sort_Low) < (~sort_High)>>\n    set [~sort_mid v] to ([floor v] of (((~sort_Low) + (~sort_High)) / (2)) )\n    if <(zvalue) > (item ((~sort_Mid) + (1)) of [*raycast_values v])> then\n        set [~sort_low v] to ((~sort_Mid) + (1))\n    else\n        set [~sort_high v] to (~sort_Mid)\n    end\nend\nset [~sort_id v] to ((~sort_Low) + (1))\ninsert (zvalue) at (~sort_Id) of [*raycast_values v] \ninsert (id) at (~sort_Id) of [*raycast_ids v] \ninsert (type) at (~sort_Id) of [*raycast_types v] \n\ndefine [R] Delete Raycast data\ndelete all of [*raycast_ids v]\ndelete all of [*raycast_types v]\ndelete all of [*raycast_values v]\n\ndefine [R] Part of Triangle raycast - a (ax) (ay) (az) b (bx) (by) (bz) c (cx) (cy) (cz)\nset [~tempx v] to ((*returnX) - (ax))\nset [~tempy v] to ((*returnY) - (ay))\nset [~tempz v] to ((*returnZ) - (az))\nset [~ax v] to ((bx) - (ax))\nset [~ay v] to ((by) - (ay))\nset [~az v] to ((bz) - (az))\nset [~bx v] to ((bx) - (cx))\nset [~by v] to ((by) - (cy))\nset [~bz v] to ((bz) - (cz))\nset [~dot v] to ((((~ax) * (~bx)) + (((~ay) * (~by)) + ((~az) * (~bz)))) / (((~bx) * (~bx)) + (((~by) * (~by)) + ((~bz) * (~bz)))))\nset [~dx v] to ((~ax) - ((~bx) * (~dot)))\nset [~dy v] to ((~ay) - ((~by) * (~dot)))\nset [~dz v] to ((~az) - ((~bz) * (~dot)))\n\ndefine [T] Get Color from RGBA (r) (g) (b) (a)\nset [*getcolor v] to (((((a) + (1)) * (16777216)) + ((r) * (65536))) + (((g) * (256)) + (b)))\n\ndefine [C] Sphere vs Sphere (X,Y,Z,radius) s1 (x1) (y1) (z1) (r1) s2 (x2) (y2) (z2) (r2)\nset [~tempx v] to ((x1) - (x2))\nset [~tempy v] to ((y1) - (y2))\nset [~tempz v] to ((z1) - (z2))\nset [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nset [*collisionresult v] to (<not <(~mag) > ((r1) + (r2))>> + ())\n\ndefine [R] Ray vs Sphere origin (ox) (oy) (oz) dir (dx) (dy) (dz) sphere pos: (x) (y) (z) radius (r)\nset [*collisionresult v] to [0]\nset [~tempx v] to ((x) - (ox))\nset [~tempy v] to ((y) - (oy))\nset [~tempz v] to ((z) - (oz))\nset [~r_nd v] to ((r) * (r))\nset [~r_pn v] to (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ))))\nset [~t v] to (((dx) * (~tempX)) + (((dy) * (~tempY)) + ((dz) * (~tempZ))))\nset [~temp v] to ((~r_pn) - ((~T) * (~T)))\nset [~t_s v] to ([sqrt v] of ((~r_nd) - (~temp)) )\nif <((~r_nd) - (~temp)) < [0]> then\n    stop [this script v]\nend\nset [*collisionresult v] to [1]\nif <(~r_pn) < (~r_nd)> then\n    set [~col_dist v] to ((~T) + (~T_s))\nelse\n    set [~col_dist v] to ((~T) - (~T_s))\nend\n\ndefine [R] Raycast all sprites\nset [*col_iter v] to [0]\nrepeat until <(*col_iter) = (length of [#chunkactive_sprites v])>\n    change [*col_iter v] by (1)\n    set [~getid_e v] to (item (*col_iter) of [#chunkactive_sprites v])\n    [R] Ray vs Sphere origin (#RayX) (#RayY) (#RayZ) dir (#RayVx) (#RayVy) (#RayVz) sphere pos: (item (~getID_E) of [@sprite3d_x v]) (item (~getID_E) of [@sprite3d_y v]) (item (~getID_E) of [@sprite3d_z v]) radius [64]\n    if <(*collisionResult) = [1]> then\n        [R] Add Raycast Layer (~col_dist) (~getID_E) type [2]\n    end\nend\n\ndefine [Tr Q] Remove Triangle or Quad ID (id)\nreplace item (id) of [@triangle_active v] with [0]\nreplace item (id) of [#trianglepointers v] with [0]\nif <(item (id) of [#triangleisquad v]) = [1]> then\n    replace item ((id) + (1)) of [@triangle_active v] with [0]\n    replace item ((id) + (1)) of [#trianglepointers v] with [0]\n    change [`numberofquads v] by (-1)\nelse\n    if <(item (id) of [#triangleisquad v]) = [2]> then\n        replace item ((id) + (-1)) of [@triangle_active v] with [0]\n        replace item ((id) + (-1)) of [#trianglepointers v] with [0]\n        change [`numberofquads v] by (-1)\n    end\nend\n\ndefine [L] Remove Line 3D (id)\nreplace item (id) of [#lines3dpointers v] with [0]\nreplace item (id) of [@lineactive v] with [0]\n\ndefine [Tx] Remove Text 3D (id)\nreplace item (id) of [@text3d_active v] with [0]\nreplace item (id) of [#text3dpointers v] with [0]\n\ndefine [Ch] Load Chunks data (data)\nset [#currentchunkvalue v] to [-1]\nset [~tempx v] to [0]\nset [~tempy v] to [0]\nset [~tempz v] to [0]\nset [~temp v] to []\ndelete all of [~loadtemp v]\ndelete all of [#chunkconnections v]\ndelete all of [#chunkdata v]\nrepeat until <((~tempZ) + (1)) > (length of (data))>\n    change [~tempz v] by (1)\n    if <(~tempX) < [5]> then\n        if <(letter (~tempZ) of (data)) = [;]> then\n            change [~tempx v] by (1)\n            add (~temp) to [~loadtemp v]\n            set [~temp v] to []\n            if <(~tempX) = [5]> then\n                set [#chunkstartx v] to (item (1) of [~loadtemp v])\n                set [#chunkstartz v] to (item (2) of [~loadtemp v])\n                set [#chunksize v] to (item (3) of [~loadtemp v])\n                set [#chunksizex v] to (item (4) of [~loadtemp v])\n                set [#chunksizez v] to (item (5) of [~loadtemp v])\n            end\n        else\n            set [~temp v] to (join (~temp) (letter (~tempZ) of (data)))\n        end\n    else\n        if <(~tempY) < ((#chunkSizeX) * (#chunkSizeZ))> then\n            change [~tempy v] by (1)\n            add ((join (letter (~tempZ) of (data)) (letter ((~tempZ) + (1)) of (data))) + ()) to [#chunkdata v]\n            change [~tempz v] by (1)\n        else\n            if <(letter (~tempZ) of (data)) = [|]> then\n                add (~temp) to [#chunkconnections v]\n                set [~temp v] to []\n            else\n                set [~temp v] to (join (~temp) (letter (~tempZ) of (data)))\n            end\n        end\n    end\nend\n\nwhen I receive [myinit v]\n!My Init\n\ndefine [E] Delete Load Points Data\ndelete all of [^load_d v]\ndelete all of [^load_d_objecttype v]\ndelete all of [^load_d_type v]\ndelete all of [@loadpointx v]\ndelete all of [@loadpointy v]\ndelete all of [@loadpointz v]\n\ndefine [Load] Get Point Loading (data)\nset [~load_iter3 v] to [1]\nset [~load_getpoint v] to []\nrepeat (length of (data))\n    change [~load_iter3 v] by (1)\n    set [~load_getpoint v] to (join (~load_getPoint) (letter (~load_Iter3) of (data)))\nend\n\ndefine [C] Sphere vs Line3D - sphere (x) (y) (z) radius (sphereradius) Line p1: (x1) (y1) (z1) p2: (x2) (y2) (z2) radius (lineradius)\n[C] Closest Point To Line Segment p: (x) (y) (z) Line: (x1) (y1) (z1) | (x2) (y2) (z2)\nset [~tempx v] to ((*returnX) - (x))\nset [~tempy v] to ((*returnY) - (y))\nset [~tempz v] to ((*returnZ) - (z))\nset [~mag v] to ([sqrt v] of (((~tempX) * (~tempX)) + (((~tempY) * (~tempY)) + ((~tempZ) * (~tempZ)))) )\nif <(~mag) < ((sphereradius) + (lineradius))> then\n    set [*collisionresult v] to [1]\n    set [*colx v] to (*returnX)\n    set [*coly v] to (*returnY)\n    set [*colz v] to (*returnZ)\nelse\n    set [*collisionresult v] to [0]\nend\n\ndefine [Tr Q] Add Triangle or Quad into lists (id)\nif <(item (id) of [^td_type v]) = [0]> then\n    add (id) to [-collidableplatforms v]\n    stop [this script v]\nend\nif <(item (id) of [^td_type v]) = [m]> then\n    add (id) to [-movingplatforms v]\n    add (id) to [-collidableplatforms v]\n    stop [this script v]\nend\nif <(item (id) of [^td_type v]) = [s]> then\n    add (id) to [-slipperyplatforms v]\n    add (id) to [-collidableplatforms v]\n    stop [this script v]\nend\nif <(item (id) of [^td_type v]) = [f]> then\n    add (id) to [-fallingplatforms v]\n    add (id) to [-collidableplatforms v]\n    stop [this script v]\nend\n\ndefine [E] Delete Class Data\ndelete all of [-collidableplatforms v]\ndelete all of [-collidablelines v]\ndelete all of [-movingplatforms v]\ndelete all of [-fallingplatforms v]\ndelete all of [-coins v]\n\ndefine [Load] Points Setting\nset [*load_iter v] to [0]\nrepeat (length of [^load_d_type v])\n    change [*load_iter v] by (1)\n    if <(item (*load_iter) of [^load_d_objecttype v]) < [2]> then\n        if <(item (*load_iter) of [^load_d_objecttype v]) = [0]> then\n            [Load] Setting - Other\n        else\n            [Load] Setting - GameObjects\n        end\n    else\n        if <(item (*load_iter) of [^load_d_objecttype v]) = [2]> then\n            [Load] Setting - Sprites\n        else\n            [Load] Setting - Text3D\n        end\n    end\nend\n\ndefine [Load] Setting - GameObjects\nif <(item (*load_iter) of [^load_d_type v]) = [p]> then\n    [G] Add GameObject - mesh ID [1] material group ID [1] position (item (*load_iter) of [@loadpointx v]) (item (*load_iter) of [@loadpointy v]) (item (*load_iter) of [@loadpointz v]) rotation [0] [0] [0] size [1] [1] [1] drawOffset [0] [1] [0] chunkID [-1 auto] [0]\n    [G] Set Style - ID (*newID) color [3] brightness [5]\n    set [-playergameobjectid v] to (*newID)\n    set [-startx v] to (item (*load_iter) of [@loadpointx v])\n    set [-starty v] to (item (*load_iter) of [@loadpointy v])\n    set [-startz v] to (item (*load_iter) of [@loadpointz v])\n    [S] Add Sprite3D - costume name [shadow] at (item (*load_iter) of [@loadpointx v]) (item (*load_iter) of [@loadpointy v]) (item (*load_iter) of [@loadpointz v]) size [100] chunkID [-1 auto] [0]\n    set [-shadowspriteid v] to (*newID)\n    [Tx] Add Text3D - Text: (username) at (item (*load_iter) of [@loadpointx v]) (item (*load_iter) of [@loadpointy v]) (item (*load_iter) of [@loadpointz v]) size [15] color [100] brightness [-100] chunk[-1 auto] [0]\n    set [-usernametextid v] to (*newID)\n    stop [this script v]\nend\n\ndefine [Load] Setting - Other\n\ndefine [Load] Setting - Sprites\nif <(item (*load_iter) of [^load_d_type v]) = [c]> then\n    [S] Add Sprite3D - costume name [coin1] at (item (*load_iter) of [@loadpointx v]) (item (*load_iter) of [@loadpointy v]) (item (*load_iter) of [@loadpointz v]) size [30] chunkID [-1 auto] [-1]\n    add (*newID) to [-coins v]\n    replace item (*newID) of [^sd_type v] with (item (*load_iter) of [^load_d_type v])\n    stop [this script v]\nend\n\ndefine [Load] Setting - Text3D\n\ndefine [G] Add GameObjects into lists (id)\n\ndefine [S] Add Sprites into lists (id)\nif <(item (id) of [^sd_type v]) = [c]> then\n    add (id) to [-coins v]\n    stop [this script v]\nend\n\ndefine [L] Add lines into lists (id)\nif <(item (id) of [^ld_type v]) = [0]> then\n    add (id) to [-collidablelines v]\n    stop [this script v]\nend\n\ndefine [Tx] Add Text3D into lists (id)\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\n// []\n\ndefine [C] Sphere vs ALL Lines (x) (y) (z) radius (r)\nset [*col_iter v] to [0]\nset [*finalcollision v] to [0]\nrepeat until <<(*col_iter) = (length of [-collidablelines v])> or <(*finalCollision) = [1]>>\n    change [*col_iter v] by (1)\n    set [~getid_e v] to (item (*col_iter) of [-collidablelines v])\n    if <(item (~getID_E) of [@lineactive v]) = [1]> then\n        [C] Sphere vs Line3D - sphere (x) (y) (z) radius (r) Line p1: (item (~getID_E) of [@linesx1 v]) (item (~getID_E) of [@linesy1 v]) (item (~getID_E) of [@linesz1 v]) p2: (item (~getID_E) of [@linesx2 v]) (item (~getID_E) of [@linesy2 v]) (item (~getID_E) of [@linesz2 v]) radius ((item (~getID_E) of [@linesize v]) / (2))\n        set [*finalcollision v] to (*collisionResult)\n    end\nend\n\ndefine !Update Coins\nset [!_iter v] to [0]\nrepeat (length of [-coins v])\n    change [!_iter v] by (1)\n    set [!getid v] to (item (!_iter) of [-coins v])\n    if <(item (!getID) of [@sprite3d_active v]) = [1]> then\n        set [!getx v] to ((item (!getID) of [@sprite3d_x v]) - (item (-PlayerGameObjectID) of [@gameobjectx v]))\n        set [!gety v] to ((item (!getID) of [@sprite3d_y v]) - ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)))\n        set [!getz v] to ((item (!getID) of [@sprite3d_z v]) - (item (-PlayerGameObjectID) of [@gameobjectz v]))\n        set [!mag v] to ([sqrt v] of (((!getX) * (!getX)) + (((!getY) * (!getY)) + ((!getZ) * (!getZ)))) )\n        if <(!mag) < ((-PlayerRadius) * (2))> then\n            replace item (!getID) of [@sprite3d_active v] with [0]\n            start sound [Coin v]\n        end\n        replace item (!getID) of [@sprite3d_costumename v] with (join [coin] ((([floor v] of ((timer) * (10)) ) mod (6)) + (1)))\n    end\nend\n\ndefine [Load] GameObject Load Data (id) number of data (datan) starting from (start)\nset [~loaddataiter v] to ((start) - (1))\nset [~loaddataelemiter v] to [0]\nrepeat (datan)\n    change [~loaddataelemiter v] by (1)\n    if <(letter (1) of (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])) = [`]> then\n        [Load] Get Point Loading (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n        replace item ((((id) - (1)) * (^GBD_Size)) + ((~loadDataIter) + (1))) of [^gd v] with (item (~load_getPoint) of [@loadpointx v])\n        replace item ((((id) - (1)) * (^GBD_Size)) + ((~loadDataIter) + (2))) of [^gd v] with (item (~load_getPoint) of [@loadpointy v])\n        replace item ((((id) - (1)) * (^GBD_Size)) + ((~loadDataIter) + (3))) of [^gd v] with (item (~load_getPoint) of [@loadpointz v])\n        change [~loaddataiter v] by (3)\n    else\n        change [~loaddataiter v] by (1)\n        replace item ((((id) - (1)) * (^GBD_Size)) + (~loadDataIter)) of [^gd v] with (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n    end\nend\n\ndefine [Load] Sprite Load Data (id) number of data (datan) starting from (start)\nset [~loaddataiter v] to ((start) - (1))\nset [~loaddataelemiter v] to [0]\nrepeat (datan)\n    change [~loaddataelemiter v] by (1)\n    if <(letter (1) of (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])) = [`]> then\n        [Load] Get Point Loading (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n        replace item ((((id) - (1)) * (^SD_Size)) + ((~loadDataIter) + (1))) of [^sd v] with (item (~load_getPoint) of [@loadpointx v])\n        replace item ((((id) - (1)) * (^SD_Size)) + ((~loadDataIter) + (2))) of [^sd v] with (item (~load_getPoint) of [@loadpointy v])\n        replace item ((((id) - (1)) * (^SD_Size)) + ((~loadDataIter) + (3))) of [^sd v] with (item (~load_getPoint) of [@loadpointz v])\n        change [~loaddataiter v] by (3)\n    else\n        change [~loaddataiter v] by (1)\n        replace item ((((id) - (1)) * (^SD_Size)) + (~loadDataIter)) of [^sd v] with (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n    end\nend\n\ndefine [Load] Text3D Load Data (id) number of data (datan) starting from (start)\nset [~loaddataiter v] to ((start) - (1))\nset [~loaddataelemiter v] to [0]\nrepeat (datan)\n    change [~loaddataelemiter v] by (1)\n    if <(letter (1) of (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])) = [`]> then\n        [Load] Get Point Loading (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n        replace item ((((id) - (1)) * (^TextD_Size)) + ((~loadDataIter) + (1))) of [^textd v] with (item (~load_getPoint) of [@loadpointx v])\n        replace item ((((id) - (1)) * (^TextD_Size)) + ((~loadDataIter) + (2))) of [^textd v] with (item (~load_getPoint) of [@loadpointy v])\n        replace item ((((id) - (1)) * (^TextD_Size)) + ((~loadDataIter) + (3))) of [^textd v] with (item (~load_getPoint) of [@loadpointz v])\n        change [~loaddataiter v] by (3)\n    else\n        change [~loaddataiter v] by (1)\n        replace item ((((id) - (1)) * (^TextD_Size)) + (~loadDataIter)) of [^textd v] with (item ((((*load_iter) - (1)) * (^Load_D_Size)) + (~loadDataElemIter)) of [^load_d v])\n    end\nend\nchange [!velz v] by (400)\n\ndefine [Load] Setting - Triangle\nif <(item (*newID) of [^td_type v]) = [m]> then\n    [Load] Triangle Load Data (*newID) number of data [2] starting from [1]\n    stop [this script v]\nend\nif <(item (*newID) of [^td_type v]) = [f]> then\n    replace item ((((*newID) - (1)) * (^TD_Size)) + (1)) of [^td v] with [0]\n    replace item ((((*newID) - (1)) * (^TD_Size)) + (2)) of [^td v] with [0]\nend\n\ndefine [Load] Triangle Load Data (id) number of data (datan) starting from (start)\nset [~loaddataiter v] to ((start) - (1))\nset [~loaddataelemiter v] to [0]\nrepeat (datan)\n    change [~loaddataelemiter v] by (1)\n    if <(letter (1) of (item (~loadDataElemIter) of [~load_list v])) = [`]> then\n        [Load] Get Point Loading (item (~loadDataElemIter) of [~load_list v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (1))) of [^td v] with (item (~load_getPoint) of [@loadpointx v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (2))) of [^td v] with (item (~load_getPoint) of [@loadpointy v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (3))) of [^td v] with (item (~load_getPoint) of [@loadpointz v])\n        change [~loaddataiter v] by (3)\n    else\n        change [~loaddataiter v] by (1)\n        replace item ((((id) - (1)) * (^TD_Size)) + (~loadDataIter)) of [^td v] with (item (~loadDataElemIter) of [~load_list v])\n    end\nend\n\ndefine [Load] Setting - Line\n\ndefine [Load] Line Load Data (id) number of data (datan) starting fro (start)\nset [~loaddataiter v] to ((start) - (1))\nset [~loaddataelemiter v] to [0]\nrepeat (datan)\n    change [~loaddataelemiter v] by (1)\n    if <(letter (1) of (item (~loadDataElemIter) of [~load_list v])) = [`]> then\n        [Load] Get Point Loading (item (~loadDataElemIter) of [~load_list v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (1))) of [^ld v] with (item (~load_getPoint) of [@loadpointx v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (2))) of [^ld v] with (item (~load_getPoint) of [@loadpointy v])\n        replace item ((((id) - (1)) * (^TD_Size)) + ((~loadDataIter) + (3))) of [^ld v] with (item (~load_getPoint) of [@loadpointz v])\n        change [~loaddataiter v] by (3)\n    else\n        change [~loaddataiter v] by (1)\n        replace item ((((id) - (1)) * (^TD_Size)) + (~loadDataIter)) of [^ld v] with (item (~loadDataElemIter) of [~load_list v])\n    end\nend\n\ndefine [T] Get Falling Slope according to normal (nx) (ny) (nz)\nset [*returnx v] to ((nx) * (ny))\nset [*returny v] to (() - (((nx) * (nx)) + ((nz) * (nz))))\nset [*returnz v] to ((ny) * (nz))\n\ndefine !Player Line Collision\nset [~collisioncounter v] to [0]\n[C] Sphere vs ALL Lines (item (-PlayerGameObjectID) of [@gameobjectx v]) ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)) (item (-PlayerGameObjectID) of [@gameobjectz v]) radius (-PlayerRadius)\nif <(*finalCollision) = [1]> then\n    set [!velgravityy v] to [0]\n    set [!wascollided v] to [1]\n    repeat until <(*finalCollision) = [0]>\n        if <(~collisionCounter) < [20]> then\n            change [~collisioncounter v] by (1)\n            if <(*colY) > ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset))> then\n                replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-4))\n            else\n                replace item (-PlayerGameObjectID) of [@gameobjecty v] with ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (2))\n                if <(!falling) > [0.5]> then\n                    start sound [FallGround v]\n                end\n                set [!falling v] to [0]\n                set [!isjumpwalk v] to [0]\n                set [!wasonground v] to [1]\n            end\n            [C] Sphere vs ALL Lines (item (-PlayerGameObjectID) of [@gameobjectx v]) ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)) (item (-PlayerGameObjectID) of [@gameobjectz v]) radius (-PlayerRadius)\n        else\n            start sound [Toy Zing v]\n            change [!stretch v] by (-0.25)\n            stop [this script v]\n        end\n    end\nend\n[C] Sphere vs ALL Lines (item (-PlayerGameObjectID) of [@gameobjectx v]) ((item (-PlayerGameObjectID) of [@gameobjecty v]) + (-PlayerYColOffset)) (item (-PlayerGameObjectID) of [@gameobjectz v]) radius (-PlayerRadius)\n\n[G] Translate GameObject (-PlayerGameObjectID) for ((item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (17)) of [#triangledata v]) * ((#DeltaTime) * (300))) ((item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (18)) of [#triangledata v]) * ((#DeltaTime) * (300))) ((item ((((item (*col_iter) of [#chunkactive_triangles v]) - (1)) * (`TriangleDataPerInst)) + (19)) of [#triangledata v]) * ((#DeltaTime) * (300)))\n\ndefine !Slow down slippery velocity (slowval)\nif <(!velX) > [0]> then\n    change [!velx v] by (() - ((#DeltaTime) * (slowval)))\n    if <(!velX) < [0]> then\n        set [!velx v] to [0]\n    end\nelse\n    if <(!velX) < [0]> then\n        change [!velx v] by ((#DeltaTime) * (slowval))\n        if <(!velX) > [0]> then\n            set [!velx v] to [0]\n        end\n    end\nend\nif <(!velZ) > [0]> then\n    change [!velz v] by (() - ((#DeltaTime) * (slowval)))\n    if <(!velZ) < [0]> then\n        set [!velz v] to [0]\n    end\nelse\n    if <(!velZ) < [0]> then\n        change [!velz v] by ((#DeltaTime) * (slowval))\n        if <(!velZ) > [0]> then\n            set [!velz v] to [0]\n        end\n    end\nend\n\ndefine !Player Stretch\nif <(!falling) > [0]> then\n    if <(!velGravityY) > [0]> then\n        change [!stretch v] by (((#DeltaTime) * ((2) - (!stretch))) * (0.8))\n    else\n        if <(!falling) > [0.3]> then\n            change [!stretch v] by (((#DeltaTime) * (() - (!stretch))) * (0.8))\n        end\n    end\nelse\n    if <(!stretch) < [1]> then\n        change [!stretch v] by ((#DeltaTime) * (((1) - (!stretch)) * (5)))\n    else\n        set [!stretch v] to [1]\n    end\nend\nreplace item (-PlayerGameObjectID) of [@gameobjectsizey v] with (!stretch)\n\nwhen [t v] key pressed\n!Reset Level\nset [!deadstate v] to [0]\nreplace item (-PlayerGameObjectID) of [@gameobjectx v] with [2262]\nreplace item (-PlayerGameObjectID) of [@gameobjecty v] with [241]\nreplace item (-PlayerGameObjectID) of [@gameobjectz v] with [3142]\n\nstart sound [Coin v]\n\ndefine !PlayerAnimation\nif <(!falling) > [0]> then\n    if <(!velGravityY) > [0]> then\n        change [!animationstate v] by ((#DeltaTime) * (30))\n        if <(!animationState) > [9]> then\n            set [!animationstate v] to [9]\n        end\n        replace item (-PlayerGameObjectID) of [@gameobjectmeshid v] with ((&PlayerJumpIn) + ([floor v] of (!animationState) ))\n    else\n        change [!animationstate v] by ((#DeltaTime) * (20))\n        if <(!animationState) > [19]> then\n            set [!animationstate v] to [19]\n        end\n        replace item (-PlayerGameObjectID) of [@gameobjectmeshid v] with ((&PlayerJumpOut) + (([floor v] of (!animationState) ) - (10)))\n    end\nelse\n    change [!animationstate v] by ((#DeltaTime) * (12))\n    if <(!animationState) > [9]> then\n        set [!animationstate v] to [0]\n    end\n    if <(!isWalking) = [0]> then\n        replace item (-PlayerGameObjectID) of [@gameobjectmeshid v] with ((&PlayerIdle) + ([floor v] of (!animationState) ))\n    else\n        replace item (-PlayerGameObjectID) of [@gameobjectmeshid v] with ((&PlayerWalk) + ([floor v] of (!animationState) ))\n    end\nend\n\ndefine [G] Set Style - ID (id) color (color) brightness (brightness)\nreplace item (id) of [@gameobjectstylecolor v] with (color)\nreplace item (id) of [@gameobjectstylebrightness v] with (brightness)\n\ndefine [T] Normal Rotate (nx) (ny) (nz)\nset [~a_vx v] to (nx)\nset [~a_vy v] to (ny)\nset [~a_vz v] to (nz)\nset [~a_mag v] to ([sqrt v] of (((~A_Vx) * (~A_Vx)) + (((~A_Vy) * (~A_Vy)) + ((~A_Vz) * (~A_Vz)))) )\nset [~a_vx v] to ((~A_Vx) / (~A_mag))\nset [~a_vy v] to ((~A_Vy) / (~A_mag))\nset [~a_vz v] to ((~A_Vz) / (~A_mag))\n[T] Atan2 (() - (~A_Vx)) (~A_Vy)\nset [*getanglez v] to (*getAngle)\nset [*getanglex v] to (([acos v] of ((ny) / ([cos v] of (*getAngleZ) )) ) * ((<(nz) > [0]> * (2)) - (1)))\n\nset [*getangley v] to (*getAngle)\nset [*getanglez v] to (*getAngle)\n\nreplace item (-PlayerGameObjectID) of [@gameobject_roty v] with ((270) - (!targetAngle))\n\ndefine !Falling Platforms\nset [!_iter v] to [0]\nrepeat (length of [-fallingplatforms v])\n    change [!_iter v] by (1)\n    set [!getid v] to (item (!_iter) of [-fallingplatforms v])\n    if <(item ((((!getID) - (1)) * (^TD_Size)) + (1)) of [^td v]) = [1]> then\n        [Tr Q] Translate Triangle or Quad ID: (!getID) for [0] (item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]) [0]\n        if <(item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]) > [0]> then\n            replace item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v] with ((item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]) + ((20) * (#DeltaTime)))\n            if <not <(item (!getID) of [@triangley v]) < [0]>> then\n                [Tr Q] Set Position Of Triangle or Quad (!getID) to [0] [0] [0]\n                replace item ((((!getID) - (1)) * (^TD_Size)) + (1)) of [^td v] with [0]\n                replace item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v] with [0]\n                [Tr Q] Reset Translation (!getID)\n            end\n        else\n            replace item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v] with ((item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]) + ((-10) * (#DeltaTime)))\n            if <(item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]) < [-40]> then\n                replace item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v] with (() - (item ((((!getID) - (1)) * (^TD_Size)) + (2)) of [^td v]))\n            end\n        end\n    end\nend\n\ndefine [Tr Q] Reset Translation (id)\nreplace item (((id) * (3)) - (2)) of [#triangletranslatevalues v] with [0]\nreplace item (((id) * (3)) - (1)) of [#triangletranslatevalues v] with [0]\nreplace item ((id) * (3)) of [#triangletranslatevalues v] with [0]\n\n@Obj loader\n\ndefine Add Triangle Face (v1) (v2) (v3)\nadd (v1) to [#meshfacedata v]\nadd (v2) to [#meshfacedata v]\nadd (v3) to [#meshfacedata v]\n\ndefine Add Vertex3D (x) (y) (z) Multiply by (multi)\nadd ((x) * (multi)) to [#vertex_x v]\nadd ((y) * (multi)) to [#vertex_y v]\nadd ((z) * (multi)) to [#vertex_z v]\n\ndefine Init\nerase all\nshow\ngo to x: (0) y: (20)\nDelete Mesh Data\ndelete all of [~temparray v]\nadd [] to [~temparray v]\nadd [] to [~temparray v]\nadd [] to [~temparray v]\nadd [] to [~temparray v]\nadd [] to [~temparray v]\nadd [] to [~temparray v]\ndelete all of [#vertexescount v]\ndelete all of [#facescount v]\ndelete all of [#normalscount v]\ndelete all of [#materialcount v]\nset [~currentvertexcount v] to [0]\nset [~currentnormalcount v] to [0]\nset [~currentfacecount v] to [0]\nset [~currentmaterialcount v] to [0]\nset [*id v] to [1]\nset [~barsize v] to [360]\nDrawLoadBarBase (x position) (y position)\n\ndefine Add Vertexes (data) (multiply)\nset [~i v] to [0]\nrepeat (length of (data))\n    change [~i v] by (1)\n    if <(letter (~i) of (data)) = [v]> then\n        set [~c v] to [0]\n        replace item (1) of [~temparray v] with []\n        replace item (2) of [~temparray v] with []\n        replace item (3) of [~temparray v] with []\n    else\n        if <(letter (~i) of (data)) = [ ]> then\n            change [~c v] by (1)\n            if <(~c) = [4]> then\n                Add Vertex3D (item (1) of [~temparray v]) (item (2) of [~temparray v]) (item (3) of [~temparray v]) Multiply by (multiply)\n            end\n        else\n            replace item (~c) of [~temparray v] with (join (item (~c) of [~temparray v]) (letter (~i) of (data)))\n        end\n    end\nend\n\ndefine Add Normals (data)\nset [~i v] to [0]\nrepeat (length of (data))\n    change [~i v] by (1)\n    if <(letter (~i) of (data)) = [n]> then\n        set [~c v] to [0]\n        replace item (1) of [~temparray v] with []\n        replace item (2) of [~temparray v] with []\n        replace item (3) of [~temparray v] with []\n    else\n        if <(letter (~i) of (data)) = [ ]> then\n            change [~c v] by (1)\n            if <(~c) = [4]> then\n                Add Normal (item (1) of [~temparray v]) (item (2) of [~temparray v]) (item (3) of [~temparray v])\n            end\n        else\n            if <not <(letter (~i) of (data)) = [v]>> then\n                replace item (~c) of [~temparray v] with (join (item (~c) of [~temparray v]) (letter (~i) of (data)))\n            end\n        end\n    end\nend\n\ndefine Add Normal (n1) (n2) (n3)\nadd (n1) to [#meshnormal v]\nadd (n2) to [#meshnormal v]\nadd (n3) to [#meshnormal v]\n\ndefine Add Faces and Material (data)\nset [~i v] to [0]\nset [~m v] to [0]\nset [~c v] to [0]\nreplace item (1) of [~temparray v] with []\nreplace item (2) of [~temparray v] with []\nreplace item (3) of [~temparray v] with []\nreplace item (4) of [~temparray v] with []\nreplace item (5) of [~temparray v] with []\nreplace item (6) of [~temparray v] with []\nrepeat (length of (data))\n    change [~i v] by (1)\n    if <(letter (~i) of (data)) = [f]> then\n        set [~c v] to [0]\n        replace item (1) of [~temparray v] with []\n        replace item (2) of [~temparray v] with []\n        replace item (3) of [~temparray v] with []\n        replace item (4) of [~temparray v] with []\n        replace item (5) of [~temparray v] with []\n        replace item (6) of [~temparray v] with []\n    else\n        if <(letter (~i) of (data)) = [/]> then\n            if <not <(letter ((~i) - (1)) of (data)) = [/]>> then\n                change [~c v] by (1)\n            end\n        else\n            if <(letter (~i) of (data)) = [ ]> then\n                change [~c v] by (1)\n                if <(~c) = [7]> then\n                    Add Triangle Face (item (1) of [~temparray v]) (item (3) of [~temparray v]) (item (5) of [~temparray v])\n                    Add PointerToNormal (item (2) of [~temparray v]) (item (4) of [~temparray v]) (item (6) of [~temparray v])\n                    Add Materials of Face (~m)\n                end\n            else\n                if <(letter (~i) of (data)) = [u]> then\n                    change [~m v] by (1)\n                else\n                    replace item (~c) of [~temparray v] with (join (item (~c) of [~temparray v]) (letter (~i) of (data)))\n                end\n            end\n        end\n    end\nend\nchange [~c v] by (1)\nif <(~c) = [7]> then\n    Add Triangle Face (item (1) of [~temparray v]) (item (3) of [~temparray v]) (item (5) of [~temparray v])\n    Add PointerToNormal (item (2) of [~temparray v]) (item (4) of [~temparray v]) (item (6) of [~temparray v])\n    Add Materials of Face (~m)\nend\n\ndefine Add PointerToNormal (p1) (p2) (p3)\nadd (p1) to [#pointertonormal v]\n\ndefine Add Materials of Face (m)\nadd (m) to [#meshmaterial v]\n\ndefine // (comment)\n\ndefine File to data (data)\nset [~i v] to [0]\nrepeat until <<<(letter (~i) of (data)) = [ ]> and <<(letter ((~i) + (1)) of (data)) = [v]> and <(letter ((~i) + (2)) of (data)) = [ ]>>> or <(~i) > (length of (data))>>\n    change [~i v] by (1)\nend\nchange [~i v] by (0)\nset [~datatype v] to [1]\nset [~temp v] to []\nrepeat ((length of (data)) - (~i))\n    change [~i v] by (1)\n    set [~temp v] to (join (~temp) (letter (~i) of (data)))\n    if <(letter (~i) of (data)) = [n]> then\n        if <(~dataType) = [1]> then\n            set [~obj_vertexdata v] to (~temp)\n            set [~datatype v] to [2]\n            set [~temp v] to [n]\n        end\n    end\n    if <(letter (~i) of (data)) = [u]> then\n        if <(~dataType) = [2]> then\n            set [~obj_normals v] to (~temp)\n            set [~datatype v] to [3]\n            set [~temp v] to [u]\n        end\n    end\nend\nset [~obj_facedata v] to (~temp)\nAdd Vertexes (~OBJ_VertexData) (~MultiplyObj)\nAdd Normals (~OBJ_Normals)\nAdd Faces and Material (~OBJ_FaceData)\nadd (~currentVertexCount) to [#vertexescount v]\nadd (~currentNormalCount) to [#normalscount v]\nadd (~currentFaceCount) to [#facescount v]\nadd (~currentMaterialCount) to [#materialcount v]\nset [~currentvertexcount v] to (length of [#vertex_x v])\nset [~currentnormalcount v] to (length of [#meshnormal v])\nset [~currentfacecount v] to (length of [#meshfacedata v])\nset [~currentmaterialcount v] to ((~currentMaterialCount) + (~m))\n\ndefine AddMesh name: (name) size: (size) data: (data)\nset [~multiplyobj v] to (size)\nFile to data (data)\nFill Loading ((*id) / (~numberOfMeshes)) (x position) (y position)\nchange [*id v] by (1)\n\ndefine Add All Meshes\nset [~numberofmeshes v] to [40]\nset [&playeridle v] to (*id)\nAddMesh name: [TriangleManIdle0] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000000.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851560 0.316091 v 0.913497 1.856279 -0.136264 v 0.561748 1.541500 -0.136264 v 1.101098 1.292724 -0.000000 v 0.737622 1.698889 0.272527 v -0.913497 1.856279 -0.136264 v -0.561748 1.541500 -0.136264 v -1.101098 1.292724 -0.000000 v -0.737622 1.698889 0.272527 v -0.000000 3.174653 0.105104 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7878 0.3795 0.4851 vn 0.6920 -0.2993 0.6569 vn 0.1617 -0.1807 -0.9701 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4513 0.6910 vn -0.4643 -0.7410 0.4851 vn -0.6669 0.7452 -0.0000 vn -0.7878 0.3795 0.4851 vn -0.1617 -0.1807 -0.9701 vn 0.4643 -0.7410 0.4851 vn 0.6669 0.7452 -0.0000 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle1] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000001.mtl o Cube v 0.330920 2.921952 -0.016664 v -0.330920 2.921952 -0.016664 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 0.000035 v 0.866025 0.003031 0.415111 v -0.000000 2.157929 0.001048 v -0.866025 0.003031 0.415111 v -0.000014 2.858549 0.301337 v 0.914093 1.883595 -0.136207 v 0.588190 1.541808 -0.135983 v 1.146233 1.337092 0.000002 v 0.751132 1.712695 0.272745 v -0.914097 1.883813 -0.136264 v -0.588693 1.541869 -0.136264 v -1.146238 1.337097 -0.000000 v -0.751395 1.712841 0.272527 v 0.000002 3.176785 0.083078 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7547 0.4415 0.4853 vn 0.6920 -0.2844 0.6635 vn 0.1750 -0.1675 -0.9702 vn -0.0000 -0.0232 -0.9997 vn -0.6921 -0.2844 0.6635 vn -0.5646 0.4668 0.6806 vn -0.4029 -0.7761 0.4851 vn -0.7237 0.6901 -0.0000 vn -0.7549 0.4414 0.4851 vn -0.1757 -0.1672 -0.9701 vn 0.4035 -0.7758 0.4851 vn 0.7244 0.6894 -0.0000 vn -0.0000 0.3645 -0.9312 vn 0.5646 0.4668 0.6807 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle2] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000002.mtl o Cube v 0.330920 2.919998 -0.055481 v -0.330920 2.919998 -0.055481 v 0.000000 0.003031 -0.634619 v -0.000000 2.003036 0.000119 v 0.866025 0.003031 0.415111 v -0.000000 2.158054 0.003548 v -0.866025 0.003031 0.415111 v -0.000044 2.873867 0.265491 v 0.906427 1.949470 -0.136070 v 0.651641 1.551373 -0.135307 v 1.239982 1.458782 0.000008 v 0.779057 1.750400 0.273252 v -0.906376 1.950211 -0.136264 v -0.653352 1.551723 -0.136264 v -1.239998 1.458800 -0.000000 v -0.779864 1.750967 0.272527 v 0.000007 3.179852 0.030328 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.6545 0.5796 0.4855 vn 0.6920 -0.2480 0.6779 vn 0.2025 -0.1315 -0.9704 vn -0.0000 -0.0772 -0.9970 vn -0.6921 -0.2481 0.6778 vn -0.5646 0.5030 0.6544 vn -0.2437 -0.8398 0.4851 vn -0.8423 0.5391 0.0001 vn -0.6551 0.5793 0.4851 vn -0.2047 -0.1300 -0.9701 vn 0.2456 -0.8393 0.4851 vn 0.8442 0.5360 0.0000 vn -0.0000 0.3136 -0.9496 vn 0.5646 0.5029 0.6545 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle3] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000003.mtl o Cube v 0.330920 2.914916 -0.101626 v -0.330920 2.914916 -0.101626 v 0.000000 0.003031 -0.634619 v -0.000000 2.003047 0.000218 v 0.866025 0.003031 0.415111 v -0.000000 2.158379 0.006521 v -0.866025 0.003031 0.415111 v -0.000073 2.889583 0.221661 v 0.880425 2.025134 -0.135902 v 0.723923 1.579025 -0.134493 v 1.319132 1.626313 0.000014 v 0.802337 1.802060 0.273836 v -0.880186 2.026465 -0.136264 v -0.727009 1.579979 -0.136264 v -1.319156 1.626349 -0.000000 v -0.803598 1.803222 0.272527 v 0.000012 3.179767 -0.032790 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2031 0.9792 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.5009 0.7165 0.4855 vn 0.6920 -0.2037 0.6925 vn 0.2259 -0.0823 -0.9707 vn -0.0000 -0.1415 -0.9899 vn -0.6922 -0.2038 0.6924 vn -0.5646 0.5442 0.6205 vn -0.0402 -0.8736 0.4849 vn -0.9436 0.3310 0.0004 vn -0.5021 0.7160 0.4851 vn -0.2294 -0.0787 -0.9701 vn 0.0432 -0.8734 0.4851 vn 0.9459 0.3245 -0.0000 vn -0.0000 0.2515 -0.9678 vn 0.5646 0.5441 0.6207 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle4] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000003.mtl o Cube v 0.330920 2.914916 -0.101626 v -0.330920 2.914916 -0.101626 v 0.000000 0.003031 -0.634619 v -0.000000 2.003047 0.000218 v 0.866025 0.003031 0.415111 v -0.000000 2.158379 0.006521 v -0.866025 0.003031 0.415111 v -0.000073 2.889583 0.221661 v 0.880425 2.025134 -0.135902 v 0.723923 1.579025 -0.134493 v 1.319132 1.626313 0.000014 v 0.802337 1.802060 0.273836 v -0.880186 2.026465 -0.136264 v -0.727009 1.579979 -0.136264 v -1.319156 1.626349 -0.000000 v -0.803598 1.803222 0.272527 v 0.000012 3.179767 -0.032790 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2031 0.9792 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.5009 0.7165 0.4855 vn 0.6920 -0.2037 0.6925 vn 0.2259 -0.0823 -0.9707 vn -0.0000 -0.1415 -0.9899 vn -0.6922 -0.2038 0.6924 vn -0.5646 0.5442 0.6205 vn -0.0402 -0.8736 0.4849 vn -0.9436 0.3310 0.0004 vn -0.5021 0.7160 0.4851 vn -0.2294 -0.0787 -0.9701 vn 0.0432 -0.8734 0.4851 vn 0.9459 0.3245 -0.0000 vn -0.0000 0.2515 -0.9678 vn 0.5646 0.5441 0.6207 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle5] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000005.mtl o Cube v 0.330920 2.905023 -0.155865 v -0.330920 2.905023 -0.155865 v 0.000000 0.003031 -0.634619 v -0.000000 2.003068 0.000334 v 0.866025 0.003031 0.415111 v -0.000000 2.159015 0.010014 v -0.866025 0.003031 0.415111 v -0.000094 2.904516 0.168417 v 0.828702 2.103017 -0.135701 v 0.797462 1.631666 -0.133523 v 1.359209 1.839054 0.000022 v 0.813541 1.867400 0.274493 v -0.828090 2.104951 -0.136264 v -0.801948 1.633644 -0.136264 v -1.359238 1.839111 -0.000000 v -0.815019 1.869298 0.272527 v 0.000016 3.174367 -0.107553 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2031 0.9792 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.2869 0.8261 0.4851 vn 0.6920 -0.1500 0.7061 vn 0.2383 -0.0203 -0.9710 vn -0.0000 -0.2171 -0.9762 vn -0.6922 -0.1501 0.7059 vn -0.5646 0.5902 0.5769 vn 0.1994 -0.8519 0.4843 vn -0.9978 0.0661 0.0011 vn -0.2887 0.8254 0.4851 vn -0.2422 -0.0134 -0.9701 vn -0.1956 -0.8523 0.4851 vn 0.9985 0.0554 -0.0000 vn -0.0000 0.1766 -0.9843 vn 0.5645 0.5900 0.5772 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle6] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000006.mtl o Cube v 0.330920 2.908376 -0.139938 v -0.330920 2.908376 -0.139938 v 0.000000 0.003031 -0.634619 v -0.000000 2.003061 0.000300 v 0.866025 0.003031 0.415111 v -0.000000 2.158799 0.008988 v -0.866025 0.003031 0.415111 v -0.000089 2.900535 0.184250 v 0.845968 2.081825 -0.135761 v 0.777562 1.614250 -0.133810 v 1.353599 1.776012 0.000020 v 0.812125 1.848061 0.274304 v -0.845481 2.083596 -0.136264 v -0.781669 1.615898 -0.136264 v -1.353627 1.776063 -0.000000 v -0.813575 1.849747 0.272527 v 0.000015 3.176558 -0.085532 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2031 0.9792 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.3523 0.8002 0.4853 vn 0.6920 -0.1659 0.7026 vn 0.2364 -0.0386 -0.9709 vn 0.0000 -0.1949 -0.9808 vn -0.6922 -0.1660 0.7024 vn -0.5646 0.5770 0.5901 vn 0.1303 -0.8650 0.4845 vn -0.9895 0.1448 0.0009 vn -0.3539 0.7997 0.4851 vn -0.2403 -0.0328 -0.9701 vn -0.1267 -0.8652 0.4851 vn 0.9908 0.1352 -0.0000 vn 0.0000 0.1988 -0.9800 vn 0.5646 0.5768 0.5904 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle7] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000007.mtl o Cube v 0.330920 2.914916 -0.101627 v -0.330920 2.914916 -0.101626 v 0.000000 0.003031 -0.634619 v -0.000000 2.003047 0.000218 v 0.866025 0.003031 0.415111 v -0.000000 2.158379 0.006521 v -0.866025 0.003031 0.415111 v -0.000073 2.889583 0.221661 v 0.880425 2.025134 -0.135902 v 0.723923 1.579025 -0.134493 v 1.319132 1.626313 0.000014 v 0.802338 1.802060 0.273836 v -0.880186 2.026465 -0.136264 v -0.727009 1.579979 -0.136264 v -1.319156 1.626349 -0.000000 v -0.803597 1.803222 0.272527 v 0.000012 3.179767 -0.032790 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2031 0.9792 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.5009 0.7165 0.4855 vn 0.6920 -0.2037 0.6925 vn 0.2259 -0.0823 -0.9707 vn -0.0000 -0.1415 -0.9899 vn -0.6922 -0.2038 0.6924 vn -0.5646 0.5442 0.6205 vn -0.0402 -0.8736 0.4849 vn -0.9436 0.3310 0.0004 vn -0.5020 0.7160 0.4851 vn -0.2294 -0.0787 -0.9701 vn 0.0432 -0.8734 0.4851 vn 0.9459 0.3245 0.0000 vn -0.0000 0.2515 -0.9678 vn 0.5646 0.5441 0.6207 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle8] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000008.mtl o Cube v 0.330920 2.919998 -0.055481 v -0.330920 2.919998 -0.055481 v 0.000000 0.003031 -0.634619 v -0.000000 2.003036 0.000119 v 0.866025 0.003031 0.415111 v -0.000000 2.158054 0.003548 v -0.866025 0.003031 0.415111 v -0.000044 2.873867 0.265491 v 0.906427 1.949470 -0.136070 v 0.651641 1.551373 -0.135307 v 1.239982 1.458782 0.000008 v 0.779057 1.750400 0.273252 v -0.906376 1.950211 -0.136264 v -0.653352 1.551723 -0.136264 v -1.239998 1.458800 -0.000000 v -0.779864 1.750967 0.272527 v 0.000007 3.179852 0.030328 vn 0.7561 0.1980 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1980 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.6545 0.5796 0.4855 vn 0.6920 -0.2480 0.6779 vn 0.2025 -0.1315 -0.9704 vn -0.0000 -0.0772 -0.9970 vn -0.6921 -0.2481 0.6778 vn -0.5646 0.5030 0.6544 vn -0.2437 -0.8398 0.4851 vn -0.8423 0.5391 0.0001 vn -0.6551 0.5793 0.4851 vn -0.2047 -0.1300 -0.9701 vn 0.2456 -0.8393 0.4851 vn 0.8442 0.5360 -0.0000 vn -0.0000 0.3136 -0.9496 vn 0.5646 0.5029 0.6545 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManIdle9] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000009.mtl o Cube v 0.330920 2.921952 -0.016664 v -0.330920 2.921952 -0.016664 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 0.000035 v 0.866025 0.003031 0.415111 v -0.000000 2.157929 0.001048 v -0.866025 0.003031 0.415111 v -0.000014 2.858549 0.301337 v 0.914093 1.883595 -0.136207 v 0.588190 1.541808 -0.135982 v 1.146233 1.337092 0.000002 v 0.751132 1.712695 0.272745 v -0.914097 1.883813 -0.136264 v -0.588693 1.541869 -0.136264 v -1.146238 1.337097 -0.000000 v -0.751395 1.712841 0.272527 v 0.000002 3.176785 0.083078 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7547 0.4415 0.4853 vn 0.6920 -0.2844 0.6635 vn 0.1750 -0.1675 -0.9702 vn -0.0000 -0.0232 -0.9997 vn -0.6921 -0.2844 0.6635 vn -0.5646 0.4668 0.6806 vn -0.4029 -0.7761 0.4851 vn -0.7237 0.6901 -0.0000 vn -0.7549 0.4414 0.4851 vn -0.1757 -0.1672 -0.9701 vn 0.4035 -0.7758 0.4851 vn 0.7244 0.6894 -0.0000 vn -0.0000 0.3645 -0.9312 vn 0.5646 0.4668 0.6807 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nset [&playerwalk v] to (*id)\nAddMesh name: [TriangleManWalk0] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000000.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851549 0.315950 v 0.913497 1.766793 -0.081727 v 0.561748 1.543526 0.136066 v 1.101098 1.463988 0.413467 v 0.737622 1.939236 0.318129 v -0.913497 1.958853 -0.111373 v -0.561748 1.736271 -0.333955 v -1.101098 1.464007 -0.413513 v -0.737622 1.558503 0.066395 v -0.000000 3.174643 0.105122 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7841 0.6156 0.0794 vn 0.6919 -0.2993 0.6570 vn 0.1683 -0.8113 -0.5599 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6570 vn -0.5646 0.4511 0.6912 vn -0.4710 -0.1873 0.8620 vn -0.6635 0.5354 -0.5227 vn -0.7878 -0.0746 0.6114 vn -0.1617 0.5582 -0.8138 vn 0.4643 -0.8670 -0.1810 vn 0.6669 0.5269 0.5269 vn -0.0000 0.3856 -0.9227 vn 0.5646 0.4511 0.6912 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk1] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000001.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851560 0.315976 v 0.913497 1.780238 -0.097481 v 0.561748 1.526369 0.085050 v 1.101098 1.406354 0.346373 v 0.737622 1.891292 0.324372 v -0.913497 1.941124 -0.122366 v -0.561748 1.687516 -0.308830 v -1.101098 1.406367 -0.346412 v -0.737622 1.572167 0.113753 v -0.000000 3.174646 0.105120 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7848 0.5959 0.1703 vn 0.6919 -0.2993 0.6570 vn 0.1676 -0.7180 -0.6756 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6570 vn -0.5646 0.4511 0.6912 vn -0.4697 -0.3146 0.8249 vn -0.6644 0.6066 -0.4367 vn -0.7878 0.0184 0.6156 vn -0.1617 0.4291 -0.8887 vn 0.4643 -0.8843 -0.0481 vn 0.6669 0.6004 0.4414 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4511 0.6912 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk2] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000002.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851569 0.316047 v 0.913497 1.824220 -0.127162 v 0.561748 1.518963 -0.052642 v 1.101098 1.310044 0.141261 v 0.737622 1.768660 0.306939 v -0.913497 1.889827 -0.137359 v -0.561748 1.584372 -0.213404 v -1.101098 1.310045 -0.141277 v -0.737622 1.638342 0.221301 v -0.000000 3.174651 0.105110 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7867 0.4859 0.3809 vn 0.6920 -0.2993 0.6569 vn 0.1645 -0.4087 -0.8977 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4512 0.6911 vn -0.4663 -0.6033 0.6470 vn -0.6662 0.7244 -0.1772 vn -0.7878 0.2511 0.5624 vn -0.1617 0.0590 -0.9851 vn 0.4643 -0.8362 0.2917 vn 0.6669 0.7231 0.1800 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4512 0.6911 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk3] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000003.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851541 0.316131 v 0.913497 1.889586 -0.137351 v 0.561748 1.583571 -0.211964 v 1.101098 1.310044 -0.141261 v 0.737622 1.639499 0.222279 v -0.913497 1.823989 -0.127096 v -0.561748 1.518533 -0.051051 v -1.101098 1.310045 0.141277 v -0.737622 1.770018 0.307609 v -0.000000 3.174652 0.105097 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7889 0.2516 0.5607 vn 0.6921 -0.2994 0.6568 vn 0.1586 0.0580 -0.9856 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5646 0.4513 0.6910 vn -0.4627 -0.8360 0.2951 vn -0.6671 0.7236 0.1770 vn -0.7878 0.4855 0.3790 vn -0.1617 -0.4097 -0.8977 vn 0.4643 -0.6019 0.6497 vn 0.6669 0.7231 -0.1800 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk4] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000004.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851492 0.316183 v 0.913497 1.940516 -0.122466 v 0.561747 1.684789 -0.305607 v 1.101098 1.406354 -0.346373 v 0.737622 1.574587 0.116785 v -0.913497 1.779689 -0.097201 v -0.561748 1.526080 0.089262 v -1.101098 1.406367 0.346412 v -0.737622 1.895037 0.325381 v -0.000000 3.174649 0.105087 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7902 0.0207 0.6126 vn 0.6922 -0.2994 0.6567 vn 0.1533 0.4273 -0.8910 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5646 0.4514 0.6910 vn -0.4607 -0.8867 -0.0395 vn -0.6666 0.6051 0.4354 vn -0.7878 0.5931 0.1660 vn -0.1617 -0.7203 -0.6746 vn 0.4643 -0.3097 0.8298 vn 0.6669 0.6004 -0.4414 vn -0.0000 0.3854 -0.9227 vn 0.5646 0.4514 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk5] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000005.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851469 0.316198 v 0.913497 1.958118 -0.111551 v 0.561748 1.732633 -0.330263 v 1.101098 1.463988 -0.413467 v 0.737622 1.561184 0.070332 v -0.913497 1.766147 -0.081333 v -0.561748 1.543565 0.141249 v -1.101098 1.464006 0.413513 v -0.737622 1.943915 0.319017 v -0.000000 3.174646 0.105084 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7905 -0.0715 0.6083 vn 0.6922 -0.2994 0.6567 vn 0.1512 0.5566 -0.8169 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5646 0.4514 0.6910 vn -0.4603 -0.8712 -0.1708 vn -0.6661 0.5338 0.5209 vn -0.7878 0.6114 0.0746 vn -0.1617 -0.8138 -0.5582 vn 0.4643 -0.1810 0.8670 vn 0.6669 0.5269 -0.5269 vn -0.0000 0.3854 -0.9227 vn 0.5646 0.4514 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk6] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000006.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851492 0.316183 v 0.913497 1.940516 -0.122466 v 0.561748 1.684789 -0.305607 v 1.101098 1.406354 -0.346373 v 0.737622 1.574587 0.116785 v -0.913497 1.779689 -0.097201 v -0.561748 1.526080 0.089262 v -1.101098 1.406367 0.346412 v -0.737622 1.895038 0.325382 v -0.000000 3.174649 0.105087 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7902 0.0207 0.6126 vn 0.6922 -0.2994 0.6567 vn 0.1533 0.4273 -0.8910 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5646 0.4514 0.6910 vn -0.4607 -0.8867 -0.0395 vn -0.6666 0.6051 0.4354 vn -0.7878 0.5931 0.1660 vn -0.1617 -0.7203 -0.6746 vn 0.4643 -0.3097 0.8298 vn 0.6669 0.6004 -0.4414 vn -0.0000 0.3854 -0.9227 vn 0.5646 0.4514 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk7] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000007.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851541 0.316131 v 0.913497 1.889586 -0.137351 v 0.561748 1.583571 -0.211964 v 1.101098 1.310044 -0.141261 v 0.737622 1.639499 0.222279 v -0.913497 1.823989 -0.127096 v -0.561748 1.518534 -0.051051 v -1.101098 1.310045 0.141277 v -0.737622 1.770018 0.307609 v -0.000000 3.174652 0.105097 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7889 0.2516 0.5607 vn 0.6921 -0.2994 0.6568 vn 0.1586 0.0580 -0.9856 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5646 0.4513 0.6910 vn -0.4626 -0.8360 0.2951 vn -0.6671 0.7236 0.1770 vn -0.7878 0.4855 0.3790 vn -0.1617 -0.4097 -0.8977 vn 0.4643 -0.6019 0.6497 vn 0.6669 0.7231 -0.1800 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk8] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000008.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851569 0.316047 v 0.913497 1.824220 -0.127162 v 0.561748 1.518963 -0.052642 v 1.101098 1.310044 0.141261 v 0.737622 1.768660 0.306939 v -0.913497 1.889827 -0.137359 v -0.561748 1.584372 -0.213404 v -1.101098 1.310045 -0.141277 v -0.737622 1.638342 0.221301 v -0.000000 3.174651 0.105110 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7867 0.4859 0.3809 vn 0.6920 -0.2993 0.6569 vn 0.1645 -0.4087 -0.8977 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4512 0.6911 vn -0.4663 -0.6033 0.6470 vn -0.6662 0.7244 -0.1772 vn -0.7878 0.2511 0.5624 vn -0.1617 0.0590 -0.9851 vn 0.4643 -0.8362 0.2917 vn 0.6669 0.7231 0.1800 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4512 0.6911 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManWalk9] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000009.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851560 0.315976 v 0.913497 1.780238 -0.097481 v 0.561748 1.526369 0.085050 v 1.101098 1.406354 0.346373 v 0.737622 1.891292 0.324372 v -0.913497 1.941124 -0.122366 v -0.561748 1.687516 -0.308830 v -1.101098 1.406367 -0.346412 v -0.737622 1.572167 0.113753 v -0.000000 3.174646 0.105120 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7848 0.5959 0.1703 vn 0.6919 -0.2993 0.6570 vn 0.1676 -0.7180 -0.6756 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6570 vn -0.5646 0.4511 0.6912 vn -0.4697 -0.3146 0.8249 vn -0.6644 0.6066 -0.4367 vn -0.7878 0.0184 0.6156 vn -0.1617 0.4291 -0.8887 vn 0.4643 -0.8843 -0.0481 vn 0.6669 0.6004 0.4414 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4511 0.6912 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nset [&playerjumpin v] to (*id)\nAddMesh name: [TriangleManJumpIn0] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000000.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851560 0.316091 v 0.913497 1.856279 -0.136264 v 0.561748 1.541500 -0.136264 v 1.101098 1.292724 -0.000000 v 0.737622 1.698889 0.272527 v -0.913497 1.856279 -0.136264 v -0.561748 1.541500 -0.136264 v -1.101098 1.292724 -0.000000 v -0.737622 1.698889 0.272527 v -0.000000 3.174653 0.105104 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7878 0.3795 0.4851 vn 0.6920 -0.2993 0.6569 vn 0.1617 -0.1807 -0.9701 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4513 0.6910 vn -0.4643 -0.7410 0.4851 vn -0.6669 0.7452 -0.0000 vn -0.7878 0.3795 0.4851 vn -0.1617 -0.1807 -0.9701 vn 0.4643 -0.7410 0.4851 vn 0.6669 0.7452 -0.0000 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn1] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000001.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851526 0.316152 v 0.913497 1.908844 -0.134230 v 0.561748 1.616254 -0.250722 v 1.101098 1.335879 -0.220468 v 0.737622 1.611029 0.186733 v -0.913497 1.909223 -0.134216 v -0.561748 1.617676 -0.252901 v -1.101098 1.335884 -0.220493 v -0.737622 1.609319 0.185063 v -0.000000 3.174650 0.105114 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7894 0.1697 0.5900 vn 0.6921 -0.2994 0.6568 vn 0.1567 0.1970 -0.9678 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5647 0.4513 0.6910 vn -0.4618 -0.8695 0.1753 vn -0.6670 0.6918 0.2764 vn -0.7878 0.1686 0.5924 vn -0.1617 0.1984 -0.9667 vn 0.4643 -0.8692 0.1699 vn 0.6669 0.6902 0.2810 vn -0.0000 0.3855 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn2] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000002.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851469 0.316197 v 0.913497 1.957642 -0.111897 v 0.561748 1.731226 -0.329664 v 1.101098 1.462215 -0.411687 v 0.737622 1.561467 0.071676 v -0.913497 1.958374 -0.111721 v -0.561748 1.734837 -0.333345 v -1.101098 1.462233 -0.411732 v -0.737622 1.558791 0.067766 v -0.000000 3.174643 0.105122 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7905 -0.0689 0.6086 vn 0.6922 -0.2994 0.6567 vn 0.1512 0.5530 -0.8193 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5647 0.4513 0.6910 vn -0.4603 -0.8719 -0.1671 vn -0.6661 0.5360 0.5186 vn -0.7878 -0.0720 0.6117 vn -0.1617 0.5547 -0.8162 vn 0.4643 -0.8677 -0.1772 vn 0.6669 0.5292 0.5247 vn -0.0000 0.3856 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn3] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000003.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851485 0.316188 v 0.913497 1.946008 -0.119449 v 0.561748 1.698850 -0.313820 v 1.101098 1.422695 -0.367564 v 0.737622 1.569796 0.102965 v -0.913497 1.946656 -0.119328 v -0.561748 1.701844 -0.317199 v -1.101098 1.422709 -0.367605 v -0.737622 1.567282 0.099663 v -0.000000 3.174645 0.105120 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7903 -0.0072 0.6127 vn 0.6922 -0.2994 0.6567 vn 0.1526 0.4675 -0.8707 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5647 0.4513 0.6910 vn -0.4606 -0.8841 -0.0794 vn -0.6665 0.5849 0.4623 vn -0.7878 -0.0097 0.6158 vn -0.1617 0.4693 -0.8681 vn 0.4643 -0.8812 -0.0885 vn 0.6669 0.5795 0.4684 vn -0.0000 0.3856 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn4] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000004.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851531 0.316146 v 0.913497 1.902545 -0.135563 v 0.561748 1.604869 -0.238461 v 1.101098 1.326114 -0.194766 v 0.737622 1.619853 0.198899 v -0.913497 1.902879 -0.135558 v -0.561748 1.606075 -0.240406 v -1.101098 1.326118 -0.194788 v -0.737622 1.618314 0.197466 v -0.000000 3.174650 0.105113 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7892 0.1971 0.5816 vn 0.6921 -0.2994 0.6568 vn 0.1573 0.1514 -0.9759 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5647 0.4513 0.6910 vn -0.4621 -0.8603 0.2153 vn -0.6671 0.7039 0.2441 vn -0.7878 0.1963 0.5838 vn -0.1617 0.1527 -0.9749 vn 0.4643 -0.8603 0.2106 vn 0.6669 0.7026 0.2482 vn -0.0000 0.3855 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn5] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000005.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851568 0.316059 v 0.913497 1.832623 -0.130380 v 0.561748 1.523014 -0.075672 v 1.101098 1.301991 0.103688 v 0.737622 1.749070 0.299362 v -0.913497 1.832452 -0.130338 v -0.561748 1.522662 -0.074519 v -1.101098 1.301991 0.103700 v -0.737622 1.750046 0.299884 v -0.000000 3.174653 0.105099 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7870 0.4597 0.4115 vn 0.6920 -0.2993 0.6569 vn 0.1638 -0.3491 -0.9227 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4512 0.6911 vn -0.4657 -0.6442 0.6067 vn -0.6664 0.7342 -0.1300 vn -0.7878 0.4595 0.4101 vn -0.1617 -0.3499 -0.9227 vn 0.4643 -0.6432 0.6088 vn 0.6669 0.7334 -0.1321 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4512 0.6911 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn6] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000006.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851552 0.315955 v 0.913497 1.769537 -0.085356 v 0.561748 1.539102 0.125102 v 1.101098 1.450480 0.399503 v 0.737622 1.928804 0.320120 v -0.913497 1.768910 -0.084988 v -0.561748 1.539056 0.130076 v -1.101098 1.450497 0.399547 v -0.737622 1.933280 0.321047 v -0.000000 3.174647 0.105085 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7842 0.6124 0.0996 vn 0.6919 -0.2993 0.6570 vn 0.1682 -0.7923 -0.5865 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6570 vn -0.5645 0.4511 0.6912 vn -0.4707 -0.2157 0.8555 vn -0.6637 0.5521 -0.5047 vn -0.7878 0.6086 0.0949 vn -0.1617 -0.7948 -0.5849 vn 0.4643 -0.2097 0.8605 vn 0.6669 0.5441 -0.5091 vn -0.0000 0.3854 -0.9227 vn 0.5645 0.4511 0.6912 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn7] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000007.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851492 0.315884 v 0.913497 1.741994 -0.021506 v 0.561748 1.644638 0.271794 v 1.101098 1.701786 0.557719 v 0.737622 2.076442 0.252640 v -0.913497 1.741169 -0.020677 v -0.561748 1.646601 0.279560 v -1.101098 1.701831 0.557781 v -0.737622 2.083792 0.252254 v -0.000000 3.174636 0.105077 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7822 0.5856 -0.2127 vn 0.6919 -0.2993 0.6571 vn 0.1686 -0.9781 -0.1225 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6571 vn -0.5645 0.4510 0.6914 vn -0.4747 0.2310 0.8493 vn -0.6600 0.2372 -0.7128 vn -0.7878 0.5767 -0.2163 vn -0.1617 -0.9796 -0.1191 vn 0.4643 0.2400 0.8525 vn 0.6669 0.2239 -0.7108 vn -0.0000 0.3854 -0.9227 vn 0.5645 0.4510 0.6914 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn8] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000008.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851381 0.315849 v 0.913497 1.756406 0.063177 v 0.561748 1.852658 0.352795 v 1.101098 2.068592 0.552610 v 0.737622 2.184022 0.083416 v -0.913497 1.755685 0.064616 v -0.561748 1.858580 0.362103 v -1.101098 2.068678 0.552671 v -0.737622 2.193467 0.079734 v -0.000000 3.174619 0.105075 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7810 0.3458 -0.5200 vn 0.6919 -0.2993 0.6571 vn 0.1642 -0.8590 0.4850 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6571 vn -0.5644 0.4509 0.6915 vn -0.4776 0.6928 0.5404 vn -0.6554 -0.2356 -0.7176 vn -0.7878 0.3344 -0.5173 vn -0.1617 -0.8578 0.4879 vn 0.4643 0.7006 0.5417 vn 0.6669 -0.2436 -0.7042 vn -0.0000 0.3854 -0.9227 vn 0.5644 0.4509 0.6915 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpIn9] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000009.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922144 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851250 0.315908 v 0.913497 1.839224 0.130525 v 0.561747 2.113420 0.258152 v 1.101098 2.407248 0.247448 v 0.737622 2.145991 -0.162852 v -0.913497 1.839101 0.132450 v -0.561748 2.124305 0.265659 v -1.101098 2.407371 0.247476 v -0.737622 2.154696 -0.171328 v -0.000000 3.174602 0.105088 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7824 -0.1332 -0.6083 vn 0.6920 -0.2993 0.6569 vn 0.1539 -0.2477 0.9565 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5644 0.4509 0.6915 vn -0.4762 0.8694 -0.1317 vn -0.6520 -0.6849 -0.3253 vn -0.7878 -0.1386 -0.6001 vn -0.1617 -0.2468 0.9555 vn 0.4643 0.8767 -0.1259 vn 0.6669 -0.6752 -0.3153 vn -0.0000 0.3855 -0.9227 vn 0.5644 0.4509 0.6915 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nset [&playerjumpout v] to (*id)\nAddMesh name: [TriangleManJumpOut0] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000000.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922144 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851213 0.315969 v 0.913497 1.892272 0.135131 v 0.561748 2.194555 0.146055 v 1.101098 2.461580 0.026635 v 0.737622 2.061323 -0.253859 v -0.913497 1.892532 0.137090 v -0.561748 2.206984 0.151428 v -1.101098 2.461709 0.026638 v -0.737622 2.068379 -0.264108 v -0.000000 3.174598 0.105098 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7840 -0.3553 -0.5089 vn 0.6921 -0.2993 0.6568 vn 0.1487 0.1376 0.9793 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2993 0.6568 vn -0.5644 0.4509 0.6915 vn -0.4737 0.7517 -0.4588 vn -0.6520 -0.7574 -0.0344 vn -0.7878 -0.3571 -0.5019 vn -0.1617 0.1364 0.9774 vn 0.4643 0.7623 -0.4508 vn 0.6669 -0.7444 -0.0339 vn -0.0000 0.3855 -0.9227 vn 0.5644 0.4509 0.6915 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut1] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000001.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922144 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851250 0.315908 v 0.913497 1.839224 0.130524 v 0.561747 2.113420 0.258152 v 1.101098 2.407248 0.247448 v 0.737622 2.145991 -0.162852 v -0.913497 1.839101 0.132450 v -0.561748 2.124305 0.265659 v -1.101098 2.407371 0.247476 v -0.737622 2.154696 -0.171328 v -0.000000 3.174602 0.105088 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7824 -0.1332 -0.6083 vn 0.6920 -0.2993 0.6569 vn 0.1539 -0.2477 0.9565 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5644 0.4509 0.6915 vn -0.4762 0.8694 -0.1317 vn -0.6520 -0.6849 -0.3253 vn -0.7878 -0.1386 -0.6001 vn -0.1617 -0.2468 0.9555 vn 0.4643 0.8767 -0.1259 vn 0.6669 -0.6752 -0.3153 vn -0.0000 0.3855 -0.9227 vn 0.5644 0.4509 0.6915 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut2] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000002.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851381 0.315849 v 0.913497 1.756406 0.063177 v 0.561748 1.852658 0.352795 v 1.101098 2.068592 0.552610 v 0.737622 2.184022 0.083416 v -0.913497 1.755685 0.064616 v -0.561748 1.858580 0.362103 v -1.101098 2.068678 0.552671 v -0.737622 2.193467 0.079734 v -0.000000 3.174619 0.105075 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7810 0.3458 -0.5200 vn 0.6919 -0.2993 0.6571 vn 0.1642 -0.8590 0.4850 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6571 vn -0.5644 0.4509 0.6915 vn -0.4776 0.6928 0.5404 vn -0.6554 -0.2356 -0.7176 vn -0.7878 0.3344 -0.5173 vn -0.1617 -0.8578 0.4879 vn 0.4643 0.7006 0.5417 vn 0.6669 -0.2436 -0.7042 vn -0.0000 0.3854 -0.9227 vn 0.5644 0.4509 0.6915 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut3] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000003.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851492 0.315884 v 0.913497 1.741994 -0.021506 v 0.561748 1.644638 0.271794 v 1.101098 1.701786 0.557719 v 0.737622 2.076442 0.252640 v -0.913497 1.741169 -0.020677 v -0.561748 1.646601 0.279560 v -1.101098 1.701831 0.557781 v -0.737622 2.083792 0.252254 v -0.000000 3.174636 0.105077 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7822 0.5856 -0.2127 vn 0.6919 -0.2993 0.6571 vn 0.1686 -0.9781 -0.1225 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6571 vn -0.5645 0.4510 0.6914 vn -0.4747 0.2310 0.8493 vn -0.6600 0.2372 -0.7128 vn -0.7878 0.5767 -0.2163 vn -0.1617 -0.9796 -0.1191 vn 0.4643 0.2400 0.8525 vn 0.6669 0.2239 -0.7108 vn -0.0000 0.3854 -0.9227 vn 0.5645 0.4510 0.6914 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut4] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000004.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851552 0.315955 v 0.913497 1.769537 -0.085356 v 0.561748 1.539102 0.125102 v 1.101098 1.450480 0.399503 v 0.737622 1.928803 0.320120 v -0.913497 1.768911 -0.084988 v -0.561748 1.539056 0.130077 v -1.101098 1.450497 0.399547 v -0.737622 1.933280 0.321047 v -0.000000 3.174647 0.105085 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7842 0.6124 0.0996 vn 0.6919 -0.2993 0.6570 vn 0.1682 -0.7923 -0.5865 vn -0.0000 -0.0005 -1.0000 vn -0.6919 -0.2993 0.6570 vn -0.5645 0.4511 0.6912 vn -0.4707 -0.2157 0.8555 vn -0.6637 0.5521 -0.5047 vn -0.7878 0.6086 0.0949 vn -0.1617 -0.7948 -0.5849 vn 0.4643 -0.2097 0.8605 vn 0.6669 0.5441 -0.5091 vn -0.0000 0.3854 -0.9227 vn 0.5645 0.4511 0.6912 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut5] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000005.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851568 0.316059 v 0.913497 1.832623 -0.130380 v 0.561748 1.523014 -0.075672 v 1.101098 1.301991 0.103689 v 0.737622 1.749070 0.299362 v -0.913497 1.832452 -0.130338 v -0.561748 1.522662 -0.074519 v -1.101098 1.301991 0.103700 v -0.737622 1.750046 0.299884 v -0.000000 3.174653 0.105099 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7870 0.4597 0.4115 vn 0.6920 -0.2993 0.6569 vn 0.1638 -0.3491 -0.9227 vn -0.0000 -0.0005 -1.0000 vn -0.6920 -0.2993 0.6569 vn -0.5646 0.4512 0.6911 vn -0.4657 -0.6442 0.6067 vn -0.6664 0.7342 -0.1300 vn -0.7878 0.4595 0.4101 vn -0.1617 -0.3499 -0.9227 vn 0.4643 -0.6432 0.6088 vn 0.6669 0.7334 -0.1321 vn -0.0000 0.3855 -0.9227 vn 0.5646 0.4512 0.6911 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut6] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000006.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851531 0.316146 v 0.913497 1.902545 -0.135563 v 0.561747 1.604869 -0.238461 v 1.101098 1.326114 -0.194766 v 0.737622 1.619853 0.198899 v -0.913497 1.902879 -0.135558 v -0.561748 1.606075 -0.240406 v -1.101098 1.326118 -0.194788 v -0.737622 1.618314 0.197465 v -0.000000 3.174650 0.105113 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7892 0.1971 0.5816 vn 0.6921 -0.2994 0.6568 vn 0.1573 0.1514 -0.9759 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5647 0.4513 0.6910 vn -0.4621 -0.8603 0.2153 vn -0.6671 0.7039 0.2441 vn -0.7878 0.1963 0.5838 vn -0.1617 0.1527 -0.9749 vn 0.4643 -0.8603 0.2106 vn 0.6669 0.7026 0.2482 vn -0.0000 0.3855 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut7] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000007.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851485 0.316188 v 0.913497 1.946008 -0.119449 v 0.561748 1.698850 -0.313820 v 1.101098 1.422695 -0.367564 v 0.737622 1.569796 0.102965 v -0.913497 1.946656 -0.119328 v -0.561748 1.701844 -0.317199 v -1.101098 1.422709 -0.367605 v -0.737622 1.567283 0.099663 v -0.000000 3.174645 0.105120 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7903 -0.0072 0.6127 vn 0.6922 -0.2994 0.6567 vn 0.1526 0.4675 -0.8707 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5647 0.4513 0.6910 vn -0.4606 -0.8841 -0.0794 vn -0.6665 0.5849 0.4623 vn -0.7878 -0.0097 0.6158 vn -0.1617 0.4693 -0.8681 vn 0.4643 -0.8812 -0.0885 vn 0.6669 0.5795 0.4684 vn -0.0000 0.3856 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut8] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000008.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851469 0.316197 v 0.913497 1.957642 -0.111897 v 0.561748 1.731226 -0.329664 v 1.101098 1.462215 -0.411687 v 0.737622 1.561467 0.071676 v -0.913497 1.958374 -0.111721 v -0.561748 1.734837 -0.333345 v -1.101098 1.462233 -0.411732 v -0.737622 1.558791 0.067766 v -0.000000 3.174643 0.105122 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7905 -0.0689 0.6086 vn 0.6922 -0.2994 0.6567 vn 0.1512 0.5530 -0.8193 vn -0.0000 -0.0005 -1.0000 vn -0.6922 -0.2994 0.6567 vn -0.5647 0.4513 0.6910 vn -0.4603 -0.8719 -0.1671 vn -0.6661 0.5360 0.5186 vn -0.7878 -0.0720 0.6117 vn -0.1617 0.5547 -0.8162 vn 0.4643 -0.8677 -0.1772 vn 0.6669 0.5292 0.5247 vn -0.0000 0.3856 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\nAddMesh name: [TriangleManJumpOut9] size: [40] data: [# Blender v2.81 \(sub 16\) OBJ File: 'tetrarko.blend' # www.blender.org mtllib tetrarko_000009.mtl o Cube v 0.330920 2.922145 -0.000389 v -0.330920 2.922145 -0.000389 v 0.000000 0.003031 -0.634619 v -0.000000 2.003031 -0.000000 v 0.866025 0.003031 0.415111 v -0.000000 2.157917 -0.000000 v -0.866025 0.003031 0.415111 v -0.000000 2.851526 0.316152 v 0.913497 1.908844 -0.134230 v 0.561748 1.616254 -0.250722 v 1.101098 1.335879 -0.220468 v 0.737622 1.611029 0.186733 v -0.913497 1.909223 -0.134216 v -0.561748 1.617676 -0.252901 v -1.101098 1.335884 -0.220493 v -0.737622 1.609319 0.185063 v -0.000000 3.174650 0.105114 vn 0.7561 0.1979 -0.6238 vn -0.0000 0.2032 0.9791 vn -0.7561 0.1979 -0.6238 vn 0.0000 -1.0000 0.0000 vn 0.7894 0.1697 0.5900 vn 0.6921 -0.2994 0.6568 vn 0.1567 0.1970 -0.9678 vn -0.0000 -0.0005 -1.0000 vn -0.6921 -0.2994 0.6568 vn -0.5647 0.4513 0.6910 vn -0.4618 -0.8695 0.1753 vn -0.6670 0.6918 0.2764 vn -0.7878 0.1686 0.5924 vn -0.1617 0.1984 -0.9667 vn 0.4643 -0.8692 0.1699 vn 0.6669 0.6902 0.2810 vn -0.0000 0.3855 -0.9227 vn 0.5647 0.4513 0.6910 usemtl Material s off f 3//1 4//1 5//1 f 5//2 4//2 7//2 f 7//3 4//3 3//3 f 3//4 5//4 7//4 usemtl Material.001 f 9//5 12//5 11//5 f 1//6 8//6 6//6 f 10//7 9//7 11//7 f 2//8 1//8 6//8 f 8//9 2//9 6//9 f 8//10 17//10 2//10 f 12//11 10//11 11//11 f 12//12 9//12 10//12 f 13//13 15//13 16//13 f 14//14 15//14 13//14 f 16//15 15//15 14//15 f 16//16 14//16 13//16 f 2//17 17//17 1//17 f 1//18 17//18 8//18]\n\ndefine DrawLoadBarBase (oldx) (oldy)\nset pen size to (32)\nset pen color to (#2a1475)\ngo to x: ((~barSize) / (-2)) y: (-50)\npen down\ngo to x: ((~barSize) / (2)) y: (-50)\npen up\nset pen size to (24)\nset pen color to (#a290e8)\ngo to x: ((~barSize) / (-2)) y: (-50)\npen down\ngo to x: ((~barSize) / (2)) y: (-50)\npen up\ngo to x: (oldx) y: (oldy)\n\ndefine Fill Loading (percent) (oldx) (oldy)\nset pen size to (32)\nset pen color to (#194ec1)\ngo to x: ((~barSize) / (-2)) y: (-50)\npen down\ngo to x: (((~barSize) / (-2)) + ((~barSize) * (percent))) y: (-50)\npen up\ngo to x: (oldx) y: (oldy)\n\nwhen I receive [engineinit v]\nshow\nInit\nAdd All Meshes\nhide\nerase all\nSet Materials\nadd (~currentVertexCount) to [#vertexescount v]\nadd (~currentNormalCount) to [#normalscount v]\nadd (~currentFaceCount) to [#facescount v]\nadd (~currentMaterialCount) to [#materialcount v]\n\ndefine Add Material To Mesh (RGBA) (r) (g) (b) (a)\nadd (((((a) + (1)) * (16777216)) + ((r) * (65536))) + (((g) * (256)) + (b))) to [#meshdefaultmaterialcolor v]\n\ndefine Set Materials\ndelete all of [#meshdefaultmaterialcolor v]\nAdd Material Group\nAdd Material To Mesh (RGBA) [0] [100] [255] [160]\nAdd Material To Mesh (RGBA) [200] [100] [0] [255]\n\ndefine Delete Mesh Data\ndelete all of [#screenposstate v]\ndelete all of [#vertex_x v]\ndelete all of [#vertex_y v]\ndelete all of [#vertex_z v]\ndelete all of [#meshfacedata v]\ndelete all of [#meshnormal v]\ndelete all of [#pointertonormal v]\ndelete all of [#meshmaterial v]\ndelete all of [#materialgroupid v]\n\ndefine Add Material Group\nadd (length of [#meshdefaultmaterialcolor v]) to [#materialgroupid v]\n\n@SkyBox\n\nwhen I receive [predraw v]\nDrawBackGround\n\nwhen I receive [engineinit v]\nInit\nSetData: ratio [1.25] Image Width [480] Image Height [360]\n\ndefine Stamp at (x) (y) inverted <inv>\nswitch costume to (small v)\nset size to (((480) / (~ImageHeight)) * ((200) * (~SkyBoxRatio))) %\nswitch costume to (full v)\nRotate: pivot [0] [0] point (x) (y)\npoint in direction ((90) - (@CameraRotateZ))\ngo to x: (~getX) y: (~getY)\nswitch costume to (small v)\nset size to (((480) / (~ImageHeight)) * ((101) * (~SkyBoxRatio))) %\nif <inv> then\n    switch costume to (~nameOfSkyBoxInv)\nelse\n    switch costume to (~nameOfSkyBox)\nend\nstamp\n\ndefine DrawBackGround\nset [~negativerotx v] to ((() - (@CameraRotateX)) mod (360))\nif <(~negativeRotX) < [180]> then\n    Stamp at (((((@CameraRotateY) mod (360)) + (0)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-0.5)) * (~skyBoxRealHeight)) inverted \n    Stamp at (((((@CameraRotateY) mod (360)) + (-360)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-0.5)) * (~skyBoxRealHeight)) inverted \n    Stamp at (((((@CameraRotateY) mod (360)) + (0)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (0)) * (~skyBoxRealHeight)) inverted <>\n    Stamp at (((((@CameraRotateY) mod (360)) + (-360)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (0)) * (~skyBoxRealHeight)) inverted <>\n    stop [this script v]\nend\nStamp at (((((@CameraRotateY) mod (360)) + (0)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-1)) * (~skyBoxRealHeight)) inverted <>\nStamp at (((((@CameraRotateY) mod (360)) + (-360)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-1)) * (~skyBoxRealHeight)) inverted <>\nStamp at (((((@CameraRotateY) mod (360)) + (0)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-0.5)) * (~skyBoxRealHeight)) inverted \nStamp at (((((@CameraRotateY) mod (360)) + (-360)) / (360)) * (~skyBoxRealWidth)) ((((~negativeRotX) / (360)) + (-0.5)) * (~skyBoxRealHeight)) inverted \n\ndefine Rotate: pivot (x) (y) point (xr) (yr)\nset [~getx v] to ((x) + ((((xr) - (x)) * (#CamCosZ)) - (((yr) - (y)) * (#CamSinZ))))\nset [~gety v] to ((y) + ((((yr) - (y)) * (#CamCosZ)) + (((xr) - (x)) * (#CamSinZ))))\n\ndefine SetData: ratio (ratio) Image Width (w) Image Height (h)\nset [~imagewidth v] to (w)\nset [~imageheight v] to (h)\nset [~skyboxratio v] to (ratio)\nset [~skyboxrealwidth v] to (((w) * ((480) / (h))) * (ratio))\nset [~skyboxrealheight v] to ((960) * (ratio))\n\ndefine Init\nset [~nameofskybox v] to [Skybox]\nset [~nameofskyboxinv v] to [SkyboxInv]\nhide\nset [color v] effect to (0)\n\n@Data\n\nwhen I receive [engineinit v]\nInit\nOptions\nScenes\n\ndefine Init\ndelete all of [@scenedata v]\nset [`numberofquads v] to [0]\nset [`triangledataperinst v] to [19]\nset [`trianglecollperinst v] to [6]\nset [`triangledistmult v] to [1.3]\nset [^load_d_size v] to [12]\n\ndefine Options\nset [@engineusechunks v] to [1]\nset [#maxdeltatime v] to [0.067]\nset [@focallength v] to [400]\nset [#mincameradist v] to [44]\nset [@viewrange v] to [10000]\nset [@resolution v] to [0]\nset [^gbd_size v] to [12]\nset [^sd_size v] to [12]\nset [^td_size v] to [6]\nset [^ld_size v] to [6]\nset [^textd_size v] to [6]\nset [`maxmaterials v] to [8]\n\ndefine Scenes\nAdd Scene - name: [level1] data: [0;0;400;10;12;0000000000000000000000000000010100000000000000000101000000000000000001010000000000000002020202000000000000030000040000000000000300000400000000000005050505000000000000000606000000000000000006060000000000000000060600000000000000000000000000002;|1;3;4;|2;5;|2;5;|3;4;6;|5;|~1989;367;172;-3;-359;0;~0;0;2000;100;800;|0;0;1600;100;800;|0;0;1600;100;400;|0;0;2400;100;400;|0;0;2000;100;400;|0;0;2400;100;800;|0;0;1600;200;1200;|0;0;2000;200;1200;|0;0;2400;200;1200;|0;0;1600;200;1600;|0;0;2000;200;1600;|0;0;2400;200;1600;|0;0;1600;300;1600;|0;0;2000;300;1600;|0;0;2400;300;1600;|0;0;1200;0;1600;|0;0;1600;0;2000;|0;0;1200;0;2000;|0;0;1600;0;1600;|0;0;1600;300;2000;|0;0;2000;300;2000;|0;0;2400;300;2000;|0;0;1300;0;2200;|0;0;1500;0;2400;|0;0;1300;0;2400;|0;0;2800;200;1600;|0;0;2800;200;2000;|0;0;2400;200;2000;|0;0;2500;200;2000;|0;0;2700;200;2000;|0;0;2500;200;2400;|0;0;2700;200;2400;|0;0;2500;200;2800;|0;0;2700;200;2800;|0;0;2500;300;2000;|0;0;2500;300;2400;|0;0;2500;300;2800;|0;0;2700;300;2800;|0;0;2700;300;2400;|0;0;2700;300;2000;|0;0;2500;200;2600;|0;0;2500;300;2600;|0;0;2700;200;2600;|0;0;2700;300;2600;|0;0;2700;200;2200;|0;0;2700;300;2200;|0;0;2500;200;2200;|0;0;2500;300;2200;|0;0;2800;200;2800;|0;0;2400;200;2800;|0;0;2800;200;3200;|0;0;2400;200;3200;|0;0;2100;200;3200;|0;0;1600;400;2800;|0;0;1200;400;2800;|0;0;1600;400;3000;|0;0;1200;400;3000;|0;0;2100;200;2800;|0;0;1900;300;3500;|0;0;2100;300;3500;|0;0;2100;300;3700;|0;0;1900;300;3700;|0;0;2100;600;3900;|0;0;1900;600;3900;|0;0;2300;300;3500;|0;0;2300;300;3700;|0;0;2200;400;3800;|0;0;2300;400;3800;|0;0;2200;400;3900;|0;0;2300;400;3900;|0;0;1600;300;2800;|0;0;1600;300;3000;|0;0;1900;200;3200;|0;0;1300;400;2700;|0;0;1400;400;2700;|0;0;1500;400;2800;|0;0;1500;400;2600;|0;0;1300;400;2600;|p;1;2000;300;600;|0;0;1400;0;2300;|c;2;2000;200;1000;|c;2;2000;300;1200;|c;2;2000;300;1400;|c;2;2000;400;1800;|c;2;2200;400;1800;|c;2;2600;300;1800;|c;2;2600;300;2200;|c;2;2600;300;2400;|c;2;2600;300;2600;|c;2;2600;300;3000;|c;2;2400;300;3000;|c;2;2200;300;3000;|c;2;1900;300;3000;|0;0;1800;400;1800;|0;0;1400;100;2400;|0;0;1400;100;2300;|0;0;1400;500;2700;|c;2;1400;300;2300;|c;2;1400;500;2500;|0;0;1400;400;2800;|c;2;1700;500;2900;|0;0;2200;500;4000;|0;0;2300;500;4000;|0;0;2200;500;4100;|0;0;2300;500;4100;|0;0;2200;600;4200;|0;0;1500;100;1800;|0;0;1300;100;1800;|0;0;1500;200;2000;|0;0;1500;300;1800;|0;0;1300;300;1800;|0;0;1300;200;2000;|0;0;1600;300;1800;|0;0;1300;300;1600;|0;0;1500;300;1600;|0;0;1300;0;1600;|0;0;1600;300;1700;|0;0;1500;0;1600;|0;0;1500;0;2200;|0;0;1300;0;2000;|0;0;1500;0;2000;|0;0;2300;600;4200;|0;0;2200;600;4300;|0;0;2300;600;4300;|0;0;1900;500;4000;|0;0;1700;500;4000;|0;0;1700;300;3700;|0;0;1700;300;3500;|0;0;1700;400;3900;|0;0;1900;400;3900;|0;0;1900;400;4200;|0;0;1700;400;4200;|0;0;1900;600;4100;|0;0;1700;600;4100;|0;0;1900;600;4300;|0;0;1900;600;4200;|0;0;1900;550;4050;|0;0;1700;550;4050;|0;0;1700;600;4200;|0;0;1700;600;4300;|c;2;2050;650;4200;|c;2;2050;650;4000;|c;2;2000;500;3800;|c;2;2000;350;3600;|~0;2500;300;2000;2500;300;2400;4298907155;20;0|0;2500;300;2400;2500;300;2800;4298907155;20;0|0;2700;300;2800;2700;300;2400;4298907155;20;0|0;2700;300;2400;2700;300;2000;4298907155;20;0|0;2700;300;2400;2700;200;2400;4300217875;40;0|0;2500;300;2400;2500;200;2400;4300217875;40;0|0;2700;300;2800;2700;200;2800;4300217875;40;0|0;2500;300;2800;2500;200;2800;4300217875;40;0|0;2700;200;2000;2700;300;2000;4300217875;40;0|0;2500;200;2000;2500;300;2000;4300217875;40;0|0;2700;200;2200;2700;300;2200;4300217875;40;0|0;2500;200;2200;2500;300;2200;4300217875;40;0|0;2700;200;2600;2700;300;2600;4300217875;40;0|0;2500;200;2600;2500;300;2600;4300217875;40;0|d;1400;500;2700;1400;100;2300;2164260735;20;0|0;1300;0;2000;1300;200;2000;4300217875;40;0|0;1500;0;2000;1500;200;2000;4300217875;40;0|0;1300;0;1600;1300;300;1600;4300217875;40;0|0;1500;0;1600;1500;300;1600;4300217875;40;0|0;1700;500;4000;1900;500;4000;4300217875;40;0|0;1700;600;4100;1900;600;4100;4300217875;40;0|0;1900;550;4050;1700;550;4050;4300217875;40;0|~0;1;1600;100;400;2000;100;400;2000;100;800;1600;100;800;4303355775;2;-4;|0;1;2000;100;800;2000;100;400;2400;100;400;2400;100;800;4303355775;2;-4;|0;1;1600;200;1200;1600;100;800;2000;100;800;2000;200;1200;4303355775;2;-4;|0;1;2000;100;800;2000;200;1200;2400;200;1200;2400;100;800;4303355775;2;-4;|0;1;1600;200;1200;1600;200;1600;2000;200;1600;2000;200;1200;4303355775;2;-4;|0;1;2000;200;1600;2000;200;1200;2400;200;1200;2400;200;1600;4303355775;2;-4;|0;1;1600;300;1600;1600;200;1600;2000;200;1600;2000;300;1600;4301528586;2;2;|0;1;2000;200;1600;2000;300;1600;2400;300;1600;2400;200;1600;4301528586;2;2;|0;1;1600;300;2000;1600;300;1600;2000;300;1600;2000;300;2000;4303355775;2;-4;|0;1;2000;300;1600;2000;300;2000;2400;300;2000;2400;300;1600;4303355775;2;-4;|0;1;1600;200;1600;1600;0;2000;1600;300;2000;1600;300;1600;4301528586;2;2;|0;0;1600;200;1600;1600;0;2000;1600;0;1600;4301528586;2;2;|0;1;1200;0;2000;1300;0;2200;1500;0;2200;1600;0;2000;4303355775;2;-4;|0;1;1200;0;2000;1200;0;1600;1600;0;1600;1600;0;2000;4303355775;2;-4;|m;1;1500;0;2200;1500;0;2400;1300;0;2400;1300;0;2200;4311686911;2;2;`80;`75;|0;1;2400;200;1600;2400;300;1600;2400;300;2000;2400;200;2000;4301528586;2;2;|0;1;2400;200;1600;2800;200;1600;2800;200;2000;2400;200;2000;4303355775;2;-4;|f;1;2500;200;2800;2500;200;2600;2700;200;2600;2700;200;2800;4298907155;2;2;|f;1;2500;200;2600;2700;200;2600;2700;200;2400;2500;200;2400;4298907155;2;2;|0;1;2800;200;2800;2800;200;3200;2400;200;3200;2400;200;2800;4303355775;2;-4;|0;1;1200;400;3000;1200;400;2800;1600;400;2800;1600;400;3000;4303355775;2;-4;|0;1;2400;200;3200;2400;200;2800;2100;200;2800;2100;200;3200;4303355775;2;-4;|s;1;1900;200;3200;1900;300;3500;2100;300;3500;2100;200;3200;1694539956;2;-4;|s;1;2100;300;3500;2100;300;3700;1900;300;3700;1900;300;3500;1694539956;2;-4;|s;1;1900;300;3700;2100;300;3700;2100;600;3900;1900;600;3900;1694539956;2;-4;|s;1;2100;300;3500;2300;300;3500;2300;300;3700;2100;300;3700;1694539956;2;-4;|0;0;2100;200;2800;1900;200;3200;2100;200;3200;4303355775;2;-4;|0;0;1900;200;3200;1600;300;3000;1600;300;2800;4303355775;2;-4;|0;0;1600;300;2800;2100;200;2800;1900;200;3200;4303355775;2;-4;|0;1;1600;300;2800;1600;400;2800;1600;400;3000;1600;300;3000;4301528586;2;2;|0;1;1500;200;2000;1500;300;1800;1300;300;1800;1300;200;2000;4298907155;2;2;|0;1;1500;300;1600;1500;300;1800;1600;300;1800;1600;300;1600;4298907155;2;2;|0;1;1500;300;1800;1500;300;1600;1300;300;1600;1300;300;1800;4298907155;2;2;|0;1;1500;200;2000;1500;0;2200;1300;0;2200;1300;200;2000;4298907155;2;2;|s;1;2100;300;3700;2200;400;3800;2300;400;3800;2300;300;3700;1694539956;2;-4;|s;1;2200;400;3800;2300;400;3800;2300;400;3900;2200;400;3900;1694539956;2;-4;|s;1;2200;400;3900;2300;400;3900;2300;500;4000;2200;500;4000;1694539956;2;-4;|s;1;2100;300;3500;2100;200;3200;2400;200;3200;2300;300;3500;1694539956;2;-4;|s;1;2200;500;4000;2200;500;4100;2300;500;4100;2300;500;4000;1694539956;2;-4;|s;1;2200;500;4100;2300;500;4100;2300;600;4200;2200;600;4200;1694539956;2;-4;|s;1;2200;600;4200;2300;600;4200;2300;600;4300;2200;600;4300;1694539956;2;-4;|s;1;2200;600;4200;2200;600;4300;1900;600;4300;1900;600;4200;1694539956;2;-4;|s;1;2100;600;3900;2200;600;4200;1900;600;4200;1900;600;3900;1694539956;2;-4;|0;1;1900;300;3500;1700;300;3500;1700;300;3700;1900;300;3700;4306159836;2;2;|0;1;1700;300;3700;1900;300;3700;1900;400;3900;1700;400;3900;4306159836;2;2;|0;1;1900;400;4200;1700;400;4200;1700;400;3900;1900;400;3900;4306159836;2;2;|0;1;1900;600;4300;1700;600;4300;1700;600;4200;1900;600;4200;4306159836;2;2;|f;1;2500;200;2400;2700;200;2400;2700;200;2200;2500;200;2200;4298907155;2;2;|f;1;2500;200;2200;2700;200;2200;2700;200;2000;2500;200;2000;4298907155;2;2;|~]\n\ndefine Add Scene - name: (name) data: (data)\nadd (data) to [@scenedata v]\n\n@Music\n\nwhen flag clicked\nset volume to (100) %\nforever\n\n@UI\n\ndefine Draw Text (text) at (x) (y) size (size) color [0 <-> 200] (color) brightness [-100 <-> 100] (brightness) align (0 - 1) (align)\nset [~cc v] to [0]\nset [color v] effect to (color)\nset [brightness v] effect to (brightness)\nset size to ((100) * (size)) %\ngo to x: ((x) - (((length of (text)) * ((size) * (13))) * (align))) y: (y)\nrepeat (length of (text))\n    change [~cc v] by (1)\n    switch costume to (letter (~cc) of (text))\n    stamp\n    change x by ((size) * (13))\nend\n\nwhen I receive [postdraw v]\nDraw\n\ndefine Draw\nDraw Text (join [FPS: ] (#FPS)) at [-238] [162] size [1] color [0 <-> 200] [0] brightness [-100 <-> 100] [100] align (0 - 1) [0]\nDraw Text (join [FPS: ] (#FPS)) at [-238] [160] size [1] color [0 <-> 200] [0] brightness [-100 <-> 100] [100] align (0 - 1) [0]\nDraw Text (join [FPS: ] (#FPS)) at [-240] [162] size [1] color [0 <-> 200] [0] brightness [-100 <-> 100] [100] align (0 - 1) [0]\nDraw Text (join [FPS: ] (#FPS)) at [-240] [160] size [1] color [0 <-> 200] [120] brightness [-100 <-> 100] [-60] align (0 - 1) [0]\n\n@MouseManager\n\nwhen I receive [engineinit v]\nset [$mouse_pressed v] to [0]\nset [$mouse_up v] to [0]\n\ndefine Mouse\nset [$mousex v] to (mouse x)\nset [$mousey v] to (mouse y)\nif <mouse down?> then\n    set [$mouse_up v] to [0]\n    if <($mouse_pressed) = [0]> then\n        set [$mouse_pressed v] to [1]\n    else\n        set [$mouse_pressed v] to [2]\n    end\nelse\n    if <<($mouse_pressed) = [2]> or <($mouse_pressed) = [1]>> then\n        set [$mouse_up v] to [1]\n    else\n        set [$mouse_up v] to [2]\n    end\n    set [$mouse_pressed v] to [0]\nend\n\nwhen I receive [predraw v]\nMouse\n\n