mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-05 13:17:49 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
<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">2.866666816174984</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>0</X>
|
||||
<Y>9.24264145</Y>
|
||||
<Z>9.24264145</Z>
|
||||
<R00>1</R00>
|
||||
<R01>0</R01>
|
||||
<R02>-0</R02>
|
||||
<R10>-0</R10>
|
||||
<R11>0.707106829</R11>
|
||||
<R12>0.707106829</R12>
|
||||
<R20>0</R20>
|
||||
<R21>-0.707106829</R21>
|
||||
<R22>0.707106829</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<X>0</X>
|
||||
<Y>4.24264097</Y>
|
||||
<Z>4.24264097</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>
|
||||
<bool name="Archivable">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 class="BindableEvent" referent="RBX3">
|
||||
<Properties>
|
||||
<string name="Name">Event</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item class="StarterPack" referent="RBX4">
|
||||
<Properties>
|
||||
<string name="Name">StarterPack</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="StarterGui" referent="RBX5">
|
||||
<Properties>
|
||||
<string name="Name">StarterGui</string>
|
||||
<bool name="ShowDevelopmentGui">true</bool>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SoundService" referent="RBX6">
|
||||
<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="RBX7">
|
||||
<Properties>
|
||||
<string name="Name">CollectionService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="PhysicsService" referent="RBX8">
|
||||
<Properties>
|
||||
<string name="Name">PhysicsService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="BadgeService" referent="RBX9">
|
||||
<Properties>
|
||||
<string name="Name">BadgeService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Geometry" referent="RBX10">
|
||||
<Properties>
|
||||
<string name="Name">Geometry</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="RenderHooksService" referent="RBX11">
|
||||
<Properties>
|
||||
<string name="Name">RenderHooksService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SocialService" referent="RBX12">
|
||||
<Properties>
|
||||
<string name="Name">SocialService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Debris" referent="RBX13">
|
||||
<Properties>
|
||||
<int name="MaxItems">1000</int>
|
||||
<string name="Name">Debris</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TimerService" referent="RBX14">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScriptInformationProvider" referent="RBX15">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="CookiesService" referent="RBX16">
|
||||
<Properties>
|
||||
<string name="Name">CookiesService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TeleportService" referent="RBX17">
|
||||
<Properties>
|
||||
<string name="Name">Teleport Service</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Players" referent="RBX18">
|
||||
<Properties>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX19">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX20">
|
||||
<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="RBX21">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX22">
|
||||
<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">Test</string>
|
||||
<double name="Timeout">10</double>
|
||||
</Properties>
|
||||
<Item class="Script" referent="RBX23">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">local testTable = {c = 12, d = 14, e = 15}
|
||||
|
||||
Delay(1, function()
|
||||
print('firing')
|
||||
Workspace.Event:Fire('a', 'b', 12, testTable)
|
||||
end)
|
||||
|
||||
a, b, c, d = Workspace.Event.Event:wait()
|
||||
|
||||
print('fire returned')
|
||||
|
||||
RBX_CHECK_EQUAL(a, "a")
|
||||
RBX_CHECK_EQUAL(b, "b")
|
||||
RBX_CHECK_EQUAL(c, 12)
|
||||
|
||||
for i, v in pairs(d) do
|
||||
	RBX_CHECK_EQUAL(v, testTable[i])
