Commit graph

382 commits

Author SHA1 Message Date
Karl Pannek
bce96b0c4a Fix circular offset 2025-07-19 00:35:21 +02:00
Karl Pannek
9d74a01f04 Enable pointer lock filters and disable them when debug draw is on
- Enable ENABLE_POINTER_LOCK_FILTER in Settings.js
- Add debug mode check in onPointerLockChange to disable filters when debug is on
- Add onToggleDebugMode override to remove active filters when debug is enabled
- Reduce debug draw line thickness to 0.25 for cleaner visualization
2025-07-19 00:01:48 +02:00
Karl Pannek
925419d801 Refactor debug draw to use PIXI layer system only
- Removed separate canvas overlay system
- Integrated PlanckDebugDraw with PIXI.Graphics
- Debug draw now renders directly to debugLayer.graphics
- Simplified Engine.js by removing camera position methods
- All physics debug visualization now uses the layer system
- Cleaner, more integrated architecture
- Debug checkbox controls single PIXI layer visibility
2025-07-18 23:08:32 +02:00
Karl Pannek
e784b27848 Fix debug draw overlay visibility - simple canvas display toggle
- Fixed debug draw overlay not disappearing when checkbox unchecked
- Added canvas.style.display control in onToggleDebugMode
- Kept existing canvas-based PlanckDebugDraw system
- Both canvas overlay and PIXI debug layer are now properly toggled
- Debug physics bodies now properly show/hide with checkbox
2025-07-18 23:05:55 +02:00
Karl Pannek
38eb5ad182 Disable joint limits on RubeDoll for improved ragdoll behavior
- Temporarily commented out joint limit setting code in RubeDoll.flip()
- RubeDoll joints now have no angular constraints
- Should make ragdoll more floppy and less glitchy
- Collision prevention between held RubeDoll and holding player is working
- All Planck.js migration issues resolved
2025-07-18 22:57:46 +02:00
Karl Pannek
9f92f024b1 Fix Planck.js migration issues and restore RubeDoll functionality
- Fixed Mat22.fromAngle -> Rot.rot() error in RubeDoll.js
- Fixed rot.mul() -> Rot.mul(rot, v) static method usage
- Restored RubeLoader imports and RubeDoll.json loading
- Migrated RubeLoader.js from Box2D to Planck.js API
- Updated all Box2D method calls to Planck.js equivalents
- Fixed import aliases from Box2D to planck across multiple files
- RubeDoll ragdolls now spawn correctly when players die
2025-07-18 22:27:42 +02:00
Karl Pannek
162a4ab82d Restore RubeDoll functionality with Planck.js migration. Update RubeLoader to use Planck.js, fix import aliases, and enable RubeDoll spawning on player death. 2025-07-18 22:06:58 +02:00
Karl Pannek
da6e9a244b Migrate Box2D to Planck.js in core game logic, items, debug draw, and menu. Remove legacy Box2D references, update level and item loading, and improve debug draw for Planck. 2025-07-17 18:50:16 +02:00
Karl Pannek
799601f24d Remove commented out grab sensors and area sensors
- Clean up commented fixture definitions that were temporarily disabled during debugging
2025-07-16 23:41:44 +02:00
Karl Pannek
49f4591d3a Fix debug draw and physics positioning issues
- Fix critical bug in PlanckDebugDraw.js where circles were drawn at body center instead of local positions
- Add DEBUG_DRAW_SENSORS support with orange styling and no outlines
- Fix Chuck's sprite positioning to align with physics body center (pivot adjustments)
- Correct fixture Y coordinates so Chuck stands upright instead of on his head
- Position foot sensor correctly below legs for proper ground detection
- Remove cyan crosses and make yellow center-of-mass crosses smaller
- Make debug lines thinner for cleaner visualization
2025-07-16 23:40:40 +02:00
Karl Pannek
d584065757 Fix Planck debug draw: add camera sync and hide sensors like Box2D 2025-07-16 21:15:37 +02:00
Karl Pannek
955179eec9 Fix contact detection for jump mechanics
- Fix IsTouching() → isTouching() in Doll.js onFootSensorDetection
- This should resolve the issue where players couldn't jump immediately
  after landing, as the contact detection was failing due to calling
  a non-existent method in Planck.js
2025-07-16 15:17:27 +02:00
Karl Pannek
55089d56cb Fix remaining capitalized Box2D method calls using sed
- Convert GetWorld() → getWorld()
- Convert CreateJoint() → createJoint()
- Convert DestroyJoint() → destroyJoint()
- Convert CreateBody() → createBody()
- Convert DestroyBody() → destroyBody()
- Convert GetFriction() → getFriction()
- Convert SetFriction() → setFriction()
- Convert GetBodyList() → getBodyList()
- Convert GetNext() → getNext()
- Convert GetContactList() → getContactList()
- Convert GetFixtureList() → getFixtureList()

Applied bulk sed replacements across all game files to complete
Box2D to Planck.js migration method name conversion.
2025-07-16 15:16:30 +02:00
Karl Pannek
dc779def9c Complete Box2D to Planck.js migration
- Replace Box2D.js with Planck.js physics engine
- Update all require paths from 'Lib/Vendor/Box2D' to 'Lib/Vendor/Planck'
- Convert Box2D contact listeners to Planck.js event system
- Fix all method name capitalization (Get* -> get*, Set* -> set*)
- Update collision detection system for Planck.js compatibility
- Server now starts successfully and basic physics working
- Character can land on platforms - core physics functional

