268 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
232 changed files with 1035131 additions and 3775 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'

15
.gitignore vendored
View File

@@ -36,11 +36,14 @@
*.user
*.pdb
*.idb
*.manifest
*.htm
*.res
*.ilk
*.dep
*.bin
*.7z
# ResEditor files
*.aps
/Debug
/Release
@@ -52,6 +55,10 @@ G3DTest.suo
G3DTest.suo
stderr.txt
desktop.ini
main.cpp
*.db
G3DTest.sln
#Redist
!Installer/Redist/*
UpgradeLog.htm
click_output.JPEG
click_output.PNG

View File

@@ -1,963 +0,0 @@
#include <G3DAll.h>
#include <initguid.h>
#include <iomanip>
#include "Instance.h"
#include "resource.h"
#include "PartInstance.h"
#include "TextButtonInstance.h"
#include "ImageButtonInstance.h"
#include "DataModelInstance.h"
#include "CameraController.h"
#include "AudioPlayer.h"
#include "Globals.h"
#include "Application.h"
#include "win32Defines.h"
#include "WindowFunctions.h"
#include <limits.h>
#include <mshtml.h>
#include <exdisp.h>
#include <vector>
#include <string>
#include "ax.h"
#include <cguid.h>
#include "IEBrowser.h"
#include "PropertyWindow.h"
#include <commctrl.h>
#include "StringFunctions.h"
#include "GuiRoot.h"
#include "GUDButtonListener.h"
#include "ModeSelectionListener.h"
#include "DeleteListener.h"
#include "CameraButtonListener.h"
#include "RotateButtonListener.h"
Ray testRay;
static int cursorid = 0;
static int cursorOvrid = 0;
static int currentcursorid = 0;
static G3D::TextureRef cursor = NULL;
static G3D::TextureRef cursorOvr = NULL;
static bool mouseMovedBeginMotion = false;
static POINT oldGlobalMouse;
Vector2 oldMouse = Vector2(0,0);
float moveRate = 0.5;
void Application::clearInstances()
{
delete _dataModel;
}
PartInstance* Application::makePart()
{
PartInstance* part = new PartInstance();
return part;
}
void Application::setFocus(bool focus)
{
if(_propWindow != NULL)
if(focus)
{
ShowWindow(_propWindow->_hwndProp, SW_SHOW);
SetWindowPos(_propWindow->_hwndProp, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else
{
SetWindowPos(_propWindow->_hwndProp, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
}
Application::Application(HWND parentWindow) : _propWindow(NULL) { //: GApp(settings,window) {
std::string tempPath = ((std::string)getenv("temp")) + "/"+g_PlaceholderName;
CreateDirectory(tempPath.c_str(), NULL);
_hWndMain = parentWindow;
HMODULE hThisInstance = GetModuleHandle(NULL);
_hwndToolbox = CreateWindowEx(
WS_EX_ACCEPTFILES,
"AX",
"{8856F961-340A-11D0-A96B-00C04FD705A2}",
WS_CHILD | WS_VISIBLE,
0,
560,
800,
60,
_hWndMain, // parent
NULL, // menu
hThisInstance,
NULL
);
_hwndRenderer = CreateWindowEx(
WS_EX_ACCEPTFILES,
"G3DWindow",
"3D",
WS_CHILD,
CW_USEDEFAULT,
CW_USEDEFAULT,
1,
1,
_hWndMain, // parent
NULL, // menu
hThisInstance,
NULL
);
_settings.window.resizable = true;
_settings.writeLicenseFile = false;
_settings.logFilename = tempPath + "/g3dlog.txt";
_settings.window.center = true;
Win32Window* window = Win32Window::create(_settings.window,_hwndRenderer);
ShowWindow(_hwndRenderer, SW_SHOW);
ShowWindow(_hWndMain, SW_SHOW);
quit=false;
rightButtonHolding=false;
mouseOnScreen=false;
// GApp replacement
renderDevice = new RenderDevice();
if (window != NULL) {
renderDevice->init(window, NULL);
}
else
{
MessageBox(NULL,"Window not found!","Error",MB_OK | MB_ICONSTOP);
return;
}
_window = renderDevice->window();
_window->makeCurrent();
SetWindowLongPtr(_hWndMain,GWL_USERDATA,(LONG)this);
SetWindowLongPtr(_hwndRenderer,GWL_USERDATA,(LONG)this);
_propWindow = new PropertyWindow(0, 0, 200, 640, hThisInstance);
IEBrowser* webBrowser = new IEBrowser(_hwndToolbox);
webBrowser->navigateSyncURL(L"http://androdome.com/res/ClientToolbox.php");
}
void Application::deleteInstance()
{
if(g_selectedInstances.size() > 0)
{
size_t undeletable = 0;
while(g_selectedInstances.size() > undeletable)
{
if(g_selectedInstances.at(0)->canDelete)
{
AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav"));
Instance* selectedInstance = g_selectedInstances.at(0);
if(selectedInstance->getParent() != NULL)
selectedInstance->getParent()->removeChild(selectedInstance);
delete selectedInstance;
selectedInstance = NULL;
g_selectedInstances.erase(g_selectedInstances.begin());
}
else
{
undeletable++;
}
}
}
if(g_selectedInstances.size() == 0)
g_usableApp->_propWindow->ClearProperties();
}
void Application::onInit() {
// Called before Application::run() beings
cameraController.setFrame(Vector3(0,2,10));
_dataModel = new DataModelInstance();
_dataModel->setParent(NULL);
_dataModel->name = "undefined";
_dataModel->font = g_fntdominant;
g_dataModel = _dataModel;
//initGUI();
#ifdef LEGACY_LOAD_G3DFUN_LEVEL
PartInstance* test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3(0.2F,0.3F,1);
test->setSize(Vector3(24,1,24));
test->setPosition(Vector3(0,0,0));
test->setCFrame(test->getCFrame() * Matrix3::fromEulerAnglesXYZ(0,toRadians(0),toRadians(0)));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3(.5F,1,.5F);
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-10,1,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3(.5F,1,.5F);
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(10,1,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(7,2,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-7,2,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(4,3,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-5,3,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(1,4,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-3,4,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-2,5,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(0,6,0));
test = makePart();
test->setParent(_dataModel->getWorkspace());
test->color = Color3::gray();
test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(2,7,0));
#else
_dataModel->debugGetOpen();
#endif
//setDesiredFrameRate(60);
//GApplet::onInit();
}
void Application::onCleanup() {
clearInstances();
sky->~Sky();
}
void Application::onLogic() {
// Add non-simulation game logic and AI code here
}
void Application::onNetwork() {
// Poll net messages here
}
//double getVectorDistance(Vector3 vector1, Vector3 vector2)
//{
// return pow(pow((double)vector1.x - (double)vector2.x, 2) + pow((double)vector1.y - (double)vector2.y, 2) + pow((double)vector1.z - (double)vector2.z, 2), 0.5);
//}
std::vector<Instance*> Application::getSelection()
{
return g_selectedInstances;
}
void Application::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
_dataModel->getGuiRoot()->update();
if(_dataModel->name != _title)
{
_title = _dataModel->name;
std::string text = "Game \"" + _title + "\"";
SetWindowText(_hWndMain, text.c_str());
}
cameraController.update(this);
}
/*double getOSVersion() {
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
std::string version = Convert(osvi.dwMajorVersion) + "." + Convert(osvi.dwMinorVersion);
return ::atof(version.c_str());
}*/
/*
bool IsHolding(int button)
{
return (GetKeyState(button) >> 1)>0;
}
*/
void Application::onUserInput(UserInput* ui) {
/*
if(GetHoldKeyState(VK_LCONTROL))
{
if(GetHoldKeyState('D'))
{
_messageTime = System::time();
if(debugMode())
_message = "Debug Mode Disabled";
else
_message = "Debug Mode Enabled";
setDebugMode(!debugMode());
}
}
*/
if(GetHoldKeyState(VK_F8))
{
_dataModel->getGuiRoot()->setDebugMessage("FOV Set to 10", System::time());
}
//}
//_dataModel->mousex = ui->getMouseX();
//_dataModel->mousey = ui->getMouseY();
_dataModel->mouseButton1Down = (GetKeyState(VK_LBUTTON) & 0x100) != 0;
if (GetHoldKeyState(VK_LBUTTON)) {
if (_dragging) {
PartInstance* part = NULL;
if(g_selectedInstances.size() > 0)
part = (PartInstance*) g_selectedInstances.at(0);
Ray dragRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
for(size_t i = 0; i < instances.size(); i++)
{
if(PartInstance* moveTo = dynamic_cast<PartInstance*>(instances.at(i)))
{
float __time = testRay.intersectionTime(moveTo->getBox());
float __nearest=std::numeric_limits<float>::infinity();
if (__time != inf())
{
if (__nearest>__time)
{
// BROKEN
//Vector3 closest = (dragRay.closestPoint(moveTo->getPosition()) * 2);
//part->setPosition(closest);
//part->setPosition(Vector3(floor(closest.x),part->getPosition().y,floor(closest.z)));
}
}
}
}
Sleep(10);
}
}
// Camera KB Handling {
if (GetKPBool(VK_OEM_COMMA)) //Left
g_usableApp->cameraController.panLeft();
else if (GetKPBool(VK_OEM_PERIOD)) // Right
g_usableApp->cameraController.panRight();
else if (GetKPBool(0x49)) // Zoom In (I)
g_usableApp->cameraController.Zoom(1);
else if (GetKPBool(0x4F)) // Zoom Out (O)
g_usableApp->cameraController.Zoom(-1);
// }
//readMouseGUIInput();
// Add other key handling here
}
void Application::makeFlag(Vector3 &vec, RenderDevice* &rd)
{
Vector3 up = Vector3(vec.x, vec.y+3, vec.z);
rd->setColor(Color3::blue());
rd->beforePrimitive();
glBegin(GL_LINES);
glVertex3f(vec.x, vec.y, vec.z);
glVertex3f(up.x, up.y, up.z);
glEnd();
glBegin( GL_TRIANGLES );
glVertex3f(up.x, up.y-1, up.z);
glVertex3f(up.x, up.y-0.5, up.z-1);
glVertex3f(up.x, up.y, up.z);
glVertex3f(up.x, up.y, up.z);
glVertex3f(up.x, up.y-0.5, up.z-1);
glVertex3f(up.x, up.y-1, up.z);
glEnd();
rd->afterPrimitive();
rd->setColor(Color3::white());
//I know how i will approach this now
}
void Application::setMode(int mode)
{
_mode = mode;
}
int Application::getMode()
{
return _mode;
}
void Application::drawOutline(Vector3 from, Vector3 to, RenderDevice* rd, LightingParameters lighting, Vector3 size, Vector3 pos, CoordinateFrame c)
{
Color3 outline = Color3::cyan();//Color3(0.098F,0.6F,1.0F);
float offsetSize = 0.05F;
//X
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
//Y
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize-0.1, to.z - offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, to.z - offsetSize))), rd, outline, Color4::clear());
//Z
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y + offsetSize, from.z - offsetSize), Vector3(from.x - offsetSize, from.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, to.y + offsetSize, from.z - offsetSize), Vector3(from.x - offsetSize, to.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y + offsetSize, from.z - offsetSize), Vector3(to.x - offsetSize, from.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, to.y + offsetSize, from.z - offsetSize), Vector3(to.x - offsetSize, to.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
if(_mode == ARROWS)
{
rd->setLight(0, NULL);
rd->setAmbientLightColor(Color3(1,1,1));
AABox box;
c.toWorldSpace(Box(from, to)).getBounds(box);
float max = box.high().y - pos.y;
Draw::arrow(pos, Vector3(0, 1.5+max, 0), rd);
Draw::arrow(pos, Vector3(0, (-1.5)-max, 0), rd);
max = box.high().x - pos.x;
Draw::arrow(pos, Vector3(1.5+max, 0, 0), rd);
Draw::arrow(pos, Vector3((-1.5)-max, 0, 0), rd);
max = box.high().z - pos.z;
Draw::arrow(pos, Vector3(0, 0, 1.5+max), rd);
Draw::arrow(pos, Vector3(0, 0, (-1.5)-max), rd);
rd->setAmbientLightColor(lighting.ambient);
rd->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
}
else if(_mode == RESIZE)
{
Color3 sphereColor = outline;
rd->setLight(0, NULL);
rd->setAmbientLightColor(Color3(1,1,1));
Vector3 gamepoint = pos;
Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
if(distance < 200)
{
float multiplier = distance * 0.025F/2;
if(multiplier < 0.25F)
multiplier = 0.25F;
Vector3 position = pos + (c.lookVector()*((size.z/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
position = pos - (c.lookVector()*((size.z/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
position = pos + (c.rightVector()*((size.x/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
position = pos - (c.rightVector()*((size.x/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
position = pos + (c.upVector()*((size.y/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
position = pos - (c.upVector()*((size.y/2)+1));
Draw::sphere(Sphere(position, multiplier), rd, sphereColor, Color4::clear());
}
rd->setAmbientLightColor(lighting.ambient);
rd->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
}
}
void Application::exitApplication()
{
//endApplet = true;
//endProgram = true;
}
void Application::onGraphics(RenderDevice* rd) {
G3D::uint8 num = 0;
POINT mousepos;
mouseOnScreen = true;
if (GetCursorPos(&mousepos))
{
POINT pointm = mousepos;
if (ScreenToClient(_hWndMain, &mousepos))
{
//mouseOnScreen = true;
//POINT pointm;
///GetCursorPos(&pointm);
if(_hwndRenderer != WindowFromPoint(pointm)) //OLD: mousepos.x < 1 || mousepos.y < 1 || mousepos.x >= rd->getViewport().width()-1 || mousepos.y >= rd->getViewport().height()-1
{
mouseOnScreen = false;
//ShowCursor(true);
_window->setMouseVisible(true);
//rd->window()->setInputCaptureCount(0);
}
else
{
mouseOnScreen = true;
//SetCursor(NULL);
_window->setMouseVisible(false);
//rd->window()->setInputCaptureCount(1);
}
}
}
if(Globals::useMousePoint)
{
mousepos = Globals::mousepoint;
ScreenToClient(_hWndMain, &mousepos);
}
LightingParameters lighting(G3D::toSeconds(2, 00, 00, PM));
renderDevice->setProjectionAndCameraMatrix(*cameraController.getCamera());
// Cyan background
//renderDevice->setColorClearValue(Color3(0.0f, 0.5f, 1.0f));
renderDevice->clear(sky.isNull(), true, true);
if (sky.notNull()) {
sky->render(renderDevice, lighting);
}
// Setup lighting
renderDevice->enableLighting();
renderDevice->setShadeMode(RenderDevice::SHADE_SMOOTH);
renderDevice->setAmbientLightColor(Color3(1,1,1));
renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
renderDevice->setAmbientLightColor(lighting.ambient);
rd->beforePrimitive();
CoordinateFrame forDraw = rd->getObjectToWorldMatrix();
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
//if(_dataModel->getWorkspace() != NULL)
_dataModel->getWorkspace()->render(rd);
//else throw std::exception("Workspace not found");
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
rd->setObjectToWorldMatrix(forDraw);
rd->afterPrimitive();
if(g_selectedInstances.size() > 0)
{
for(size_t i = 0; i < g_selectedInstances.size(); i++)
{
if(PartInstance* part = dynamic_cast<PartInstance*>(g_selectedInstances.at(i)))
{
Vector3 size = part->getSize();
Vector3 pos = part->getPosition();
drawOutline(Vector3(0+size.x/2, 0+size.y/2, 0+size.z/2) ,Vector3(0-size.x/2,0-size.y/2,0-size.z/2), rd, lighting, Vector3(size.x/2, size.y/2, size.z/2), Vector3(pos.x, pos.y, pos.z), part->getCFrameRenderBased());
}
}
}
//Vector3 gamepoint = Vector3(0, 5, 0);
//Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
//float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
//if(distance < 50 && distance > -50)
//{
// if(distance < 0)
// distance = distance*-1;
// fntdominant->draw3D(rd, "Testing", CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.04*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER);
//}
renderDevice->disableLighting();
if (sky.notNull()) {
sky->renderLensFlare(renderDevice, lighting);
}
renderDevice->push2D();
_dataModel->getGuiRoot()->renderGUI(renderDevice, m_graphicsWatch.FPS());
rd->pushState();
rd->beforePrimitive();
if(Globals::showMouse && mouseOnScreen)
{
glEnable( GL_TEXTURE_2D );
glEnable(GL_BLEND);// you enable blending function
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
/*
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
currentcursorid = cursorid;
for(size_t i = 0; i < instances.size(); i++)
{
if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i)))
{
float time = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport()).intersectionTime(test->getBox());
//float time = testRay.intersectionTime(test->getBox());
if (time != inf())
{
currentcursorid = cursorOvrid;
break;
}
}
}
*/
glBindTexture( GL_TEXTURE_2D, currentcursorid);
glBegin( GL_QUADS );
glTexCoord2d(0.0,0.0);
glVertex2f(mousepos.x-64, mousepos.y-64);
glTexCoord2d( 1.0,0.0 );
glVertex2f(mousepos.x+64, mousepos.y-64);
glTexCoord2d(1.0,1.0 );
glVertex2f(mousepos.x+64, mousepos.y+64 );
glTexCoord2d( 0.0,1.0 );
glVertex2f( mousepos.x-64, mousepos.y+64 );
glEnd();
glDisable( GL_TEXTURE_2D );
}
rd->afterPrimitive();
rd->popState();
renderDevice->pop2D();
}
void Application::onKeyPressed(int key)
{
if(key==VK_DELETE)
{
deleteInstance();
}
if ((GetHoldKeyState(VK_LCONTROL) || GetHoldKeyState(VK_RCONTROL)) && key=='O')
{
_dataModel->getOpen();
}
}
void Application::onKeyUp(int key)
{
}
void Application::onMouseLeftPressed(HWND hwnd,int x,int y)
{
//Removed set focus
//std::cout << "Click: " << x << "," << y << std::endl;
bool onGUI = _dataModel->getGuiRoot()->mouseInGUI(renderDevice, x, y);
if(!onGUI)
{
Instance * selectedInstance = NULL;
testRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
float nearest=std::numeric_limits<float>::infinity();
Vector3 camPos = cameraController.getCamera()->getCoordinateFrame().translation;
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
bool objFound = false;
for(size_t i = 0; i < instances.size(); i++)
{
if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i)))
{
float time = testRay.intersectionTime(test->getBox());
if (time != inf())
{
objFound = true;
if (nearest>time)
{
nearest=time;
//bool found = false;
selectedInstance = test;
/*for(size_t i = 0; i < g_selectedInstances.size(); i++)
{
if(g_selectedInstances.at(i) == test)
{
found = true;
//ShowWindow(_propWindow->_hwndProp, SW_SHOW);
//SetActiveWindow(_propWindow->_hwndProp);
//SetForegroundWindow(_propWindow->_hwndProp);
break;
}
}
if(!found)
{
selectedInstance = test;
//if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
//g_selectedInstances.clear();
//if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),test)==g_selectedInstances.end())
//g_selectedInstances.push_back(test);
}
//selectInstance(test, _propWindow);
//_message = "Dragging = true.";
//_messageTime = System::time();
//_dragging = true;*/
}
}
}
}
if(!objFound)
selectInstance(_dataModel,_propWindow);
else
{
while(selectedInstance->getParent() != g_dataModel->getWorkspace())
{
selectedInstance = selectedInstance->getParent();
}
selectInstance(selectedInstance, _propWindow);
}
}
}
void Application::selectInstance(Instance* selectedInstance, PropertyWindow* propWindow)
{
if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
{
printf("No control key hold \n");
g_selectedInstances.clear();
}
else printf("Control held\n");
if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),selectedInstance)==g_selectedInstances.end())
g_selectedInstances.push_back(selectedInstance);
propWindow->UpdateSelected(selectedInstance);
}
G3D::RenderDevice* Application::getRenderDevice()
{
return renderDevice;
}
void Application::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x, int y)
{
//std::cout << "Release: " << x << "," << y << std::endl;
_dataModel->getGuiRoot()->onMouseLeftUp(renderDevice, x, y);
_dragging = false;
//_message = "Dragging = false.";
//_messageTime = System::time();
}
void Application::onMouseRightPressed(int x,int y)
{
}
void Application::onMouseRightUp(int x,int y)
{
}
void Application::onMouseMoved(int x,int y)
{
oldMouse = _dataModel->getMousePos();
_dataModel->mousex = x;
_dataModel->mousey = y;
}
void Application::onMouseWheel(int x,int y,short delta)
{
if (mouseOnScreen==true)
if (cameraController.onMouseWheel(x, y, delta))
{
AudioPlayer::playSound(cameraSound);
}
}
void Application::run() {
g_usableApp = this;
//setDebugMode(false);
//debugController.setActive(false);
/*
if (!createWindowClass("ToolWindowClass",ToolProc,GetModuleHandle(0)))
{
return;
}
HWND propertyHWnd = CreateWindowEx(
WS_EX_TOOLWINDOW,"ToolWindowClass", "ToolWindow",
WS_SYSMENU | WS_VISIBLE | WS_CHILD,
0, 0, 800, 64,
hWndMain, NULL, GetModuleHandle(0), NULL);
ShowWindow(propertyHWnd,SW_SHOW);
*/
UpdateWindow(_hWndMain);
// Load objects here=
cursor = Texture::fromFile(GetFileInPath("/content/images/ArrowCursor.png"));
cursorOvr = Texture::fromFile(GetFileInPath("/content/images/DragCursor.png"));
Globals::surface = Texture::fromFile(GetFileInPath("/content/images/surfacebr.png"));
Globals::surfaceId = Globals::surface->getOpenGLID();
cameraSound = GetFileInPath("/content/sounds/SWITCH3.wav");
clickSound = GetFileInPath("/content/sounds/switch.wav");
dingSound = GetFileInPath("/content/sounds/electronicpingshort.wav");
sky = Sky::create(NULL, ExePath() + "/content/sky/");
cursorid = cursor->openGLID();
currentcursorid = cursorid;
cursorOvrid = cursorOvr->openGLID();
RealTime now=0, lastTime=0;
double simTimeRate = 1.0f;
float fps=30.0f;
RealTime desiredFrameDuration=1.0/fps;
onInit();
RealTime lastWaitTime=0;
MSG messages;
//RECT cRect;
//GetClientRect(_hWndMain,&cRect);
//renderDevice->notifyResize(cRect.right,cRect.bottom);
//Rect2D viewportRect = Rect2D::xywh(0,0,cRect.right,cRect.bottom);
//renderDevice->setViewport(viewportRect);
//window()->setInputCaptureCount(1);
resizeWithParent(_hWndMain);
while (!quit)
{
lastTime = now;
now = System::getTick();
RealTime timeStep = now - lastTime;
m_userInputWatch.tick();
onUserInput(userInput);
//m_moduleManager->onUserInput(_userInput);
m_userInputWatch.tock();
m_simulationWatch.tick();
//debugController.doSimulation(clamp(timeStep, 0.0, 0.1));
//g3dCamera.setCoordinateFrame
//(debugController.getCoordinateFrame());
double rate = simTimeRate;
RealTime rdt = timeStep;
SimTime sdt = timeStep * rate;
SimTime idt = desiredFrameDuration * rate;
onSimulation(rdt,sdt,idt);
m_simulationWatch.tock();
m_waitWatch.tick();
{
RealTime now = System::time();
// Compute accumulated time
System::sleep(max(0.0, desiredFrameDuration - (now - lastWaitTime)));
lastWaitTime = System::time();
}
m_waitWatch.tock();
m_graphicsWatch.tick();
renderDevice->beginFrame();
renderDevice->pushState();
onGraphics(renderDevice);
renderDevice->popState();
//renderDebugInfo();
renderDevice->endFrame();
//debugText.clear();
m_graphicsWatch.tock();
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
{
if (IsDialogMessage(_hWndMain, &messages) == 0)
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
}
}
onCleanup();
}
void Application::resizeWithParent(HWND parentWindow)
{
RECT rect;
GetClientRect(parentWindow,&rect);
SetWindowPos(_hwndRenderer,NULL,0,0,rect.right,rect.bottom-60,SWP_NOMOVE);
SetWindowPos(_hwndToolbox,NULL,0,rect.bottom-60,rect.right,60,SWP_NOACTIVATE | SWP_SHOWWINDOW);
GetClientRect(_hwndRenderer,&rect);
int viewWidth=rect.right;
int viewHeight=rect.bottom;
renderDevice->notifyResize(viewWidth,viewHeight);
Rect2D viewportRect = Rect2D::xywh(0,0,viewWidth,viewHeight);
renderDevice->setViewport(viewportRect);
}
void Application::QuitApp()
{
PostQuitMessage(0);
quit=true;
}
void Application::onCreate(HWND parentWindow)
{
//SetWindowLongPtr(hwndRenderer,GWL_USERDATA,(LONG)this);
//SetWindowLongPtr(hwndToolbox,GWL_USERDATA,(LONG)this);
//SetWindowLongPtr(hwndMain,GWL_USERDATA,(LONG)&app);
}

BIN
B3dIcon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

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
# ** DO NOT EDIT **
# 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 use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "G3DTest.mak".
!MESSAGE NMAKE /f "Blocks3D.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "G3DTest.mak" CFG="G3DTest - Win32 Debug"
!MESSAGE NMAKE /f "Blocks3D.mak" CFG="Blocks3D - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "G3DTest - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "G3DTest - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE "Blocks3D - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "Blocks3D - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
@@ -29,7 +29,7 @@ CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "G3DTest - Win32 Release"
!IF "$(CFG)" == "Blocks3D - Win32 Release"
# PROP BASE Use_MFC 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 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_Debug_Libraries 1
@@ -83,8 +83,8 @@ LINK32=link.exe
# Begin Target
# Name "G3DTest - Win32 Release"
# Name "G3DTest - Win32 Debug"
# Name "Blocks3D - Win32 Release"
# Name "Blocks3D - Win32 Debug"
# Begin Group "Source Files"
# 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>
{{{

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
# 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
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

1031
Blocks3D.vcproj Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -5,7 +5,8 @@
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
#include "src/include/resource.h"
#include "src/include/versioning.h"
@@ -16,7 +17,39 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
IDB_BITMAP1 BITMAP "Parts.bmp"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 VERSIONINFO
FILEVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
PRODUCTVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
FILEFLAGSMASK 0
FILEFLAGS 0
{
BLOCK "StringFileInfo"
{
BLOCK "100901B5"
{
VALUE "Comments", ""
VALUE "CompanyName", "Blocks3D Team"
VALUE "FileDescription", "Blocks 3D"
VALUE "FileVersion", VER_STR(APP_VER_STRING)
VALUE "InternalName", "Blocks3D"
VALUE "LegalCopyright", "Blocks3D Team - 2022"
VALUE "LegalTrademarks", ""
VALUE "OriginalFilename", "Blocks3D.exe"
VALUE "PrivateBuild", ""
VALUE "ProductName", "Blocks3D"
VALUE "ProductVersion", VER_STR(APP_VER_STRING)
VALUE "SpecialBuild", ""
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x1009, 0x01B5
}
}
//
// Dialog resources
@@ -28,7 +61,7 @@ EXSTYLE WS_EX_WINDOWEDGE
CAPTION "Insert Object"
FONT 8, "Ms Shell Dlg"
{
EDITTEXT IDE_EDIT, 35, 6, 195, 14, ES_AUTOHSCROLL, WS_EX_LEFT
EDITTEXT IDC_EDIT1, 35, 6, 195, 14, ES_AUTOHSCROLL, WS_EX_LEFT
LTEXT "Class:", 0, 10, 9, 20, 9, SS_LEFT, WS_EX_LEFT
PUSHBUTTON "Cancel", IDCANCEL, 237, 24, 50, 14, 0, WS_EX_LEFT
DEFPUSHBUTTON "OK", IDOK, 237, 6, 50, 14, 0, WS_EX_LEFT
@@ -40,4 +73,14 @@ FONT 8, "Ms Shell Dlg"
// Icon resources
//
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
IDI_ICON1 ICON "icon1.ico"
IDI_ICON1 ICON "FatB3dIcon.ico"
//
// Manifest resources
//
#ifndef _DEBUG
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 MANIFEST ".\\Blocks3D.exe.manifest"
#endif

17
Enum.h
View File

@@ -1,17 +0,0 @@
#pragma once
namespace Enum
{
namespace SurfaceType
{
enum Value {
Smooth, Snaps, Inlets, Glue, Weld, Spawn, Hinge, Motor, Bumps
};
}
namespace Shape
{
enum Value {
Ball = 0, Block = 1, Cylinder = 2
};
}
}

16
Enums.h
View File

@@ -1,16 +0,0 @@
#ifdef UENUMS
#ifndef ENUM_H
#define ENUM_H
static enum BinType {GameTool, Grab, Clone, Hammer};
static enum ControllerType {None, KeyboardRight, KeyboardLeft, Joypad1, Joypad2, Chase, Flee};
//static enum JointType {UNK0, WeldJoint, SnapJoint, UNK3, Rotate, RotateP, RotateV, GlueJoint, UNK8, UNK9, None};
static enum ActionType {Nothing, Pause, Lose, Draw, Win};
static enum AffectType {NoChange, Increase, Decrease};
static enum InputType {NoInput, LeftTread, RightTread, Steer, Throtle, UpDown, Action1, Action2, Action3, Action4, Action5, Constant, Sin};
//static enum SurfaceConstraint {None, Hinge, SteppingMotor, Motor};
static enum SurfaceType{Smooth, Snaps, Inlets, Glue, Weld, Spawn, Hinge, Motor, Bumps};
static enum SoundType {NoSound, Boing, Bomb, Break, Click, Clock, Slingshot, Page, Ping, Snap, Splat, Step, StepOn, Swoosh, Victory};
static enum PartType {Ball, Block, Cylinder};
static enum KeywordFilterType {Include, Exclude};
#endif
#endif

BIN
FatB3dIcon.ico Normal file

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,579 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="G3DTest"
ProjectGUID="{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
RootNamespace="G3DTest"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/G3DTest.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release/G3DTest.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="4105"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib"
OutputFile="./G3DTest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/G3DTest.pdb"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/G3DTest.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
ManagedExtensions="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/G3DTest.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="false"
BasicRuntimeChecks="0"
RuntimeLibrary="3"
EnableFunctionLevelLinking="false"
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="4105"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib Urlmon.lib"
OutputFile="./G3DTest-Debug.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/G3DTest.pdb"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug/G3DTest.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
<AssemblyReference
RelativePath="System.dll"
AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
/>
<AssemblyReference
RelativePath="System.Data.dll"
AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
/>
<AssemblyReference
RelativePath="System.Drawing.dll"
AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
/>
<AssemblyReference
RelativePath="System.Windows.Forms.dll"
AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
/>
<AssemblyReference
RelativePath="System.XML.dll"
AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
/>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath=".\Application.cpp"
>
</File>
<File
RelativePath=".\AudioPlayer.cpp"
>
</File>
<File
RelativePath=".\ax.cpp"
>
</File>
<File
RelativePath=".\BrowserCallHandler.cpp"
>
</File>
<File
RelativePath=".\ButtonListener.cpp"
>
</File>
<File
RelativePath=".\CameraController.cpp"
>
</File>
<File
RelativePath=".\ErrorFunctions.cpp"
>
</File>
<File
RelativePath=".\Globals.cpp"
>
</File>
<File
RelativePath=".\GroupInstance.cpp"
>
</File>
<File
RelativePath=".\GuiRoot.cpp"
>
</File>
<File
RelativePath=".\IEBrowser.cpp"
>
</File>
<File
RelativePath=".\IEDispatcher.cpp"
>
</File>
<File
RelativePath="main.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath=".\propertyGrid.cpp"
>
</File>
<File
RelativePath=".\PropertyWindow.cpp"
>
</File>
<File
RelativePath=".\StringFunctions.cpp"
>
</File>
<File
RelativePath=".\WindowFunctions.cpp"
>
</File>
<Filter
Name="Instance"
>
<File
RelativePath=".\BaseButtonInstance.cpp"
>
</File>
<File
RelativePath=".\DataModelInstance.cpp"
>
</File>
<File
RelativePath=".\ImageButtonInstance.cpp"
>
</File>
<File
RelativePath=".\Instance.cpp"
>
</File>
<File
RelativePath=".\LevelInstance.cpp"
>
</File>
<File
RelativePath=".\PartInstance.cpp"
>
</File>
<File
RelativePath=".\PVInstance.cpp"
>
</File>
<File
RelativePath=".\TextButtonInstance.cpp"
>
</File>
<File
RelativePath=".\WorkspaceInstance.cpp"
>
</File>
</Filter>
<Filter
Name="Listeners"
>
<File
RelativePath=".\CameraButtonListener.cpp"
>
</File>
<File
RelativePath=".\DeleteListener.cpp"
>
</File>
<File
RelativePath=".\GUDButtonListener.cpp"
>
</File>
<File
RelativePath=".\ModeSelectionListener.cpp"
>
</File>
<File
RelativePath=".\RotateButtonListener.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath=".\Application.h"
>
</File>
<File
RelativePath=".\AudioPlayer.h"
>
</File>
<File
RelativePath=".\ax.h"
>
</File>
<File
RelativePath=".\BrowserCallHandler.h"
>
</File>
<File
RelativePath=".\CameraController.h"
>
</File>
<File
RelativePath=".\Demo.h"
>
</File>
<File
RelativePath=".\Enum.h"
>
</File>
<File
RelativePath=".\Enums.h"
>
</File>
<File
RelativePath=".\ErrorFunctions.h"
>
</File>
<File
RelativePath=".\Globals.h"
>
</File>
<File
RelativePath=".\GuiRoot.h"
>
</File>
<File
RelativePath=".\IEBrowser.h"
>
</File>
<File
RelativePath=".\IEDispatcher.h"
>
</File>
<File
RelativePath=".\LevelInstance.h"
>
</File>
<File
RelativePath=".\propertyGrid.h"
>
</File>
<File
RelativePath=".\PropertyWindow.h"
>
</File>
<File
RelativePath=".\rapidxml\rapidxml.hpp"
>
</File>
<File
RelativePath=".\rapidxml\rapidxml_iterators.hpp"
>
</File>
<File
RelativePath=".\rapidxml\rapidxml_print.hpp"
>
</File>
<File
RelativePath=".\rapidxml\rapidxml_utils.hpp"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
<File
RelativePath=".\RotateButtonListener.h"
>
</File>
<File
RelativePath=".\StringFunctions.h"
>
</File>
<File
RelativePath=".\win32Defines.h"
>
</File>
<File
RelativePath=".\WindowFunctions.h"
>
</File>
<Filter
Name="Instance"
>
<File
RelativePath=".\BaseButtonInstance.h"
>
</File>
<File
RelativePath=".\DataModelInstance.h"
>
</File>
<File
RelativePath=".\GroupInstance.h"
>
</File>
<File
RelativePath=".\ImageButtonInstance.h"
>
</File>
<File
RelativePath=".\Instance.h"
>
</File>
<File
RelativePath=".\PartInstance.h"
>
</File>
<File
RelativePath=".\PVInstance.h"
>
</File>
<File
RelativePath=".\TextButtonInstance.h"
>
</File>
<File
RelativePath=".\WorkspaceInstance.h"
>
</File>
</Filter>
<Filter
Name="Listeners"
>
<File
RelativePath=".\ButtonListener.h"
>
</File>
<File
RelativePath=".\CameraButtonListener.h"
>
</File>
<File
RelativePath=".\DeleteListener.h"
>
</File>
<File
RelativePath=".\GUDButtonListener.h"
>
</File>
<File
RelativePath=".\ModeSelectionListener.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
<File
RelativePath=".\Dialogs.rc"
>
</File>
<File
RelativePath=".\icon1.ico"
>
</File>
<File
RelativePath=".\Parts.bmp"
>
</File>
</Filter>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="Dialogs.rc"
/>
</Globals>
</VisualStudioProject>

View File

@@ -1,81 +0,0 @@
#include <G3DAll.h>
#include "Application.h"
#include "Globals.h"
#include "AudioPlayer.h"
#include "GUDButtonListener.h"
void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
{
bool cont = false;
for(size_t i = 0; i < g_selectedInstances.size(); i++)
if(g_selectedInstances.at(i)->canDelete)
{
cont = true;
break;
}
if(cont)
{
AudioPlayer::playSound(dingSound);
if(button->name == "Duplicate")
{
std::vector<Instance*> newinst;
for(size_t i = 0; i < g_selectedInstances.size(); i++)
{
if(g_selectedInstances.at(i)->canDelete)
{
Instance* tempinst = g_selectedInstances.at(i);
Instance* clonedInstance = g_selectedInstances.at(i)->clone();
newinst.push_back(tempinst);
}
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
}
g_selectedInstances = newinst;
if(g_selectedInstances.size() > 0)
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
}
else if(button->name == "Group")
{
GroupInstance * inst = new GroupInstance();
for(size_t i = 0; i < g_selectedInstances.size(); i++)
{
if(g_selectedInstances.at(i)->canDelete)
{
g_selectedInstances.at(i)->setParent(inst);
}
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
}
inst->setParent(g_dataModel->getWorkspace());
g_selectedInstances.clear();
g_selectedInstances.push_back(inst);
if(g_selectedInstances.size() > 0)
g_usableApp->_propWindow->UpdateSelected(g_selectedInstances.at(0));
}
else if(button->name == "UnGroup")
{
std::vector<Instance*> newinst;
for(size_t i = 0; i < g_selectedInstances.size(); i++)
{
if(g_selectedInstances.at(i)->canDelete)
{
if(GroupInstance* model = dynamic_cast<GroupInstance*>(g_selectedInstances.at(i)))
{
newinst = model->unGroup();
model->setParent(NULL);
delete model;
model = NULL;
}
}
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
}
g_selectedInstances.clear();
g_selectedInstances = newinst;
if(g_selectedInstances.size() > 0)
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
}
}
}

View File

@@ -1,42 +0,0 @@
#include "GroupInstance.h"
GroupInstance::GroupInstance(void)
{
PVInstance::PVInstance();
name = "Model";
className = "GroupInstance";
listicon = 12;
}
GroupInstance::GroupInstance(const GroupInstance &oinst)
{
PVInstance::PVInstance(oinst);
name = "Model";
className = "GroupInstance";
listicon = 12;
}
GroupInstance::~GroupInstance(void)
{
}
std::vector<PROPGRIDITEM> GroupInstance::getProperties()
{
std::vector<PROPGRIDITEM> properties = PVInstance::getProperties();
return properties;
}
void GroupInstance::PropUpdate(LPPROPGRIDITEM &pItem)
{
PVInstance::PropUpdate(pItem);
}
std::vector<Instance *> GroupInstance::unGroup()
{
std::vector<Instance *> child;
while(children.size() > 0)
{
child.push_back(children[0]);
children[0]->setParent(parent);
}
return child;
}

View File

@@ -1,117 +0,0 @@
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include "IEBrowser.h"
#include "Globals.h"
#include "ax.h"
//#include "IEDispatcher.h"
void IEBrowser::Boop(char* test)
{
}
IEBrowser::IEBrowser(HWND attachHWnd) {
MSG messages;
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
{
if (IsDialogMessage(hwnd, &messages) == 0)
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
}
hwnd = attachHWnd;
spDocument = 0;
webBrowser = 0;
SendMessage(hwnd,AX_INPLACE,1,0);
SendMessage(hwnd,AX_QUERYINTERFACE,(WPARAM)&IID_IWebBrowser2,(LPARAM)&webBrowser);
}
IEBrowser::~IEBrowser(void) {
if (webBrowser)
{
webBrowser->Release();
}
}
// Something goes here
int IEBrowser::setExternal(IDispatch** ext)
{
std::cout << &m_IEDispatcher;
IInternetHostSecurityManager* spSecMan;
spDocument2->QueryInterface(IID_IInternetHostSecurityManager,
(void **) &spSecMan);
// TODO: hr needs to say: 'S_OK'
//spSecMan->QueryCustomPolicy
HRESULT hr = spSecMan->ProcessUrlAction(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY,
NULL, 0, NULL, 0, 0, PUAF_WARN_IF_DENIED);
(*ext) = &m_IEDispatcher;
return 1;
}
bool IEBrowser::navigateSyncURL(wchar_t* url)
{
MSG messages;
if (webBrowser)
{
webBrowser->Navigate(url,0,0,0,0);
for (int i=1;i<1000;i++)
{
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
{
if (IsDialogMessage(hwnd, &messages) == 0)
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
}
Sleep(30);
HRESULT hresult = webBrowser->get_Document(&spDocument);
if (SUCCEEDED(hresult) && (spDocument != 0))
{
IOleObject* spOleObject;
if (SUCCEEDED(spDocument->QueryInterface(IID_IOleObject,(void**)&spOleObject)))
{
IOleClientSite* spClientSite;
hresult = spOleObject->GetClientSite(&spClientSite);
if (SUCCEEDED(hresult) && spClientSite)
{
m_spDefaultDocHostUIHandler = spClientSite;
ICustomDoc* spCustomDoc;
//IEDispatcher* spIEDispatcher;
if (SUCCEEDED(m_spDefaultDocHostUIHandler->QueryInterface(IID_IDocHostUIHandler,(void**)&m_spHandler)))
{
if (SUCCEEDED(spDocument->QueryInterface(IID_ICustomDoc,(void**)&spCustomDoc)))
{
spCustomDoc->SetUIHandler(m_spHandler);
m_spHandler->GetExternal(&m_spExternal);
spDocument->QueryInterface(IID_IHTMLDocument2, (void **) &spDocument2);
setExternal(&m_spExternal);
}
}
}
}
return true;
}
}
}
else
{
MessageBox(NULL,"Cannot read IWebBrowser2...",(g_PlaceholderName+" Crash").c_str(),MB_OK);
}
return false;
}

View File

@@ -1,25 +0,0 @@
//#include "WindowFunctions.h"
#pragma once
#include <mshtml.h>
#include <exdisp.h>
#include <Mshtmhst.h>
#include "IEDispatcher.h"
class IEBrowser {
public:
IEBrowser(HWND attachHWnd);
~IEBrowser(void);
bool navigateSyncURL(wchar_t* url);
void Boop(char* test);
private:
IWebBrowser2* webBrowser;
HWND hwnd;
IDispatch* spDocument;
IHTMLDocument* spDocument2;
IDocHostUIHandler* m_spHandler;
IDispatch* m_spExternal;
IDispatch* m_newExternal;
IEDispatcher m_IEDispatcher;
IOleClientSite* m_spDefaultDocHostUIHandler;
int setExternal(IDispatch** ext);
};

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,73 +0,0 @@
#include "LevelInstance.h"
LevelInstance::LevelInstance(void)
{
Instance::Instance();
name = "Level";
winMessage = "You Won!";
loseMessage = "You Lost. Try Again";
timer = 60.0F;
score = 0;
canDelete = false;
}
LevelInstance::~LevelInstance(void)
{
}
char timerTxt[12];
char scoreTxt[12];
std::vector<PROPGRIDITEM> LevelInstance::getProperties()
{
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
properties.push_back(createPGI("Messages",
"WinMessage",
"The message that shows when the player wins.",
(LPARAM)winMessage.c_str(),
PIT_EDIT));
properties.push_back(createPGI("Messages",
"LoseMessage",
"The message that shows when the player loses.",
(LPARAM)loseMessage.c_str(),
PIT_EDIT));
sprintf_s(timerTxt, "%g", timer);
sprintf_s(scoreTxt, "%d", score);
properties.push_back(createPGI("Gameplay",
"InitialTimerValue",
"The ammount of time in seconds the player has to complete this level.\r\n\r\nPut 0 if time is limitless.",
(LPARAM)timerTxt,
PIT_EDIT));
properties.push_back(createPGI("Gameplay",
"InitialScoreValue",
"The ammount of points the player starts with.",
(LPARAM)scoreTxt,
PIT_EDIT));
return properties;
}
void LevelInstance::PropUpdate(LPPROPGRIDITEM &pItem)
{
if(strcmp(pItem->lpszPropName, "InitialTimerValue") == 0)
{
timer = atoi((LPSTR)pItem->lpCurValue);
}
if(strcmp(pItem->lpszPropName, "InitialScoreValue") == 0)
{
score = atof((LPSTR)pItem->lpCurValue);
}
if(strcmp(pItem->lpszPropName, "LoseMessage") == 0)
{
loseMessage = (LPSTR)pItem->lpCurValue;
}
if(strcmp(pItem->lpszPropName, "WinMessage") == 0)
{
winMessage = (LPSTR)pItem->lpCurValue;
}
else
Instance::PropUpdate(pItem);
}

6
ODE Copyright.txt Normal file
View File

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

View File

@@ -1,42 +0,0 @@
#include "PVInstance.h"
PVInstance::PVInstance(void)
{
Instance::Instance();
nameShown = false;
className = "PVInstance";
listicon = 0;
}
PVInstance::PVInstance(const PVInstance &oinst)
{
Instance::Instance(oinst);
}
PVInstance::~PVInstance(void)
{
}
void PVInstance::postRender(RenderDevice* rd)
{
}
std::vector<PROPGRIDITEM> PVInstance::getProperties()
{
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
properties.push_back(createPGI(
"Item",
"NameShown",
"This chooses whether the item name is shown",
nameShown,
PIT_CHECK));
return properties;
}
void PVInstance::PropUpdate(LPPROPGRIDITEM &pItem)
{
if(strcmp(pItem->lpszPropName, "NameShown") == 0)
{
nameShown = (bool)pItem->lpCurValue;
}
else Instance::PropUpdate(pItem);
}

View File

@@ -1,15 +0,0 @@
#pragma once
#include "instance.h"
class PVInstance :
public Instance
{
public:
PVInstance(void);
~PVInstance(void);
PVInstance(const PVInstance &oinst);
virtual void postRender(RenderDevice* rd);
virtual std::vector<PROPGRIDITEM> getProperties();
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
bool nameShown;
};

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

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,9 +0,0 @@
#include "ShapeRenderer.h"
ShapeRenderer::ShapeRenderer(void)
{
}
ShapeRenderer::~ShapeRenderer(void)
{
}

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"
WorkspaceInstance::WorkspaceInstance(void)
{
GroupInstance::GroupInstance();
name = "Workspace";
className = "Workspace";
canDelete = false;
}
WorkspaceInstance::~WorkspaceInstance(void)
{
}

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

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

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

View File

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 433 B

View File

Before

Width:  |  Height:  |  Size: 628 B

After

Width:  |  Height:  |  Size: 628 B

View File

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 595 B

View File

Before

Width:  |  Height:  |  Size: 665 B

After

Width:  |  Height:  |  Size: 665 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

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