Commit graph

166 commits

Author SHA1 Message Date
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
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
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
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
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
016c48ec3b During first worldUpdate set doll positions after spawning players
Otherwise we get a warning.
2016-10-01 14:01:12 +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
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
8e9ce62e19 merges from rubedoll 2015-06-22 00:22:00 +02:00
logsol
07dad646cf new system for synchronizing game objects. fixes #74 2015-06-22 00:14:17 +02:00
logsol
5b68f7e2b6 improving rube doll flipping behaviour and positioning 2015-05-11 11:10:30 +02:00
logsol
fb3ac40d17 implemented rubedoll direction flip and added meshIndex (z) swapping capability. #151 2015-05-11 11:10:30 +02:00
logsol
2dea240a4b implemented rube doll to appear when dying 2015-05-11 11:10:30 +02:00
logsol
ca1ca7635b implemented rubedoll level item (not after dying yet) 2015-05-11 11:10:30 +02:00
logsol
1546136303 rebuilt skateboard without joints 2015-05-11 11:10:30 +02:00
logsol
da62339a95 rebuilt skateboard without joints 2015-05-11 11:09:24 +02:00
Logsol
6233588e63 cleared items of player fingerprints (lastMovedBy). fixes #92 2015-05-03 12:45:35 +02:00
Jeena
0592e2524d added gangsta level and tried to fix on new level 2015-04-12 18:08:11 +02:00
Jeena
46f14c22c6 made fast objects bullets, fixes #126 2015-04-02 21:27:13 +02:00
Jeena
16826b174a fixed debug view and ragdoll start positioning 2015-03-16 01:50:41 +01:00
Jeena
c88afc8b4c fixes #112 finished recorder 2015-03-15 21:06:44 +01:00
Jeena
dfa71bc8e5 added ASSERT, fixed #103 2015-03-15 16:51:38 +01:00
logsol
b3ee560c02 still level loader bug (only allowed square sized maps) 2015-03-12 19:56:14 +01:00
logsol
5f5fec5b10 added optimizer scripts and some code style improvements 2015-03-09 04:56:28 +01:00
Jeena
81f5990e0c fixes #96 j.m_collideConnected crash 2015-03-01 16:37:06 +01:00
Jeena
e404ad3598 fixes #78 revisited weight handycap 2015-02-15 01:38:16 +01:00
Jeena
a340501dc2 removed objects with joints because of #99 2015-02-14 15:01:53 +01:00
logsol
ac69077e8a disabled spectator doll - was falling forever 2015-02-07 16:16:28 +01:00
logsol
5caa21f453 fixed item throw interface of ragdoll fixes #93 2015-02-07 14:30:55 +01:00
logsol
809a622cd9 bugfix throwing exception 2014-12-28 20:34:45 +01:00
logsol
ece260e80e fixed drop error. added carrier velocity, bugfix 2014-12-25 15:06:36 +01:00