Major milestone: Game now running on modern, maintained physics engine
2025-07-16 15:01:59 +02:00
Karl Pannek
875abd60d9 Major progress on Planck.js migration - server starts without crashing 2025-07-16 13:28:21 +02:00
Karl Pannek
74957807e2 Extend debug platform to the left to cover spawn area
- Moved 4 tiles from right side (x=16-19) to left side (x=6-9)
- Platform now spans x=6-15 instead of x=10-19
- Chuck should now spawn safely on the platform without falling
2025-07-16 13:13:00 +02:00
Karl Pannek
244dc50037 Add working debug level with grass and soil tiles
- Created DebugLevel class that bypasses complex TiledLevel loader
- Simple platform with grass tiles (10.gif) on top, soil tiles (10.gif) underneath
- Fixed tile texture paths to work with MAPS_PATH
- Fixed null check in User.js to prevent server crashes
- Working physics collision with Box2D
- Clean test environment for physics engine migration
2025-07-16 12:51:31 +02:00
Karl Pannek
e6089687ed 2025 update! 2025-07-15 20:05:12 +02:00
1df7258b56 Upgrade socket.io to 2.x 2017-11-06 22:17:33 +01:00
Karl
1bb9539530 adds fixme comment about object.assign for merging 2016-10-28 17:46:39 +02:00
logsol
45ea2dfba3 Fixes some bugs from bulk renaming singleton object variables
Related to #128
2016-10-10 23:41:25 +02:00
logsol
91e0e7af3f Makes singleton variable name of QuerySelector lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Fixes #128
2016-10-10 23:17:16 +02:00
logsol
5b3bfd4370 Makes singleton variable name of OptionsHelper lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 23:11:18 +02:00
logsol
05c4e4de81 Refactoring of Options. Renamed to OptionsHelper
Because that is what it is.
2016-10-10 23:10:43 +02:00
logsol
ce01c8888e Makes singleton variable name of PointerLockManager lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 22:42:22 +02:00
logsol
3cb2e39a18 Makes singleton variable name of NotificationCenter lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 22:11:55 +02:00
logsol
ffc55a204a Makes singleton object variable names of DomController first letter lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 21:50:03 +02:00
logsol
875a40185e Increases score limit back to a higher value
It had been reduced to 1 for testing.
2016-10-10 20:15:41 +02:00
logsol
b798e6acac Adds forward walking on shift
The state of the shift modifier is now distributed across the
network. Walking speeds and animation states are being updated
according to it.

Fixes #130
2016-10-09 19:56:06 +02:00
logsol
062402db58 Adds NotificationCenter exception when triggering unknown topic
If you forget to add a certain topic to the Nc, you will
now get an Exception with a meaningful message.
2016-10-09 19:27:10 +02:00
logsol
dba743cd7b Updates obsolete/broken way of clearing fingerprints
When a user leaves the channel, some items need to be cleared of
their fingerprints (lastTouchedBy). This feature was broken
because it used the this.gameObjects pool which was no longer in
use.

The channel GameController now triggers an event to which all
items are subscribed to and if it is triggered, all items with that
users fingerprints clear themselves off those.

Fixes #170
2016-10-09 12:46:07 +02:00
logsol
3a5af058ef Prevents adding damage after round has ended
Because it created double round endings, which led to crashes.
Also moved inBetweenRound state from PlayerController to GameController.
2016-10-01 19:12:52 +02:00
logsol
c068592915 Makes world in Engine private
And some refactoring.
2016-10-01 19:09:52 +02:00
logsol
8641a2dc0b On destroy unsubscribe missing GameObjects from render event
fixes #71
2016-10-01 16:51:43 +02:00
logsol
8b8093b771 Stops sending gameCommands between beginRound and clientReady
Listen for beginRound control command
to set client to be unready again
so it can load its new level without getting
any gameCommands like worldUpdate
2016-10-01 16:08:01 +02:00
logsol
016c48ec3b During first worldUpdate set doll positions after spawning players
Otherwise we get a warning.
2016-10-01 14:01:12 +02:00
logsol
a5f828a861 Adds NETWORK_LOG_FILTER setting to incoming network messages 2016-10-01 13:43:37 +02:00
logsol
fc7866f11e Hides playercontroller within player
In order to not provide deep exposure to PlayerController,
we refactored it so that it is not visible anymore outside Player.

Also we renamed isInBetweenGames to inBetweenRounds.

Moved creation of PlayerController from GameController(s) to
The channel Player and client Me.
2016-10-01 12:19:02 +02:00
logsol
c87997c774 fixes #147, fixes #136, is related to but doesnt entirely complete #144 2016-08-28 22:40:25 +02:00
logsol
502cf72a7e fixes #157 2016-08-28 13:24:27 +02:00
Jeena
f35b9f5ba9 fixed flip for RubeDoll 2015-08-02 17:22:41 +02:00
Jeena
0b8d885d48 Merge branch 'master' into subbodies 2015-08-02 16:06:57 +02:00
Jeena
a8adbcf140 fixes position state update and removes dev graphs for better fps 2015-08-02 16:06:32 +02:00
logsol
0edde06d67 only adds lastMovedBy when there was no damage - fixes #99 2015-08-02 11:38:45 +02:00
logsol
e370adf746 worldupdate subbody repositioning - #99 2015-06-29 01:29:57 +02:00
Jeena
2e01a093fc first step of rotating limbs in RubeDoll 2015-06-28 16:26:52 -07:00
logsol
7cd4cc702b should fix a bug happening on live deployment 2015-06-28 20:11:28 +02:00
logsol
eb29a00012 only adds lastMovedBy when there was no damage - fixes #108 2015-06-28 19:44:26 +02:00
logsol
71db5a8a81 removes flashsocket - fixes #117 2015-06-28 19:11:37 +02:00
logsol
8e9ce62e19 merges from rubedoll 2015-06-22 00:22:00 +02:00