|
||||
end
|
||||
</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
@@ -0,0 +1,289 @@
|
||||
<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">2.0000001043081284</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>0</X>
|
||||
<Y>9.24264145</Y>
|
||||
<Z>9.24264145</Z>
|
||||
<R00>1</R00>
|
||||
<R01>0</R01>
|
||||
<R02>-0</R02>
|
||||
<R10>-0</R10>
|
||||
<R11>0.707106829</R11>
|
||||
<R12>0.707106829</R12>
|
||||
<R20>0</R20>
|
||||
<R21>-0.707106829</R21>
|
||||
<R22>0.707106829</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<X>0</X>
|
||||
<Y>4.24264097</Y>
|
||||
<Z>4.24264097</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 class="BindableFunction" referent="RBX3">
|
||||
<Properties>
|
||||
<string name="Name">Function</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="BindableEvent" referent="RBX4">
|
||||
<Properties>
|
||||
<string name="Name">Event</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item class="StarterPack" referent="RBX5">
|
||||
<Properties>
|
||||
<string name="Name">StarterPack</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="StarterGui" referent="RBX6">
|
||||
<Properties>
|
||||
<string name="Name">StarterGui</string>
|
||||
<bool name="ShowDevelopmentGui">true</bool>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SoundService" referent="RBX7">
|
||||
<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="RBX8">
|
||||
<Properties>
|
||||
<string name="Name">CollectionService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="PhysicsService" referent="RBX9">
|
||||
<Properties>
|
||||
<string name="Name">PhysicsService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="BadgeService" referent="RBX10">
|
||||
<Properties>
|
||||
<string name="Name">BadgeService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Geometry" referent="RBX11">
|
||||
<Properties>
|
||||
<string name="Name">Geometry</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="RenderHooksService" referent="RBX12">
|
||||
<Properties>
|
||||
<string name="Name">RenderHooksService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SocialService" referent="RBX13">
|
||||
<Properties>
|
||||
<string name="Name">SocialService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Debris" referent="RBX14">
|
||||
<Properties>
|
||||
<int name="MaxItems">1000</int>
|
||||
<string name="Name">Debris</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TimerService" referent="RBX15">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScriptInformationProvider" referent="RBX16">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="CookiesService" referent="RBX17">
|
||||
<Properties>
|
||||
<string name="Name">CookiesService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TeleportService" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Teleport Service</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Players" referent="RBX19">
|
||||
<Properties>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</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>
|
||||
<Item class="TestService" referent="RBX23">
|
||||
<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">Test</string>
|
||||
<double name="Timeout">10</double>
|
||||
</Properties>
|
||||
<Item class="Script" referent="RBX24">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">invoked = false
|
||||
|
||||
Workspace.Function.OnInvoke = nil
|
||||
|
||||
-- server
|
||||
Delay(2, function()
|
||||
	Workspace.Function.OnInvoke = function()
|
||||
		invoked = true
|
||||
	end
|
||||
end)
|
||||
|
||||
-- client. Test waiting for late binding
|
||||
Workspace.Function:Invoke()
|
||||
RBX_CHECK(invoked)
|
||||
|
||||
-- server
|
||||
Workspace.Function.OnInvoke = function(message)
|
||||
	RBX_CHECK_EQUAL(message, 'world!')
|
||||
	return "Hello " .. message
