Commit graph

62 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
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
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
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
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
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
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
logsol
eb29a00012 only adds lastMovedBy when there was no damage - fixes #108 2015-06-28 19:44:26 +02: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
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
6233588e63 cleared items of player fingerprints (lastMovedBy). fixes #92 2015-05-03 12:45:35 +02:00
Jeena
ed35071fff fixes enemy stat update 2015-04-19 18:13:53 +02:00
Jeena
a66a327386 fixes the sending and rendering of game stats 2015-04-19 17:31:41 +02:00
Jeena
a22fbcbbc8 removed console logs 2015-04-19 11:23:19 +02:00
Jeena
0592e2524d added gangsta level and tried to fix on new level 2015-04-12 18:08:11 +02:00
Jeena
aff23e8de0 better handling of dangerousnes, etc. fixes #107 2015-04-02 22:49:43 +02:00
logsol
f9d97c5a47 trying a new approach to calculating damager 2015-04-02 19:35:10 +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
69a3213df8 added deep console log to show last message, fixed bug with / in recording path 2015-03-13 14:48:26 +01:00
Jeena
1408b6addd first version of recorder 2015-03-12 22:17:34 +01:00
logsol
6149b6c47b fixed a small bug regarding suicide and killedByItem 2015-03-02 19:55:24 +01:00
logsol
5007ab5b02 better feedback on killing. fixes #109 2015-03-02 00:13:21 +01:00
Jeena
e404ad3598 fixes #78 revisited weight handycap 2015-02-15 01:38:16 +01:00
logsol
d24ab60756 added angular throwing 2014-12-25 00:33:00 +01:00
logsol
2b186be8af use strict; fixes #83 2014-12-22 01:43:21 +01:00
Jeena
6bc9b7e32b api getMaps for create channel 2014-07-03 20:28:18 +02:00
Jeena
2343049227 changed this to self because of #65 hope this helps 2014-06-29 00:14:56 +02:00
logsol
355282ca08 trying to fix dangerousness and added a cheat script #72 2014-06-07 19:48:17 +02:00
logsol
a4120f6ff5 improved punkbuster 2014-06-07 17:52:33 +02:00
logsol
927b12b726 added linear velocity to positionStateUpdate 2014-05-29 21:48:23 +02:00
logsol
b500ef436d added areaSensor to doll and not allowing client to update position when another player is nearby 2014-05-29 20:27:41 +02:00
logsol
e7f4b6043d Implemented local positioning as master - included punkbuster instead of webrtc for now. #49 2014-05-29 18:29:17 +02:00
logsol
ebc3da12fa First successful attempt to implement rube ragdoll into the game. uncomment //type: rube at the bottom of ItemSettings.js to convert banana into invisible ragdoll (only visible in debug mode) - grabbing still pretty buggy. 2014-05-26 04:22:36 +02:00
logsol
c18384f502 begin Round Bug improvements, player renders doll. fixes #64 2014-05-24 17:39:19 +02:00