Compare commits
268 Commits
r429
...
JointsServ
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e365f3ed6c | ||
|
|
998a22a43f | ||
|
|
abb1f76c71 | ||
|
|
85e84bfdf3 | ||
|
|
f7a76511a8 | ||
|
|
9cee74baf4 | ||
|
|
0b8847cd8e | ||
|
|
4ec70e6ee7 | ||
|
|
c6699b5112 | ||
|
|
48b90b1a93 | ||
|
|
c70d39fb25 | ||
|
|
1b34573b06 | ||
|
|
649a1aaa06 | ||
|
|
6b8ca28060 | ||
|
|
dc7f7f3cc5 | ||
|
|
575f5dab46 | ||
|
|
efbc832321 | ||
|
|
2471abb8dd | ||
|
|
57db5511bd | ||
|
|
0ac516618a | ||
|
|
8916797e55 | ||
|
|
2dc7f3e667 | ||
|
|
d32b0ea4e4 | ||
|
|
af5c31d5d0 | ||
|
|
9df862f72e | ||
|
|
d269b360ce | ||
|
|
d2dd05b620 | ||
|
|
9d62380df9 | ||
|
|
8f3d12c516 | ||
|
|
d2f3e718a7 | ||
|
|
adade066cc | ||
|
|
7e9f34e1ac | ||
|
|
5e74564956 | ||
|
|
04823f5911 | ||
|
|
e62d3ab49c | ||
|
|
fb5d6495dc | ||
|
|
5078b849b0 | ||
|
|
20e772f932 | ||
|
|
00e61d4f17 | ||
|
|
fe55127129 | ||
|
|
e8dbf50df9 | ||
|
|
6ee7d76859 | ||
|
|
8a2b7f6308 | ||
|
|
415ea71664 | ||
|
|
eefb981993 | ||
|
|
9f741e0df7 | ||
|
|
e2d75ae4d4 | ||
|
|
52c2f114a5 | ||
|
|
7f8cdc0f33 | ||
|
|
36153c293b | ||
|
|
a63aa52108 | ||
|
|
d25f4a6ba2 | ||
|
|
b7ed5bd832 | ||
|
|
5251b98ec4 | ||
|
|
b6dfd62b4c | ||
|
|
17f08a59ce | ||
|
|
1a0949f2e8 | ||
|
|
7a89ddd94e | ||
|
|
b21d140d6f | ||
|
|
083d94f811 | ||
|
|
c9db28a3a3 | ||
|
|
b202337c81 | ||
|
|
db435a17ac | ||
|
|
b6615ce5fe | ||
|
|
2052ed6379 | ||
|
|
edf8e09936 | ||
|
|
ecbbc7c8e8 | ||
|
|
47e9516cc2 | ||
|
|
11b3c861d9 | ||
|
|
c1118489e3 | ||
|
|
71fda54338 | ||
|
|
aec7c33155 | ||
|
|
2f86192634 | ||
|
|
36aba44b51 | ||
|
|
41ab9cf18c | ||
|
|
4e4ad669da | ||
|
|
a1b25d115a | ||
|
|
15dc340a10 | ||
|
|
b01f5765b1 | ||
|
|
530bcf2a74 | ||
|
|
f587d1d6db | ||
|
|
2af7077a0a | ||
|
|
c2fe4b5c80 | ||
| 728e67e1a5 | |||
|
|
3b2d01b8dc | ||
|
|
dc94873297 | ||
|
|
c1e8d6cd23 | ||
|
|
a456ee6196 | ||
|
|
30ea19c5b0 | ||
|
|
8a1cd0c248 | ||
|
|
09ea4744fc | ||
|
|
d886c178b6 | ||
| 8fa056e191 | |||
|
|
72866a259d | ||
|
|
7474bea895 | ||
|
|
e8fac6148a | ||
|
|
c5f4f829b3 | ||
|
|
da759427fd | ||
|
|
79e8a9738e | ||
|
|
27ac18b503 | ||
|
|
932de58185 | ||
|
|
48e65358f4 | ||
|
|
69aacebbb2 | ||
| 791fa55767 | |||
| 3b83e527f8 | |||
|
|
618a3eeec0 | ||
|
|
de53dcf6b0 | ||
|
|
8ef3bcd352 | ||
|
|
7adf511bf7 | ||
|
|
72cdf2af35 | ||
|
|
d9a0e1e120 | ||
|
|
90a1a1b325 | ||
|
|
984bea6136 | ||
|
|
083cb38e81 | ||
|
|
6d65cd2a56 | ||
|
|
223364907f | ||
|
|
d96bcd2a2b | ||
|
|
6de83febb5 | ||
|
|
aaceb4eb21 | ||
|
|
e1716e7417 | ||
|
|
f5aaef5b16 | ||
|
|
b66d524d7f | ||
|
|
d468545428 | ||
|
|
1356ef52ab | ||
|
|
67a5d99e1d | ||
|
|
31db4dc894 | ||
|
|
50a5fd3ce1 | ||
|
|
a02a367a6e | ||
|
|
33a898e359 | ||
|
|
f46e24d8f1 | ||
|
|
b2db375ecf | ||
|
|
9039fbe862 | ||
|
|
145e5c3340 | ||
|
|
ad741b86e5 | ||
|
|
a04c178ed4 | ||
|
|
584154d676 | ||
|
|
6e2c135b47 | ||
|
|
e8ecb14f64 | ||
|
|
ad29d96068 | ||
|
|
43647086fb | ||
|
|
eb07d852db | ||
|
|
7f5ab0df7f | ||
|
|
3d31421164 | ||
|
|
7b6cab626e | ||
|
|
736a63e89f | ||
|
|
a74d485d1c | ||
|
|
b7f276f849 | ||
|
|
e0be70f5e6 | ||
|
|
4ff212f2f3 | ||
|
|
af8823c508 | ||
|
|
c27aa6a114 | ||
|
|
df77572fe7 | ||
|
|
8c47024960 | ||
|
|
16a7b893e4 | ||
| 4a38f077a3 | |||
|
|
e17aa16086 | ||
|
|
316359a395 | ||
|
|
226f2adda4 | ||
|
|
d3f9b74ba1 | ||
|
|
ce999d226d | ||
| 032e2ae668 | |||
|
|
bc9a5bfc72 | ||
|
|
8e73755d80 | ||
|
|
2f3cb43807 | ||
|
|
550962f1e6 | ||
|
|
c86fb57710 | ||
|
|
daacf6ae02 | ||
|
|
066e955933 | ||
|
|
bba534be3c | ||
|
|
e473d0eb7e | ||
|
|
aab26d2e35 | ||
|
|
b9305d1fb9 | ||
|
|
f9c4700e7d | ||
|
|
239f7b8fa8 | ||
|
|
7ea74a3980 | ||
|
|
3de82eb64d | ||
|
|
d03e78a648 | ||
|
|
b361039f88 | ||
|
|
2af1be327a | ||
|
|
79ce0b491f | ||
|
|
bfcb3f83ab | ||
|
|
0e3968acd4 | ||
|
|
c27a56b42f | ||
|
|
d3dc479ec0 | ||
|
|
ca8fc41228 | ||
|
|
049ef1a8d7 | ||
|
|
02dfa34d15 | ||
|
|
816a67a40b | ||
|
|
2a6d90ad66 | ||
|
|
3963dd5286 | ||
|
|
c472aa9411 | ||
|
|
f0ac00a77b | ||
|
|
cdba7f6eee | ||
|
|
8b4460c104 | ||
|
|
7ca6b1e472 | ||
|
|
3935a7072e | ||
|
|
20afd874dc | ||
|
|
28b1cd6634 | ||
|
|
9d95a5b891 | ||
|
|
a826d01b89 | ||
|
|
f668848ecb | ||
|
|
776a0337b5 | ||
|
|
d0f5c77024 | ||
|
|
06e8ef4dae | ||
|
|
e2136671a3 | ||
|
|
69be9dbb91 | ||
|
|
dd6cd509fa | ||
|
|
2ba76bc9b7 | ||
|
|
84521dd124 | ||
|
|
b7cb2d39ba | ||
|
|
d2534616a2 | ||
|
|
fe21cab8b0 | ||
|
|
c99bcd64e4 | ||
|
|
8a6abac11f | ||
|
|
f11bfa1536 | ||
|
|
f8dd5470da | ||
|
|
788f8312f0 | ||
|
|
89a6ea7124 | ||
|
|
f6c11373b4 | ||
|
|
1cc7f8fcb6 | ||
|
|
67381618de | ||
|
|
e044b606c1 | ||
|
|
299e22cf92 | ||
|
|
fa3e8909c8 | ||
|
|
b14027c787 | ||
|
|
430837ccd6 | ||
|
|
12843a0890 | ||
|
|
8bf27c6412 | ||
|
|
212cadac31 | ||
|
|
fcfed4afcd | ||
|
|
20c18c6f9b | ||
|
|
c08254562f | ||
|
|
0090c6c8a1 | ||
|
|
73a6b72c20 | ||
|
|
5bdeac2f66 | ||
|
|
24a4aed4f1 | ||
|
|
520e7f1bef | ||
|
|
9217e78084 | ||
|
|
bd8209958d | ||
|
|
f08799d49c | ||
|
|
24854a062a | ||
|
|
3f4963795c | ||
|
|
cee1b1308c | ||
|
|
2494a5e509 | ||
|
|
9a8aff54ff | ||
|
|
0ec896e2fd | ||
|
|
72c6d19d7f | ||
|
|
30529c5387 | ||
|
|
03a7d5345d | ||
|
|
fb966e0b82 | ||
|
|
463b2a42ce | ||
|
|
0e7e820481 | ||
|
|
8003bee5f6 | ||
|
|
4f415cf98b | ||
|
|
d36f9df272 | ||
|
|
36ec6b1dc5 | ||
|
|
7c85167030 | ||
|
|
cd7b886ada | ||
|
|
a1db3bb38f | ||
|
|
44d8947975 | ||
|
|
9c76bf6956 | ||
|
|
4ff4d54f09 | ||
|
|
804e329516 | ||
|
|
bf0115f2ad | ||
|
|
94b787804d | ||
|
|
47857e3fd1 | ||
|
|
f92f01be88 | ||
|
|
6fb111067d |
25
.github/workflows/sync-develop.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: Sync Back to Develop
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync-branches:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Syncing branches
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Set up Node
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- name: Opening pull request
|
||||||
|
id: pull
|
||||||
|
uses: tretuna/sync-branches@1.2.0
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
FROM_BRANCH: 'master'
|
||||||
|
TO_BRANCH: 'develop'
|
||||||
15
.gitignore
vendored
@@ -36,11 +36,14 @@
|
|||||||
*.user
|
*.user
|
||||||
*.pdb
|
*.pdb
|
||||||
*.idb
|
*.idb
|
||||||
*.manifest
|
|
||||||
*.htm
|
|
||||||
*.res
|
*.res
|
||||||
*.ilk
|
*.ilk
|
||||||
*.dep
|
*.dep
|
||||||
|
*.bin
|
||||||
|
*.7z
|
||||||
|
|
||||||
|
# ResEditor files
|
||||||
|
*.aps
|
||||||
|
|
||||||
/Debug
|
/Debug
|
||||||
/Release
|
/Release
|
||||||
@@ -52,6 +55,10 @@ G3DTest.suo
|
|||||||
G3DTest.suo
|
G3DTest.suo
|
||||||
stderr.txt
|
stderr.txt
|
||||||
desktop.ini
|
desktop.ini
|
||||||
main.cpp
|
|
||||||
*.db
|
*.db
|
||||||
G3DTest.sln
|
|
||||||
|
#Redist
|
||||||
|
!Installer/Redist/*
|
||||||
|
UpgradeLog.htm
|
||||||
|
click_output.JPEG
|
||||||
|
click_output.PNG
|
||||||
|
|||||||
963
Application.cpp
@@ -1,963 +0,0 @@
|
|||||||
#include <G3DAll.h>
|
|
||||||
#include <initguid.h>
|
|
||||||
#include <iomanip>
|
|
||||||
#include "Instance.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "PartInstance.h"
|
|
||||||
#include "TextButtonInstance.h"
|
|
||||||
#include "ImageButtonInstance.h"
|
|
||||||
#include "DataModelInstance.h"
|
|
||||||
#include "CameraController.h"
|
|
||||||
#include "AudioPlayer.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
#include "Application.h"
|
|
||||||
#include "win32Defines.h"
|
|
||||||
#include "WindowFunctions.h"
|
|
||||||
#include <limits.h>
|
|
||||||
#include <mshtml.h>
|
|
||||||
#include <exdisp.h>
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
#include "ax.h"
|
|
||||||
#include <cguid.h>
|
|
||||||
#include "IEBrowser.h"
|
|
||||||
#include "PropertyWindow.h"
|
|
||||||
#include <commctrl.h>
|
|
||||||
#include "StringFunctions.h"
|
|
||||||
#include "GuiRoot.h"
|
|
||||||
|
|
||||||
#include "GUDButtonListener.h"
|
|
||||||
#include "ModeSelectionListener.h"
|
|
||||||
#include "DeleteListener.h"
|
|
||||||
#include "CameraButtonListener.h"
|
|
||||||
#include "RotateButtonListener.h"
|
|
||||||
|
|
||||||
Ray testRay;
|
|
||||||
static int cursorid = 0;
|
|
||||||
static int cursorOvrid = 0;
|
|
||||||
static int currentcursorid = 0;
|
|
||||||
static G3D::TextureRef cursor = NULL;
|
|
||||||
static G3D::TextureRef cursorOvr = NULL;
|
|
||||||
static bool mouseMovedBeginMotion = false;
|
|
||||||
static POINT oldGlobalMouse;
|
|
||||||
Vector2 oldMouse = Vector2(0,0);
|
|
||||||
float moveRate = 0.5;
|
|
||||||
|
|
||||||
void Application::clearInstances()
|
|
||||||
{
|
|
||||||
delete _dataModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
PartInstance* Application::makePart()
|
|
||||||
{
|
|
||||||
PartInstance* part = new PartInstance();
|
|
||||||
return part;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setFocus(bool focus)
|
|
||||||
{
|
|
||||||
if(_propWindow != NULL)
|
|
||||||
if(focus)
|
|
||||||
{
|
|
||||||
ShowWindow(_propWindow->_hwndProp, SW_SHOW);
|
|
||||||
SetWindowPos(_propWindow->_hwndProp, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetWindowPos(_propWindow->_hwndProp, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Application::Application(HWND parentWindow) : _propWindow(NULL) { //: GApp(settings,window) {
|
|
||||||
|
|
||||||
|
|
||||||
std::string tempPath = ((std::string)getenv("temp")) + "/"+g_PlaceholderName;
|
|
||||||
CreateDirectory(tempPath.c_str(), NULL);
|
|
||||||
|
|
||||||
_hWndMain = parentWindow;
|
|
||||||
|
|
||||||
HMODULE hThisInstance = GetModuleHandle(NULL);
|
|
||||||
|
|
||||||
_hwndToolbox = CreateWindowEx(
|
|
||||||
WS_EX_ACCEPTFILES,
|
|
||||||
"AX",
|
|
||||||
"{8856F961-340A-11D0-A96B-00C04FD705A2}",
|
|
||||||
WS_CHILD | WS_VISIBLE,
|
|
||||||
0,
|
|
||||||
560,
|
|
||||||
800,
|
|
||||||
60,
|
|
||||||
_hWndMain, // parent
|
|
||||||
NULL, // menu
|
|
||||||
hThisInstance,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
_hwndRenderer = CreateWindowEx(
|
|
||||||
WS_EX_ACCEPTFILES,
|
|
||||||
"G3DWindow",
|
|
||||||
"3D",
|
|
||||||
WS_CHILD,
|
|
||||||
CW_USEDEFAULT,
|
|
||||||
CW_USEDEFAULT,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
_hWndMain, // parent
|
|
||||||
NULL, // menu
|
|
||||||
hThisInstance,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
_settings.window.resizable = true;
|
|
||||||
_settings.writeLicenseFile = false;
|
|
||||||
_settings.logFilename = tempPath + "/g3dlog.txt";
|
|
||||||
_settings.window.center = true;
|
|
||||||
Win32Window* window = Win32Window::create(_settings.window,_hwndRenderer);
|
|
||||||
ShowWindow(_hwndRenderer, SW_SHOW);
|
|
||||||
ShowWindow(_hWndMain, SW_SHOW);
|
|
||||||
|
|
||||||
quit=false;
|
|
||||||
rightButtonHolding=false;
|
|
||||||
mouseOnScreen=false;
|
|
||||||
// GApp replacement
|
|
||||||
renderDevice = new RenderDevice();
|
|
||||||
if (window != NULL) {
|
|
||||||
renderDevice->init(window, NULL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox(NULL,"Window not found!","Error",MB_OK | MB_ICONSTOP);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_window = renderDevice->window();
|
|
||||||
_window->makeCurrent();
|
|
||||||
|
|
||||||
SetWindowLongPtr(_hWndMain,GWL_USERDATA,(LONG)this);
|
|
||||||
SetWindowLongPtr(_hwndRenderer,GWL_USERDATA,(LONG)this);
|
|
||||||
_propWindow = new PropertyWindow(0, 0, 200, 640, hThisInstance);
|
|
||||||
IEBrowser* webBrowser = new IEBrowser(_hwndToolbox);
|
|
||||||
webBrowser->navigateSyncURL(L"http://androdome.com/res/ClientToolbox.php");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Application::deleteInstance()
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
{
|
|
||||||
size_t undeletable = 0;
|
|
||||||
while(g_selectedInstances.size() > undeletable)
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.at(0)->canDelete)
|
|
||||||
{
|
|
||||||
AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav"));
|
|
||||||
Instance* selectedInstance = g_selectedInstances.at(0);
|
|
||||||
if(selectedInstance->getParent() != NULL)
|
|
||||||
selectedInstance->getParent()->removeChild(selectedInstance);
|
|
||||||
delete selectedInstance;
|
|
||||||
selectedInstance = NULL;
|
|
||||||
g_selectedInstances.erase(g_selectedInstances.begin());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
undeletable++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(g_selectedInstances.size() == 0)
|
|
||||||
g_usableApp->_propWindow->ClearProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onInit() {
|
|
||||||
|
|
||||||
// Called before Application::run() beings
|
|
||||||
cameraController.setFrame(Vector3(0,2,10));
|
|
||||||
_dataModel = new DataModelInstance();
|
|
||||||
_dataModel->setParent(NULL);
|
|
||||||
_dataModel->name = "undefined";
|
|
||||||
_dataModel->font = g_fntdominant;
|
|
||||||
g_dataModel = _dataModel;
|
|
||||||
|
|
||||||
//initGUI();
|
|
||||||
|
|
||||||
#ifdef LEGACY_LOAD_G3DFUN_LEVEL
|
|
||||||
PartInstance* test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3(0.2F,0.3F,1);
|
|
||||||
test->setSize(Vector3(24,1,24));
|
|
||||||
test->setPosition(Vector3(0,0,0));
|
|
||||||
test->setCFrame(test->getCFrame() * Matrix3::fromEulerAnglesXYZ(0,toRadians(0),toRadians(0)));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3(.5F,1,.5F);
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(-10,1,0));
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3(.5F,1,.5F);
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(10,1,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(7,2,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(-7,2,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(4,3,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(-5,3,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(1,4,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(-3,4,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(-2,5,0));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(0,6,0));
|
|
||||||
|
|
||||||
test = makePart();
|
|
||||||
test->setParent(_dataModel->getWorkspace());
|
|
||||||
test->color = Color3::gray();
|
|
||||||
test->setSize(Vector3(4,1,2));
|
|
||||||
test->setPosition(Vector3(2,7,0));
|
|
||||||
#else
|
|
||||||
_dataModel->debugGetOpen();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//setDesiredFrameRate(60);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//GApplet::onInit();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Application::onCleanup() {
|
|
||||||
clearInstances();
|
|
||||||
sky->~Sky();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Application::onLogic() {
|
|
||||||
// Add non-simulation game logic and AI code here
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Application::onNetwork() {
|
|
||||||
// Poll net messages here
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//double getVectorDistance(Vector3 vector1, Vector3 vector2)
|
|
||||||
//{
|
|
||||||
// return pow(pow((double)vector1.x - (double)vector2.x, 2) + pow((double)vector1.y - (double)vector2.y, 2) + pow((double)vector1.z - (double)vector2.z, 2), 0.5);
|
|
||||||
//}
|
|
||||||
|
|
||||||
std::vector<Instance*> Application::getSelection()
|
|
||||||
{
|
|
||||||
return g_selectedInstances;
|
|
||||||
}
|
|
||||||
void Application::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_dataModel->getGuiRoot()->update();
|
|
||||||
|
|
||||||
if(_dataModel->name != _title)
|
|
||||||
{
|
|
||||||
_title = _dataModel->name;
|
|
||||||
std::string text = "Game \"" + _title + "\"";
|
|
||||||
SetWindowText(_hWndMain, text.c_str());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
cameraController.update(this);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*double getOSVersion() {
|
|
||||||
OSVERSIONINFO osvi;
|
|
||||||
|
|
||||||
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
|
|
||||||
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
|
||||||
|
|
||||||
GetVersionEx(&osvi);
|
|
||||||
std::string version = Convert(osvi.dwMajorVersion) + "." + Convert(osvi.dwMinorVersion);
|
|
||||||
return ::atof(version.c_str());
|
|
||||||
}*/
|
|
||||||
/*
|
|
||||||
bool IsHolding(int button)
|
|
||||||
{
|
|
||||||
return (GetKeyState(button) >> 1)>0;
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Application::onUserInput(UserInput* ui) {
|
|
||||||
|
|
||||||
/*
|
|
||||||
if(GetHoldKeyState(VK_LCONTROL))
|
|
||||||
{
|
|
||||||
if(GetHoldKeyState('D'))
|
|
||||||
{
|
|
||||||
_messageTime = System::time();
|
|
||||||
if(debugMode())
|
|
||||||
_message = "Debug Mode Disabled";
|
|
||||||
else
|
|
||||||
_message = "Debug Mode Enabled";
|
|
||||||
setDebugMode(!debugMode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if(GetHoldKeyState(VK_F8))
|
|
||||||
{
|
|
||||||
_dataModel->getGuiRoot()->setDebugMessage("FOV Set to 10", System::time());
|
|
||||||
}
|
|
||||||
//}
|
|
||||||
|
|
||||||
//_dataModel->mousex = ui->getMouseX();
|
|
||||||
//_dataModel->mousey = ui->getMouseY();
|
|
||||||
_dataModel->mouseButton1Down = (GetKeyState(VK_LBUTTON) & 0x100) != 0;
|
|
||||||
|
|
||||||
if (GetHoldKeyState(VK_LBUTTON)) {
|
|
||||||
if (_dragging) {
|
|
||||||
PartInstance* part = NULL;
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
part = (PartInstance*) g_selectedInstances.at(0);
|
|
||||||
Ray dragRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
|
|
||||||
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
|
|
||||||
for(size_t i = 0; i < instances.size(); i++)
|
|
||||||
{
|
|
||||||
if(PartInstance* moveTo = dynamic_cast<PartInstance*>(instances.at(i)))
|
|
||||||
{
|
|
||||||
float __time = testRay.intersectionTime(moveTo->getBox());
|
|
||||||
float __nearest=std::numeric_limits<float>::infinity();
|
|
||||||
if (__time != inf())
|
|
||||||
{
|
|
||||||
if (__nearest>__time)
|
|
||||||
{
|
|
||||||
// BROKEN
|
|
||||||
//Vector3 closest = (dragRay.closestPoint(moveTo->getPosition()) * 2);
|
|
||||||
//part->setPosition(closest);
|
|
||||||
//part->setPosition(Vector3(floor(closest.x),part->getPosition().y,floor(closest.z)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Sleep(10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Camera KB Handling {
|
|
||||||
if (GetKPBool(VK_OEM_COMMA)) //Left
|
|
||||||
g_usableApp->cameraController.panLeft();
|
|
||||||
else if (GetKPBool(VK_OEM_PERIOD)) // Right
|
|
||||||
g_usableApp->cameraController.panRight();
|
|
||||||
else if (GetKPBool(0x49)) // Zoom In (I)
|
|
||||||
g_usableApp->cameraController.Zoom(1);
|
|
||||||
else if (GetKPBool(0x4F)) // Zoom Out (O)
|
|
||||||
g_usableApp->cameraController.Zoom(-1);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//readMouseGUIInput();
|
|
||||||
// Add other key handling here
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::makeFlag(Vector3 &vec, RenderDevice* &rd)
|
|
||||||
{
|
|
||||||
|
|
||||||
Vector3 up = Vector3(vec.x, vec.y+3, vec.z);
|
|
||||||
rd->setColor(Color3::blue());
|
|
||||||
rd->beforePrimitive();
|
|
||||||
|
|
||||||
glBegin(GL_LINES);
|
|
||||||
glVertex3f(vec.x, vec.y, vec.z);
|
|
||||||
glVertex3f(up.x, up.y, up.z);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glBegin( GL_TRIANGLES );
|
|
||||||
glVertex3f(up.x, up.y-1, up.z);
|
|
||||||
glVertex3f(up.x, up.y-0.5, up.z-1);
|
|
||||||
glVertex3f(up.x, up.y, up.z);
|
|
||||||
|
|
||||||
glVertex3f(up.x, up.y, up.z);
|
|
||||||
glVertex3f(up.x, up.y-0.5, up.z-1);
|
|
||||||
glVertex3f(up.x, up.y-1, up.z);
|
|
||||||
|
|
||||||
glEnd();
|
|
||||||
rd->afterPrimitive();
|
|
||||||
rd->setColor(Color3::white());
|
|
||||||
//I know how i will approach this now
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setMode(int mode)
|
|
||||||
{
|
|
||||||
_mode = mode;
|
|
||||||
}
|
|
||||||
int Application::getMode()
|
|
||||||
{
|
|
||||||
return _mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Application::drawOutline(Vector3 from, Vector3 to, RenderDevice* rd, LightingParameters lighting, Vector3 size, Vector3 pos, CoordinateFrame c)
|
|
||||||
{
|
|
||||||
|
|
||||||
Color3 outline = Color3::cyan();//Color3(0.098F,0.6F,1.0F);
|
|
||||||
float offsetSize = 0.05F;
|
|
||||||
//X
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
//Y
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize-0.1, to.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, to.z - offsetSize))), rd, outline, Color4::clear());
|
|
||||||
|
|
||||||
//Z
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y + offsetSize, from.z - offsetSize), Vector3(from.x - offsetSize, from.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, to.y + offsetSize, from.z - offsetSize), Vector3(from.x - offsetSize, to.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y + offsetSize, from.z - offsetSize), Vector3(to.x - offsetSize, from.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
|
|
||||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, to.y + offsetSize, from.z - offsetSize), Vector3(to.x - offsetSize, to.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
|
|
||||||
|
|
||||||
if(_mode == ARROWS)
|
|
||||||
{
|
|
||||||
rd->setLight(0, NULL);
|
|
||||||
rd->setAmbientLightColor(Color3(1,1,1));
|
|
||||||
|
|
||||||
AABox box;
|
|
||||||
c.toWorldSpace(Box(from, to)).getBounds(box);
|
|
||||||
float max = box.high().y - pos.y;
|
|
||||||
|
|
||||||
Draw::arrow(pos, Vector3(0, 1.5+max, 0), rd);
|
|
||||||
Draw::arrow(pos, Vector3(0, (-1.5)-max, 0), rd);
|
|
||||||
|
|
||||||
max = box.high().x - pos.x;
|
|
||||||
|
|
||||||
Draw::arrow(pos, Vector3(1.5+max, 0, 0), rd);
|
|
||||||
Draw::arrow(pos, Vector3((-1.5)-max, 0, 0), rd);
|
|
||||||
|
|
||||||
max = box.high().z - pos.z;
|
|
||||||
|
|
||||||
Draw::arrow(pos, Vector3(0, 0, 1.5+max), rd);
|
|
||||||
Draw::arrow(pos, Vector3(0, 0, (-1.5)-max), rd);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rd->setAmbientLightColor(lighting.ambient);
|
|
||||||
rd->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
|
|
||||||
}
|
|
||||||
else if(_mode == RESIZE)
|
|
||||||
{
|
|
||||||
Color3 sphereColor = outline;
|
|
||||||
rd->setLight(0, NULL);
|
|
||||||
rd->setAmbientLightColor(Color3(1,1,1));
|
|
||||||
Vector3 gamepoint = pos;
|
|
||||||
Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
|
|
||||||
float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
|
|
||||||
if(distance < 200)
|
|
||||||
{
|
|
||||||
|
|
||||||
float multiplier = distance * 0.025F/2;
|
|
||||||
if(multiplier < 0.25F)
|
|
||||||
multiplier = 0.25F;
|
|
||||||
Vector3 position = pos + (c.lookVector()*((size.z/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
position = pos - (c.lookVector()*((size.z/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
|
|
||||||
position = pos + (c.rightVector()*((size.x/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
position = pos - (c.rightVector()*((size.x/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
|
|
||||||
position = pos + (c.upVector()*((size.y/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
position = pos - (c.upVector()*((size.y/2)+1));
|
|
||||||
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
|
|
||||||
}
|
|
||||||
rd->setAmbientLightColor(lighting.ambient);
|
|
||||||
rd->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::exitApplication()
|
|
||||||
{
|
|
||||||
//endApplet = true;
|
|
||||||
//endProgram = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Application::onGraphics(RenderDevice* rd) {
|
|
||||||
|
|
||||||
G3D::uint8 num = 0;
|
|
||||||
POINT mousepos;
|
|
||||||
mouseOnScreen = true;
|
|
||||||
if (GetCursorPos(&mousepos))
|
|
||||||
{
|
|
||||||
POINT pointm = mousepos;
|
|
||||||
if (ScreenToClient(_hWndMain, &mousepos))
|
|
||||||
{
|
|
||||||
//mouseOnScreen = true;
|
|
||||||
//POINT pointm;
|
|
||||||
///GetCursorPos(&pointm);
|
|
||||||
if(_hwndRenderer != WindowFromPoint(pointm)) //OLD: mousepos.x < 1 || mousepos.y < 1 || mousepos.x >= rd->getViewport().width()-1 || mousepos.y >= rd->getViewport().height()-1
|
|
||||||
{
|
|
||||||
mouseOnScreen = false;
|
|
||||||
//ShowCursor(true);
|
|
||||||
_window->setMouseVisible(true);
|
|
||||||
//rd->window()->setInputCaptureCount(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mouseOnScreen = true;
|
|
||||||
//SetCursor(NULL);
|
|
||||||
_window->setMouseVisible(false);
|
|
||||||
//rd->window()->setInputCaptureCount(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Globals::useMousePoint)
|
|
||||||
{
|
|
||||||
mousepos = Globals::mousepoint;
|
|
||||||
ScreenToClient(_hWndMain, &mousepos);
|
|
||||||
}
|
|
||||||
|
|
||||||
LightingParameters lighting(G3D::toSeconds(2, 00, 00, PM));
|
|
||||||
renderDevice->setProjectionAndCameraMatrix(*cameraController.getCamera());
|
|
||||||
|
|
||||||
// Cyan background
|
|
||||||
//renderDevice->setColorClearValue(Color3(0.0f, 0.5f, 1.0f));
|
|
||||||
|
|
||||||
renderDevice->clear(sky.isNull(), true, true);
|
|
||||||
if (sky.notNull()) {
|
|
||||||
sky->render(renderDevice, lighting);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup lighting
|
|
||||||
renderDevice->enableLighting();
|
|
||||||
|
|
||||||
renderDevice->setShadeMode(RenderDevice::SHADE_SMOOTH);
|
|
||||||
renderDevice->setAmbientLightColor(Color3(1,1,1));
|
|
||||||
|
|
||||||
renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
|
|
||||||
renderDevice->setAmbientLightColor(lighting.ambient);
|
|
||||||
|
|
||||||
rd->beforePrimitive();
|
|
||||||
CoordinateFrame forDraw = rd->getObjectToWorldMatrix();
|
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
|
||||||
glEnableClientState(GL_COLOR_ARRAY);
|
|
||||||
glEnableClientState(GL_NORMAL_ARRAY);
|
|
||||||
//if(_dataModel->getWorkspace() != NULL)
|
|
||||||
_dataModel->getWorkspace()->render(rd);
|
|
||||||
//else throw std::exception("Workspace not found");
|
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
|
||||||
glDisableClientState(GL_COLOR_ARRAY);
|
|
||||||
glDisableClientState(GL_NORMAL_ARRAY);
|
|
||||||
rd->setObjectToWorldMatrix(forDraw);
|
|
||||||
rd->afterPrimitive();
|
|
||||||
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
{
|
|
||||||
if(PartInstance* part = dynamic_cast<PartInstance*>(g_selectedInstances.at(i)))
|
|
||||||
{
|
|
||||||
Vector3 size = part->getSize();
|
|
||||||
Vector3 pos = part->getPosition();
|
|
||||||
drawOutline(Vector3(0+size.x/2, 0+size.y/2, 0+size.z/2) ,Vector3(0-size.x/2,0-size.y/2,0-size.z/2), rd, lighting, Vector3(size.x/2, size.y/2, size.z/2), Vector3(pos.x, pos.y, pos.z), part->getCFrameRenderBased());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Vector3 gamepoint = Vector3(0, 5, 0);
|
|
||||||
//Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
|
|
||||||
//float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
|
|
||||||
//if(distance < 50 && distance > -50)
|
|
||||||
|
|
||||||
//{
|
|
||||||
// if(distance < 0)
|
|
||||||
// distance = distance*-1;
|
|
||||||
// fntdominant->draw3D(rd, "Testing", CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.04*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER);
|
|
||||||
//}
|
|
||||||
|
|
||||||
renderDevice->disableLighting();
|
|
||||||
|
|
||||||
if (sky.notNull()) {
|
|
||||||
sky->renderLensFlare(renderDevice, lighting);
|
|
||||||
}
|
|
||||||
renderDevice->push2D();
|
|
||||||
_dataModel->getGuiRoot()->renderGUI(renderDevice, m_graphicsWatch.FPS());
|
|
||||||
rd->pushState();
|
|
||||||
rd->beforePrimitive();
|
|
||||||
|
|
||||||
if(Globals::showMouse && mouseOnScreen)
|
|
||||||
{
|
|
||||||
glEnable( GL_TEXTURE_2D );
|
|
||||||
glEnable(GL_BLEND);// you enable blending function
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
||||||
/*
|
|
||||||
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
|
|
||||||
currentcursorid = cursorid;
|
|
||||||
for(size_t i = 0; i < instances.size(); i++)
|
|
||||||
{
|
|
||||||
if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i)))
|
|
||||||
{
|
|
||||||
float time = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport()).intersectionTime(test->getBox());
|
|
||||||
//float time = testRay.intersectionTime(test->getBox());
|
|
||||||
if (time != inf())
|
|
||||||
{
|
|
||||||
currentcursorid = cursorOvrid;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
glBindTexture( GL_TEXTURE_2D, currentcursorid);
|
|
||||||
|
|
||||||
|
|
||||||
glBegin( GL_QUADS );
|
|
||||||
glTexCoord2d(0.0,0.0);
|
|
||||||
glVertex2f(mousepos.x-64, mousepos.y-64);
|
|
||||||
glTexCoord2d( 1.0,0.0 );
|
|
||||||
glVertex2f(mousepos.x+64, mousepos.y-64);
|
|
||||||
glTexCoord2d(1.0,1.0 );
|
|
||||||
glVertex2f(mousepos.x+64, mousepos.y+64 );
|
|
||||||
glTexCoord2d( 0.0,1.0 );
|
|
||||||
glVertex2f( mousepos.x-64, mousepos.y+64 );
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glDisable( GL_TEXTURE_2D );
|
|
||||||
}
|
|
||||||
|
|
||||||
rd->afterPrimitive();
|
|
||||||
rd->popState();
|
|
||||||
renderDevice->pop2D();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onKeyPressed(int key)
|
|
||||||
{
|
|
||||||
if(key==VK_DELETE)
|
|
||||||
{
|
|
||||||
deleteInstance();
|
|
||||||
}
|
|
||||||
if ((GetHoldKeyState(VK_LCONTROL) || GetHoldKeyState(VK_RCONTROL)) && key=='O')
|
|
||||||
{
|
|
||||||
_dataModel->getOpen();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void Application::onKeyUp(int key)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onMouseLeftPressed(HWND hwnd,int x,int y)
|
|
||||||
{
|
|
||||||
//Removed set focus
|
|
||||||
|
|
||||||
|
|
||||||
//std::cout << "Click: " << x << "," << y << std::endl;
|
|
||||||
|
|
||||||
bool onGUI = _dataModel->getGuiRoot()->mouseInGUI(renderDevice, x, y);
|
|
||||||
|
|
||||||
|
|
||||||
if(!onGUI)
|
|
||||||
{
|
|
||||||
Instance * selectedInstance = NULL;
|
|
||||||
testRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
|
|
||||||
float nearest=std::numeric_limits<float>::infinity();
|
|
||||||
Vector3 camPos = cameraController.getCamera()->getCoordinateFrame().translation;
|
|
||||||
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
|
|
||||||
bool objFound = false;
|
|
||||||
for(size_t i = 0; i < instances.size(); i++)
|
|
||||||
{
|
|
||||||
if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i)))
|
|
||||||
{
|
|
||||||
float time = testRay.intersectionTime(test->getBox());
|
|
||||||
|
|
||||||
if (time != inf())
|
|
||||||
{
|
|
||||||
objFound = true;
|
|
||||||
if (nearest>time)
|
|
||||||
{
|
|
||||||
nearest=time;
|
|
||||||
//bool found = false;
|
|
||||||
selectedInstance = test;
|
|
||||||
/*for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.at(i) == test)
|
|
||||||
{
|
|
||||||
found = true;
|
|
||||||
//ShowWindow(_propWindow->_hwndProp, SW_SHOW);
|
|
||||||
//SetActiveWindow(_propWindow->_hwndProp);
|
|
||||||
//SetForegroundWindow(_propWindow->_hwndProp);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found)
|
|
||||||
{
|
|
||||||
selectedInstance = test;
|
|
||||||
//if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
|
|
||||||
//g_selectedInstances.clear();
|
|
||||||
//if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),test)==g_selectedInstances.end())
|
|
||||||
//g_selectedInstances.push_back(test);
|
|
||||||
}
|
|
||||||
//selectInstance(test, _propWindow);
|
|
||||||
//_message = "Dragging = true.";
|
|
||||||
//_messageTime = System::time();
|
|
||||||
//_dragging = true;*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!objFound)
|
|
||||||
selectInstance(_dataModel,_propWindow);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
while(selectedInstance->getParent() != g_dataModel->getWorkspace())
|
|
||||||
{
|
|
||||||
selectedInstance = selectedInstance->getParent();
|
|
||||||
}
|
|
||||||
selectInstance(selectedInstance, _propWindow);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::selectInstance(Instance* selectedInstance, PropertyWindow* propWindow)
|
|
||||||
{
|
|
||||||
if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
|
|
||||||
{
|
|
||||||
printf("No control key hold \n");
|
|
||||||
g_selectedInstances.clear();
|
|
||||||
}
|
|
||||||
else printf("Control held\n");
|
|
||||||
if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),selectedInstance)==g_selectedInstances.end())
|
|
||||||
g_selectedInstances.push_back(selectedInstance);
|
|
||||||
propWindow->UpdateSelected(selectedInstance);
|
|
||||||
|
|
||||||
}
|
|
||||||
G3D::RenderDevice* Application::getRenderDevice()
|
|
||||||
{
|
|
||||||
return renderDevice;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x, int y)
|
|
||||||
{
|
|
||||||
//std::cout << "Release: " << x << "," << y << std::endl;
|
|
||||||
_dataModel->getGuiRoot()->onMouseLeftUp(renderDevice, x, y);
|
|
||||||
_dragging = false;
|
|
||||||
//_message = "Dragging = false.";
|
|
||||||
//_messageTime = System::time();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onMouseRightPressed(int x,int y)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void Application::onMouseRightUp(int x,int y)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void Application::onMouseMoved(int x,int y)
|
|
||||||
{
|
|
||||||
oldMouse = _dataModel->getMousePos();
|
|
||||||
_dataModel->mousex = x;
|
|
||||||
_dataModel->mousey = y;
|
|
||||||
|
|
||||||
}
|
|
||||||
void Application::onMouseWheel(int x,int y,short delta)
|
|
||||||
{
|
|
||||||
if (mouseOnScreen==true)
|
|
||||||
if (cameraController.onMouseWheel(x, y, delta))
|
|
||||||
{
|
|
||||||
AudioPlayer::playSound(cameraSound);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::run() {
|
|
||||||
g_usableApp = this;
|
|
||||||
//setDebugMode(false);
|
|
||||||
//debugController.setActive(false);
|
|
||||||
/*
|
|
||||||
if (!createWindowClass("ToolWindowClass",ToolProc,GetModuleHandle(0)))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
HWND propertyHWnd = CreateWindowEx(
|
|
||||||
WS_EX_TOOLWINDOW,"ToolWindowClass", "ToolWindow",
|
|
||||||
WS_SYSMENU | WS_VISIBLE | WS_CHILD,
|
|
||||||
0, 0, 800, 64,
|
|
||||||
hWndMain, NULL, GetModuleHandle(0), NULL);
|
|
||||||
|
|
||||||
ShowWindow(propertyHWnd,SW_SHOW);
|
|
||||||
*/
|
|
||||||
UpdateWindow(_hWndMain);
|
|
||||||
|
|
||||||
// Load objects here=
|
|
||||||
cursor = Texture::fromFile(GetFileInPath("/content/images/ArrowCursor.png"));
|
|
||||||
cursorOvr = Texture::fromFile(GetFileInPath("/content/images/DragCursor.png"));
|
|
||||||
Globals::surface = Texture::fromFile(GetFileInPath("/content/images/surfacebr.png"));
|
|
||||||
Globals::surfaceId = Globals::surface->getOpenGLID();
|
|
||||||
cameraSound = GetFileInPath("/content/sounds/SWITCH3.wav");
|
|
||||||
clickSound = GetFileInPath("/content/sounds/switch.wav");
|
|
||||||
dingSound = GetFileInPath("/content/sounds/electronicpingshort.wav");
|
|
||||||
sky = Sky::create(NULL, ExePath() + "/content/sky/");
|
|
||||||
cursorid = cursor->openGLID();
|
|
||||||
currentcursorid = cursorid;
|
|
||||||
cursorOvrid = cursorOvr->openGLID();
|
|
||||||
RealTime now=0, lastTime=0;
|
|
||||||
double simTimeRate = 1.0f;
|
|
||||||
float fps=30.0f;
|
|
||||||
|
|
||||||
RealTime desiredFrameDuration=1.0/fps;
|
|
||||||
onInit();
|
|
||||||
RealTime lastWaitTime=0;
|
|
||||||
|
|
||||||
MSG messages;
|
|
||||||
//RECT cRect;
|
|
||||||
//GetClientRect(_hWndMain,&cRect);
|
|
||||||
//renderDevice->notifyResize(cRect.right,cRect.bottom);
|
|
||||||
//Rect2D viewportRect = Rect2D::xywh(0,0,cRect.right,cRect.bottom);
|
|
||||||
//renderDevice->setViewport(viewportRect);
|
|
||||||
//window()->setInputCaptureCount(1);
|
|
||||||
resizeWithParent(_hWndMain);
|
|
||||||
|
|
||||||
while (!quit)
|
|
||||||
{
|
|
||||||
|
|
||||||
lastTime = now;
|
|
||||||
now = System::getTick();
|
|
||||||
RealTime timeStep = now - lastTime;
|
|
||||||
|
|
||||||
m_userInputWatch.tick();
|
|
||||||
onUserInput(userInput);
|
|
||||||
//m_moduleManager->onUserInput(_userInput);
|
|
||||||
m_userInputWatch.tock();
|
|
||||||
|
|
||||||
m_simulationWatch.tick();
|
|
||||||
//debugController.doSimulation(clamp(timeStep, 0.0, 0.1));
|
|
||||||
//g3dCamera.setCoordinateFrame
|
|
||||||
//(debugController.getCoordinateFrame());
|
|
||||||
|
|
||||||
double rate = simTimeRate;
|
|
||||||
RealTime rdt = timeStep;
|
|
||||||
SimTime sdt = timeStep * rate;
|
|
||||||
SimTime idt = desiredFrameDuration * rate;
|
|
||||||
|
|
||||||
onSimulation(rdt,sdt,idt);
|
|
||||||
m_simulationWatch.tock();
|
|
||||||
|
|
||||||
m_waitWatch.tick();
|
|
||||||
{
|
|
||||||
RealTime now = System::time();
|
|
||||||
// Compute accumulated time
|
|
||||||
System::sleep(max(0.0, desiredFrameDuration - (now - lastWaitTime)));
|
|
||||||
lastWaitTime = System::time();
|
|
||||||
}
|
|
||||||
m_waitWatch.tock();
|
|
||||||
|
|
||||||
m_graphicsWatch.tick();
|
|
||||||
renderDevice->beginFrame();
|
|
||||||
renderDevice->pushState();
|
|
||||||
onGraphics(renderDevice);
|
|
||||||
renderDevice->popState();
|
|
||||||
//renderDebugInfo();
|
|
||||||
renderDevice->endFrame();
|
|
||||||
//debugText.clear();
|
|
||||||
m_graphicsWatch.tock();
|
|
||||||
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(_hWndMain, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onCleanup();
|
|
||||||
}
|
|
||||||
void Application::resizeWithParent(HWND parentWindow)
|
|
||||||
{
|
|
||||||
RECT rect;
|
|
||||||
GetClientRect(parentWindow,&rect);
|
|
||||||
SetWindowPos(_hwndRenderer,NULL,0,0,rect.right,rect.bottom-60,SWP_NOMOVE);
|
|
||||||
SetWindowPos(_hwndToolbox,NULL,0,rect.bottom-60,rect.right,60,SWP_NOACTIVATE | SWP_SHOWWINDOW);
|
|
||||||
GetClientRect(_hwndRenderer,&rect);
|
|
||||||
int viewWidth=rect.right;
|
|
||||||
int viewHeight=rect.bottom;
|
|
||||||
renderDevice->notifyResize(viewWidth,viewHeight);
|
|
||||||
Rect2D viewportRect = Rect2D::xywh(0,0,viewWidth,viewHeight);
|
|
||||||
renderDevice->setViewport(viewportRect);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::QuitApp()
|
|
||||||
{
|
|
||||||
PostQuitMessage(0);
|
|
||||||
quit=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::onCreate(HWND parentWindow)
|
|
||||||
{
|
|
||||||
//SetWindowLongPtr(hwndRenderer,GWL_USERDATA,(LONG)this);
|
|
||||||
//SetWindowLongPtr(hwndToolbox,GWL_USERDATA,(LONG)this);
|
|
||||||
//SetWindowLongPtr(hwndMain,GWL_USERDATA,(LONG)&app);
|
|
||||||
}
|
|
||||||
BIN
B3dIcon.ico
Normal file
|
After Width: | Height: | Size: 108 KiB |
@@ -1,24 +1,24 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="G3DTest" - Package Owner=<4>
|
# Microsoft Developer Studio Project File - Name="Blocks3D" - Package Owner=<4>
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||||
# ** DO NOT EDIT **
|
# ** DO NOT EDIT **
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||||
|
|
||||||
CFG=G3DTest - Win32 Debug
|
CFG=Blocks3D - Win32 Debug
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||||
!MESSAGE use the Export Makefile command and run
|
!MESSAGE use the Export Makefile command and run
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "G3DTest.mak".
|
!MESSAGE NMAKE /f "Blocks3D.mak".
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
!MESSAGE You can specify a configuration when running NMAKE
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "G3DTest.mak" CFG="G3DTest - Win32 Debug"
|
!MESSAGE NMAKE /f "Blocks3D.mak" CFG="Blocks3D - Win32 Debug"
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE Possible choices for configuration are:
|
!MESSAGE Possible choices for configuration are:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE "G3DTest - Win32 Release" (based on "Win32 (x86) Application")
|
!MESSAGE "Blocks3D - Win32 Release" (based on "Win32 (x86) Application")
|
||||||
!MESSAGE "G3DTest - Win32 Debug" (based on "Win32 (x86) Application")
|
!MESSAGE "Blocks3D - Win32 Debug" (based on "Win32 (x86) Application")
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
|
|
||||||
# Begin Project
|
# Begin Project
|
||||||
@@ -29,7 +29,7 @@ CPP=cl.exe
|
|||||||
MTL=midl.exe
|
MTL=midl.exe
|
||||||
RSC=rc.exe
|
RSC=rc.exe
|
||||||
|
|
||||||
!IF "$(CFG)" == "G3DTest - Win32 Release"
|
!IF "$(CFG)" == "Blocks3D - Win32 Release"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
# PROP BASE Use_Debug_Libraries 0
|
||||||
@@ -54,7 +54,7 @@ LINK32=link.exe
|
|||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "G3DTest - Win32 Debug"
|
!ELSEIF "$(CFG)" == "Blocks3D - Win32 Debug"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
# PROP BASE Use_Debug_Libraries 1
|
||||||
@@ -83,8 +83,8 @@ LINK32=link.exe
|
|||||||
|
|
||||||
# Begin Target
|
# Begin Target
|
||||||
|
|
||||||
# Name "G3DTest - Win32 Release"
|
# Name "Blocks3D - Win32 Release"
|
||||||
# Name "G3DTest - Win32 Debug"
|
# Name "Blocks3D - Win32 Debug"
|
||||||
# Begin Group "Source Files"
|
# Begin Group "Source Files"
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Project: "G3DTest"=.\G3DTest.dsp - Package Owner=<4>
|
Project: "Blocks3D"=.\Blocks3D.dsp - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
{{{
|
{{{
|
||||||
8
Blocks3D.exe.manifest
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
</assembly>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual C++ Express 2005
|
# Visual C++ Express 2005
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G3DTest", "G3DTest.vcproj", "{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Blocks3D", "Blocks3D.vcproj", "{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
1031
Blocks3D.vcproj
Normal file
BIN
Dialogs.aps
51
Dialogs.rc
@@ -5,7 +5,8 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
#include <richedit.h>
|
#include <richedit.h>
|
||||||
#include "resource.h"
|
#include "src/include/resource.h"
|
||||||
|
#include "src/include/versioning.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -16,7 +17,39 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
|
||||||
IDB_BITMAP1 BITMAP "Parts.bmp"
|
IDB_BITMAP1 BITMAP "Parts.bmp"
|
||||||
|
|
||||||
|
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
1 VERSIONINFO
|
||||||
|
FILEVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
|
||||||
|
PRODUCTVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
|
||||||
|
FILEOS VOS__WINDOWS32
|
||||||
|
FILETYPE VFT_APP
|
||||||
|
FILESUBTYPE VFT2_UNKNOWN
|
||||||
|
FILEFLAGSMASK 0
|
||||||
|
FILEFLAGS 0
|
||||||
|
{
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
{
|
||||||
|
BLOCK "100901B5"
|
||||||
|
{
|
||||||
|
VALUE "Comments", ""
|
||||||
|
VALUE "CompanyName", "Blocks3D Team"
|
||||||
|
VALUE "FileDescription", "Blocks 3D"
|
||||||
|
VALUE "FileVersion", VER_STR(APP_VER_STRING)
|
||||||
|
VALUE "InternalName", "Blocks3D"
|
||||||
|
VALUE "LegalCopyright", "Blocks3D Team - 2022"
|
||||||
|
VALUE "LegalTrademarks", ""
|
||||||
|
VALUE "OriginalFilename", "Blocks3D.exe"
|
||||||
|
VALUE "PrivateBuild", ""
|
||||||
|
VALUE "ProductName", "Blocks3D"
|
||||||
|
VALUE "ProductVersion", VER_STR(APP_VER_STRING)
|
||||||
|
VALUE "SpecialBuild", ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
{
|
||||||
|
VALUE "Translation", 0x1009, 0x01B5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dialog resources
|
// Dialog resources
|
||||||
@@ -28,7 +61,7 @@ EXSTYLE WS_EX_WINDOWEDGE
|
|||||||
CAPTION "Insert Object"
|
CAPTION "Insert Object"
|
||||||
FONT 8, "Ms Shell Dlg"
|
FONT 8, "Ms Shell Dlg"
|
||||||
{
|
{
|
||||||
EDITTEXT IDE_EDIT, 35, 6, 195, 14, ES_AUTOHSCROLL, WS_EX_LEFT
|
EDITTEXT IDC_EDIT1, 35, 6, 195, 14, ES_AUTOHSCROLL, WS_EX_LEFT
|
||||||
LTEXT "Class:", 0, 10, 9, 20, 9, SS_LEFT, WS_EX_LEFT
|
LTEXT "Class:", 0, 10, 9, 20, 9, SS_LEFT, WS_EX_LEFT
|
||||||
PUSHBUTTON "Cancel", IDCANCEL, 237, 24, 50, 14, 0, WS_EX_LEFT
|
PUSHBUTTON "Cancel", IDCANCEL, 237, 24, 50, 14, 0, WS_EX_LEFT
|
||||||
DEFPUSHBUTTON "OK", IDOK, 237, 6, 50, 14, 0, WS_EX_LEFT
|
DEFPUSHBUTTON "OK", IDOK, 237, 6, 50, 14, 0, WS_EX_LEFT
|
||||||
@@ -40,4 +73,14 @@ FONT 8, "Ms Shell Dlg"
|
|||||||
// Icon resources
|
// Icon resources
|
||||||
//
|
//
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
|
||||||
IDI_ICON1 ICON "icon1.ico"
|
IDI_ICON1 ICON "FatB3dIcon.ico"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Manifest resources
|
||||||
|
//
|
||||||
|
#ifndef _DEBUG
|
||||||
|
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
1 MANIFEST ".\\Blocks3D.exe.manifest"
|
||||||
|
#endif
|
||||||
17
Enum.h
@@ -1,17 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
namespace Enum
|
|
||||||
{
|
|
||||||
namespace SurfaceType
|
|
||||||
{
|
|
||||||
enum Value {
|
|
||||||
Smooth, Snaps, Inlets, Glue, Weld, Spawn, Hinge, Motor, Bumps
|
|
||||||
};
|
|
||||||
}
|
|
||||||
namespace Shape
|
|
||||||
{
|
|
||||||
enum Value {
|
|
||||||
Ball = 0, Block = 1, Cylinder = 2
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
16
Enums.h
@@ -1,16 +0,0 @@
|
|||||||
#ifdef UENUMS
|
|
||||||
#ifndef ENUM_H
|
|
||||||
#define ENUM_H
|
|
||||||
static enum BinType {GameTool, Grab, Clone, Hammer};
|
|
||||||
static enum ControllerType {None, KeyboardRight, KeyboardLeft, Joypad1, Joypad2, Chase, Flee};
|
|
||||||
//static enum JointType {UNK0, WeldJoint, SnapJoint, UNK3, Rotate, RotateP, RotateV, GlueJoint, UNK8, UNK9, None};
|
|
||||||
static enum ActionType {Nothing, Pause, Lose, Draw, Win};
|
|
||||||
static enum AffectType {NoChange, Increase, Decrease};
|
|
||||||
static enum InputType {NoInput, LeftTread, RightTread, Steer, Throtle, UpDown, Action1, Action2, Action3, Action4, Action5, Constant, Sin};
|
|
||||||
//static enum SurfaceConstraint {None, Hinge, SteppingMotor, Motor};
|
|
||||||
static enum SurfaceType{Smooth, Snaps, Inlets, Glue, Weld, Spawn, Hinge, Motor, Bumps};
|
|
||||||
static enum SoundType {NoSound, Boing, Bomb, Break, Click, Clock, Slingshot, Page, Ping, Snap, Splat, Step, StepOn, Swoosh, Victory};
|
|
||||||
static enum PartType {Ball, Block, Cylinder};
|
|
||||||
static enum KeywordFilterType {Include, Exclude};
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
BIN
FatB3dIcon.ico
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
G3DTest.aps
BIN
G3DTest.opt
32
G3DTest.plg
@@ -1,32 +0,0 @@
|
|||||||
<html>
|
|
||||||
<body>
|
|
||||||
<pre>
|
|
||||||
<h1>Build Log</h1>
|
|
||||||
<h3>
|
|
||||||
--------------------Configuration: G3DTest - Win32 Debug--------------------
|
|
||||||
</h3>
|
|
||||||
<h3>Command Lines</h3>
|
|
||||||
Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp" with contents
|
|
||||||
[
|
|
||||||
/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Debug/G3DTest.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
|
|
||||||
"C:\USERS\ANDREJA\G3D\G3DTest\main.cpp"
|
|
||||||
]
|
|
||||||
Creating command line "cl.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp"
|
|
||||||
Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp" with contents
|
|
||||||
[
|
|
||||||
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/G3DTest.pdb" /debug /machine:I386 /out:"Debug/G3DTest.exe" /pdbtype:sept
|
|
||||||
.\Debug\main.obj
|
|
||||||
]
|
|
||||||
Creating command line "link.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp"
|
|
||||||
<h3>Output Window</h3>
|
|
||||||
Compiling...
|
|
||||||
main.cpp
|
|
||||||
Linking...
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
|
||||||
G3DTest.exe - 0 error(s), 0 warning(s)
|
|
||||||
</pre>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
579
G3DTest.vcproj
@@ -1,579 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="8.00"
|
|
||||||
Name="G3DTest"
|
|
||||||
ProjectGUID="{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
|
||||||
RootNamespace="G3DTest"
|
|
||||||
>
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"
|
|
||||||
/>
|
|
||||||
</Platforms>
|
|
||||||
<ToolFiles>
|
|
||||||
</ToolFiles>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory=".\Release"
|
|
||||||
IntermediateDirectory=".\Release"
|
|
||||||
ConfigurationType="1"
|
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
|
||||||
UseOfMFC="0"
|
|
||||||
UseOfATL="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
|
||||||
CharacterSet="2"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Release/G3DTest.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
|
||||||
StringPooling="true"
|
|
||||||
RuntimeLibrary="2"
|
|
||||||
EnableFunctionLevelLinking="true"
|
|
||||||
PrecompiledHeaderFile=".\Release/G3DTest.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="4105"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib"
|
|
||||||
OutputFile="./G3DTest.exe"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
ProgramDatabaseFile=".\Release/G3DTest.pdb"
|
|
||||||
SubSystem="2"
|
|
||||||
TargetMachine="1"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
OutputFile=".\Release/G3DTest.bsc"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="1"
|
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
|
||||||
CharacterSet="2"
|
|
||||||
ManagedExtensions="0"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Debug/G3DTest.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
|
||||||
MinimalRebuild="false"
|
|
||||||
BasicRuntimeChecks="0"
|
|
||||||
RuntimeLibrary="3"
|
|
||||||
EnableFunctionLevelLinking="false"
|
|
||||||
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="4105"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib Urlmon.lib"
|
|
||||||
OutputFile="./G3DTest-Debug.exe"
|
|
||||||
LinkIncremental="2"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
ProgramDatabaseFile=".\Debug/G3DTest.pdb"
|
|
||||||
SubSystem="1"
|
|
||||||
TargetMachine="1"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
OutputFile=".\Debug/G3DTest.bsc"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
<AssemblyReference
|
|
||||||
RelativePath="System.dll"
|
|
||||||
AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
|
||||||
/>
|
|
||||||
<AssemblyReference
|
|
||||||
RelativePath="System.Data.dll"
|
|
||||||
AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
|
|
||||||
/>
|
|
||||||
<AssemblyReference
|
|
||||||
RelativePath="System.Drawing.dll"
|
|
||||||
AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
|
|
||||||
/>
|
|
||||||
<AssemblyReference
|
|
||||||
RelativePath="System.Windows.Forms.dll"
|
|
||||||
AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
|
||||||
/>
|
|
||||||
<AssemblyReference
|
|
||||||
RelativePath="System.XML.dll"
|
|
||||||
AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
|
||||||
/>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Application.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\AudioPlayer.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ax.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BrowserCallHandler.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ButtonListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraController.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ErrorFunctions.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Globals.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GroupInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GuiRoot.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEBrowser.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEDispatcher.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="main.cpp"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\propertyGrid.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PropertyWindow.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\StringFunctions.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WindowFunctions.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="Instance"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BaseButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DataModelInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ImageButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Instance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\LevelInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PartInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PVInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\TextButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WorkspaceInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Listeners"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraButtonListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DeleteListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GUDButtonListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ModeSelectionListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\RotateButtonListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Application.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\AudioPlayer.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ax.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BrowserCallHandler.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraController.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Demo.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Enum.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Enums.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ErrorFunctions.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Globals.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GuiRoot.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEBrowser.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEDispatcher.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\LevelInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\propertyGrid.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PropertyWindow.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\rapidxml\rapidxml.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\rapidxml\rapidxml_iterators.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\rapidxml\rapidxml_print.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\rapidxml\rapidxml_utils.hpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\resource.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\RotateButtonListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\StringFunctions.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\win32Defines.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WindowFunctions.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="Instance"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BaseButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DataModelInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GroupInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ImageButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Instance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PartInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PVInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\TextButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WorkspaceInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Listeners"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ButtonListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraButtonListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DeleteListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\GUDButtonListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ModeSelectionListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Dialogs.rc"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\icon1.ico"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Parts.bmp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
<Global
|
|
||||||
Name="RESOURCE_FILE"
|
|
||||||
Value="Dialogs.rc"
|
|
||||||
/>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
#include <G3DAll.h>
|
|
||||||
#include "Application.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
#include "AudioPlayer.h"
|
|
||||||
#include "GUDButtonListener.h"
|
|
||||||
|
|
||||||
void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
|
||||||
{
|
|
||||||
bool cont = false;
|
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
if(g_selectedInstances.at(i)->canDelete)
|
|
||||||
{
|
|
||||||
cont = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(cont)
|
|
||||||
{
|
|
||||||
AudioPlayer::playSound(dingSound);
|
|
||||||
if(button->name == "Duplicate")
|
|
||||||
{
|
|
||||||
std::vector<Instance*> newinst;
|
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.at(i)->canDelete)
|
|
||||||
{
|
|
||||||
Instance* tempinst = g_selectedInstances.at(i);
|
|
||||||
|
|
||||||
Instance* clonedInstance = g_selectedInstances.at(i)->clone();
|
|
||||||
|
|
||||||
newinst.push_back(tempinst);
|
|
||||||
}
|
|
||||||
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
|
||||||
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
|
|
||||||
}
|
|
||||||
g_selectedInstances = newinst;
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
|
|
||||||
}
|
|
||||||
else if(button->name == "Group")
|
|
||||||
{
|
|
||||||
GroupInstance * inst = new GroupInstance();
|
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.at(i)->canDelete)
|
|
||||||
{
|
|
||||||
g_selectedInstances.at(i)->setParent(inst);
|
|
||||||
}
|
|
||||||
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
|
||||||
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
|
|
||||||
}
|
|
||||||
inst->setParent(g_dataModel->getWorkspace());
|
|
||||||
g_selectedInstances.clear();
|
|
||||||
g_selectedInstances.push_back(inst);
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
g_usableApp->_propWindow->UpdateSelected(g_selectedInstances.at(0));
|
|
||||||
}
|
|
||||||
else if(button->name == "UnGroup")
|
|
||||||
{
|
|
||||||
std::vector<Instance*> newinst;
|
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
|
||||||
{
|
|
||||||
if(g_selectedInstances.at(i)->canDelete)
|
|
||||||
{
|
|
||||||
if(GroupInstance* model = dynamic_cast<GroupInstance*>(g_selectedInstances.at(i)))
|
|
||||||
{
|
|
||||||
newinst = model->unGroup();
|
|
||||||
model->setParent(NULL);
|
|
||||||
delete model;
|
|
||||||
model = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
|
||||||
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
|
|
||||||
}
|
|
||||||
g_selectedInstances.clear();
|
|
||||||
g_selectedInstances = newinst;
|
|
||||||
if(g_selectedInstances.size() > 0)
|
|
||||||
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#include "GroupInstance.h"
|
|
||||||
|
|
||||||
GroupInstance::GroupInstance(void)
|
|
||||||
{
|
|
||||||
PVInstance::PVInstance();
|
|
||||||
name = "Model";
|
|
||||||
className = "GroupInstance";
|
|
||||||
listicon = 12;
|
|
||||||
}
|
|
||||||
|
|
||||||
GroupInstance::GroupInstance(const GroupInstance &oinst)
|
|
||||||
{
|
|
||||||
PVInstance::PVInstance(oinst);
|
|
||||||
name = "Model";
|
|
||||||
className = "GroupInstance";
|
|
||||||
listicon = 12;
|
|
||||||
}
|
|
||||||
|
|
||||||
GroupInstance::~GroupInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<PROPGRIDITEM> GroupInstance::getProperties()
|
|
||||||
{
|
|
||||||
std::vector<PROPGRIDITEM> properties = PVInstance::getProperties();
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
void GroupInstance::PropUpdate(LPPROPGRIDITEM &pItem)
|
|
||||||
{
|
|
||||||
PVInstance::PropUpdate(pItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<Instance *> GroupInstance::unGroup()
|
|
||||||
{
|
|
||||||
std::vector<Instance *> child;
|
|
||||||
while(children.size() > 0)
|
|
||||||
{
|
|
||||||
child.push_back(children[0]);
|
|
||||||
children[0]->setParent(parent);
|
|
||||||
}
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
117
IEBrowser.cpp
@@ -1,117 +0,0 @@
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#include "IEBrowser.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
#include "ax.h"
|
|
||||||
|
|
||||||
//#include "IEDispatcher.h"
|
|
||||||
|
|
||||||
void IEBrowser::Boop(char* test)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
IEBrowser::IEBrowser(HWND attachHWnd) {
|
|
||||||
MSG messages;
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(hwnd, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
hwnd = attachHWnd;
|
|
||||||
spDocument = 0;
|
|
||||||
webBrowser = 0;
|
|
||||||
SendMessage(hwnd,AX_INPLACE,1,0);
|
|
||||||
SendMessage(hwnd,AX_QUERYINTERFACE,(WPARAM)&IID_IWebBrowser2,(LPARAM)&webBrowser);
|
|
||||||
}
|
|
||||||
|
|
||||||
IEBrowser::~IEBrowser(void) {
|
|
||||||
if (webBrowser)
|
|
||||||
{
|
|
||||||
webBrowser->Release();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Something goes here
|
|
||||||
int IEBrowser::setExternal(IDispatch** ext)
|
|
||||||
{
|
|
||||||
std::cout << &m_IEDispatcher;
|
|
||||||
IInternetHostSecurityManager* spSecMan;
|
|
||||||
spDocument2->QueryInterface(IID_IInternetHostSecurityManager,
|
|
||||||
(void **) &spSecMan);
|
|
||||||
|
|
||||||
// TODO: hr needs to say: 'S_OK'
|
|
||||||
//spSecMan->QueryCustomPolicy
|
|
||||||
HRESULT hr = spSecMan->ProcessUrlAction(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY,
|
|
||||||
NULL, 0, NULL, 0, 0, PUAF_WARN_IF_DENIED);
|
|
||||||
|
|
||||||
(*ext) = &m_IEDispatcher;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IEBrowser::navigateSyncURL(wchar_t* url)
|
|
||||||
{
|
|
||||||
MSG messages;
|
|
||||||
if (webBrowser)
|
|
||||||
{
|
|
||||||
webBrowser->Navigate(url,0,0,0,0);
|
|
||||||
for (int i=1;i<1000;i++)
|
|
||||||
{
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(hwnd, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Sleep(30);
|
|
||||||
|
|
||||||
HRESULT hresult = webBrowser->get_Document(&spDocument);
|
|
||||||
if (SUCCEEDED(hresult) && (spDocument != 0))
|
|
||||||
{
|
|
||||||
|
|
||||||
IOleObject* spOleObject;
|
|
||||||
if (SUCCEEDED(spDocument->QueryInterface(IID_IOleObject,(void**)&spOleObject)))
|
|
||||||
{
|
|
||||||
IOleClientSite* spClientSite;
|
|
||||||
hresult = spOleObject->GetClientSite(&spClientSite);
|
|
||||||
if (SUCCEEDED(hresult) && spClientSite)
|
|
||||||
{
|
|
||||||
m_spDefaultDocHostUIHandler = spClientSite;
|
|
||||||
ICustomDoc* spCustomDoc;
|
|
||||||
|
|
||||||
//IEDispatcher* spIEDispatcher;
|
|
||||||
if (SUCCEEDED(m_spDefaultDocHostUIHandler->QueryInterface(IID_IDocHostUIHandler,(void**)&m_spHandler)))
|
|
||||||
{
|
|
||||||
if (SUCCEEDED(spDocument->QueryInterface(IID_ICustomDoc,(void**)&spCustomDoc)))
|
|
||||||
{
|
|
||||||
spCustomDoc->SetUIHandler(m_spHandler);
|
|
||||||
m_spHandler->GetExternal(&m_spExternal);
|
|
||||||
spDocument->QueryInterface(IID_IHTMLDocument2, (void **) &spDocument2);
|
|
||||||
setExternal(&m_spExternal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox(NULL,"Cannot read IWebBrowser2...",(g_PlaceholderName+" Crash").c_str(),MB_OK);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
25
IEBrowser.h
@@ -1,25 +0,0 @@
|
|||||||
//#include "WindowFunctions.h"
|
|
||||||
#pragma once
|
|
||||||
#include <mshtml.h>
|
|
||||||
#include <exdisp.h>
|
|
||||||
#include <Mshtmhst.h>
|
|
||||||
#include "IEDispatcher.h"
|
|
||||||
|
|
||||||
class IEBrowser {
|
|
||||||
public:
|
|
||||||
IEBrowser(HWND attachHWnd);
|
|
||||||
~IEBrowser(void);
|
|
||||||
bool navigateSyncURL(wchar_t* url);
|
|
||||||
void Boop(char* test);
|
|
||||||
private:
|
|
||||||
IWebBrowser2* webBrowser;
|
|
||||||
HWND hwnd;
|
|
||||||
IDispatch* spDocument;
|
|
||||||
IHTMLDocument* spDocument2;
|
|
||||||
IDocHostUIHandler* m_spHandler;
|
|
||||||
IDispatch* m_spExternal;
|
|
||||||
IDispatch* m_newExternal;
|
|
||||||
IEDispatcher m_IEDispatcher;
|
|
||||||
IOleClientSite* m_spDefaultDocHostUIHandler;
|
|
||||||
int setExternal(IDispatch** ext);
|
|
||||||
};
|
|
||||||
BIN
Installer/Redist/vcredist_x64.exe
Normal file
BIN
Installer/Redist/vcredist_x86 - Copy.exe
Normal file
BIN
Installer/Redist/vcredist_x86.exe
Normal file
48
Installer/install_script.iss
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
;InnoSetupVersion=5.4.3
|
||||||
|
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppName=Blocks3D
|
||||||
|
AppVersion=v{#AppVer}
|
||||||
|
AppId={{4C5DF268-0208-4CDE-A7F0-65F7E2CB5067}
|
||||||
|
AppPublisherURL=http://blocks3d.com/
|
||||||
|
AppSupportURL=http://blocks3d.com/
|
||||||
|
AppUpdatesURL=http://blocks3d.com/
|
||||||
|
DefaultDirName={%localappdata}\Blocks3D
|
||||||
|
OutputBaseFilename=Blocks3D_Setup_v{#AppVer}
|
||||||
|
Compression=lzma2
|
||||||
|
PrivilegesRequired=lowest
|
||||||
|
WizardImageFile=setup.bmp
|
||||||
|
DefaultGroupName=Blocks3D
|
||||||
|
|
||||||
|
|
||||||
|
[UninstallDelete]
|
||||||
|
Type: filesandordirs; Name: "{app}"
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "Redist\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
;Source: "Redist\vcredist_x64.exe"; DestDir: "{tmp}"; Check: "IsWin64"; Flags: ignoreversion
|
||||||
|
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||||
|
Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||||
|
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||||
|
|
||||||
|
[Registry]
|
||||||
|
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
Filename: "{tmp}\vcredist_x86.exe"; Parameters: "/q"; Tasks: instvc;
|
||||||
|
;Filename: "{tmp}\vcredist_x64.exe"; Parameters: "/q"; Tasks: instvc; Check: "IsWin64";
|
||||||
|
Filename: "iexplore.exe"; Parameters: "http://www.blocks3d.com/FirstInstall"; Description: Start playing Blocks3D; Flags: shellexec postinstall nowait skipifsilent
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Name: "{group}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
Name: "{group}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
|
||||||
|
Name: "{userdesktop}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
Name: "{userdesktop}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: desktopicon
|
||||||
|
|
||||||
|
[Tasks]
|
||||||
|
Name: "instvc"; Description: "Install Visual C++ Redistributable 2005 SP1 (Requires elevated permissions)";
|
||||||
|
Name: "desktopicon"; Description: "Create Desktop Icons";
|
||||||
|
Name: "startscut"; Description: "Create Start Menu Icons";
|
||||||
|
|
||||||
51
Installer/install_script_floppy.iss
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
;InnoSetupVersion=5.4.3
|
||||||
|
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppName=Blocks3D
|
||||||
|
AppVersion=v{#AppVer}
|
||||||
|
AppId={{4C5DF268-0208-4CDE-A7F0-65F7E2CB5067}
|
||||||
|
AppPublisherURL=http://blocks3d.com/
|
||||||
|
AppSupportURL=http://blocks3d.com/
|
||||||
|
AppUpdatesURL=http://blocks3d.com/
|
||||||
|
DefaultDirName={%localappdata}\Blocks3D
|
||||||
|
OutputBaseFilename=B3DSTP
|
||||||
|
Compression=lzma2
|
||||||
|
PrivilegesRequired=lowest
|
||||||
|
WizardImageFile=setup.bmp
|
||||||
|
DefaultGroupName=Blocks3D
|
||||||
|
DiskSpanning=yes
|
||||||
|
SlicesPerDisk=1
|
||||||
|
DiskSliceSize=1457664
|
||||||
|
|
||||||
|
|
||||||
|
[UninstallDelete]
|
||||||
|
Type: filesandordirs; Name: "{app}"
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "Redist\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
;Source: "Redist\vcredist_x64.exe"; DestDir: "{tmp}"; Check: "IsWin64"; Flags: ignoreversion
|
||||||
|
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||||
|
Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||||
|
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||||
|
|
||||||
|
[Registry]
|
||||||
|
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
Filename: "{tmp}\vcredist_x86.exe"; Parameters: "/q"; Tasks: instvc;
|
||||||
|
;Filename: "{tmp}\vcredist_x64.exe"; Parameters: "/q"; Tasks: instvc; Check: "IsWin64";
|
||||||
|
Filename: "iexplore.exe"; Parameters: "http://www.blocks3d.com/FirstInstall"; Description: Start playing Blocks3D; Flags: shellexec postinstall nowait skipifsilent
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Name: "{group}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
Name: "{group}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
|
||||||
|
Name: "{userdesktop}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||||
|
Name: "{userdesktop}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: desktopicon
|
||||||
|
|
||||||
|
[Tasks]
|
||||||
|
Name: "instvc"; Description: "Install Visual C++ Redistributable 2005 SP1 (Requires elevated permissions)";
|
||||||
|
Name: "desktopicon"; Description: "Create Desktop Icons";
|
||||||
|
Name: "startscut"; Description: "Create Start Menu Icons";
|
||||||
|
|
||||||
BIN
Installer/setup.bmp
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
Installer/setup.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
@@ -1,73 +0,0 @@
|
|||||||
#include "LevelInstance.h"
|
|
||||||
|
|
||||||
LevelInstance::LevelInstance(void)
|
|
||||||
{
|
|
||||||
Instance::Instance();
|
|
||||||
name = "Level";
|
|
||||||
winMessage = "You Won!";
|
|
||||||
loseMessage = "You Lost. Try Again";
|
|
||||||
timer = 60.0F;
|
|
||||||
score = 0;
|
|
||||||
canDelete = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
LevelInstance::~LevelInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char timerTxt[12];
|
|
||||||
char scoreTxt[12];
|
|
||||||
std::vector<PROPGRIDITEM> LevelInstance::getProperties()
|
|
||||||
{
|
|
||||||
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
properties.push_back(createPGI("Messages",
|
|
||||||
"WinMessage",
|
|
||||||
"The message that shows when the player wins.",
|
|
||||||
(LPARAM)winMessage.c_str(),
|
|
||||||
PIT_EDIT));
|
|
||||||
properties.push_back(createPGI("Messages",
|
|
||||||
"LoseMessage",
|
|
||||||
"The message that shows when the player loses.",
|
|
||||||
(LPARAM)loseMessage.c_str(),
|
|
||||||
PIT_EDIT));
|
|
||||||
|
|
||||||
|
|
||||||
sprintf_s(timerTxt, "%g", timer);
|
|
||||||
sprintf_s(scoreTxt, "%d", score);
|
|
||||||
properties.push_back(createPGI("Gameplay",
|
|
||||||
"InitialTimerValue",
|
|
||||||
"The ammount of time in seconds the player has to complete this level.\r\n\r\nPut 0 if time is limitless.",
|
|
||||||
(LPARAM)timerTxt,
|
|
||||||
PIT_EDIT));
|
|
||||||
properties.push_back(createPGI("Gameplay",
|
|
||||||
"InitialScoreValue",
|
|
||||||
"The ammount of points the player starts with.",
|
|
||||||
(LPARAM)scoreTxt,
|
|
||||||
PIT_EDIT));
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
void LevelInstance::PropUpdate(LPPROPGRIDITEM &pItem)
|
|
||||||
{
|
|
||||||
if(strcmp(pItem->lpszPropName, "InitialTimerValue") == 0)
|
|
||||||
{
|
|
||||||
timer = atoi((LPSTR)pItem->lpCurValue);
|
|
||||||
}
|
|
||||||
if(strcmp(pItem->lpszPropName, "InitialScoreValue") == 0)
|
|
||||||
{
|
|
||||||
score = atof((LPSTR)pItem->lpCurValue);
|
|
||||||
}
|
|
||||||
if(strcmp(pItem->lpszPropName, "LoseMessage") == 0)
|
|
||||||
{
|
|
||||||
loseMessage = (LPSTR)pItem->lpCurValue;
|
|
||||||
}
|
|
||||||
if(strcmp(pItem->lpszPropName, "WinMessage") == 0)
|
|
||||||
{
|
|
||||||
winMessage = (LPSTR)pItem->lpCurValue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Instance::PropUpdate(pItem);
|
|
||||||
}
|
|
||||||
6
ODE Copyright.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Open Dynamics Engine
|
||||||
|
|
||||||
|
Copyright (c) 2001-2004,
|
||||||
|
Russell L. Smith.
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#include "PVInstance.h"
|
|
||||||
|
|
||||||
PVInstance::PVInstance(void)
|
|
||||||
{
|
|
||||||
Instance::Instance();
|
|
||||||
nameShown = false;
|
|
||||||
className = "PVInstance";
|
|
||||||
listicon = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
PVInstance::PVInstance(const PVInstance &oinst)
|
|
||||||
{
|
|
||||||
Instance::Instance(oinst);
|
|
||||||
}
|
|
||||||
|
|
||||||
PVInstance::~PVInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void PVInstance::postRender(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<PROPGRIDITEM> PVInstance::getProperties()
|
|
||||||
{
|
|
||||||
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
|
|
||||||
properties.push_back(createPGI(
|
|
||||||
"Item",
|
|
||||||
"NameShown",
|
|
||||||
"This chooses whether the item name is shown",
|
|
||||||
nameShown,
|
|
||||||
PIT_CHECK));
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
void PVInstance::PropUpdate(LPPROPGRIDITEM &pItem)
|
|
||||||
{
|
|
||||||
if(strcmp(pItem->lpszPropName, "NameShown") == 0)
|
|
||||||
{
|
|
||||||
nameShown = (bool)pItem->lpCurValue;
|
|
||||||
}
|
|
||||||
else Instance::PropUpdate(pItem);
|
|
||||||
}
|
|
||||||
15
PVInstance.h
@@ -1,15 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "instance.h"
|
|
||||||
|
|
||||||
class PVInstance :
|
|
||||||
public Instance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
PVInstance(void);
|
|
||||||
~PVInstance(void);
|
|
||||||
PVInstance(const PVInstance &oinst);
|
|
||||||
virtual void postRender(RenderDevice* rd);
|
|
||||||
virtual std::vector<PROPGRIDITEM> getProperties();
|
|
||||||
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
|
||||||
bool nameShown;
|
|
||||||
};
|
|
||||||
1158
PartInstance.cpp
6473
Physics Test/1524_doll_7place_9-26-3007.rbxl
Normal file
155680
Physics Test/1622_arkitects_place_3-24-2006.rbxl
Normal file
67987
Physics Test/1792_drummerdude952s_place_7-8-2006.rbxl
Normal file
74058
Physics Test/2006_Pirate_Ship.rbxl
Normal file
588
Physics Test/Cylinder.rbxl
Normal file
@@ -0,0 +1,588 @@
|
|||||||
|
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
||||||
|
<External>null</External>
|
||||||
|
<External>nil</External>
|
||||||
|
<Item class="Workspace" referent="RBX0">
|
||||||
|
<Properties>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
<Item class="Camera" referent="RBX1">
|
||||||
|
<Properties>
|
||||||
|
<Ref name="CameraSubject">null</Ref>
|
||||||
|
<token name="CameraType">0</token>
|
||||||
|
<CoordinateFrame name="CoordinateFrame">
|
||||||
|
<X>-2.9603548</X>
|
||||||
|
<Y>115.389259</Y>
|
||||||
|
<Z>44.9416084</Z>
|
||||||
|
<R00>0.112786211</R00>
|
||||||
|
<R01>0.522245169</R01>
|
||||||
|
<R02>-0.845304191</R02>
|
||||||
|
<R10>-2.22539209e-009</R10>
|
||||||
|
<R11>0.850732446</R11>
|
||||||
|
<R12>0.525598884</R12>
|
||||||
|
<R20>0.993619263</R20>
|
||||||
|
<R21>-0.0592803061</R21>
|
||||||
|
<R22>0.0959508941</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<CoordinateFrame name="Focus">
|
||||||
|
<X>13.9457293</X>
|
||||||
|
<Y>104.877281</Y>
|
||||||
|
<Z>43.0225906</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX2">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">21</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>87.0174942</X>
|
||||||
|
<Y>48.0466728</Y>
|
||||||
|
<Z>25.0001202</Z>
|
||||||
|
<R00>-0.969314575</R00>
|
||||||
|
<R01>0.245822206</R01>
|
||||||
|
<R02>4.6762093e-006</R02>
|
||||||
|
<R10>0.245822206</R10>
|
||||||
|
<R11>0.969314933</R11>
|
||||||
|
<R12>6.9744442e-007</R12>
|
||||||
|
<R20>-4.35209677e-006</R20>
|
||||||
|
<R21>1.87532066e-006</R21>
|
||||||
|
<R22>-0.999999642</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">2</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>6</X>
|
||||||
|
<Y>6</Y>
|
||||||
|
<Z>6</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX3">
|
||||||
|
<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">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>108.911415</X>
|
||||||
|
<Y>38.7803154</Y>
|
||||||
|
<Z>27.5002155</Z>
|
||||||
|
<R00>-0.969314575</R00>
|
||||||
|
<R01>0.245822206</R01>
|
||||||
|
<R02>4.6762093e-006</R02>
|
||||||
|
<R10>0.245822206</R10>
|
||||||
|
<R11>0.969314933</R11>
|
||||||
|
<R12>6.9744442e-007</R12>
|
||||||
|
<R20>-4.35209677e-006</R20>
|
||||||
|
<R21>1.87532066e-006</R21>
|
||||||
|
<R22>-0.999999642</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>53</X>
|
||||||
|
<Y>1.20000005</Y>
|
||||||
|
<Z>1</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX4">
|
||||||
|
<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">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>141.499893</X>
|
||||||
|
<Y>38.1177788</Y>
|
||||||
|
<Z>27.0499611</Z>
|
||||||
|
<R00>1</R00>
|
||||||
|
<R01>-1.07914104e-006</R01>
|
||||||
|
<R02>-4.49890285e-006</R02>
|
||||||
|
<R10>-5.98966139e-008</R10>
|
||||||
|
<R11>0.969315231</R11>
|
||||||
|
<R12>-0.245820925</R12>
|
||||||
|
<R20>4.6261307e-006</R20>
|
||||||
|
<R21>0.245820925</R21>
|
||||||
|
<R22>0.969315231</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>1</X>
|
||||||
|
<Y>16.8000011</Y>
|
||||||
|
<Z>12</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX5">
|
||||||
|
<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">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>108.911438</X>
|
||||||
|
<Y>38.7803192</Y>
|
||||||
|
<Z>22.5002174</Z>
|
||||||
|
<R00>-0.969314575</R00>
|
||||||
|
<R01>0.245822206</R01>
|
||||||
|
<R02>4.6762093e-006</R02>
|
||||||
|
<R10>0.245822206</R10>
|
||||||
|
<R11>0.969314933</R11>
|
||||||
|
<R12>6.9744442e-007</R12>
|
||||||
|
<R20>-4.35209677e-006</R20>
|
||||||
|
<R21>1.87532066e-006</R21>
|
||||||
|
<R22>-0.999999642</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>53</X>
|
||||||
|
<Y>1.20000005</Y>
|
||||||
|
<Z>1</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX6">
|
||||||
|
<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">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>140.499786</X>
|
||||||
|
<Y>24.7802944</Y>
|
||||||
|
<Z>47.911438</Z>
|
||||||
|
<R00>4.35209677e-006</R00>
|
||||||
|
<R01>-1.87532066e-006</R01>
|
||||||
|
<R02>0.999999642</R02>
|
||||||
|
<R10>0.245822206</R10>
|
||||||
|
<R11>0.969314933</R11>
|
||||||
|
<R12>6.9744442e-007</R12>
|
||||||
|
<R20>-0.969314575</R20>
|
||||||
|
<R21>0.245822206</R21>
|
||||||
|
<R22>4.6762093e-006</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>53</X>
|
||||||
|
<Y>1.20000005</Y>
|
||||||
|
<Z>1</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX7">
|
||||||
|
<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">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>135.499786</X>
|
||||||
|
<Y>24.7802944</Y>
|
||||||
|
<Z>47.9114227</Z>
|
||||||
|
<R00>4.35515585e-006</R00>
|
||||||
|
<R01>-1.85873387e-006</R01>
|
||||||
|
<R02>0.999999881</R02>
|
||||||
|
<R10>0.245822236</R10>
|
||||||
|
<R11>0.969314933</R11>
|
||||||
|
<R12>7.14274279e-007</R12>
|
||||||
|
<R20>-0.969314814</R20>
|
||||||
|
<R21>0.245822236</R21>
|
||||||
|
<R22>4.67732343e-006</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<bool name="CanCollide">true</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>53</X>
|
||||||
|
<Y>1.20000005</Y>
|
||||||
|
<Z>1</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
</Item>
|
||||||
|
<Item class="RunService" referent="RBX8">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Run Service</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX9</External>
|
||||||
|
<External>RBX10</External>
|
||||||
|
<Item class="Players" referent="RBX11">
|
||||||
|
<Properties>
|
||||||
|
<int name="MaxPlayers">12</int>
|
||||||
|
<string name="Name">Players</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="StarterPack" referent="RBX12">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">StarterPack</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="SoundService" referent="RBX13">
|
||||||
|
<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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
<External>RBX14</External>
|
||||||
|
<External>RBX15</External>
|
||||||
|
<External>RBX16</External>
|
||||||
|
<External>RBX17</External>
|
||||||
|
<External>RBX18</External>
|
||||||
|
<External>RBX19</External>
|
||||||
|
<External>RBX20</External>
|
||||||
|
<External>RBX21</External>
|
||||||
|
<External>RBX22</External>
|
||||||
|
<External>RBX23</External>
|
||||||
|
<External>RBX24</External>
|
||||||
|
<External>RBX25</External>
|
||||||
|
<External>RBX26</External>
|
||||||
|
<External>RBX27</External>
|
||||||
|
</Item>
|
||||||
|
<Item class="ContentProvider" referent="RBX28">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Instance</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="PhysicsService" referent="RBX29">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">PhysicsService</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX30</External>
|
||||||
|
<Item class="Selection" referent="RBX31">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Selection</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX32</External>
|
||||||
|
<Item class="Lighting" referent="RBX33">
|
||||||
|
<Properties>
|
||||||
|
<Color3 name="Ambient">4286940549</Color3>
|
||||||
|
<float name="Brightness">1</float>
|
||||||
|
<Color3 name="ColorShift_Bottom">4278190080</Color3>
|
||||||
|
<Color3 name="ColorShift_Top">4278190080</Color3>
|
||||||
|
<float name="GeographicLatitude">41.7332993</float>
|
||||||
|
<string name="Name">Lighting</string>
|
||||||
|
<Color3 name="ShadowColor">4290295997</Color3>
|
||||||
|
<string name="TimeOfDay">14:00:00</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="ControllerService" referent="RBX34">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Instance</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="ChangeHistoryService" referent="RBX35">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">ChangeHistoryService</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX36</External>
|
||||||
|
</roblox>
|
||||||
586202
Physics Test/Roblox HQ.rbxl
Normal file
20133
Physics Test/phys-test-room-collapse.rbxl
Normal file
49308
Physics Test/phys-test-tower-collapse.rbxl
Normal file
41924
Physics Test/phys-test-tower-stable.rbxl
Normal file
578
Physics Test/phys_test_004.rbxl
Normal file
@@ -0,0 +1,578 @@
|
|||||||
|
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
||||||
|
<External>null</External>
|
||||||
|
<External>nil</External>
|
||||||
|
<Item class="RunService">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Run Service</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Selection">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Selection</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Workspace">
|
||||||
|
<Properties>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<Ref name="CurrentCamera">RBX0</Ref>
|
||||||
|
<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">RBX1</Ref>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
<Item class="Camera" referent="RBX0">
|
||||||
|
<Properties>
|
||||||
|
<Ref name="CameraSubject">null</Ref>
|
||||||
|
<token name="CameraType">0</token>
|
||||||
|
<CoordinateFrame name="CoordinateFrame">
|
||||||
|
<X>202.42688</X>
|
||||||
|
<Y>55.4607582</Y>
|
||||||
|
<Z>3.2956109</Z>
|
||||||
|
<R00>0.0106770508</R00>
|
||||||
|
<R01>0.00328579429</R01>
|
||||||
|
<R02>0.999937654</R02>
|
||||||
|
<R10>4.65661287e-010</R10>
|
||||||
|
<R11>0.999994576</R11>
|
||||||
|
<R12>-0.00328598148</R12>
|
||||||
|
<R20>-0.999943018</R20>
|
||||||
|
<R21>3.50852497e-005</R21>
|
||||||
|
<R22>0.010676994</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<CoordinateFrame name="Focus">
|
||||||
|
<X>182.428116</X>
|
||||||
|
<Y>55.5264778</Y>
|
||||||
|
<Z>3.08207107</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX1">
|
||||||
|
<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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">37</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>2.79999995</Y>
|
||||||
|
<Z>-4</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>64</X>
|
||||||
|
<Y>1</Y>
|
||||||
|
<Z>248</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>78.3000031</Y>
|
||||||
|
<Z>-96</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>2</Y>
|
||||||
|
<Z>2</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>79.3000031</Y>
|
||||||
|
<Z>-62</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>4</X>
|
||||||
|
<Y>4</Y>
|
||||||
|
<Z>4</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>81.3000031</Y>
|
||||||
|
<Z>-25</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>8</X>
|
||||||
|
<Y>8</Y>
|
||||||
|
<Z>8</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>85.3000031</Y>
|
||||||
|
<Z>18</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>16</X>
|
||||||
|
<Y>16</Y>
|
||||||
|
<Z>16</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">0</token>
|
||||||
|
<token name="BottomSurfaceInput">0</token>
|
||||||
|
<int name="BrickColor">23</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>93.3000031</Y>
|
||||||
|
<Z>73</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>
|
||||||
|
<bool name="CastsShadows">false</bool>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="Cullable">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Part</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">0</token>
|
||||||
|
<token name="TopSurfaceInput">0</token>
|
||||||
|
<float name="Transparency">0</float>
|
||||||
|
<Vector3 name="Velocity">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0</Y>
|
||||||
|
<Z>0</Z>
|
||||||
|
</Vector3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>32</X>
|
||||||
|
<Y>32</Y>
|
||||||
|
<Z>32</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
</Item>
|
||||||
|
<External>RBX2</External>
|
||||||
|
<External>RBX3</External>
|
||||||
|
<Item class="Players">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Players</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<int name="maxPlayers">10</int>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="StarterPack">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">StarterPack</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="SoundService">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">SoundService</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<float name="distancefactor">10</float>
|
||||||
|
<float name="dopplerscale">1</float>
|
||||||
|
<float name="rolloffscale">1</float>
|
||||||
|
</Properties>
|
||||||
|
<External>RBX4</External>
|
||||||
|
<External>RBX5</External>
|
||||||
|
<External>RBX6</External>
|
||||||
|
<External>RBX7</External>
|
||||||
|
<External>RBX8</External>
|
||||||
|
<External>RBX9</External>
|
||||||
|
<External>RBX10</External>
|
||||||
|
<External>RBX11</External>
|
||||||
|
<External>RBX12</External>
|
||||||
|
<External>RBX13</External>
|
||||||
|
<External>RBX14</External>
|
||||||
|
<External>RBX15</External>
|
||||||
|
<External>RBX16</External>
|
||||||
|
<External>RBX17</External>
|
||||||
|
</Item>
|
||||||
|
<Item class="Lighting">
|
||||||
|
<Properties>
|
||||||
|
<Color3 name="BottomAmbientV9">4286220152</Color3>
|
||||||
|
<Color3 name="ClearColor">4278190080</Color3>
|
||||||
|
<string name="Name">Lighting</string>
|
||||||
|
<Color3 name="SpotLightV9">4290822336</Color3>
|
||||||
|
<string name="TimeOfDay">14:00:00</string>
|
||||||
|
<Color3 name="TopAmbientV9">4292006362</Color3>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="ControllerService">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Instance</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX18</External>
|
||||||
|
<External>RBX19</External>
|
||||||
|
<External>RBX20</External>
|
||||||
|
</roblox>
|
||||||
23888
Physics Test/phys_test_005.rbxl
Normal file
660
Physics Test/phys_test_stable.rbxl
Normal file
@@ -0,0 +1,660 @@
|
|||||||
|
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
||||||
|
<External>null</External>
|
||||||
|
<External>nil</External>
|
||||||
|
<Item class="Workspace" referent="RBX0">
|
||||||
|
<Properties>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
<Item class="Camera" referent="RBX1">
|
||||||
|
<Properties>
|
||||||
|
<Ref name="CameraSubject">null</Ref>
|
||||||
|
<token name="CameraType">0</token>
|
||||||
|
<CoordinateFrame name="CoordinateFrame">
|
||||||
|
<X>-62.3436203</X>
|
||||||
|
<Y>290.964996</Y>
|
||||||
|
<Z>130.047195</Z>
|
||||||
|
<R00>0.900759101</R00>
|
||||||
|
<R01>0.385544956</R01>
|
||||||
|
<R02>-0.199970409</R02>
|
||||||
|
<R10>3.07713033e-009</R10>
|
||||||
|
<R11>0.460422784</R11>
|
||||||
|
<R12>0.887699783</R12>
|
||||||
|
<R20>0.434319079</R20>
|
||||||
|
<R21>-0.799603641</R21>
|
||||||
|
<R22>0.414730012</R22>
|
||||||
|
</CoordinateFrame>
|
||||||
|
<CoordinateFrame name="Focus">
|
||||||
|
<X>-58.3442116</X>
|
||||||
|
<Y>273.210999</Y>
|
||||||
|
<Z>121.752594</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" 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">37</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>0</X>
|
||||||
|
<Y>0.600000024</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">1</token>
|
||||||
|
<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>
|
||||||
|
<string name="Name">Baseplate</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>512</X>
|
||||||
|
<Y>1.20000005</Y>
|
||||||
|
<Z>512</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX3">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>-2</X>
|
||||||
|
<Y>5.69999981</Y>
|
||||||
|
<Z>1</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>9</Y>
|
||||||
|
<Z>2</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX4">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>6</X>
|
||||||
|
<Y>5.69999981</Y>
|
||||||
|
<Z>1</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>9</Y>
|
||||||
|
<Z>2</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX5">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>6</X>
|
||||||
|
<Y>5.69999981</Y>
|
||||||
|
<Z>-7</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>9</Y>
|
||||||
|
<Z>2</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX6">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>-2</X>
|
||||||
|
<Y>5.69999981</Y>
|
||||||
|
<Z>-7</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>9</Y>
|
||||||
|
<Z>2</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX7">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>11.1999998</Y>
|
||||||
|
<Z>-3</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>10</X>
|
||||||
|
<Y>2</Y>
|
||||||
|
<Z>10</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="Part" referent="RBX8">
|
||||||
|
<Properties>
|
||||||
|
<bool name="Anchored">false</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">28</int>
|
||||||
|
<CoordinateFrame name="CFrame">
|
||||||
|
<X>2</X>
|
||||||
|
<Y>13.1999998</Y>
|
||||||
|
<Z>-3</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>
|
||||||
|
<token name="Controller">0</token>
|
||||||
|
<bool name="ControllerFlagShown">true</bool>
|
||||||
|
<bool name="DraggingV1">false</bool>
|
||||||
|
<float name="Elasticity">0.5</float>
|
||||||
|
<token name="FormFactor">0</token>
|
||||||
|
<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">false</bool>
|
||||||
|
<string name="Name">Smooth Block Model</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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
<token name="shape">1</token>
|
||||||
|
<Vector3 name="size">
|
||||||
|
<X>6</X>
|
||||||
|
<Y>2</Y>
|
||||||
|
<Z>6</Z>
|
||||||
|
</Vector3>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
</Item>
|
||||||
|
<Item class="RunService" referent="RBX9">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Run Service</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX10</External>
|
||||||
|
<External>RBX11</External>
|
||||||
|
<Item class="Players" referent="RBX12">
|
||||||
|
<Properties>
|
||||||
|
<int name="MaxPlayers">12</int>
|
||||||
|
<string name="Name">Players</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="StarterPack" referent="RBX13">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">StarterPack</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="SoundService" referent="RBX14">
|
||||||
|
<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>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
<External>RBX15</External>
|
||||||
|
<External>RBX16</External>
|
||||||
|
<External>RBX17</External>
|
||||||
|
<External>RBX18</External>
|
||||||
|
<External>RBX19</External>
|
||||||
|
<External>RBX20</External>
|
||||||
|
<External>RBX21</External>
|
||||||
|
<External>RBX22</External>
|
||||||
|
<External>RBX23</External>
|
||||||
|
<External>RBX24</External>
|
||||||
|
<External>RBX25</External>
|
||||||
|
<External>RBX26</External>
|
||||||
|
<External>RBX27</External>
|
||||||
|
<External>RBX28</External>
|
||||||
|
</Item>
|
||||||
|
<Item class="ContentProvider" referent="RBX29">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Instance</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="PhysicsService" referent="RBX30">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">PhysicsService</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX31</External>
|
||||||
|
<Item class="Selection" referent="RBX32">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Selection</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX33</External>
|
||||||
|
<Item class="Lighting" referent="RBX34">
|
||||||
|
<Properties>
|
||||||
|
<Color3 name="Ambient">4286611584</Color3>
|
||||||
|
<float name="Brightness">1</float>
|
||||||
|
<Color3 name="ColorShift_Bottom">4278190080</Color3>
|
||||||
|
<Color3 name="ColorShift_Top">4278190080</Color3>
|
||||||
|
<float name="GeographicLatitude">41.7332993</float>
|
||||||
|
<string name="Name">Lighting</string>
|
||||||
|
<Color3 name="ShadowColor">4289967032</Color3>
|
||||||
|
<string name="TimeOfDay">14:00:00</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="ControllerService" referent="RBX35">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">Instance</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<Item class="ChangeHistoryService" referent="RBX36">
|
||||||
|
<Properties>
|
||||||
|
<string name="Name">ChangeHistoryService</string>
|
||||||
|
<bool name="archivable">true</bool>
|
||||||
|
</Properties>
|
||||||
|
</Item>
|
||||||
|
<External>RBX37</External>
|
||||||
|
</roblox>
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include "ShapeRenderer.h"
|
|
||||||
|
|
||||||
ShapeRenderer::ShapeRenderer(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ShapeRenderer::~ShapeRenderer(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
56
ThumbnailGeneratorInstance.cpp
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#include "DataModelV2/ThumbnailGeneratorInstance.h"
|
||||||
|
#include "Application.h"
|
||||||
|
#include "Globals.h"
|
||||||
|
#include "base64.h"
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
ThumbnailGeneratorInstance::ThumbnailGeneratorInstance(void)
|
||||||
|
{
|
||||||
|
Instance::Instance();
|
||||||
|
name = "ThumbnailGenerator";
|
||||||
|
className = "ThumbnailGenerator";
|
||||||
|
canDelete = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ThumbnailGeneratorInstance::~ThumbnailGeneratorInstance(void) {}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO:
|
||||||
|
* Move functions like toggleSky into their own "Lighting" instance
|
||||||
|
* Make this headless, and allow for resolutions greater than the screen resolution
|
||||||
|
*/
|
||||||
|
std::string ThumbnailGeneratorInstance::click(std::string fileType, int cx, int cy, bool hideSky)
|
||||||
|
{
|
||||||
|
if(!G3D::GImage::supportedFormat(fileType)) {
|
||||||
|
printf("%s is not a valid fileType.", fileType);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderDevice* rd = g_usableApp->getRenderDevice();
|
||||||
|
GuiRootInstance* guiRoot = g_dataModel->getGuiRoot();
|
||||||
|
const G3D::GImage::Format format = G3D::GImage::stringToFormat(fileType);
|
||||||
|
|
||||||
|
int prevWidth = rd->width();
|
||||||
|
int prevHeight = rd->height();
|
||||||
|
G3D::GImage imgBuffer(cx, cy, 4);
|
||||||
|
G3D::BinaryOutput binOut;
|
||||||
|
|
||||||
|
guiRoot->hideGui(true);
|
||||||
|
g_usableApp->resize3DView(cx, cy);
|
||||||
|
|
||||||
|
if(hideSky)
|
||||||
|
g_dataModel->getLighting()->suppressSky(true);
|
||||||
|
|
||||||
|
g_usableApp->onGraphics(rd);
|
||||||
|
rd->screenshotPic(imgBuffer, true, hideSky);
|
||||||
|
imgBuffer.encode(format, binOut);
|
||||||
|
|
||||||
|
// Convert to Base64 string
|
||||||
|
std::string base64ImgStr = base64_encode(reinterpret_cast<const unsigned char*>(binOut.getCArray()), binOut.length(), false);
|
||||||
|
|
||||||
|
guiRoot->hideGui(false);
|
||||||
|
g_usableApp->resize3DView(prevWidth, prevHeight);
|
||||||
|
|
||||||
|
return base64ImgStr;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#include "WorkspaceInstance.h"
|
|
||||||
|
|
||||||
|
|
||||||
WorkspaceInstance::WorkspaceInstance(void)
|
|
||||||
{
|
|
||||||
GroupInstance::GroupInstance();
|
|
||||||
name = "Workspace";
|
|
||||||
className = "Workspace";
|
|
||||||
canDelete = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
WorkspaceInstance::~WorkspaceInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
BIN
content/images/BumpTool.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
content/images/BumpTool_dn.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
content/images/Clone.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
content/images/GameTool.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
content/images/GlueTool.png
Normal file
|
After Width: | Height: | Size: 950 B |
BIN
content/images/GlueTool_dn.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
content/images/Grab.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
content/images/Hammer.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
content/images/Laser.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
content/images/RightMotorFastTool.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
content/images/RightMotorFastTool_dn.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
content/images/RightMotorTool.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
content/images/RightMotorTool_dn.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
content/images/Rocket.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
content/images/Slingshot.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
content/images/SmoothTool.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
content/images/SmoothTool_dn.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
122
content/page/color.html
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
<html>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
img{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.container
|
||||||
|
{
|
||||||
|
height: 47px;
|
||||||
|
width: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.color
|
||||||
|
{
|
||||||
|
border-style: inset;
|
||||||
|
border-width: 2px;
|
||||||
|
width:16px;
|
||||||
|
height:16px;
|
||||||
|
font-size: 0;
|
||||||
|
|
||||||
|
display:inline-block;
|
||||||
|
*display:inline;
|
||||||
|
*zoom:1;
|
||||||
|
}
|
||||||
|
#currentcolor
|
||||||
|
{
|
||||||
|
width; 80%;
|
||||||
|
height: 80%;
|
||||||
|
border-style: inset;
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
.colorPicker
|
||||||
|
{
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
var currentcolor = "white"; //This will be queried from the application later
|
||||||
|
function setColor(btn)
|
||||||
|
{
|
||||||
|
var color = btn.style.backgroundColor;
|
||||||
|
var clInt = parseInt(color.replace("#","0x"));
|
||||||
|
document.getElementById("currentcolor").style.backgroundColor = color;
|
||||||
|
window.external.SetColor(clInt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function decimalColorToHTMLcolor(number) {
|
||||||
|
//Found at https://bytes.com/topic/javascript/insights/636088-function-convert-decimal-color-number-into-html-hex-color-string
|
||||||
|
var intnumber = number - 0;
|
||||||
|
var red, green, blue;
|
||||||
|
var template = "#000000";
|
||||||
|
red = (intnumber&0x0000ff) << 16;
|
||||||
|
green = intnumber&0x00ff00;
|
||||||
|
blue = (intnumber&0xff0000) >>> 16;
|
||||||
|
intnumber = red|green|blue;
|
||||||
|
var HTMLcolor = intnumber.toString(16);
|
||||||
|
HTMLcolor = template.substring(0,7 - HTMLcolor.length) + HTMLcolor;
|
||||||
|
return HTMLcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
function hex2decInt(hex)
|
||||||
|
{
|
||||||
|
return parseInt(hex, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
function queryColor()
|
||||||
|
{
|
||||||
|
var color = window.external.ChooseColor();
|
||||||
|
if(color != null)
|
||||||
|
{
|
||||||
|
color = decimalColorToHTMLcolor(color);
|
||||||
|
document.getElementById("currentcolor").style.backgroundColor = color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body style="background-color: ButtonFace; margin: 0; padding: 5px; overflow: hidden; border: outset 2px;">
|
||||||
|
<table height="100%">
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #000000"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #808080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #800000"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #808000"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #008000"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #008080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #000080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #800080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #808040"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #004040"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #0080FF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #004080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #8000FF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #804000"></div><br>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FFFFFF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #C0C0C0"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FF0000"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FFFF00"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #00FF00"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #00FFFF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #0000FF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FF00FF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FFFF80"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #00FF80"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #80FFFF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #8080FF"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FF0080"></div>
|
||||||
|
<div class="color" onclick="setColor(this)" style="background-color: #FF8040"></div>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<button onclick="queryColor();" class='colorPicker'>
|
||||||
|
<div id='currentcolor' style="background-color:white;">
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
21
content/page/controller.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<html>
|
||||||
|
<script>
|
||||||
|
function toolOvr(image)
|
||||||
|
{
|
||||||
|
if(image.src.indexOf("_dn.png") == -1)
|
||||||
|
image.src = image.src.replace(".png", "_dn.png");
|
||||||
|
}
|
||||||
|
function toolOut(image)
|
||||||
|
{
|
||||||
|
if(image.src.indexOf("_dn.png") != -1)
|
||||||
|
image.src = image.src.replace("_dn.png",".png");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body style="background-color: ButtonFace; margin: 0; padding: 5px; overflow: hidden; border: outset 2px;">
|
||||||
|
<img src="../images/Controller1Tool.png" onclick="window.external.SetController(1)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/Controller2Tool.png" onclick="window.external.SetController(2)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/ControllerAI1Tool.png" onclick="window.external.SetController(5)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/ControllerAI2Tool.png" onclick="window.external.SetController(6)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/ControllerNoneTool.png" onclick="window.external.SetController(0)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
47
content/page/hopper.html
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<html>
|
||||||
|
<script>
|
||||||
|
function toolOvr(image)
|
||||||
|
{
|
||||||
|
image.style.backgroundColor = "#cccccc";
|
||||||
|
}
|
||||||
|
function toolOut(image)
|
||||||
|
{
|
||||||
|
|
||||||
|
image.style.backgroundColor = "transparent";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
img{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.container
|
||||||
|
{
|
||||||
|
height: 47px;
|
||||||
|
width: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body style="background-color: ButtonFace; margin: 0; padding: 5px; overflow: hidden; border: outset 2px;">
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(0)">
|
||||||
|
<img src="../images/GameTool.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(1)">
|
||||||
|
<img src="../images/Grab.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(2)">
|
||||||
|
<img src="../images/Clone.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(3)">
|
||||||
|
<img src="../images/Hammer.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(4)">
|
||||||
|
<img src="../images/Slingshot.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(5)">
|
||||||
|
<img src="../images/Rocket.png" />
|
||||||
|
</span>
|
||||||
|
<span class="container" onmousedown="toolOvr(this)" onmouseup="toolOut(this)" onmouseout="toolOut(this)" onclick="window.external.ToggleHopperBin(6)">
|
||||||
|
<img src="../images/Laser.png" />
|
||||||
|
</span>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
23
content/page/surface.html
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<html>
|
||||||
|
<script>
|
||||||
|
function toolOvr(image)
|
||||||
|
{
|
||||||
|
if(image.src.indexOf("_dn.png") == -1)
|
||||||
|
image.src = image.src.replace(".png", "_dn.png");
|
||||||
|
}
|
||||||
|
function toolOut(image)
|
||||||
|
{
|
||||||
|
if(image.src.indexOf("_dn.png") != -1)
|
||||||
|
image.src = image.src.replace("_dn.png",".png");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body style="background-color: ButtonFace; margin: 0; padding: 5px; overflow: hidden; border: outset 2px;">
|
||||||
|
<img src="../images/FlatTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(0, 0)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/BumpTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(1, 0)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/HingeTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(2, 0)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/LeftMotorTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(3, 1)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/LeftMotorFastTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(3, 2)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/RightMotorTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(3, 3)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
<img src="../images/RightMotorFastTool.png" onmouseout="toolOut(this)" onclick="window.external.SetSurface(3, 4)" onmousedown="toolOvr(this)" onmouseup="toolOut(this)"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
content/sounds/bass.wav
Normal file
BIN
content/sounds/collide.wav
Normal file
BIN
content/sounds/glassbreak.wav
Normal file
BIN
content/sounds/snap.wav
Normal file
BIN
content/sounds/splat.wav
Normal file
BIN
content/sounds/swoosh.wav
Normal file
BIN
content/sounds/victory.wav
Normal file
BIN
ode-0.6.zip
Normal file
|
Before Width: | Height: | Size: 576 B After Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 637 B After Width: | Height: | Size: 637 B |
BIN
oldcontent/font/lighttrek.fnt
Normal file
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
oldcontent/images/ArrowFarCursor.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 628 B After Width: | Height: | Size: 628 B |
|
Before Width: | Height: | Size: 595 B After Width: | Height: | Size: 595 B |
|
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 665 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |