431 Commits

Author SHA1 Message Date
NT_x86
e365f3ed6c Open new place crash workaround
Reloads jointsservice on place open
2023-03-31 14:31:34 +03:00
NT_x86
998a22a43f Improved snap solver
Uses ODE collision detection instead
2023-03-29 21:00:15 +03:00
NT_x86
abb1f76c71 Joint solver basic implementation (axis aligned)
Does not handle rotation at all. solveWorkspaceSnaps is called in the debug game creation (Application.cpp)
Added isA to instance class
2023-03-28 21:05:08 +03:00
NT_x86
85e84bfdf3 Fix the crashing issue when closing Blocks3d
Physics engine now destroys JointsService on destructor
2023-03-27 20:16:17 +03:00
NT_x86
f7a76511a8 Improved snap deletion and added remove function to instance class
The current issue is that sometimes after deleting a snap and closing the game it throws an access violation (race condition?)
2023-03-27 12:06:57 +03:00
NT_x86
9cee74baf4 Initial JointsService and Snap implementation
This is incomplete and some issues need to be fixed
2023-03-26 18:51:11 +03:00
Vulpovile
0b8847cd8e Merge pull request #113 from Vulpovile/feature/draggers
Added dragger tool base, removed useless stuff
2022-10-15 22:00:16 -07:00
Vulpovile
4ec70e6ee7 Removed unwanted file 2022-10-15 21:59:51 -07:00
FlareMicrosystems
c6699b5112 ??? 2022-10-15 21:58:48 -07:00
FlareMicrosystems
48b90b1a93 Removed surfaces from code 2022-10-15 21:54:50 -07:00
FlareMicrosystems
c70d39fb25 Moved currently unnecessary files 2022-10-15 21:44:52 -07:00
FlareMicrosystems
1b34573b06 Remove 64 bit redist from installer 2022-10-15 20:13:18 -07:00
FlareMicrosystems
649a1aaa06 Cleanup 2022-10-15 20:10:13 -07:00
FlareMicrosystems
6b8ca28060 Add floppy disk setup generation 2022-10-15 19:37:06 -07:00
FlareMicrosystems
dc7f7f3cc5 Update versioning 2022-10-15 19:36:55 -07:00
FlareMicrosystems
575f5dab46 Added dragger tool, removed useless stuff 2022-10-15 16:43:06 -07:00
Vulpovile
efbc832321 Merge pull request #111 from Vulpovile/modnark
Modnark
2022-10-14 08:24:53 -07:00
Modnark
2471abb8dd Merge branch 'develop' into modnark 2022-10-12 13:51:21 -04:00
Modnark
57db5511bd Merge pull request #110 from pinksub/develop
Mouse.cpp is very confusing
2022-10-12 13:50:49 -04:00
Modnark
0ac516618a Add LightingInstance
Still need to work on PropertyGrid for it
2022-10-12 13:47:39 -04:00
Modnark
8916797e55 Merge branch 'develop' into modnark 2022-10-11 22:39:59 -04:00
Modnark
2dc7f3e667 solve merge conflict 2022-10-11 22:38:34 -04:00
Modnark
d32b0ea4e4 Add more sounds internally 2022-10-11 22:34:36 -04:00
Modnark
af5c31d5d0 Add dynamic_cast for playSound
makes it so developers don't need to dynamic_cast any time they want to play sound
2022-10-11 21:28:19 -04:00
Modnark
9df862f72e Add required sounds 2022-10-11 21:27:42 -04:00
Modnark
d269b360ce SoundService & SoundInstance
Basic implementation. More work needs to be done.
2022-10-11 21:16:14 -04:00
pinksub
d2dd05b620 Update Mouse.cpp 2022-10-11 13:58:38 -04:00
pinksub
9d62380df9 cleanup mouse.cpp code a bit more 2022-10-11 13:58:21 -04:00
pinksub
8f3d12c516 Stud snapping is confusing
Anything divided by 1 and anything multiplied by 1 is itself. Not sure if that was intentional,
2022-10-11 13:54:55 -04:00
Modnark
d2f3e718a7 Very basic implementation of OnTouch 2022-10-11 10:03:04 -04:00
Modnark
adade066cc Start OnTouch 2022-10-10 20:01:30 -04:00
Modnark
7e9f34e1ac handle some errors in ThumbnailGenerator 2022-10-10 18:47:49 -04:00
Modnark
5e74564956 Add listener for View button 2022-10-10 18:41:46 -04:00
Modnark
04823f5911 Add listeners for all menu buttons 2022-10-10 18:41:29 -04:00
Vulpovile
e62d3ab49c Merge pull request #109 from thecssdoom/patch-1
Name shown fix
2022-10-09 19:29:27 -07:00
thecssdoom
fb5d6495dc Update Application.cpp 2022-10-09 22:06:55 -03:00
thecssdoom
5078b849b0 Update PartInstance.cpp 2022-10-09 22:06:01 -03:00
thecssdoom
20e772f932 Update PartInstance.h 2022-10-09 22:05:09 -03:00
thecssdoom
00e61d4f17 Update Instance.cpp 2022-10-09 22:04:38 -03:00
thecssdoom
fe55127129 add rendername 2022-10-09 22:01:36 -03:00
Modnark
e8dbf50df9 Merge pull request #108 from Vulpovile/modnark
Modnark
2022-10-09 06:01:41 -04:00
Modnark
6ee7d76859 Undo FSAA changes
also removed some useless comment.
2022-10-08 21:11:35 -04:00
Modnark
8a2b7f6308 Merge branch 'modnark' of https://github.com/Vulpovile/Blocks3D into modnark 2022-10-08 21:05:10 -04:00
Modnark
415ea71664 Clean bloat comments
Please make sure these were bloat and not important.
2022-10-08 21:05:09 -04:00
Modnark
eefb981993 stupid thing you're in gitignore 2022-10-08 19:32:17 -04:00
Modnark
9f741e0df7 Base64 Output 2022-10-08 19:29:17 -04:00
Modnark
e2d75ae4d4 merge develop with my branch 2022-10-07 17:19:23 -04:00
Modnark
52c2f114a5 Merge branch 'develop' into modnark 2022-10-07 17:15:13 -04:00
Modnark
7f8cdc0f33 minor fixes for branch 2022-10-07 17:12:51 -04:00
Vulpovile
36153c293b Merge pull request #105 from Vulpovile/bugfix-negativetimer
Fix the timer going into the negatives when the game is running slowly
2022-10-07 10:47:09 -07:00
NT_x86
a63aa52108 Increment patch version number 2022-10-07 16:32:07 +03:00
NT_x86
d25f4a6ba2 Fix the timer going into the negatives when the game is running slowly 2022-10-07 12:10:24 +03:00
Vulpovile
b7ed5bd832 Merge pull request #104 from Vulpovile/master
sync: master to develop
2022-10-06 21:40:20 -07:00
Vulpovile
5251b98ec4 Merge pull request #103 from Vulpovile/bugfix-property-grid
Various Bugfixes
2022-10-06 21:38:21 -07:00
MusicalProgrammer
b6dfd62b4c Increment APP_PATCH instead 2022-10-06 22:10:25 -04:00
MusicalProgrammer
17f08a59ce Increment Versioning 2022-10-06 22:04:57 -04:00
MusicalProgrammer
1a0949f2e8 Fix: PropertyGrid crash when you resize it after it resets 2022-10-06 21:36:12 -04:00
Modnark
7a89ddd94e hide gui with thumbnail generation 2022-10-06 18:08:58 -04:00
MusicalProgrammer
b21d140d6f Merge pull request #102 from Vulpovile/dragging_improvements
Disable physics of dragged selected parts
2022-10-06 17:46:27 -04:00
MusicalProgrammer
083d94f811 Bugfix: Dragging physics happens for one frame. 2022-10-06 16:48:54 -04:00
MusicalProgrammer
c9db28a3a3 Disable physics of dragged selected parts 2022-10-06 16:37:18 -04:00
Vulpovile
b202337c81 Merge pull request #101 from Vulpovile/master
sync: master to develop
2022-10-06 12:18:15 -07:00
Vulpovile
db435a17ac Merge pull request #100 from Vulpovile/release/0.0.107.0
Release 0.0.107.0
2022-10-06 12:13:55 -07:00
Vulpovile
b6615ce5fe Remove snapshot preparing for release 2022-10-06 12:03:28 -07:00
Vulpovile
2052ed6379 Merge pull request #99 from Vulpovile/feature/physics_improvements_and_optimizations
Made physics sync velocity
2022-10-06 12:00:42 -07:00
Vulpovile
edf8e09936 Merge branch 'develop' into feature/physics_improvements_and_optimizations 2022-10-06 11:54:37 -07:00
Vulpovile
ecbbc7c8e8 Made physics sync velocity 2022-10-06 11:38:36 -07:00
Vulpovile
47e9516cc2 Merge pull request #98 from Vulpovile/feature/physics_improvements_and_optimizations
Feature/physics improvements and optimizations
2022-10-06 09:43:48 -07:00
Vulpovile
11b3c861d9 Add ODE libs as zip for now - Maybe unnecessary? 2022-10-06 09:34:30 -07:00
Modnark
c1118489e3 very basic ThumbnailGenerator 2022-10-06 12:18:35 -04:00
Modnark
71fda54338 Merge branch 'develop' into modnark 2022-10-06 12:18:11 -04:00
Vulpovile
aec7c33155 Merge branch 'develop' of github.com:Vulpovile/G3D-Fun into feature/physics_improvements_and_optimizations 2022-10-06 09:06:22 -07:00
Vulpovile
2f86192634 Merge pull request #97 from himdeez/develop
Improve dragging tool and fix some physics bugs
2022-10-06 09:06:07 -07:00
himdeez
36aba44b51 improve dragging 2022-10-06 18:52:26 +03:00
Vulpovile
41ab9cf18c Add physics test RBXLs 2022-10-06 06:47:57 -07:00
Vulpovile
4e4ad669da Update to ODE-0.6 to fix T-Posing Parts 2022-10-06 06:34:48 -07:00
himdeez
a1b25d115a Temporary physics bug fix (anchored parts not updating when moved) 2022-10-06 16:28:38 +03:00
Vulpovile
15dc340a10 Fix crashes 2022-10-06 06:15:05 -07:00
Vulpovile
b01f5765b1 Fixed removing anchored parts when sleeping 2022-10-05 20:51:01 -07:00
Vulpovile
530bcf2a74 Optimizations and Physics Improvements 2022-10-05 20:35:59 -07:00
Vulpovile
f587d1d6db Merge pull request #95 from Vulpovile/master
sync: master to develop
2022-10-05 20:34:42 -07:00
Vulpovile
2af7077a0a Merge pull request #94 from Vulpovile/bugfix/partcollison
Fix part collisions
2022-10-05 20:32:58 -07:00
Vulpovile
c2fe4b5c80 Merge pull request #93 from Vulpovile/feature/remove_assembly_identiy
Added versioning file, Removed assemblyIdentity
2022-10-05 19:54:34 -07:00
728e67e1a5 Fix part collisions 2022-10-05 22:53:54 -04:00
Vulpovile
3b2d01b8dc Seperated versioning into seperate file, added snapshot 2022-10-05 17:34:45 -07:00
Vulpovile
dc94873297 Remove assemblyIdentity from manifest as it's not useful 2022-10-05 16:46:04 -07:00
Vulpovile
c1e8d6cd23 Merge pull request #92 from Vulpovile/feature/physics_sleep
Physics improvement and optimization
2022-10-05 14:36:00 -07:00
Modnark
a456ee6196 Merge branch 'feature/physics_sleep' into modnark 2022-10-05 17:18:38 -04:00
Modnark
30ea19c5b0 change part fall height limit 2022-10-05 17:14:21 -04:00
Vulpovile
8a1cd0c248 Merge branch 'develop' of github.com:Vulpovile/G3D-Fun into feature/physics_sleep 2022-10-05 13:52:20 -07:00
Vulpovile
09ea4744fc Optimized 2022-10-05 13:52:03 -07:00
Vulpovile
d886c178b6 Merge pull request #91 from Vulpovile/master
Synchronize develop with master
2022-10-05 10:14:13 -07:00
8fa056e191 Merge pull request #88 from Vulpovile/bugfix/hopperbin-crash
Placeholder hopperbin fix
2022-10-05 13:08:55 -04:00
Vulpovile
72866a259d Merge pull request #89 from Vulpovile/feature/physics_sleep
Added physics sleep, fixed stack overflows
2022-10-05 08:47:07 -07:00
Vulpovile
7474bea895 Merge branch 'develop' into feature/physics_sleep 2022-10-05 08:44:07 -07:00
NT_x86
e8fac6148a Merge pull request #90 from Vulpovile/LevelService
Add functionality to level service
2022-10-05 18:42:01 +03:00
Vulpovile
c5f4f829b3 Now Roblox HQ can run! 2022-10-05 08:21:43 -07:00
Vulpovile
da759427fd Preallocated stack to reduce stack overflows 2022-10-05 08:12:15 -07:00
Vulpovile
79e8a9738e Added physics sleep, fixed stack overflows 2022-10-05 07:39:19 -07:00
NT_x86
27ac18b503 Separate each condition as separate functions 2022-10-05 17:25:35 +03:00
NT_x86
932de58185 Add unsaved comments 2022-10-05 13:19:05 +03:00
NT_x86
48e65358f4 Implement initial level service functionality 2022-10-05 13:13:54 +03:00
Vulpovile
69aacebbb2 Merge branch 'master' into bugfix/hopperbin-crash 2022-10-04 23:41:08 -07:00
791fa55767 PR update 2022-10-05 02:33:06 -04:00
3b83e527f8 Fix Hopper selection crash, add some placeholder enums, add a compaitiblity shim 2022-10-05 02:10:51 -04:00
Vulpovile
618a3eeec0 Merge pull request #87 from Vulpovile/master
sync: master to develop
2022-10-04 23:09:02 -07:00
Vulpovile
de53dcf6b0 Merge pull request #86 from Vulpovile/cleanup/remove_aps_from_repo
Remove  .aps file from repo
2022-10-04 23:08:08 -07:00
Vulpovile
8ef3bcd352 Merge pull request #85 from Vulpovile/master
sync: master to develop
2022-10-04 23:03:09 -07:00
Vulpovile
7adf511bf7 Remove APS files 2022-10-04 23:00:55 -07:00
NT_x86
72cdf2af35 Merge pull request #84 from Vulpovile/NT_x86
Minor optimization in createBody
2022-10-05 08:59:37 +03:00
NT_x86
d9a0e1e120 Increment patch number 2022-10-05 08:49:56 +03:00
NT_x86
90a1a1b325 Merge branch 'master' of https://github.com/Vulpovile/Blocks3D.git into NT_x86 2022-10-05 07:42:24 +03:00
NT_x86
984bea6136 Run GetSize and GetPosition only once in CreateBody function 2022-10-05 07:34:49 +03:00
Vulpovile
083cb38e81 Merge pull request #83 from Vulpovile/master
sync: master to develop
2022-10-04 13:44:26 -07:00
Vulpovile
6d65cd2a56 Merge pull request #82 from Vulpovile/feature/workflows
Add workflow to sync to develop
2022-10-04 13:42:18 -07:00
Vulpovile
223364907f Add workflow to sync to develop 2022-10-04 13:13:15 -07:00
Vulpovile
d96bcd2a2b Merge pull request #78 from Vulpovile/bugfix/fix-broken-delete
Fix broken delete
2022-10-03 22:27:00 -07:00
Vulpovile
6de83febb5 Fix prefix 2022-10-03 22:26:09 -07:00
Vulpovile
aaceb4eb21 Version bump 2022-10-03 22:16:30 -07:00
Vulpovile
e1716e7417 Merge pull request #77 from Vulpovile/bugfix/fix-crash-on-void
Fix crash when bricks fall into void
2022-10-03 20:52:14 -07:00
Vulpovile
f5aaef5b16 Cleanup 2022-10-03 20:50:05 -07:00
Vulpovile
b66d524d7f Patch bump 2022-10-03 20:45:07 -07:00
Vulpovile
d468545428 Fix crash on falling into void 2022-10-03 20:44:23 -07:00
Vulpovile
1356ef52ab Merge pull request #76 from Vulpovile/feature/selection-service
Create a selection service
2022-10-03 20:16:05 -07:00
Vulpovile
67a5d99e1d Removed unused variable 2022-10-03 20:13:54 -07:00
Vulpovile
31db4dc894 Made innosetup version automatic 2022-10-03 20:00:22 -07:00
Vulpovile
50a5fd3ce1 Add program info 2022-10-03 19:48:45 -07:00
Vulpovile
a02a367a6e Fixed typo 2022-10-03 19:44:25 -07:00
Vulpovile
33a898e359 Made camera only move when application has focus 2022-10-03 19:43:35 -07:00
Vulpovile
f46e24d8f1 Moved selection to be a service 2022-10-03 19:30:38 -07:00
Vulpovile
b2db375ecf Merge pull request #75 from Vulpovile/bugfix/tie_phys_to_fps
Patch increment
2022-10-03 17:25:26 -07:00
Vulpovile
9039fbe862 Patch increment 2022-10-03 17:23:36 -07:00
DirtPiper
145e5c3340 Merge pull request #74 from Vulpovile/bugfix/tie_phys_to_fps
Tie physics to FPS
2022-10-03 20:23:24 -04:00
Vulpovile
ad741b86e5 Updated gitignore to not ignore manifest 2022-10-03 17:20:33 -07:00
Vulpovile
a04c178ed4 Made crash dialog not override AVE on debug 2022-10-03 17:19:30 -07:00
Vulpovile
584154d676 Add untracked manifest 2022-10-03 13:35:34 -07:00
Vulpovile
6e2c135b47 Tied physics to FPS 2022-10-03 11:26:56 -07:00
Vulpovile
e8ecb14f64 Merge pull request #61 from Vulpovile/feature/bugfix_properties_duplicate
Fix Bugs
2022-10-03 08:15:25 -07:00
Vulpovile
ad29d96068 Fix manifest file 2022-10-03 07:57:11 -07:00
Vulpovile
43647086fb Fix duplication crash 2022-10-03 07:48:28 -07:00
Vulpovile
eb07d852db Add Manifest 2022-10-03 07:46:09 -07:00
Vulpovile
7f5ab0df7f Fixed selection crashing when brick is removed due to physics 2022-10-03 07:42:24 -07:00
Vulpovile
3d31421164 Add required ODE library to build
To be removed once a separate repo is made for this (ODE/G3D)
2022-10-02 21:17:27 -07:00
Vulpovile
7b6cab626e Increment minor in setup again 2022-10-02 20:59:32 -07:00
Vulpovile
736a63e89f Increment minor in setup 2022-10-02 20:55:36 -07:00
Vulpovile
a74d485d1c Increment minor 2022-10-02 20:54:03 -07:00
DirtPiper
b7f276f849 Merge pull request #56 from Vulpovile/physics-test
Initial Physics Implementation
2022-10-02 23:44:51 -04:00
Vulpovile
e0be70f5e6 Last physics iteration for this one 2022-10-02 20:17:07 -07:00
Vulpovile
4ff212f2f3 Improved Physics again 2022-10-02 18:05:40 -07:00
Vulpovile
af8823c508 Improved Physics 2022-10-02 17:56:50 -07:00
Vulpovile
c27aa6a114 Fixed models crashing game 2022-10-02 17:17:40 -07:00
Vulpovile
df77572fe7 Made anchoring togglable in play mode 2022-10-02 16:44:59 -07:00
Vulpovile
8c47024960 a 2022-10-02 16:20:35 -07:00
Vulpovile
16a7b893e4 Merge branch 'master' of github.com:Vulpovile/G3D-Fun into physics-test 2022-10-02 16:12:01 -07:00
4a38f077a3 Merge pull request #55 from Vulpovile/FileDropDown
Added Switch Statement for File menu
2022-10-02 16:11:43 -07:00
Vulpovile
e17aa16086 Made physics work 2022-10-02 15:54:38 -07:00
Vulpovile
316359a395 Made physics let you move stuff 2022-10-02 14:28:45 -07:00
Vulpovile
226f2adda4 Made XplicitNgine secret instance of DataModel 2022-10-02 11:24:05 -07:00
FlareMicrosystems
d3f9b74ba1 Made cylinders and spheres act as spheres 2022-10-01 23:12:55 -07:00
FlareMicrosystems
ce999d226d Fixed icons 2022-10-01 22:03:54 -07:00
032e2ae668 Added Switch Statement for File menu 2022-10-02 01:00:44 -04:00
FlareMicrosystems
bc9a5bfc72 Added rotation 2022-10-01 19:30:57 -07:00
Modnark
8e73755d80 anchoring
Anchoring kinda works now
2022-10-01 21:13:40 -04:00
Modnark
2f3cb43807 init 2022-10-01 17:32:48 -04:00
Vulpovile
550962f1e6 Merge pull request #54 from Vulpovile/DataModelV2
Data model v2
2022-09-30 15:24:44 -07:00
FlareMicrosystems
c86fb57710 Removed Pro Requirement 2022-09-30 15:22:10 -07:00
Vulpovile
daacf6ae02 Icons 2021-08-17 13:28:59 -07:00
Vulpovile
066e955933 Added select all 2021-03-21 01:08:18 -07:00
Vulpovile
bba534be3c Fixes 2021-03-20 21:58:41 -07:00
Vulpovile
e473d0eb7e Removed old icon, made Dialogs.rc correct 2021-03-20 21:50:14 -07:00
Vulpovile
aab26d2e35 Finally got VS2005 to shut the hell up 2021-03-20 21:38:44 -07:00
Vulpovile
b9305d1fb9 Replaced resource.h because the old one was a disaster 2021-03-20 21:25:54 -07:00
Vulpovile
f9c4700e7d Removed redefinition from resources.h.
We should take a look at that file because it is insane
2021-03-20 21:14:11 -07:00
Vulpovile
239f7b8fa8 Tried to add VS2003 support... 2021-03-18 23:22:37 -07:00
Vulpovile
7ea74a3980 Removed yet another block of outdated render code, fixed unSetMode 2021-03-17 02:10:38 -07:00
unknown
3de82eb64d Fixed visual bugs, added stud snapping
Hope I've done this properly. Stud snapping is primitive and needs work done.
2021-03-16 13:24:47 -04:00
Vulpovile
d03e78a648 Made changing CFrame not require whole part re-rendering 2021-03-16 02:14:49 -07:00
Vulpovile
b361039f88 Deleted DataModelV1.1, made BaseGuiInstance, fixed delete ear rape 2021-03-16 02:10:57 -07:00
Vulpovile
2af1be327a New icon given by modnark 2021-03-15 16:24:38 -07:00
Vulpovile
79ce0b491f Made surface not crash, made surface release only on motor 2021-03-15 10:32:47 -07:00
Vulpovile
bfcb3f83ab Added surface selector, made faces reflect G3D faces 2021-03-15 10:12:45 -07:00
Vulpovile
0e3968acd4 Added surface tool 2021-03-15 01:53:25 -07:00
Vulpovile
c27a56b42f Fixed group 2021-03-15 00:34:24 -07:00
Vulpovile
d3dc479ec0 Removed incorrect mouse 2021-03-15 00:27:46 -07:00
Vulpovile
ca8fc41228 Finished surfaces 2021-03-14 18:34:31 -07:00
Vulpovile
049ef1a8d7 Moved renderer files 2021-03-14 14:13:21 -07:00
Vulpovile
02dfa34d15 Fixed model/place load causing memory leak 2021-03-14 13:45:18 -07:00
Vulpovile
816a67a40b Tried to fix clearing children but failed miserably 2021-03-14 13:43:12 -07:00
Vulpovile
2a6d90ad66 Cleaned up partinstance.h, moved CFrame to PVInstance 2021-03-13 22:18:25 -08:00
Vulpovile
3963dd5286 Removed legacy renderer, added cylinder pluses 2021-03-13 22:10:02 -08:00
Vulpovile
c472aa9411 Removed old renderer 2021-03-13 21:21:33 -08:00
Vulpovile
f0ac00a77b Renderer now stores vertices in GPU memory 2021-03-13 19:09:14 -08:00
Vulpovile
cdba7f6eee New render code 2021-03-13 19:07:15 -08:00
Vulpovile
8b4460c104 Adding properties 2021-03-10 21:32:58 -08:00
Vulpovile
7ca6b1e472 Added new redists, tried making PropertyGrid safer 2021-03-10 19:27:38 -08:00
Vulpovile
3935a7072e Made listeners use heap 2021-03-08 23:52:10 -08:00
Vulpovile
20afd874dc Add redist 2021-03-08 10:14:01 -08:00
Vulpovile
28b1cd6634 Starting DataModel V2 2021-03-07 23:57:53 -08:00
Vulpovile
9d95a5b891 Using DataModelV2 2021-03-07 21:25:31 -08:00
Vulpovile
a826d01b89 Merge branch 'master' into DataModelV2 2021-03-07 21:13:24 -08:00
Vulpovile
f668848ecb Removed DataModel V2 2021-03-07 21:12:26 -08:00
Vulpovile
776a0337b5 Added setup files 2021-03-07 21:10:03 -08:00
Vulpovile
d0f5c77024 Added installer generation files, removed UxTheme 2021-03-07 17:25:13 -08:00
Vulpovile
06e8ef4dae Test 2021-03-07 17:20:48 -08:00
Vulpovile
e2136671a3 Starting DataModel V2 2021-03-07 16:44:33 -08:00
Vulpovile
69be9dbb91 Sort of got menus working (not great design though) 2021-03-06 01:20:30 -08:00
Vulpovile
dd6cd509fa Corrected something 2021-03-06 01:04:34 -08:00
Vulpovile
2ba76bc9b7 Renamed G3D-Fun to Blocks3D 2021-03-05 22:23:40 -08:00
Vulpovile
84521dd124 Merge branch 'master' into DataModelV2 2021-03-05 19:31:13 -08:00
MusicalProgrammer
b7cb2d39ba Changed absolute paths to relative paths in project file. 2021-03-05 22:30:02 -05:00
Vulpovile
d2534616a2 Fixed my dumb mistake 2021-03-05 19:24:00 -08:00
Vulpovile
fe21cab8b0 hmm 2021-03-05 14:53:16 -08:00
Vulpovile
c99bcd64e4 Update Application.cpp 2021-03-05 08:24:56 -08:00
Vulpovile
8a6abac11f Merge pull request #46 from Vulpovile/datamodelv2
Must fix possible ACE insecurity before making DataModelV2
2021-03-05 08:10:47 -08:00
Vulpovile
f11bfa1536 Am lost 2021-03-05 01:22:44 -08:00
Vulpovile
f8dd5470da Edited pages 2021-03-05 00:43:07 -08:00
Vulpovile
788f8312f0 Fixed release 2021-03-04 23:45:23 -08:00
Vulpovile
89a6ea7124 Code cleanup 2021-03-04 23:02:08 -08:00
Vulpovile
f6c11373b4 Fixed accidental broken build 2021-03-04 22:59:59 -08:00
Vulpovile
1cc7f8fcb6 Refactor main, Fixed main getting taken out of gitignore for some reason 2021-03-04 22:59:28 -08:00
Vulpovile
67381618de Merge pull request #45 from Vulpovile/datamodelv2
Code refactor
2021-03-04 22:53:13 -08:00
Vulpovile
e044b606c1 Finished DataModel refactor 2021-03-04 22:50:11 -08:00
Vulpovile
299e22cf92 Refactor DataModel 2021-03-04 22:47:09 -08:00
Vulpovile
fa3e8909c8 DataModel refactor 2021-03-04 22:35:40 -08:00
Vulpovile
b14027c787 Listener refactor 2021-03-04 22:18:42 -08:00
Vulpovile
430837ccd6 Code refactor 2021-03-04 21:57:52 -08:00
Vulpovile
12843a0890 Code directory changes 2021-03-04 21:48:29 -08:00
Vulpovile
8bf27c6412 Merge pull request #44 from Vulpovile/tools-and-ui
Merge Tools and UI into master
2021-03-04 19:10:25 -08:00
Vulpovile
212cadac31 Merge branch 'master' into tools-and-ui 2021-03-04 19:09:26 -08:00
Vulpovile
fcfed4afcd Much more performant, new cylinder 2021-03-04 17:46:47 -08:00
Vulpovile
20c18c6f9b New lighting, new spheres 2021-03-04 13:07:04 -08:00
andreja6
c08254562f fixed teleporting drag 2020-03-16 21:11:28 -07:00
andreja6
0090c6c8a1 Added PartInstance->Collides function 2020-03-15 11:46:06 -07:00
andreja6
73a6b72c20 added getPositionAndPart 2020-03-14 18:56:49 -07:00
andreja6
5bdeac2f66 Removed comment 2020-03-14 17:59:56 -07:00
andreja6
24a4aed4f1 Made dragging slightly less horrific 2020-03-14 13:13:59 -07:00
andreja6
520e7f1bef Added (really horrible) dragging 2020-03-13 23:50:37 -07:00
andreja6
9217e78084 Attempted to make getPosition... 2020-03-13 23:13:58 -07:00
andreja6
bd8209958d New selection method, fixed crashing 2020-03-13 18:50:48 -07:00
andreja6
f08799d49c Fixed memory error 2020-03-13 18:06:55 -07:00
andreja6
24854a062a Added tools and texture handler 2020-03-13 16:28:12 -07:00
Vulpovile
3f4963795c Fixed exception 2020-03-13 10:42:30 -07:00
andreja6
cee1b1308c Added dependancies 2020-03-13 10:30:22 -07:00
andreja6
2494a5e509 Fixed 2020-03-13 10:08:40 -07:00
andreja6
9a8aff54ff Added change tool function 2020-03-13 10:08:03 -07:00
andreja6
0ec896e2fd Starting to transfer everything to Tool 2020-03-11 23:10:49 -07:00
andreja6
72c6d19d7f Menu now works 2020-03-10 13:26:01 -07:00
andreja6
30529c5387 Changed stuffs 2020-03-10 12:50:59 -07:00
andreja6
03a7d5345d Added tool, fixed some pages 2020-03-10 12:41:47 -07:00
Vulpovile
fb966e0b82 Merge pull request #40 from Vulpovile/hypersnap-engine
Added lots of tools
2020-03-10 12:15:55 -07:00
andreja6
463b2a42ce Added bump tool 2020-03-10 12:14:55 -07:00
andreja6
0e7e820481 Lots of menus added 2020-03-10 11:04:09 -07:00
andreja6
8003bee5f6 Made IEBrowser handle externals 2020-03-10 00:17:03 -07:00
andreja6
4f415cf98b Added controllerflag selection 2020-03-09 23:55:13 -07:00
andreja6
d36f9df272 Added pages 2020-03-09 18:58:08 -07:00
andreja6
36ec6b1dc5 Buttons no longer render twice 2020-03-09 14:48:24 -07:00
andreja6
7c85167030 Made selection boxes not succ 2020-03-09 13:22:46 -07:00
Vulpovile
cd7b886ada Merge pull request #39 from Vulpovile/master
Add new items in master
2020-03-09 13:16:23 -07:00
Vulpovile
a1db3bb38f Merge pull request #38 from Vulpovile/hypersnap-engine
Controllerflags
2020-03-09 12:02:49 -07:00
andreja6
44d8947975 Added controllers and flags 2020-03-08 23:22:42 -07:00
andreja6
9c76bf6956 Added controllerflags and primary parts 2020-03-08 20:06:13 -07:00
andreja6
4ff4d54f09 Physics kinda sorta? 2020-03-08 15:44:13 -07:00
andreja6
804e329516 Temporarily set it to legacy load 2020-03-08 14:29:37 -07:00
MusicalProgrammer
bf0115f2ad Cleaning up failed experiments 2020-03-07 18:32:54 -05:00
MusicalProgrammer
94b787804d External function support added. 2020-03-07 16:05:15 -05:00
MusicalProgrammer
47857e3fd1 ax.cpp has more functions now for us to play with 2020-03-07 12:57:30 -05:00
andreja6
f92f01be88 Added bare bones physics 2020-03-06 23:28:49 -08:00
andreja6
6fb111067d I hate the linker 2020-03-06 22:40:00 -08:00
andreja6
e419a4edcd Testing 2020-01-26 15:58:22 -08:00
andreja6
72dcc5ef8e Added a function (Not done) 2019-11-11 23:50:05 -08:00
andreja6
c9e79c2063 Made cylinder tops flatter 2019-11-11 16:05:31 -08:00
andreja6
3035478c77 fixed memory leak 2019-11-11 14:13:36 -08:00
andreja6
152b376c02 Multiselection and Models 2019-11-11 14:05:17 -08:00
DirtPiper
ef2a3bc146 completely fixed cylinder scaling
uwu
2019-11-11 16:15:38 -05:00
andreja6
d781627fff Fixed cylinder scaling 2019-11-11 11:53:35 -08:00
andreja6
02bb8b20fa Removed smoothing for now 2019-11-11 01:06:15 -08:00
andreja6
ec721abdcc Cylinders 2019-11-10 23:36:32 -08:00
andreja6
0269e63af9 Undid commit #1688865, Fixed smooth verticies 2019-11-10 20:16:11 -08:00
andreja6
8926860107 Added a library, tried to make IWebBrowser2 not fail 2019-11-10 20:11:22 -08:00
DirtPiper
da3cdf405e Can now use left control + O to bring up open dialog 2019-11-10 23:02:29 -05:00
DirtPiper
98f4246f17 File importer now supports shapes, camera pan is now locked to 45 degree increments
this was a massive pain in the ass :)
2019-11-10 22:59:08 -05:00
MusicalProgrammer
1f4147fd90 window.external progress? 2019-11-08 23:38:06 -05:00
andreja6
4c51383bce Moved some variables in datamodelinstance from public to private 2019-11-08 17:55:59 -08:00
Vulpovile
f965c82b58 Starting work on cylinder 2019-11-08 15:18:43 -08:00
andreja6
1688865462 slowly optimizing render 2019-11-07 22:30:56 -08:00
andreja6
f99e6cbff7 Turns out raycasting every 1/30th of a second takes a massive hit on performance 2019-11-07 21:52:46 -08:00
Cosmo224
4d13650c6d remove part type file 2019-11-07 21:33:38 +00:00
DirtPiper
913fc16657 removed parttype
ffsdf
2019-11-07 16:20:09 -05:00
andreja6
44c2928c6a Made spheres actual "spheres" 2019-11-07 10:59:03 -08:00
andreja6
7b87773abf Added shapes, found and fixed possible memory leak 2019-11-07 10:28:19 -08:00
Cosmo224
b2240a4ad0 Update copyright + more user friendly HWND failed message 2019-11-06 19:57:38 +00:00
andreja6
8848d37d0f Initialize propWindow with NULL first 2019-11-06 11:29:56 -08:00
andreja6
b8c23348ba ? 2019-11-06 11:21:47 -08:00
andreja6
782504278c Prop window null? 2019-11-06 11:08:37 -08:00
andreja6
a4ef9bbad1 Maybe rush condition? 2019-11-06 10:49:16 -08:00
andreja6
559dfea041 Works very, very well now 2019-11-05 23:10:32 -08:00
andreja6
01bc10f852 Attempted to make property window always on top... ineffective 2019-11-05 22:51:27 -08:00
andreja6
f9a1eea0d2 Made legacy renderer faster 2019-11-05 22:32:28 -08:00
MusicalProgrammer
5501b7a5d7 Fixed random level loading bug. 2019-11-05 22:06:35 -05:00
MusicalProgrammer
68ccf1be6e More file error handling. 2019-11-05 21:24:01 -05:00
MusicalProgrammer
6eed189855 Added an error message if a level fails to load. 2019-11-05 20:47:06 -05:00
andreja6
39173f34a1 Tried to make old renderer suck less 2019-11-05 13:19:11 -08:00
andreja6
55f3ff8964 Made it possible to switch between legacy renderer and new renderer in code 2019-11-05 13:14:24 -08:00
andreja6
bb01d01950 I didn't push that yet? 2019-11-04 21:21:49 -08:00
andreja6
22ed6acc7f Added FPS counter on debug 2019-11-04 21:09:38 -08:00
MusicalProgrammer
72057499ce Update .gitignore 2019-11-05 00:08:01 -05:00
MusicalProgrammer
2292a82a85 Update G3DTest.sln 2019-11-05 00:07:47 -05:00
MusicalProgrammer
aa11f5f120 GUI separated from Application.cpp 2019-11-04 23:57:31 -05:00
MusicalProgrammer
1fe59aa9ff Updated project file, deleted clone file 2019-11-04 20:55:35 -05:00
MusicalProgrammer
5e449d8882 Big cleanup... Expect bugs 2019-11-04 20:37:32 -05:00
Cosmo224
f1d0d48dfa add icon to some errors + replace old comments 2019-11-04 22:51:49 +00:00
andreja6
1e27e105b7 Show entire error when in debug mode 2019-11-03 23:50:55 -08:00
andreja6
476610fe06 Finally got rid of truncation errors 2019-11-03 23:46:43 -08:00
andreja6
7898df7a8e Changed icons, added Todo, fixed location of icons in properties combo box 2019-11-03 23:23:34 -08:00
Vulpovile
552be1ec54 Merge pull request #31 from Vulpovile/property-window
Property window fixes
2019-11-03 18:16:14 -08:00
MusicalProgrammer
6b3230abd0 Update PartInstance.cpp
NameShown fixed.
2019-11-02 22:12:35 -04:00
MusicalProgrammer
718bce5289 Camera properly focuses on Part again. 2019-11-02 21:20:23 -04:00
MusicalProgrammer
55f59e46e0 Explorer fixed, and renamed SetProperties()
SetProperties() doesn't describe what it actually does.
Changed to:
UpdateSelected()
2019-11-02 20:27:18 -04:00
andreja6
bc8742b5f5 Now has icons 2019-11-02 12:26:01 -07:00
MusicalProgrammer
08d8dc4df0 IEBrowser gets the external object. Nothing else. 2019-11-02 14:51:44 -04:00
DirtPiper
d8ba0dcfc8 Fixed level names on import 2019-11-02 14:02:01 -04:00
MusicalProgrammer
6be44fa9f1 Merge branch 'MusicalProgrammer'
Expect bugs
2019-10-26 18:07:45 -04:00
Vulpovile
284cd129e0 Added the licence, for some reason wasn't here 2019-06-12 08:41:45 +02:00
andreja6
fdc4f4e647 Something 2019-05-15 12:20:17 -07:00
andreja6
3417a34f37 Sped up rendering 2019-05-15 12:16:51 -07:00
Cosmo224
7f0b358f80 Create Documentation 2019-03-16 17:18:16 +00:00
Cosmo224
bf291d6fe3 I don't think we need comic sans {#2}
yeah.png
2019-03-16 17:03:26 +00:00
Cosmo224
3f6d032c10 I don't think we need comic sans 2019-03-16 17:03:07 +00:00
DirtPiper
d16bf9e39b Added Spawn to SurfaceType 2018-12-10 21:45:39 -05:00
andreja6
828584a2d9 Run on R 2018-12-03 14:37:39 -08:00
andreja6
69d78f139f Removed unsafe functions 2018-11-01 13:52:11 -07:00
andreja6
d51bde7330 Fixed unsafe function 2018-10-31 20:40:25 -07:00
MusicalProgrammer
d12654b4d3 Merge remote-tracking branch 'origin/Brickcolors' into MusicalProgrammer 2018-10-30 19:29:57 -04:00
MusicalProgrammer
5a20b4aefc Objects now clear on load. 2018-10-30 19:19:30 -04:00
MusicalProgrammer
08a3f9f307 Open now works by pressing CTRL+O 2018-10-30 19:14:17 -04:00
andreja6
77ce5c9a5a Brickcolors 2018-10-30 15:10:41 -07:00
andreja6
8a097f7eb1 Completely removed shadows 2018-10-30 13:31:57 -07:00
MusicalProgrammer
e9a13b8163 2005 Model works, but is mirrored 2018-10-30 16:10:24 -04:00
DirtPiper
78875d3b7e Update .gitignore 2018-10-29 15:55:59 -04:00
MusicalProgrammer
33a43c5072 Merge branch 'master' into MusicalProgrammer 2018-10-29 14:33:27 -04:00
MusicalProgrammer
f2347970c4 Updated vcproj 2018-10-28 21:03:16 -04:00
MusicalProgrammer
d0b0ffd7f1 Very unstable and broken XML loader added. 2018-10-28 21:00:34 -04:00
andreja6
ab242470b6 Added tilt and rotate to drag, made drag a bit cleaner 2018-10-27 21:14:24 -07:00
andreja6
03eceeae93 Merge pull request #27 from andreja6/Shadows
Dragging
2018-10-27 20:39:25 -07:00
andreja6
2919f4ebaa Disabled shadows 2018-10-27 20:38:33 -07:00
andreja6
1dd930af49 fixed crashing 2018-10-27 20:32:48 -07:00
andreja6
98e73cd7ca Kinda sorta works 2018-10-27 19:40:41 -07:00
MusicalProgrammer
057d86e05a Using new part dragging code... (Needs adjusting) 2018-10-27 19:32:28 -04:00
andreja6
89f9e0bfa2 Moving works-ish, fixed box selection 2018-10-27 11:21:09 -07:00
andreja6
61d07a8557 "Drag" 2018-10-27 09:00:39 -07:00
andreja6
948835df98 Shadows work (?) 2018-10-26 19:43:46 -07:00
andreja6
e83a67ade2 hm 2018-10-27 02:24:08 -07:00
MusicalProgrammer
6ec4ab466d RapidXML imported and ready to test 2018-10-26 18:09:36 -04:00
andreja6
f5f5f269d5 Fixed CoordinateFrame 2018-10-26 14:03:00 -07:00
andreja6
d492e438d2 Fixed camera a bit 2018-10-26 13:34:55 -07:00
andreja6
1700258001 Added dynamic cast to camera to prevent corrupted CFrame 2018-10-26 13:28:44 -07:00
andreja6
ff5b855e12 Fixed bevels going mentally insane on duplicate 2018-10-26 13:15:54 -07:00
DirtPiper
c9bb2ae72b Bevel fix
Made more accurate.
2018-10-25 22:33:45 -04:00
andreja6
5773584f48 made bevels a bit bigger 2018-10-25 19:01:14 -07:00
andreja6
7e2eb2c694 Parts with "ShowName" enabled now do what they are supposed to. Huzzah! 2018-10-25 18:56:00 -07:00
andreja6
f7d6781698 Fixed properties 2018-10-25 18:18:08 -07:00
andreja6
30a05af3b2 Added postrender 2018-10-25 18:16:39 -07:00
MusicalProgrammer
b1af53995a Parts now recolor properly again. 2018-10-25 20:51:15 -04:00
MusicalProgrammer
866d644c63 Manual merge... (Improved renderer, and added bevels.) 2018-10-25 20:29:38 -04:00
MusicalProgrammer
1108af7cf3 Bevels Added, and improved rendernig performance. 2018-10-25 20:10:14 -04:00
andreja6
7b4abe3efe Made properties "dynamically update", no longer simply says NO when object makes no sense 2018-10-25 15:43:45 -07:00
andreja6
5dd6ae7d9c Physixxxxx 2018-10-25 12:58:56 -07:00
andreja6
0566dd0217 Removed unneeded include 2018-10-25 11:50:40 -07:00
andreja6
99d5a1de38 Made parent selectable if exists 2018-10-25 10:06:52 -07:00
DirtPiper
5020de484c name fix for accuracy
hnnnnng dat accuracy boiii
2018-10-25 12:48:59 -04:00
andreja6
62208a14a5 Made LevelInstance (DataModel V1.1_01?) 2018-10-25 09:45:13 -07:00
andreja6
d7b491e073 Merge pull request #25 from andreja6/datamodel-v1.1
Datamodel v1.1
2018-10-24 20:50:09 -07:00
andreja6
c50d2a8166 Added basic shape stuff 2018-10-24 20:49:26 -07:00
andreja6
d2e0b29051 Changed icon 2018-10-24 20:34:14 -07:00
andreja6
4df67897dc Datamodel V1.1 2018-10-24 19:45:51 -07:00
andreja6
0f0be7f0b9 Attempted to fix dinging
On phone, can't test
2018-10-24 16:44:33 -07:00
andreja6
581f8a3413 made delete work 2018-10-24 15:14:24 -07:00
andreja6
0174605a3e Made mouse way less awkward 2018-10-24 14:40:46 -07:00
andreja6
edf1bc701b The closest i've gotten so far to images on the property grid 2018-10-24 14:14:38 -07:00
andreja6
69d55d0a5c Merge pull request #24 from andreja6/master
Request to merge master into MusicalProgrammer branch, to work on bevels.
2018-10-24 13:46:15 -07:00
andreja6
99ab8e1620 Fixed an oops 2018-10-24 13:44:50 -07:00
andreja6
ebe7ad682e Added MeasureItem case 2018-10-24 13:02:31 -07:00
andreja6
abe406990b Made properties explorer "work" and added bitmaps 2018-10-24 12:54:12 -07:00
andreja6
78c6dec932 Fixed 2018-10-24 11:19:17 -07:00
andreja6
2c65001536 Fixed crash on duplicate 2018-10-24 11:07:27 -07:00
andreja6
07a2eb4d98 Instances call constructor of base class 2018-10-24 11:02:13 -07:00
andreja6
ea072e424a Removed file that should not be here 2018-10-24 10:50:50 -07:00
andreja6
8b3da447a4 Prevented workspace duplication 2018-10-24 10:50:08 -07:00
andreja6
77615c5b8f Commented out code that produced warnings 2018-10-24 10:38:46 -07:00
andreja6
dc6c002250 Added some stuff to the Properties page 2018-10-24 10:20:05 -07:00
andreja6
70fba67b6e Made instances call parent function on properties, Deselecting everything opens Datamodel in the property grid
Instances now call the parent method after setting/getting properties,
Made delete no longer delete workspace
2018-10-24 09:55:49 -07:00
andreja6
1159be9b1b Fixed Color3 2018-10-24 05:47:21 -07:00
andreja6
6752c5da68 Added size 2018-10-23 21:38:53 -07:00
andreja6
77b7c3e62b Changed name to Color3 2018-10-23 21:33:17 -07:00
andreja6
7d7552d141 Added color3 2018-10-23 21:32:55 -07:00
andreja6
7f7e015706 Added new way of dealing with enums 2018-10-23 19:42:42 -07:00
MusicalProgrammer
ebbbbb3a69 Renamed selectedInstances to g_selectedInstances 2018-10-23 21:54:52 -04:00
MusicalProgrammer
b608a3ab9e PropertyGrid Selection Explorer Implemented 2018-10-23 21:43:29 -04:00
andreja6
ccf3ade099 Changed the way enums work 2018-10-23 17:42:15 -07:00
MusicalProgrammer
3c2ae53449 Added a ComboBox 2018-10-23 18:35:23 -04:00
andreja6
421498e1fe Made parts deselectable 2018-10-23 15:15:08 -07:00
andreja6
8909ded488 Made window show on double click 2018-10-23 15:09:08 -07:00
andreja6
5114ceb4b7 Removed navigate for now, made char work 2018-10-23 14:11:28 -07:00
andreja6
1472b7d6a5 Made it use addresses 2018-10-23 13:43:56 -07:00
andreja6
52d2cbf5dd Removed useless class, properties work 2018-10-23 13:42:10 -07:00
andreja6
e4529a949a Kinda sorta works 2018-10-23 12:46:54 -07:00
andreja6
6d1428ced9 Added properties to PhysicalInstance 2018-10-23 12:29:36 -07:00
MusicalProgrammer
0f700aeda5 Fixed PropertyWindow Procedure 2018-10-23 15:22:22 -04:00
DirtPiper
7273ee9ce0 struct removal and stopped parts from moving up 2018-10-23 14:00:28 -04:00
andreja6
1a7cd2e250 Failed at adding a struct, i may just use two vectors 2018-10-23 07:25:47 -07:00
andreja6
99f78be344 Added update property method 2018-10-23 06:52:06 -07:00
andreja6
ee528d1245 Changed how properties work 2018-10-23 06:49:41 -07:00
willemsteller
18b856602c Move duplicated part up 2018-10-23 09:52:45 +02:00
andreja6
0dcd054da3 Properties work 2018-10-22 22:59:41 -07:00
andreja6
268a0cd2ee Keep getting access violation exceptions 2018-10-22 22:01:46 -07:00
andreja6
c71dcb8a91 What 2018-10-22 21:05:50 -07:00
andreja6
24306c04ec Tried something, it kinda works 2018-10-22 21:04:21 -07:00
andreja6
b986815fcb Changed how properties work 2018-10-22 20:35:23 -07:00
andreja6
a70cc31d28 Class cleanup 2018-10-22 18:59:05 -07:00
andreja6
b097cb15e4 Added properties 2018-10-22 18:20:28 -07:00
andreja6
b18ebfb56f Merge branch 'master' of https://github.com/andreja6/G3D-Fun 2018-10-22 12:16:53 -07:00
andreja6
eade3d8e93 Fixed deselect on rotate 2018-10-22 12:16:50 -07:00
MusicalProgrammer
ccf440a65e _redraw(HWND) is now just _redraw() 2018-10-22 15:02:44 -04:00
DirtPiper
551a0e4b9e more propertygrid testing 2018-10-22 14:50:23 -04:00
DirtPiper
4afe95ae26 Merge branch 'master' of https://github.com/andreja6/G3D-Fun 2018-10-22 14:25:26 -04:00
DirtPiper
c6151b58e2 zip 2018-10-22 14:25:25 -04:00
andreja6
6f91ad5881 Added required H and CPP files to VCProj 2018-10-22 11:24:42 -07:00
MusicalProgrammer
09d9af492f PropertyGrid successfully implemented. 2018-10-22 14:19:51 -04:00
DirtPiper
bd37f8e22d tab 2018-10-22 14:00:31 -04:00
DirtPiper
c5485fbf55 Merge branch 'master' of https://github.com/andreja6/G3D-Fun 2018-10-22 13:07:07 -04:00
DirtPiper
f02272976a a bunch of nothing 2018-10-22 13:07:05 -04:00
250 changed files with 1041274 additions and 3123 deletions

25
.github/workflows/sync-develop.yml vendored Normal file
View 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'

14
.gitignore vendored
View File

@@ -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,3 +55,10 @@ G3DTest.suo
G3DTest.suo G3DTest.suo
stderr.txt stderr.txt
desktop.ini desktop.ini
*.db
#Redist
!Installer/Redist/*
UpgradeLog.htm
click_output.JPEG
click_output.PNG

View File

@@ -1,4 +0,0 @@
#ifndef ACTIONTYPE_H
#define ACTIONTYPE_H
static enum ActionType {Nothing, Pause, Lose, Draw, Win};
#endif

View File

@@ -1,4 +0,0 @@
#ifndef AFFECTTYPE_H
#define AFFECTTYPE_H
static enum AffectType {NoChange, Increase, Decrease};
#endif

BIN
B3dIcon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

View File

@@ -1,4 +0,0 @@
#ifndef BINTYPE_H
#define BINTYPE_H
static enum ActionType {GameTool, Grab, Clone, Hammer};
#endif

View File

@@ -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"

View File

@@ -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
View 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>

View File

@@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 9.00 Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 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

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +0,0 @@
#pragma once
#include "Demo.h"
#include "BaseButtonInstance.h"
class BaseButtonInstance;
class ButtonListener
{
public:
ButtonListener();
~ButtonListener(void);
virtual void onButton1MouseClick(BaseButtonInstance*);
//virtual void onMouseOver(); //TODO
//virtual void onMouseOut(); //TODO
//virtual void onButton1MouseDown(); //TODO
//virtual void onButton1MouseUp(); //TODO
//virtual void onButton2MouseClick(); //TODO
//virtual void onButton2MouseDown(); //TODO
//virtual void onButton2MouseUp(); //TODO
//What to do now...
};

View File

@@ -1,4 +0,0 @@
#ifndef CONTROLLERTYPE_H
#define CONTROLLERTYPE_H
static enum ControllerType {None, KeyboardRight, KeyboardLeft, Joypad1, Joypad2, Chase, Flee};
#endif

View File

@@ -1,76 +0,0 @@
#include "DataModelInstance.h"
WorkspaceInstance* workspace;
Instance* guiRoot;
float mousex;
float mousey;
bool mouseButton1Down;
std::string message;
bool showMessage;
G3D::GFontRef font;
DataModelInstance::DataModelInstance(void)
{
workspace = new WorkspaceInstance();
guiRoot = new Instance();
children.push_back(workspace);
className = "dataModel";
mousex = 0;
mousey = 0;
mouseButton1Down = false;
showMessage = false;
}
DataModelInstance::~DataModelInstance(void)
{
}
void DataModelInstance::setMessage(std::string msg)
{
message = msg;
showMessage = true;
}
void DataModelInstance::clearMessage()
{
showMessage = false;
message = "";
}
void DataModelInstance::drawMessage(RenderDevice* rd)
{
if(showMessage && !font.isNull())
{
int x = rd->getWidth()/2;
int y = rd->getHeight()/2;
int width = rd->getWidth()/2 + 100;
int height = width / 3;
Draw::box(Box(Vector3(x-(width/2), y-(height/2), 0), Vector3(x+(width/2), y+(height/2), 0)), rd, Color4::fromARGB(0x55B2B2B2), Color3::fromARGB(0xB2B2B2));
font->draw2D(rd, message, Vector2(x,y), height/8, Color3::white(), Color4::clear(), GFont::XALIGN_CENTER, GFont::YALIGN_CENTER);
}
}
WorkspaceInstance* DataModelInstance::getWorkspace()
{
return workspace;
}
Vector2 DataModelInstance::getMousePos()
{
return Vector2(mousex,mousey);
}
void DataModelInstance::setMousePos(int x,int y)
{
mousex=x;
mousey=y;
}
void DataModelInstance::setMousePos(Vector2 pos)
{
mousex=pos.x;
mousey=pos.y;
}
Instance* DataModelInstance::getGuiRoot()
{
return guiRoot;
}

View File

@@ -1,23 +0,0 @@
#pragma once
#include "instance.h"
#include "WorkspaceInstance.h"
class DataModelInstance :
public Instance
{
public:
DataModelInstance(void);
~DataModelInstance(void);
void setMessage(std::string);
void clearMessage();
void drawMessage(RenderDevice*);
GFontRef font;
WorkspaceInstance* getWorkspace();
Instance* getGuiRoot();
float mousex;
float mousey;
Vector2 getMousePos();
void setMousePos(int x,int y);
void setMousePos(Vector2 pos);
bool mouseButton1Down;
};

55
Demo.h
View File

@@ -1,55 +0,0 @@
#pragma once
#include <G3DAll.h>
#include "CameraController.h"
class Demo { // : public GApp {
public:
Demo(const GAppSettings& settings,HWND parentWindow);
void Boop();
virtual ~Demo() {}
virtual void exitApplication();
virtual void onInit();
virtual void onLogic();
virtual void onNetwork();
virtual void onSimulation(RealTime rdt, SimTime sdt, SimTime idt);
virtual void onGraphics(RenderDevice* rd);
virtual void onUserInput(UserInput* ui);
virtual void onCleanup();
std::vector<Instance*> getSelection();
void run();
void QuitApp();
void resizeWithParent(HWND parentWindow);
void onCreate(HWND parentWindow);
void onKeyPressed(int key);
void onKeyUp(int key);
void onMouseLeftPressed(HWND hwnd,int x, int y);
void onMouseLeftUp(int x, int y);
void onMouseRightPressed(int x, int y);
void onMouseRightUp(int x, int y);
void onMouseMoved(int x, int y);
void onMouseWheel(int x, int y, short delta);
CameraController cameraController;
RenderDevice* renderDevice;
UserInput* userInput;
private:
void initGUI();
HWND _hWndMain;
SkyRef sky;
bool quit;
bool mouseOnScreen;
bool rightButtonHolding;
void main();
GWindow* _window;
HWND _hwndToolbox;
HWND _buttonTest;
HWND _hwndRenderer;
protected:
Stopwatch m_graphicsWatch;
Stopwatch m_logicWatch;
Stopwatch m_networkWatch;
Stopwatch m_userInputWatch;
Stopwatch m_simulationWatch;
Stopwatch m_waitWatch;
};

Binary file not shown.

View File

@@ -1,84 +1,86 @@
// Microsoft Visual C++ generated resource script. // Generated by ResEdit 1.6.6
// // Copyright (C) 2006-2015
#include "resource.h" // http://www.resedit.net
#define APSTUDIO_READONLY_SYMBOLS #include <windows.h>
///////////////////////////////////////////////////////////////////////////// #include <commctrl.h>
// #include <richedit.h>
// Generated from the TEXTINCLUDE 2 resource. #include "src/include/resource.h"
// #include "src/include/versioning.h"
#include "windows.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
//
///////////////////////////////////////////////////////////////////////////// // Bitmap resources
// English (U.S.) resources //
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) IDB_BITMAP1 BITMAP "Parts.bmp"
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1252) 1 VERSIONINFO
#endif //_WIN32 FILEVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
PRODUCTVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
#ifdef APSTUDIO_INVOKED FILEOS VOS__WINDOWS32
///////////////////////////////////////////////////////////////////////////// FILETYPE VFT_APP
// FILESUBTYPE VFT2_UNKNOWN
// TEXTINCLUDE FILEFLAGSMASK 0
// FILEFLAGS 0
{
1 TEXTINCLUDE BLOCK "StringFileInfo"
BEGIN {
"resource.h\0" BLOCK "100901B5"
END {
VALUE "Comments", ""
2 TEXTINCLUDE VALUE "CompanyName", "Blocks3D Team"
BEGIN VALUE "FileDescription", "Blocks 3D"
"#include ""windows.h""\r\n" VALUE "FileVersion", VER_STR(APP_VER_STRING)
"\0" VALUE "InternalName", "Blocks3D"
END VALUE "LegalCopyright", "Blocks3D Team - 2022"
VALUE "LegalTrademarks", ""
3 TEXTINCLUDE VALUE "OriginalFilename", "Blocks3D.exe"
BEGIN VALUE "PrivateBuild", ""
"\r\n" VALUE "ProductName", "Blocks3D"
"\0" VALUE "ProductVersion", VER_STR(APP_VER_STRING)
END VALUE "SpecialBuild", ""
}
#endif // APSTUDIO_INVOKED }
BLOCK "VarFileInfo"
#endif // English (U.S.) resources {
///////////////////////////////////////////////////////////////////////////// VALUE "Translation", 0x1009, 0x01B5
}
}
/////////////////////////////////////////////////////////////////////////////
// English (Canada) resources //
// Dialog resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) //
#ifdef _WIN32 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN IDD_DIALOG1 DIALOG 0, 0, 295, 43
#pragma code_page(1252) STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFOREGROUND | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
#endif //_WIN32 EXSTYLE WS_EX_WINDOWEDGE
CAPTION "Insert Object"
///////////////////////////////////////////////////////////////////////////// FONT 8, "Ms Shell Dlg"
// {
// Icon EDITTEXT IDC_EDIT1, 35, 6, 195, 14, ES_AUTOHSCROLL, 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
// Icon with lowest ID value placed first to ensure application icon DEFPUSHBUTTON "OK", IDOK, 237, 6, 50, 14, 0, WS_EX_LEFT
// remains consistent on all systems. }
IDI_ICON1 ICON "icon1.ico"
#endif // English (Canada) resources
/////////////////////////////////////////////////////////////////////////////
//
// Icon resources
//
#ifndef APSTUDIO_INVOKED LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
///////////////////////////////////////////////////////////////////////////// IDI_ICON1 ICON "FatB3dIcon.ico"
//
// Generated from the TEXTINCLUDE 3 resource.
//
//
// Manifest resources
///////////////////////////////////////////////////////////////////////////// //
#endif // not APSTUDIO_INVOKED #ifndef _DEBUG
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 MANIFEST ".\\Blocks3D.exe.manifest"
#endif

13
Documentation/index.html Normal file
View File

@@ -0,0 +1,13 @@
<html>
<head>
<title> RBX05R Documentation </title>
<meta charset="utf-8">
</head>
<body>
<div class="content" style="text-align:center;">
<h1> ROBLOX 2005 Recreation documentation </h1>
<br>
<h4> Current for: r360 </h4>
</div>
</body>
</html>

BIN
FatB3dIcon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -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>

View File

@@ -1,487 +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"
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="2"
EnableFunctionLevelLinking="true"
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"
OutputFile="./G3DTest-Debug.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/G3DTest.pdb"
SubSystem="2"
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=".\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=".\Globals.cpp"
>
</File>
<File
RelativePath=".\IEBrowser.cpp"
>
</File>
<File
RelativePath=".\IEBrowser.h"
>
</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=".\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=".\PhysicalInstance.cpp"
>
</File>
<File
RelativePath=".\TextButtonInstance.cpp"
>
</File>
<File
RelativePath=".\WorkspaceInstance.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath=".\ActionType.h"
>
</File>
<File
RelativePath=".\AffectType.h"
>
</File>
<File
RelativePath=".\AudioPlayer.h"
>
</File>
<File
RelativePath=".\ax.h"
>
</File>
<File
RelativePath=".\BinType.h"
>
</File>
<File
RelativePath=".\BrowserCallHandler.h"
>
</File>
<File
RelativePath=".\ButtonListener.h"
>
</File>
<File
RelativePath=".\CameraController.h"
>
</File>
<File
RelativePath=".\ControllerType.h"
>
</File>
<File
RelativePath=".\Demo.h"
>
</File>
<File
RelativePath=".\Globals.h"
>
</File>
<File
RelativePath=".\IEDispatcher.h"
>
</File>
<File
RelativePath=".\InputType.h"
>
</File>
<File
RelativePath=".\JointType.h"
>
</File>
<File
RelativePath=".\KeywordFilterType.h"
>
</File>
<File
RelativePath=".\PartType.h"
>
</File>
<File
RelativePath=".\propertyGrid.h"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
<File
RelativePath=".\SoundType.h"
>
</File>
<File
RelativePath=".\Surface.h"
>
</File>
<File
RelativePath=".\SurfaceConstraint.h"
>
</File>
<File
RelativePath=".\SurfaceType.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=".\ImageButtonInstance.h"
>
</File>
<File
RelativePath=".\Instance.h"
>
</File>
<File
RelativePath=".\PhysicalInstance.h"
>
</File>
<File
RelativePath=".\TextButtonInstance.h"
>
</File>
<File
RelativePath=".\WorkspaceInstance.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>
</Filter>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="Dialogs.rc"
/>
</Globals>
</VisualStudioProject>

View File

@@ -1,19 +0,0 @@
#include "Globals.h"
DataModelInstance* Globals::dataModel = NULL;
int const Globals::gen = 0;
int const Globals::major = 0;
int const Globals::minor = 4;
int const Globals::patch = 2;
int Globals::surfaceId = 2;
bool Globals::showMouse = true;
bool Globals::useMousePoint = false;
const std::string Globals::PlaceholderName = "Dynamica";
G3D::TextureRef Globals::surface;
POINT Globals::mousepoint;
Globals::Globals(void){}
Globals::~Globals(void){}

View File

@@ -1,21 +0,0 @@
#pragma once
#include "DataModelInstance.h"
#include <G3DAll.h>
class Globals
{
public:
Globals(void);
~Globals(void);
static DataModelInstance* dataModel;
static bool showMouse;
static POINT mousepoint;
static bool useMousePoint;
static const int gen;
static const int major;
static const int minor;
static const int patch;
static G3D::TextureRef surface;
static int surfaceId;
static const std::string PlaceholderName;
};

View File

@@ -1,68 +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"
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();
}
}
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 (&spDocument!=0)
{
return true;
}
}
}
else
{
MessageBox(NULL,"Cannot read IWebBrowser2...",(Globals::PlaceholderName+" Crash").c_str(),MB_OK);
}
return false;
}

View File

@@ -1,16 +0,0 @@
//#include "WindowFunctions.h"
#include <mshtml.h>
#include <exdisp.h>
//#include <Mshtmhst.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;
};

View File

@@ -1,4 +0,0 @@
#ifndef INPUTTYPE_H
#define INPUTTYPE_H
static enum InputType {NoInput, LeftTread, RightTread, Steer, Throtle, UpDown, Action1, Action2, Action3, Action4, Action5, Constant, Sin};
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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";

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
Installer/setup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,4 +0,0 @@
#ifndef JOINTTYPE_H
#define JOINTTYPE_H
static enum ActionType {UNK0, Weld, Snap, UNK3, Rotate, RotateP, RotateV, Glue, UNK8, UNK9, None};
#endif

View File

@@ -1,4 +0,0 @@
#ifndef KEYWORDFILTERTYPE_H
#define KEYWORDFILTERTYPE_H
static enum KeywordFilterType {Include, Exclude};
#endif

339
LICENSE Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

6
ODE Copyright.txt Normal file
View File

@@ -0,0 +1,6 @@
Open Dynamics Engine
Copyright (c) 2001-2004,
Russell L. Smith.
All rights reserved.

View File

@@ -1,4 +0,0 @@
#ifndef PARTTYPE_H
#define PARTTYPE_H
static enum PartType {Ball, Block, Cylinder};
#endif

BIN
Parts.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,220 +0,0 @@
#include "PhysicalInstance.h"
#include "Globals.h"
GLfloat vertecies[96];
bool changed = true;
Box itemBox = Box();
PhysicalInstance::PhysicalInstance(void)
{
name = "Default PhysicalInstance";
className = "Part";
canCollide = true;
anchored = true;
size = Vector3(2,1,4);
setCFrame(CoordinateFrame(Vector3(0,0,0)));
color = Color3::gray();
velocity = Vector3(0,0,0);
rotVelocity = Vector3(0,0,0);
top = Smooth;
front = Smooth;
right = Smooth;
back = Smooth;
left = Smooth;
bottom = Smooth;
}
PhysicalInstance::PhysicalInstance(const PhysicalInstance &oinst)
{
name = oinst.name;
className = "Part";
canCollide = oinst.canCollide;
setParent(oinst.parent);
anchored = oinst.anchored;
size = oinst.size;
setCFrame(oinst.cFrame);
color = oinst.color;
velocity = oinst.velocity;
rotVelocity = oinst.rotVelocity;
top = oinst.top;
front = oinst.front;
right = oinst.right;
back = oinst.back;
left = oinst.left;
bottom = oinst.bottom;
}
void PhysicalInstance::setSize(Vector3 newSize)
{
int minsize = 1;
int maxsize = 512;
changed = true;
int sizex = (int)newSize.x;
if(sizex <= 0)
sizex = 1;
if(sizex > 512)
sizex = 512;
int sizey = (int)newSize.y;
if(sizey <= 0)
sizey = 1;
if(sizey > 512)
sizey = 512;
int sizez = (int)newSize.z;
if(sizez <= 0)
sizez = 1;
if(sizez > 512)
sizez = 512;
size = Vector3(sizex, sizey, sizez);
}
Vector3 PhysicalInstance::getSize()
{
return size;
}
Vector3 PhysicalInstance::getPosition()
{
return position;
}
void PhysicalInstance::setPosition(Vector3 pos)
{
position = pos;
cFrame = CoordinateFrame(pos);
changed = true;
}
CoordinateFrame PhysicalInstance::getCFrame()
{
return cFrame;
}
void PhysicalInstance::setCFrame(CoordinateFrame coordinateFrame)
{
cFrame = coordinateFrame;
position = coordinateFrame.translation;
changed = true;
}
CoordinateFrame PhysicalInstance::getCFrameRenderBased()
{
return CoordinateFrame(getCFrame().rotation,Vector3(getCFrame().translation.x/2, getCFrame().translation.y/2, getCFrame().translation.z/2));
}
Box PhysicalInstance::getBox()
{
if(changed)
{
Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4));
CoordinateFrame c = getCFrameRenderBased();
itemBox = c.toWorldSpace(box);
Vector3 v0,v1,v2,v3;
for (int f = 0; f < 6; f++) {
itemBox.getFaceCorners(f, v0,v1,v2,v3);
vertecies[f*16] = v0.x;
vertecies[(f*16)+1] = v0.y;
vertecies[(f*16)+2] = v0.z;
vertecies[(f*16)+3] = v1.x;
vertecies[(f*16)+4] = v1.y;
vertecies[(f*16)+5] = v1.z;
vertecies[(f*16)+6] = v2.x;
vertecies[(f*16)+7] = v2.y;
vertecies[(f*16)+8] = v2.z;
vertecies[(f*16)+9] = v3.x;
vertecies[(f*16)+10] = v3.y;
vertecies[(f*16)+11] = v3.z;
vertecies[(f*16)+12] = color.r;
vertecies[(f*16)+13] = color.g;
vertecies[(f*16)+14] = color.b;
vertecies[(f*16)+15] = 1;
}
}
return itemBox;
}
bool PhysicalInstance::collides(Box box)
{
return CollisionDetection::fixedSolidBoxIntersectsFixedSolidBox(getBox(), box);
}
void PhysicalInstance::render(RenderDevice* rd)
{
if(changed)
Box box = getBox();
glColor(color);
/*glEnable( GL_TEXTURE_2D );
glEnable(GL_BLEND);// you enable blending function
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture( GL_TEXTURE_2D, Globals::surfaceId);
glBegin(GL_QUADS);*/
for(int i = 0; i < 96; i+=16)
{
double add = 0.8;
Surface face;
if(i == 0)//Back
face = back;
else if(i == 16)//Right
face = right;
else if(i == 32)//Front
face = front;
else if(i == 48)//Top
face = top;
else if(i == 64)//Left
face = left;
else if(i == 80)//Bottom
face = bottom;
/*if(face == Snaps)
add = 0.0;
else if(face == Inlets)
add = 0.2;*/
Vector3 v0 = Vector3(vertecies[i], vertecies[i+1], vertecies[i+2]), v1 = Vector3(vertecies[i+3], vertecies[i+4], vertecies[i+5]), v3 = Vector3(vertecies[i+9], vertecies[i+10], vertecies[i+11]);
/*glNormal3fv((v1 - v0).cross(v3 - v0).direction());
glTexCoord2f(0.0F,0.0F);
glVertex3fv(v0);
glTexCoord2f(1.0F,0.0F);
glVertex3fv(v1);
glTexCoord2f(1.0F,0.25F);
glVertex3f(vertecies[i+6], vertecies[i+7], vertecies[i+8]);
glTexCoord2f(0.0F,0.25F);
glVertex3fv(v3);*/
glEnable( GL_TEXTURE_2D );
glEnable(GL_BLEND);// you enable blending function
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture( GL_TEXTURE_2D, Globals::surfaceId);
glBegin( GL_QUADS );
glNormal3fv((v1 - v0).cross(v3 - v0).direction());
glTexCoord2d(0.0,0.0+add);
glVertex3fv(v0);
glTexCoord2d( 1.0,0.0+add);
glVertex3fv(v1);
glTexCoord2d(1.0,0.2+add);
glVertex3f(vertecies[i+6], vertecies[i+7], vertecies[i+8]);
glTexCoord2d( 0.0,0.2+add);
glVertex3fv(v3);
glEnd();
glDisable( GL_TEXTURE_2D );
}
/*glEnd();
glDisable(GL_TEXTURE_2D);*/
glColor(Color3::white());
if(!children.empty())
{
for(size_t i = 0; i < children.size(); i++)
{
children.at(i)->render(rd);
}
}
}
PhysicalInstance::~PhysicalInstance(void)
{
}

View File

@@ -1,39 +0,0 @@
#pragma once
#include "instance.h"
#include "Surface.h"
class PhysicalInstance :
public Instance
{
public:
PhysicalInstance(void);
PhysicalInstance(const PhysicalInstance &oinst);
Instance* clone() const { return new PhysicalInstance(*this); }
~PhysicalInstance(void);
virtual void render(RenderDevice*);
Vector3 velocity;
Surface top;
Surface front;
Surface right;
Surface back;
Surface left;
Surface bottom;
CoordinateFrame cFrame;
Color3 color;
Vector3 getPosition();
void setPosition(Vector3);
CoordinateFrame getCFrame();
void setCFrame(CoordinateFrame);
Box getBox();
Box getScaledBox();
CoordinateFrame getCFrameRenderBased();
Vector3 getSize();
void setSize(Vector3);
bool canCollide;
bool anchored;
Vector3 rotVelocity;
bool collides(Box);
private:
Vector3 position;
Vector3 size;
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

588
Physics Test/Cylinder.rbxl Normal file
View 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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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>

File diff suppressed because it is too large Load Diff

View 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>

View File

@@ -1,4 +0,0 @@
#ifndef SOUNDTYPE_H
#define SOUNDTYPE_H
static enum SoundType {NoSound, Boing, Bomb, Break, Click, Clock, Slingshot, Page, Ping, Snap, Splat, Step, StepOn, Swoosh, Victory};
#endif

View File

@@ -1,4 +0,0 @@
#ifndef SURFACE_H
#define SURFACE_H
static enum Surface {Smooth, Snaps, Inlets, Glue, Weld, Hinge, Motor};
#endif

View File

@@ -1,4 +0,0 @@
#ifndef SURFACECONSTRAINT_H
#define SURFACECONSTRAINT_H
static enum SurfaceConstraint {None, Hinge, SteppingMotor, Motor};
#endif

View File

@@ -1,4 +0,0 @@
#ifndef SURFACETYPE_H
#define SURFACETYPE_H
static enum SurfaceType {Smooth, Bumps, Weld, Snaps, Inlet};
#endif

View 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;
}