|
||||
end
|
||||
|
||||
-- client
|
||||
result = Workspace.Function:Invoke("world!")
|
||||
RBX_CHECK_EQUAL(result, "Hello world!")
|
||||
</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
@@ -0,0 +1,399 @@
|
||||
<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">0</double>
|
||||
<bool name="FilteringEnabled">false</bool>
|
||||
<bool name="LoadStringEnabled">true</bool>
|
||||
<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>
|
||||
<bool name="StreamingEnabled">false</bool>
|
||||
</Properties>
|
||||
<Item class="Camera" referent="RBX1">
|
||||
<Properties>
|
||||
<Ref name="CameraSubject">null</Ref>
|
||||
<token name="CameraType">0</token>
|
||||
<CoordinateFrame name="CoordinateFrame">
|
||||
<X>0.105249323</X>
|
||||
<Y>2.93674922</Y>
|
||||
<Z>5.02452087</Z>
|
||||
<R00>0.999780655</R00>
|
||||
<R01>-0.0105661219</R01>
|
||||
<R02>0.0180816781</R02>
|
||||
<R10>-9.31322464e-10</R10>
|
||||
<R11>0.863394618</R11>
|
||||
<R12>0.504529178</R12>
|
||||
<R20>-0.0209425408</R20>
|
||||
<R21>-0.504418492</R21>
|
||||
<R22>0.863205314</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<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">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>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>
|
||||
<bool name="CanCollide">true</bool>
|
||||
<BinaryString name="ClusterGridV3"></BinaryString>
|
||||
<float name="Elasticity">0.300000012</float>
|
||||
<float name="Friction">0.5</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="LogService" referent="RBX3">
|
||||
<Properties>
|
||||
<string name="Name">LogService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Players" referent="RBX4">
|
||||
<Properties>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="PointsService" referent="RBX5">
|
||||
<Properties>
|
||||
<string name="Name">PointsService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="StarterPack" referent="RBX6">
|
||||
<Properties>
|
||||
<string name="Name">StarterPack</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="StarterGui" referent="RBX7">
|
||||
<Properties>
|
||||
<string name="Name">StarterGui</string>
|
||||
<bool name="ShowDevelopmentGui">true</bool>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SoundService" referent="RBX8">
|
||||
<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="RBX9">
|
||||
<Properties>
|
||||
<string name="Name">CollectionService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="PhysicsService" referent="RBX10">
|
||||
<Properties>
|
||||
<string name="Name">PhysicsService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="BadgeService" referent="RBX11">
|
||||
<Properties>
|
||||
<string name="Name">BadgeService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Geometry" referent="RBX12">
|
||||
<Properties>
|
||||
<string name="Name">Geometry</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="RenderHooksService" referent="RBX13">
|
||||
<Properties>
|
||||
<string name="Name">RenderHooksService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="SocialService" referent="RBX14">
|
||||
<Properties>
|
||||
<string name="Name">SocialService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="GamePassService" referent="RBX15">
|
||||
<Properties>
|
||||
<string name="Name">GamePassService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Debris" referent="RBX16">
|
||||
<Properties>
|
||||
<int name="MaxItems">1000</int>
|
||||
<string name="Name">Debris</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TimerService" referent="RBX17">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScriptInformationProvider" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="CookiesService" referent="RBX19">
|
||||
<Properties>
|
||||
<string name="Name">CookiesService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TeleportService" referent="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">Teleport Service</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="FWService" referent="RBX21">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="UserInputService" referent="RBX22">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ContextActionService" referent="RBX23">
|
||||
<Properties>
|
||||
<string name="Name">ContextActionService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScriptService" referent="RBX24">
|
||||
<Properties>
|
||||
<string name="Name">Instance</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="AssetService" referent="RBX25">
|
||||
<Properties>
|
||||
<string name="Name">AssetService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX26">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ServerScriptService" referent="RBX27">
|
||||
<Properties>
|
||||
<bool name="LoadStringEnabled">false</bool>
|
||||
<string name="Name">ServerScriptService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ServerStorage" referent="RBX28">
|
||||
<Properties>
|
||||
<string name="Name">ServerStorage</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ReplicatedStorage" referent="RBX29">
|
||||
<Properties>
|
||||
<string name="Name">ReplicatedStorage</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ChangeHistoryService" referent="RBX30">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX31">
|
||||
<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>
|
||||
<bool name="GlobalShadows">false</bool>
|
||||
<string name="Name">Lighting</string>
|
||||
<Color3 name="OutdoorAmbient">4286611584</Color3>
|
||||
<bool name="Outlines">true</bool>
|
||||
<Color3 name="ShadowColor">4289967032</Color3>
|
||||
<string name="TimeOfDay">14:00:00</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX32">
|
||||
<Properties>
|
||||
<bool name="AutoRuns">false</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>
|
||||
<int name="NumberOfPlayers">0</int>
|
||||
<double name="Timeout">10</double>
|
||||
</Properties>
|
||||
<Item class="Script" referent="RBX33">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">local function modifyName(part, name)
|
||||
	part.Name = name
|
||||
	game:GetService("ChangeHistoryService"):SetWaypoint("PropName")
|
||||
end
|
||||
|
||||
local function createPart(name)
|
||||
	print("Creating part: "..name);
|
||||
|
||||
	-- create part and set workspace as parent
|
||||
	local part = Instance.new("Part")
|
||||
	part.Parent = game.Workspace
|
||||
	game:GetService("ChangeHistoryService"):SetWaypoint("Create")
|
||||
|
||||
	-- modify name and create another way point for property	
|
||||
	modifyName(part, name)
|
||||
end
|
||||
|
||||
local function deletePart(name)
|
||||
	print("Deleting part: "..name);
|
||||
	local part = game.Workspace:FindFirstChild(name)
|
||||
	part.Parent = NULL
|
||||
	game:GetService("ChangeHistoryService"):SetWaypoint("Delete")
|
||||
end
|
||||
|
||||
local function executeVerb(verbName)
|
||||
	script.Parent:DoCommand(verbName)
|
||||
end
|
||||
|
||||
local function checkCondition(stepName, expectedChildren)
|
||||
	local currentChldCount = #Workspace:GetChildren();
|
||||
	print("After "..stepName.." - child count: "..currentChldCount.." , expected: "..expectedChildren)
|
||||
	RBX_CHECK_EQUAL(expectedChildren, currentChldCount)
|
||||
end
|
||||
|
||||
local startCount = #Workspace:GetChildren()
|
||||
local numChildren = 3
|
||||
|
||||
game:GetService("ChangeHistoryService"):SetEnabled(1)
|
||||
|
||||
-- Create parts and modify name property (2 waypoints created per part)
|
||||
for count = 1, numChildren, 1 do
|
||||
	createPart("Part"..count)
|
||||
	checkCondition("Part"..count.." Create", startCount+count)
|
||||
end
|
||||
|
||||
-- Undo parts creation: 1 undo for creation and 1 for property change
|
||||
for count = 1, numChildren, 1 do
|
||||
	game:GetService("ChangeHistoryService"):Undo()
|
||||
	game:GetService("ChangeHistoryService"):Undo()
|
||||
	checkCondition("Undo Part"..count.." Create", startCount+numChildren-count)
|
||||
end
|
||||
|
||||
-- Redo parts creation
|
||||
for count = 1, numChildren, 1 do
|
||||
	game:GetService("ChangeHistoryService"):Redo()
|
||||
	game:GetService("ChangeHistoryService"):Redo()
|
||||
	checkCondition("Redo Part"..count.." Create", startCount+count)
|
||||
end
|
||||
|
||||
-- Delete parts
|
||||
for count = 1, numChildren, 1 do
|
||||
	deletePart("Part"..count)
|
||||
	checkCondition("Part"..count.." Delete", startCount+numChildren-count)
|
||||
end
|
||||
|
||||
-- Undo delete: parts should be added back
|
||||
for count = 1, numChildren, 1 do
|
||||
	game:GetService("ChangeHistoryService"):Undo()
|
||||
	checkCondition("Undo Part"..count.." Delete", startCount+count)
|
||||
end
|
||||
|
||||
-- Redo delete: parts should again be removed
|
||||
for count = 1, numChildren, 1 do
|
||||
	game:GetService("ChangeHistoryService"):Redo()
|
||||
	checkCondition("Redo Part"..count.." Delete", startCount+numChildren-count)
|
||||
end</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item class="Teams" referent="RBX34">
|
||||
<Properties>
|
||||
<string name="Name">Teams</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
</roblox>
|
||||
@@ -0,0 +1,369 @@
|
||||
<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">0</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>0.105249323</X>
|
||||
<Y>2.93674922</Y>
|
||||
<Z>5.02452087</Z>
|
||||
<R00>0.999780655</R00>
|
||||
<R01>-0.0105661219</R01>
|
||||
<R02>0.0180816781</R02>
|
||||
<R10>-9.31322464e-10</R10>
|
||||
<R11>0.863394618</R11>
|
||||
<R12>0.504529178</R12>
|
||||
<R20>-0.0209425408</R20>
|
||||
<R21>-0.504418492</R21>
|
||||
<R22>0.863205314</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<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">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>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX19">
|
||||
<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="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX21">
|
||||
<Properties>
|
||||
<bool name="AutoRuns">false</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="RBX22">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">test = game:GetService("TestService")
|
||||
workspace = game.Workspace
|
||||
terrain = game.Workspace.Terrain
|
||||
history = game:GetService("ChangeHistoryService")
|
||||
|
||||
--explicitly enable history
|
||||
history:SetEnabled(1)
|
||||
|
||||
XZ_CHUNK = 32
|
||||
Y_CHUNK = 4
|
||||
|
||||
cellCountList = {}
|
||||
materialList = {}
|
||||
indexList = {}
|
||||
wksChildList = {}
|
||||
|
||||
local function verifyPartUndo(index)
|
||||
	local part = workspace:findFirstChild("Part"..(index-1))
