This commit is contained in:
watrabi
2025-09-18 17:55:52 -04:00
commit 977f1ff4b8
15030 changed files with 17324420 additions and 0 deletions
+169
View File
@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment defaultVersion="1060" identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="847" id="849"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application"/>
<customObject id="371" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="29">
<items>
<menuItem title="Roblox" id="56">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Roblox" systemMenu="apple" id="57">
<items>
<menuItem title="About Roblox" id="58">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="236"/>
<menuItem title="Hide Roblox" keyEquivalent="h" id="134">
<connections>
<action selector="hide:" target="-1" id="367"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="145">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="-1" id="368"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="149"/>
<menuItem title="Quit Roblox" keyEquivalent="q" id="136">
<connections>
<action selector="terminate:" target="-1" id="369"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Edit" id="1014">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Edit" id="1015">
<items>
<menuItem title="Undo" keyEquivalent="z" id="1016">
<connections>
<action selector="undo:" target="-1" id="1082"/>
</connections>
</menuItem>
<menuItem title="Redo" keyEquivalent="Z" id="1017">
<connections>
<action selector="redo:" target="-1" id="1076"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="1018"/>
<menuItem title="Cut" keyEquivalent="x" id="1019">
<connections>
<action selector="cut:" target="-1" id="1062"/>
</connections>
</menuItem>
<menuItem title="Copy" keyEquivalent="c" id="1020">
<connections>
<action selector="copy:" target="-1" id="1061"/>
</connections>
</menuItem>
<menuItem title="Paste" keyEquivalent="v" id="1021">
<connections>
<action selector="paste:" target="-1" id="1067"/>
</connections>
</menuItem>
<menuItem title="Delete" id="1023">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="delete:" target="-1" id="1077"/>
</connections>
</menuItem>
<menuItem title="Select All" keyEquivalent="a" id="1024">
<connections>
<action selector="selectAll:" target="-1" id="1080"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Test" id="83">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Test" id="81">
<items>
<menuItem title="Open…" keyEquivalent="o" id="72">
<connections>
<action selector="openFile:" target="847" id="859"/>
</connections>
</menuItem>
<menuItem title="Crash" id="935">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="crash:" target="-1" id="937"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="19">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="24">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="23">
<connections>
<action selector="performMiniaturize:" target="-1" id="37"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="239">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="-1" id="240"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="92"/>
<menuItem title="Bring All to Front" id="5">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="-1" id="39"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
<window title="Roblox" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" visibleAtLaunch="NO" frameAutosaveName="Main Window" animationBehavior="default" id="843" customClass="RBXWindow">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="300" y="300" width="1000" height="665"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1178"/>
<value key="minSize" type="size" width="800" height="600"/>
<view key="contentView" id="844">
<rect key="frame" x="0.0" y="0.0" width="1000" height="665"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<subviews>
<customView id="850" customClass="RobloxOgreView">
<rect key="frame" x="0.0" y="0.0" width="1000" height="665"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
</customView>
</subviews>
</view>
<connections>
<outlet property="delegate" destination="847" id="897"/>
</connections>
</window>
<customObject id="847" customClass="RobloxPlayerAppDelegate">
<connections>
<outlet property="mainMenu" destination="29" id="896"/>
<outlet property="mainView" destination="844" id="1116"/>
<outlet property="ogreView" destination="850" id="851"/>
<outlet property="webPlayer" destination="855" id="856"/>
<outlet property="window" destination="843" id="uIW-gx-V8c"/>
</connections>
</customObject>
<customObject id="855" customClass="RobloxWebPlayer"/>
</objects>
</document>
+37
View File
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="14F1021" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
<plugIn identifier="com.apple.WebKitIBPlugin" version="9060"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="RbxWebView">
<connections>
<outlet property="webView" destination="E3k-K2-jx9" id="qr1-ZM-P7H"/>
<outlet property="window" destination="tlP-T8-JXC" id="09L-rq-dOQ"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="ROBLOX" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" animationBehavior="default" id="tlP-T8-JXC">
<windowStyleMask key="styleMask" titled="YES" texturedBackground="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="760" y="331" width="940" height="650"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1058"/>
<view key="contentView" id="UPg-5a-BO3">
<rect key="frame" x="0.0" y="0.0" width="940" height="650"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<webView id="E3k-K2-jx9">
<rect key="frame" x="0.0" y="0.0" width="1024" height="650"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<webPreferences key="preferences" defaultFontSize="12" defaultFixedFontSize="12" javaScriptCanOpenWindowsAutomatically="NO">
<nil key="identifier"/>
</webPreferences>
</webView>
</subviews>
</view>
</window>
</objects>
</document>
Binary file not shown.
+217
View File
@@ -0,0 +1,217 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Roblox</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"
type="text/javascript"></script>
</head>
<body id="BODY1" style="padding: 0; margin: 0">
<!-- Main -->
<div id="Main" style="position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin-bottom: 40px;
margin-right: 200px; padding: 0 1px 1px 0">
</div>
<!-- TODO: nuke the Panel div when we don't need it for debugging -->
<div id="Panel" style="position: absolute; top: 0; right: 0; bottom: 0; width: 200px;
margin-bottom: 40px; overflow: auto; border-left-style: solid; border-width: 1px">
<div id="outputPanel" style="width: 100%">
</div>
<script type="text/javascript">
var traces = new Array();
var traceIndex = 19;
function trace(message) {
var div = $('<div></div>')
div.text(message);
div.appendTo(outputPanel);
if (traces.length < 20)
traces.push(div);
else {
traceIndex = traceIndex + 1;
if (traceIndex == 20)
traceIndex = 0;
traces[traceIndex].remove();
traces[traceIndex] = div;
}
}
</script>
</div>
<!-- Taskbar -->
<div id="Taskbar" style="background-color: Window; padding: 5px; height: 30px; position: absolute;
left: 0; right: 0; bottom: 0; position: absolute; bottom: 0; left: 0; border-width: 1px;
border-top-style: solid">
<div id="CommonButtons" style="float: right; margin: 5px">
<button onclick="window.external.IsFullscreen = !window.external.IsFullscreen; return false">
Fullscreen</button>
<button onclick="focusContent(); window.external.Quit(); return false">
Quit</button>
</div>
<div id="block" style="float: right; background-color: #abc; width: 20px; height: 20px;
margin: 5px">
</div>
<script type="text/javascript">
function animateGrow() {
$(block).animate({ width: "+=20px" }, { duration: "slow", complete: animateShrink });
}
function animateShrink() {
$(block).animate({ width: "-=20px" }, { duration: "slow", complete: animateGrow });
}
$(animateGrow);
</script>
<div id="GameButtons" style="display: inline">
<button onclick="roblox3D.DoVerb('ReportAbuse'); return false" style="display: inline">
Report Abuse</button>
<button onclick="showWeb(); return false">
Leave Game</button>
<div id="FPS" style="display: inline">
</div>
</div>
<div id="WebButtons" style="display: none">
<button id="playButton" onclick="play(); return false" style="display: inline">
Play</button>
<button id="Button2" onclick="createView(100); return false" style="display: inline">
CreateView 100</button>
</div>
</div>
<!-- Scripts -->
<script type="text/javascript">
var content;
function focusContent() {
// TODO: This code is ugly
if (document.getElementById('roblox3D'))
document.getElementById('roblox3D').focus();
else if (document.getElementById('robloxFrame'))
document.getElementById('robloxFrame').focus();
}
var windowed = true;
function create3D(callback) {
if (content)
$(content).remove();
$(WebButtons).hide('slow', function() {
Main.innerHTML = '<object id="roblox3D" classid="CLSID:D7EB14E2-66D2-4A6E-A50A-666CBE7A7621" width="100%" height="100%"><param name="windowed" value="' + (windowed ? 'true' : 'false') + '"></object>';
windowed = !windowed;
content = $(roblox3D);
roblox3D.WhenReady({
success: function(result) {
focusContent();
callback();
$(GameButtons).show();
},
error: showWeb
});
});
}
function createView(count) {
if (count == 0)
return;
create3D(function() {
window.setTimeout(function() {
trace("CreateView " + count);
showWeb(function() {
window.setTimeout(function() {
createView(count - 1);
}, 1000);
});
}, 1000);
});
}
function getRobloxBrowserUrl() {
var iframe = document.getElementById("robloxFrame");
return iframe.contentWindow.location.href;
}
// Displays the web browser in an ifram
function showWeb(callback) {
if (document.getElementById('roblox3D'))
roblox3D.ShutDown();
if (content)
$(content).remove();
$(GameButtons).hide('slow', function() {
content = $('<iframe id="robloxFrame" width="100%" frameborder="0" />');
var loaded = false;
// Define a callback to handle iframe loads and to update the Play button
$(content).load(function() {
if (loaded)
return;
loaded = true;
$(WebButtons).show('slow');
if (callback)
callback();
});
// TODO: Replace "http://www.watrbx.wtf/" with proper domain
$(content).attr('src', "http://www.watrbx.wtf/Games.aspx");
$(content).appendTo(Main);
// Handle resize events:
$(content).height($(Main).height());
// TODO: This only works if the window resizes. If other elements in the layout changes
// then it won't get notified
$(window).resize(function() {
$(content).height($(Main).height());
});
});
}
function errorAlert(message, stack) {
var s = message + '\n' + stack;
alert(s);
}
function bindFPS() {
roblox3D.Lua("f = ... while true do local render = stats():FindFirstChild('Render') if render then f(render['3D CPU Total']:GetValueString()) end wait(1) end", {
args: [function(value) {
if (value != '?' && roblox3D.IsWindowless)
value = value + " windowless";
FPS.innerText = value;
} ],
error: errorAlert
});
}
// Loads a the 3D view and then loads a game based on what was displayed in the iframe
function play() {
// TODO: getRobloxBrowserUrl().match() to find the place ID
// TODO: Replace "http://www.watrbx.wtf/" with proper domain
var gameUrl = 'http://www.watrbx.wtf/Asset/?id=1437';
create3D(function() {
bindFPS();
return;
// TODO: Replace "http://www.watrbx.wtf/" with proper domain
// TODO: Replace visit script with multiplayer join (should be done with jquery or json or something)
roblox3D.Lua("gameUrl = ... game:Load(gameUrl)", {
args: [gameUrl],
success: function() {
roblox3D.Lua("http://www.watrbx.wtf/game/visit.ashx");
},
error: function(message, stack) { alert(stack); }
});
});
}
// TODO: Nuke this when the Panel div goes away
window.external.onStandardOut = function(type, message) { trace(message); };
// Startup:
$(play);
</script>
</body>
</html>
+68
View File
@@ -0,0 +1,68 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Roblox</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"
type="text/javascript"></script>
</head>
<body id="BODY1" style="padding: 0; margin: 0">
<!-- Main -->
<!-- TODO: nuke the Panel div when we don't need it for debugging -->
<div id="WebButtons">
<button id="playButton" onclick="play(); return false" style="display: inline">
Play</button>
</div>
<div id="outputPanel" style="width: 100%">
output
</div>
<script type="text/javascript">
var traces = new Array();
var traceIndex = 19;
function trace(message) {
var div = $('<div></div>')
div.text(message);
div.appendTo(outputPanel);
if (traces.length < 20)
traces.push(div);
else {
traceIndex = traceIndex + 1;
if (traceIndex == 20)
traceIndex = 0;
traces[traceIndex].remove();
traces[traceIndex] = div;
}
}
</script>
<!-- Scripts -->
<script type="text/javascript">
function play() {
trace("playing!");
//window.external.StartGame();
trace(window.external.helloWorld());
trace(window.external.IsRobloxAppIDE);
trace(window.external.InstallHost);
window.external.StartGame(
'2D86BB6A7DE07B38CCE1D50A191BAB5FCF43A5BA1FCF1EF9B7A7F775F70EF41A6150828C9A7D61BA1B09326F124D37939899147D8992519A2DB3980A901E14736B3E3AD064BE8EF2BB1A356EC92AF9C4432FAF5BF0F51AA6CEF00210E7D6007DE205D298CB7F65822A0CD52C04515B484318ADDF389345797D33DCAA1B74472159A4BC2F3168067F177E0F5853074F83C335E0C06E0B80F19CE02E954FBDB91828C41DC31700D53E9832D664EB7D719CBBAD708D7882A8513FB6E570D38D9906A5C02C363D24B6FF78D47EF2020FC1A1EB152819',
'http://sitetest.watrbx.wtf//Login/Negotiate.ashx',
'http://sitetest.watrbx.wtf//Game/visit.ashx?PlaceID=2562360&upload=2562360'
);
trace("played!");
}
function go() {
trace("hi there!");
}
$(go);
</script>
</body>
</html>
+74
View File
@@ -0,0 +1,74 @@
This program uses the Graphics3D Library ("G3D", http://g3d-cpp.sf.net)
NONE OF THESE LIBRARIES REQUIRE *THIS* PROGRAM TO BE OPEN SOURCE.
This program uses the Graphics3D Library ("G3D", http://g3d-cpp.sf.net), which
is licensed under the "BSD" Open Source license. The Graphics3D library
source code is Copyright © 2000-2004, Morgan McGuire, All rights reserved.
------------------
FMOD Sound System, copyright © Firelight Technologies Pty, Ltd., 1994-2007.
------------------
Roblox uses the Lua language and code. The Lua portion of the product is
under the following license ("Software" refers to Lua, not ROBLOX):
Copyright © 1994Ð2010 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------
Google Breakpad:
Copyright (c) 2006, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+2
View File
@@ -0,0 +1,2 @@
Plugin=RenderSystem_GL
Plugin=Plugin_ParticleFX
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" id="www-roblox-com">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
</head>
<body>
<center>
<p>ROBLOX</p>
<button onclick="window.external.Play()">
Play</button>
<button onclick="window.external.Load()">
Load</button>
</center>
</body>
</html>