View File

@@ -1,14 +0,0 @@
#include "WorkspaceInstance.h"
float timer = 60.0F;
int score = 0;
WorkspaceInstance::WorkspaceInstance(void)
{
className = "Workspace";
timer = 60.0F;
score = 0;
}
WorkspaceInstance::~WorkspaceInstance(void)
{
}

View File

@@ -1,12 +0,0 @@
#pragma once
#include "instance.h"
class WorkspaceInstance :
public Instance
{
public:
float timer;
int score;
WorkspaceInstance(void);
~WorkspaceInstance(void);
};

Binary file not shown.

Binary file not shown.

BIN
content/images/BumpTool.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
content/images/Clone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
content/images/GameTool.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
content/images/GlueTool.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
content/images/Grab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
content/images/Hammer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
content/images/Laser.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
content/images/Rocket.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

122
content/page/color.html Normal file
View 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>

View 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
View 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
View 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

Binary file not shown.

BIN
content/sounds/collide.wav Normal file

Binary file not shown.

Binary file not shown.

BIN
content/sounds/snap.wav Normal file

Binary file not shown.

BIN
content/sounds/splat.wav Normal file

Binary file not shown.

BIN
content/sounds/swoosh.wav Normal file

Binary file not shown.

BIN
content/sounds/victory.wav Normal file

Binary file not shown.

BIN
icon1.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

1705
main.cpp

File diff suppressed because it is too large Load Diff

BIN
ode-0.6.zip Normal file

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 576 B

View File

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 637 B

Some files were not shown because too many files have changed in this diff Show More