|
||||
	test:Check(part ~= nil, "Undo: Part not present")
|
||||
	
|
||||
	history:Undo()
|
||||
	history:Undo()
|
||||
|
||||
	part = workspace:findFirstChild("Part"..index)
|
||||
	test:Check(part == nil, "Undo: Part still present")
|
||||
|
||||
	test:Check(wksChildList[index-1] == #workspace:GetChildren(), "Undo: Instances count mismatch")
|
||||
end
|
||||
|
||||
local function verifyPartRedo(index)	
|
||||
	history:Redo()
|
||||
	history:Redo()
|
||||
	test:Check(wksChildList[index] == #workspace:GetChildren(), "Redo: Instances count mismatch")
|
||||
end
|
||||
|
||||
local function modifyName(part, name)
|
||||
	part.Name = name
|
||||
	history:SetWaypoint("PropName")
|
||||
end
|
||||
|
||||
local function createAndRenamePart(name)
|
||||
	-- create part and set workspace as parent
|
||||
	local part = Instance.new("Part")
|
||||
	part.Parent = game.Workspace
|
||||
	history:SetWaypoint("Create")
|
||||
|
||||
	table.insert(wksChildList, #workspace:GetChildren())
|
||||
|
||||
	-- modify name and create another way point for property	
|
||||
	modifyName(part, name)
|
||||
end
|
||||
|
||||
function checkLayerData(layerIndex)
|
||||
	local index = indexList[layerIndex]
|
||||
	local newM, newB, newO = terrain:GetCell(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
|
||||
|
||||
	test:Check(materialList[layerIndex] == (newM.Value), "Material mismatch")
|
||||
	test:Check(cellCountList[layerIndex] == terrain:CountCells(), "Terrain cell count mismatch")
|
||||
end
|
||||
|
||||
function verifyLayersUndo(index, numLayers)	
|
||||
	for count = index, (index-numLayers+1), -1 do
|
||||
		--do an undo
|
||||
		history:Undo()
|
||||
		checkLayerData(count-1)
|
||||
	end
|
||||
|
||||
	--this is last undo (after this there should not be any cells present in the terrain)
|
||||
	if ((index - numLayers) <= 1) then
|
||||
		history:Undo()
|
||||
		test:Check(0 == terrain:CountCells(), "Cell count")
|
||||
	end
|
||||
end
|
||||
|
||||
function verifyLayersRedo(index, numLayers)
|
||||
	for count = index, (index+numLayers-1) do
|
||||
		--do a redo
|
||||
		history:Redo()
|
||||
		checkLayerData(count)
|
||||
	end
|
||||
end
|
||||
|
||||
function generateLayers(numLayers, material)
|
||||
	for index=1, numLayers do
|
||||
		local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK*index, -XZ_CHUNK)
|
||||
		local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
|
||||
|
||||
		terrain:SetCells(Region3int16.new(start,finish),material, 0, 0)
|
||||
|
||||
		table.insert(cellCountList, terrain:CountCells())
|
||||
		table.insert(materialList, material)
|
||||
		table.insert(indexList, index)
|
||||
		
|
||||
		history:SetWaypoint("GenerateLayers")
|
||||
|
||||
	end
|
||||
end
|
||||
|
||||
table.insert(wksChildList, #workspace:GetChildren())
|
||||
|
||||
generateLayers(2, 1)
|
||||
createAndRenamePart("Part1")
|
||||
generateLayers(4, 7)
|
||||
createAndRenamePart("Part2")
|
||||
|
||||
verifyPartUndo(3)
|
||||
verifyLayersUndo(6, 4)
|
||||
verifyPartUndo(2)
|
||||
verifyLayersUndo(2, 1)
|
||||
|
||||
verifyLayersRedo(1, 2)
|
||||
verifyPartRedo(2)
|
||||
verifyLayersRedo(3, 4)
|
||||
verifyPartRedo(3)</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
@@ -0,0 +1,387 @@
|
||||
<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">0</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>11.5004616</X>
|
||||
<Y>328.678162</Y>
|
||||
<Z>549.033936</Z>
|
||||
<R00>0.999780774</R00>
|
||||
<R01>-0.0107550351</R01>
|
||||
<R02>0.0179694742</R02>
|
||||
<R10>9.31322686e-10</R10>
|
||||
<R11>0.858053982</R11>
|
||||
<R12>0.513559699</R12>
|
||||
<R20>-0.0209421311</R20>
|
||||
<R21>-0.513447106</R21>
|
||||
<R22>0.857865691</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<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">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>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX19">
|
||||
<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="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX21">
|
||||
<Properties>
|
||||
<bool name="AutoRuns">false</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="RBX22">
|
||||
<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
|
||||
history = game:GetService("ChangeHistoryService")
|
||||
|
||||
--explicitly enable history
|
||||
history:SetEnabled(1)
|
||||
|
||||
XZ_CHUNK = 32
|
||||
Y_CHUNK = 4
|
||||
|
||||
cellCountList = {}
|
||||
materialList = {}
|
||||
indexList = {}
|
||||
wedgeCountList = {}
|
||||
|
||||
function checkLayerData(layerIndex)
|
||||
	local index = indexList[layerIndex]
|
||||
	local newM, newB, newO = terrain:GetCell(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
|
||||
|
||||
	test:Check(cellCountList[layerIndex] == terrain:CountCells(), "Terrain cell count mismatch")
|
||||
	test:Check(materialList[layerIndex] == (newM.Value), "Material mismatch")
|
||||
end
|
||||
|
||||
function verifyLayersUndo(numLayers)
|
||||
	for count = numLayers, 2, -1 do
|
||||
		--do an undo
|
||||
		history:Undo()
|
||||
		checkLayerData(count-1)
|
||||
	end
|
||||
|
||||
	--this is last undo (after this there should not be any cells present in the terrain)
|
||||
	history:Undo()
|
||||
	test:Check(0 == terrain:CountCells(), "Cell count")
|
||||
end
|
||||
|
||||
function verifyLayersRedo(numLayers)
|
||||
	for count = 1, numLayers do
|
||||
		--do an undo
|
||||
		history:Redo()
|
||||
		checkLayerData(count)
|
||||
	end
|
||||
end
|
||||
|
||||
function generateLayers(numLayers, startMaterial, saveData)
|
||||
	for index=1, numLayers do
|
||||
		local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK*index, -XZ_CHUNK)
|
||||
		local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
|
||||
|
||||
		terrain:SetCells(Region3int16.new(start,finish),index+startMaterial, 0, 0)
|
||||
|
||||
		if saveData then
|
||||
			table.insert(cellCountList, terrain:CountCells())
|
||||
			table.insert(materialList, index+startMaterial)
|
||||
			table.insert(indexList, index)
|
||||
|
||||
			history:SetWaypoint("GenerateLayers")
|
||||
		end
|
||||
	end
|
||||
end
|
||||
|
||||
function wedgeCount()
|
||||
	local count = 0
|
||||
|
||||
	local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK, -XZ_CHUNK)
|
||||
	local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*5, XZ_CHUNK)
|
||||
|
||||
	for y=start.Y, finish.Y do
|
||||
		for x=start.X, finish.X do
|
||||
			for z=start.X, finish.Z do
|
||||
				local newM, newB, newO = terrain:GetCell(x,y,z)
|
||||
				if newB ~= Enum.CellBlock.Solid then count = count + 1 end
|
||||
			end
|
||||
		end
|
||||
	end
|
||||
|
||||
	return count
|
||||
end
|
||||
|
||||
function verifyAutoWedgeUndo(index)
|
||||
	history:Undo()
|
||||
	test:Check(wedgeCountList[index] == wedgeCount(), "Undo: Wedge count mismatch")
|
||||
end
|
||||
|
||||
function verifyAutoWedgeRedo(index)
|
||||
	history:Redo()
|
||||
	test:Check(wedgeCountList[index] == wedgeCount(), "Redo: Wedge count mismatch")
|
||||
end
|
||||
|
||||
function createAutoWedgeCells()
|
||||
	table.insert(wedgeCountList, wedgeCount())
|
||||
|
||||
	local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK, -XZ_CHUNK)
|
||||
	local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*5, XZ_CHUNK)
