mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-04 20:57:49 +00:00
349 lines
38 KiB
Plaintext
349 lines
38 KiB
Plaintext
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
|
|
<External>null</External>
|
|
<External>nil</External>
|
|
<Item class="Workspace" referent="RBX0">
|
|
<Properties>
|
|
<Ref name="CurrentCamera">RBX1</Ref>
|
|
<double name="DistributedGameTime">26.400001376867294</double>
|
|
<CoordinateFrame name="ModelInPrimary">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
<R00>1</R00>
|
|
<R01>0</R01>
|
|
<R02>0</R02>
|
|
<R10>0</R10>
|
|
<R11>1</R11>
|
|
<R12>0</R12>
|
|
<R20>0</R20>
|
|
<R21>0</R21>
|
|
<R22>1</R22>
|
|
</CoordinateFrame>
|
|
<string name="Name">Workspace</string>
|
|
<Ref name="PrimaryPart">null</Ref>
|
|
</Properties>
|
|
<Item class="Camera" referent="RBX1">
|
|
<Properties>
|
|
<Ref name="CameraSubject">null</Ref>
|
|
<token name="CameraType">0</token>
|
|
<CoordinateFrame name="CoordinateFrame">
|
|
<X>121.930656</X>
|
|
<Y>82.3680038</Y>
|
|
<Z>149.862335</Z>
|
|
<R00>0.808846712</R00>
|
|
<R01>0.360387653</R01>
|
|
<R02>-0.46463719</R02>
|
|
<R10>1.49011612e-008</R10>
|
|
<R11>0.790173054</R11>
|
|
<R12>0.612883806</R12>
|
|
<R20>0.58801955</R20>
|
|
<R21>-0.495729059</R21>
|
|
<R22>0.639128864</R22>
|
|
</CoordinateFrame>
|
|
<float name="FieldOfView">70</float>
|
|
<CoordinateFrame name="Focus">
|
|
<X>136.450455</X>
|
|
<Y>63.215538</Y>
|
|
<Z>129.889725</Z>
|
|
<R00>1</R00>
|
|
<R01>0</R01>
|
|
<R02>0</R02>
|
|
<R10>0</R10>
|
|
<R11>1</R11>
|
|
<R12>0</R12>
|
|
<R20>0</R20>
|
|
<R21>0</R21>
|
|
<R22>1</R22>
|
|
</CoordinateFrame>
|
|
<string name="Name">Camera</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Terrain" referent="RBX2">
|
|
<Properties>
|
|
<bool name="Anchored">true</bool>
|
|
<float name="BackParamA">-0.5</float>
|
|
<float name="BackParamB">0.5</float>
|
|
<token name="BackSurface">0</token>
|
|
<token name="BackSurfaceInput">0</token>
|
|
<float name="BottomParamA">-0.5</float>
|
|
<float name="BottomParamB">0.5</float>
|
|
<token name="BottomSurface">4</token>
|
|
<token name="BottomSurfaceInput">0</token>
|
|
<int name="BrickColor">194</int>
|
|
<CoordinateFrame name="CFrame">
|
|
<X>-2</X>
|
|
<Y>126</Y>
|
|
<Z>-2</Z>
|
|
<R00>1</R00>
|
|
<R01>0</R01>
|
|
<R02>0</R02>
|
|
<R10>0</R10>
|
|
<R11>1</R11>
|
|
<R12>0</R12>
|
|
<R20>0</R20>
|
|
<R21>0</R21>
|
|
<R22>1</R22>
|
|
</CoordinateFrame>
|
|
<bool name="CanCollide">true</bool>
|
|
<string name="ClusterGridV2">(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ?ÿÿ?ÿ(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�(ÿ@�ÿ@�</string>
|
|
<float name="Elasticity">0.5</float>
|
|
<float name="Friction">0.300000012</float>
|
|
<float name="FrontParamA">-0.5</float>
|
|
<float name="FrontParamB">0.5</float>
|
|
<token name="FrontSurface">0</token>
|
|
<token name="FrontSurfaceInput">0</token>
|
|
<float name="LeftParamA">-0.5</float>
|
|
<float name="LeftParamB">0.5</float>
|
|
<token name="LeftSurface">0</token>
|
|
<token name="LeftSurfaceInput">0</token>
|
|
<bool name="Locked">true</bool>
|
|
<token name="Material">256</token>
|
|
<string name="Name">Terrain</string>
|
|
<float name="Reflectance">0</float>
|
|
<float name="RightParamA">-0.5</float>
|
|
<float name="RightParamB">0.5</float>
|
|
<token name="RightSurface">0</token>
|
|
<token name="RightSurfaceInput">0</token>
|
|
<Vector3 name="RotVelocity">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<float name="TopParamA">-0.5</float>
|
|
<float name="TopParamB">0.5</float>
|
|
<token name="TopSurface">3</token>
|
|
<token name="TopSurfaceInput">0</token>
|
|
<float name="Transparency">0</float>
|
|
<Vector3 name="Velocity">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="size">
|
|
<X>2044</X>
|
|
<Y>252</Y>
|
|
<Z>2044</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="StarterPack" referent="RBX3">
|
|
<Properties>
|
|
<string name="Name">StarterPack</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="StarterGui" referent="RBX4">
|
|
<Properties>
|
|
<string name="Name">StarterGui</string>
|
|
<bool name="ShowDevelopmentGui">true</bool>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SoundService" referent="RBX5">
|
|
<Properties>
|
|
<token name="AmbientReverb">0</token>
|
|
<float name="DistanceFactor">10</float>
|
|
<float name="DopplerScale">1</float>
|
|
<string name="Name">Soundscape</string>
|
|
<float name="RolloffScale">1</float>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="CollectionService" referent="RBX6">
|
|
<Properties>
|
|
<string name="Name">CollectionService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="PhysicsService" referent="RBX7">
|
|
<Properties>
|
|
<string name="Name">PhysicsService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="BadgeService" referent="RBX8">
|
|
<Properties>
|
|
<string name="Name">BadgeService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Geometry" referent="RBX9">
|
|
<Properties>
|
|
<string name="Name">Geometry</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="RenderHooksService" referent="RBX10">
|
|
<Properties>
|
|
<string name="Name">RenderHooksService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SocialService" referent="RBX11">
|
|
<Properties>
|
|
<string name="Name">SocialService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Debris" referent="RBX12">
|
|
<Properties>
|
|
<int name="MaxItems">1000</int>
|
|
<string name="Name">Debris</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="TimerService" referent="RBX13">
|
|
<Properties>
|
|
<string name="Name">Instance</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ScriptInformationProvider" referent="RBX14">
|
|
<Properties>
|
|
<string name="Name">Instance</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="CookiesService" referent="RBX15">
|
|
<Properties>
|
|
<string name="Name">CookiesService</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="TeleportService" referent="RBX16">
|
|
<Properties>
|
|
<string name="Name">Teleport Service</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Players" referent="RBX17">
|
|
<Properties>
|
|
<string name="Name">Players</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Selection" referent="RBX18">
|
|
<Properties>
|
|
<string name="Name">Selection</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="TestService" referent="RBX19">
|
|
<Properties>
|
|
<bool name="AutoRuns">true</bool>
|
|
<string name="Description"></string>
|
|
<bool name="Is30FpsThrottleEnabled">true</bool>
|
|
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
|
|
<bool name="IsSleepAllowed">true</bool>
|
|
<string name="Name">TestService</string>
|
|
<double name="Timeout">10</double>
|
|
</Properties>
|
|
<Item class="Script" referent="RBX20">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">Script</string>
|
|
<ProtectedString name="Source">test = Game:GetService("TestService")
|
|
|
|
terrain = game.Workspace.Terrain
|
|
|
|
function checkCell(pos, material, block, orientation)
|
|
	terrain:SetCell(pos.X, pos.Y, pos.Z ,material, block, orientation)
|
|
	newM, newB, newO = terrain:GetCell(pos.X, pos.Y, pos.Z)
|
|
|
|
	test:Check(material == newM.Value and block == newB.Value and orientation == newO.Value, "Cell set")
|
|
end
|
|
|
|
XZ_CHUNK = 32
|
|
Y_CHUNK = 16
|
|
|
|
|
|
-- SetCell/GetCell
|
|
maxMaterial = 16
|
|
maxBlock = 4
|
|
maxOrientation = 3
|
|
pos1 = Vector3int16.new(0,1,2)
|
|
pos2 = Vector3int16.new(-50,0,-50)
|
|
|
|
for i=0, Enum.CellMaterial.BluePlastic.Value do
|
|
	checkCell(pos1, i, 0, 0)
|
|
	checkCell(pos2, i, 0, 0)
|
|
end
|
|
|
|
|
|
for i=0, Enum.CellBlock.HorizontalWedge.Value do
|
|
	checkCell(pos1, 1, i, 0)
|
|
end
|
|
|
|
for i=0, Enum.CellOrientation.NegX.Value do
|
|
	checkCell(pos1, 1, 1, i)
|
|
end
|
|
|
|
terrain:Clear()
|
|
|
|
-- SetCells
|
|
start = Vector3int16.new(XZ_CHUNK-2, Y_CHUNK-2, XZ_CHUNK-2)
|
|
finish = Vector3int16.new(XZ_CHUNK+2, Y_CHUNK+2, XZ_CHUNK+2)
|
|
|
|
terrain:SetCells(Region3int16.new(start,finish),2,2,3)
|
|
for y=start.Y, finish.Y do
|
|
	for x=start.X, finish.X do
|
|
		for z=start.X, finish.Z do
|
|
			newM, newB, newO = terrain:GetCell(x,y,z)
|
|
			test:Check(newM.Value == 2 and newB.Value == 2 and newO.Value == 3, "Set Cells result")
|
|
		end
|
|
	end
|
|
end
|
|
|
|
terrain:Clear()
|
|
|
|
-- AutoWedge
|
|
-- Make 3x3 cube of solid material
|
|
start = Vector3int16.new(XZ_CHUNK, Y_CHUNK, XZ_CHUNK)
|
|
finish = Vector3int16.new(XZ_CHUNK+2, Y_CHUNK+1, XZ_CHUNK+2)
|
|
terrain:SetCells(Region3int16.new(start,finish),3,Enum.CellBlock.Solid,0)
|
|
terrain:AutowedgeCells(Region3int16.new(start,finish))
|
|
wedgeCount = 0
|
|
for y=start.Y, finish.Y do
|
|
	for x=start.X, finish.X do
|
|
		for z=start.X, finish.Z do
|
|
			newM, newB, newO = terrain:GetCell(x,y,z)
|
|
			if newB ~= Enum.CellBlock.Solid then wedgeCount = wedgeCount + 1 end
|
|
		end
|
|
	end
|
|
end
|
|
|
|
cellCount = terrain:CountCells()
|
|
|
|
test:Check(cellCount == 18, "Checking total number of cells")
|
|
test:Check(wedgeCount == 12, "Checking number of generated wedges")
|
|
|
|
-- CellCornerToWorld
|
|
corner = terrain:CellCornerToWorld(1,1,1)
|
|
test:Check(corner == Vector3.new(4,4,4), "Checking CornerToWorld")
|
|
center = terrain:CellCenterToWorld(1,1,1)
|
|
test:Check(center == Vector3.new(6,6,6), "Checking CenterToWorld")
|
|
|
|
pos = terrain:WorldToCell(center)
|
|
test:Check(pos == Vector3.new(1,1,1), "WorldToCell from Cell center")
|
|
|
|
-- WorldToCellPrefer
|
|
terrain:Clear()
|
|
terrain:SetCell(0,0,0,3,Enum.CellBlock.CornerWedge, 0)
|
|
testPos = Vector3.new(2, 3, 2)
|
|
preferSolid = terrain:WorldToCellPreferSolid(testPos)
|
|
preferEmpty = terrain:WorldToCellPreferEmpty(testPos)
|
|
test:Check(preferSolid == Vector3.new(0,0,0), "Prefer solid check")
|
|
test:Check(preferEmpty == Vector3.new(0,1,0), "Prefer empty check")
|
|
|
|
test:Done()
|
|
</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Lighting" referent="RBX21">
|
|
<Properties>
|
|
<Color3 name="Ambient">4286611584</Color3>
|
|
<float name="Brightness">1</float>
|
|
<Color3 name="ColorShift_Bottom">4278190080</Color3>
|
|
<Color3 name="ColorShift_Top">4278190080</Color3>
|
|
<Color3 name="FogColor">4290822336</Color3>
|
|
<float name="FogEnd">100000</float>
|
|
<float name="FogStart">0</float>
|
|
<float name="GeographicLatitude">41.7332993</float>
|
|
<string name="Name">Lighting</string>
|
|
<Color3 name="ShadowColor">4289967032</Color3>
|
|
<string name="TimeOfDay">14:00:00</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ChangeHistoryService" referent="RBX22">
|
|
<Properties>
|
|
<string name="Name">ChangeHistoryService</string>
|
|
</Properties>
|
|
</Item>
|
|
</roblox> |