|
||||
|
||||
	terrain:AutowedgeCells(Region3int16.new(start,finish))
|
||||
	history:SetWaypoint("CreateAutoWedgeCells")
|
||||
|
||||
	table.insert(wedgeCountList, wedgeCount())
|
||||
end
|
||||
|
||||
function verifyWayPointsAbsorb(layerIndex)
|
||||
	--first undo upto the last waypoint
|
||||
	while (history:GetCanUndo()) do
|
||||
		history:Undo()
|
||||
	end
|
||||
|
||||
	-- specified layer must be present
|
||||
	checkLayerData(layerIndex)
|
||||
end
|
||||
|
||||
-- create layers of different materials
|
||||
generateLayers(5, 0, true)
|
||||
	-- modification without setting waypoint to verify that only the last modification is saved
|
||||
generateLayers(1, 3, false)
|
||||
generateLayers(5, 5, true)
|
||||
|
||||
-- verify undo/redo (10 states - max)
|
||||
verifyLayersUndo(10)
|
||||
verifyLayersRedo(10)
|
||||
|
||||
-- RWM - change history no longer merges at 11, it depends on memory usage.
|
||||
--[[
|
||||
-- add 11th entry in the change history to force an absorb
|
||||
createAutoWedgeCells()
|
||||
verifyAutoWedgeUndo(#wedgeCountList - 1)
|
||||
verifyAutoWedgeRedo(#wedgeCountList)
|
||||
|
||||
-- first layer must be present as a result of absorb once the number of waypoints exceeds 10
|
||||
verifyWayPointsAbsorb(1)
|
||||
]]--
|
||||
|
||||
</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
Binary file not shown.
@@ -0,0 +1,302 @@
|
||||
<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">0</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>0</X>
|
||||
<Y>5</Y>
|
||||
<Z>5</Z>
|
||||
<R00>1</R00>
|
||||
<R01>0</R01>
|
||||
<R02>-0</R02>
|
||||
<R10>-0</R10>
|
||||
<R11>0.707106829</R11>
|
||||
<R12>0.707106829</R12>
|
||||
<R20>0</R20>
|
||||
<R21>-0.707106829</R21>
|
||||
<R22>0.707106829</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<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">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>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX19">
|
||||
<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="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX21">
|
||||
<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="RBX22">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">-- print 'No Terrain'
|
||||
|
||||
pt1 = Vector3.new(-1028,-4,-1028)
|
||||
pt2 = Vector3.new(-1020,4,-1020)
|
||||
|
||||
-- print(Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit)))
|
||||
|
||||
testHit, testLocation = Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit))
|
||||
RBX_CHECK_EQUAL(testHit, nil)
|
||||
RBX_CHECK_EQUAL(testLocation, Vector3.new(-1027.42261, -3.42264986, -1027.42261))
|
||||
|
||||
-- print(Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit)))
|
||||
|
||||
testHit2, testLocation2 = Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit))
|
||||
RBX_CHECK_EQUAL(testHit2, nil)
|
||||
RBX_CHECK_EQUAL(testLocation2, Vector3.new(-1020.57733, 3.42264986, -1020.57733))
|
||||
|
||||
-- print 'Set Terrain'
|
||||
|
||||
game.Workspace.Terrain:SetCell(1,0,1, 1,0,0)
|
||||
testa, testb, testc = game.Workspace.Terrain:GetCell(1,0,1)
|
||||
-- print(testa)
|
||||
-- print(testb)
|
||||
-- print(testc)
|
||||
RBX_CHECK_EQUAL(testa, Enum.CellMaterial.Grass)
|
||||
RBX_CHECK_EQUAL(testb, Enum.CellBlock.Solid)
|
||||
RBX_CHECK_EQUAL(testc, Enum.CellOrientation.NegZ)
|
||||
|
||||
-- print(Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit)))
|
||||
|
||||
testHit3, testLocation3 = Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit))
|
||||
RBX_CHECK_EQUAL(testHit3, nil)
|
||||
RBX_CHECK_EQUAL(testLocation3, Vector3.new(-1027.42261, -3.42264986, -1027.42261))
|
||||
|
||||
-- print(Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit)))
|
||||
|
||||
testHit4, testLocation4 = Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit))
|
||||
RBX_CHECK_EQUAL(testHit4, nil)
|
||||
RBX_CHECK_EQUAL(testLocation4, Vector3.new(-1020.57733, 3.42264986, -1020.57733))
|
||||
|
||||
-- print 'Hit Terrain'
|
||||
|
||||
-- print(Workspace:FindPartOnRay(Ray.new(Vector3.new(4,0,1), Vector3.new(4,1,4))))
|
||||
|
||||
testHit5, testLocation5 = Workspace:FindPartOnRay(Ray.new(Vector3.new(4,0,1), Vector3.new(4,1,4)))
|
||||
RBX_CHECK_EQUAL(testHit5, Workspace.Terrain)
|
||||
RBX_CHECK(testLocation5:isClose(Vector3.new(7, 0.75, 4)))</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,270 @@
|
||||
<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">0</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>0</X>
|
||||
<Y>430.67868</Y>
|
||||
<Z>430.67868</Z>
|
||||
<R00>1</R00>
|
||||
<R01>0</R01>
|
||||
<R02>-0</R02>
|
||||
<R10>-0</R10>
|
||||
<R11>0.707106769</R11>
|
||||
<R12>0.707106769</R12>
|
||||
<R20>0</R20>
|
||||
<R21>-0.707106769</R21>
|
||||
<R22>0.707106769</R22>
|
||||
</CoordinateFrame>
|
||||
<float name="FieldOfView">70</float>
|
||||
<CoordinateFrame name="Focus">
|
||||
<X>0</X>
|
||||
<Y>416.53656</Y>
|
||||
<Z>416.53656</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>
|
||||
<bool name="Archivable">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>
|
||||
<bool name="CharacterAutoLoads">true</bool>
|
||||
<string name="Name">Players</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Selection" referent="RBX18">
|
||||
<Properties>
|
||||
<string name="Name">Selection</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="Lighting" referent="RBX19">
|
||||
<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="RBX20">
|
||||
<Properties>
|
||||
<string name="Name">ChangeHistoryService</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TestService" referent="RBX21">
|
||||
<Properties>
|
||||
<bool name="AutoRuns">false</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="RBX22">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Script</string>
|
||||
<ProtectedString name="Source">t = tick()
|
||||
|
||||
wait(1)
|
||||
wait(0.01)
|
||||
wait(2)
|
||||
|
||||
RBX_CHECK_GE(tick(), t + 3)
|
||||
|
||||
wait(1)
|
||||
wait(0.01)
|
||||
wait(2)
|
||||
|
||||
RBX_CHECK_GE(tick(), t + 6)
|
||||
</ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
Reference in New Issue
Block a user