Commit Graph

12403 Commits

Author SHA1 Message Date
teknomunk 79d068b98a Fix undefined global warning, move player off to the side of a cart when dismounting so trains don't get pushed apart when getting out 2024-06-15 14:08:29 +02:00
teknomunk 79b3b3b26b Make trains containing a player in a minecart function, minor cleanup in mcl_playerinfo 2024-06-15 14:08:29 +02:00
teknomunk 475d6f3e93 Fix crashes in train logic, allow breaking apart trains 2024-06-15 14:08:29 +02:00
teknomunk e59a89eb2a Implement train reversing 2024-06-15 14:08:29 +02:00
teknomunk a48c58a244 Repair vectors in cart data, mostly fix train movement bugs (still possible to have a furnace minecart flip, without the train also flipping) 2024-06-15 14:08:29 +02:00
teknomunk 52904ef5e0 Add cart entity respawn/destroy to match cart data (partially working) 2024-06-15 14:08:29 +02:00
teknomunk 095ad465e5 Give furnace minecart minimum velocity when lit, add train separation code, update logging code, add sequence number to entity staticdata to allow respawn/despawn when carts move when the entity is unloaded 2024-06-15 14:08:29 +02:00
teknomunk db96e86d57 Fix rail detach crash, make tnt minecarts explode if they hit something hard (off rails) 2024-06-15 14:08:29 +02:00
teknomunk dcf833907e Make sure carts get detatch if the rail under them is removed 2024-06-15 14:08:29 +02:00
teknomunk 24bf99df44 Fixish reorganizing, initial train implementation 2024-06-15 14:08:29 +02:00
teknomunk 386bde698d Major reorganization, start setup for trains 2024-06-15 14:08:29 +02:00
teknomunk 3ca5bd0dff Make sure carts that collide move in the same direction the colliding cart was 2024-06-15 14:08:29 +02:00
teknomunk bacc8bdf64 Add utilities to convert between an ObjectRef, it's active object id and a 128bit uuid, move minecart data from entity staticdata to mod storage to eventually allow updating carts when out of range of players and also track what carts are alive, implement on-rail cart collisions 2024-06-15 14:08:29 +02:00
teknomunk ce9e3481af Harden against unknown nodes 2024-06-15 14:08:29 +02:00
teknomunk 659a387256 Allow players to push minecarts that are not on track 2024-06-15 14:08:29 +02:00
teknomunk b6e51a3c40 Fix rails in creative inventory, make minecart with tnt not crash server when exploding, make minecart with tnt slightly more powerful than regular tnt 2024-06-15 14:08:29 +02:00
teknomunk 6d9cae1034 Fix rail movement regressions 2024-06-15 14:08:29 +02:00
teknomunk e6664de6e7 Move cart code to its own file, more code cleanup, add aliases for old track items 2024-06-15 14:08:29 +02:00
teknomunk fd03fc0027 Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-06-15 14:08:29 +02:00
teknomunk c9883cc6cc Get rail reattachment (especially after jumps) working correctly 2024-06-15 14:08:29 +02:00
teknomunk 5bd06f5c03 Make legacy rail update apply to all old rail types, add basic detached railcart physics with a stub to use mcl_physics when it gets merged 2024-06-15 14:08:29 +02:00
teknomunk 284c366136 Silence unmaskable print statements 2024-06-15 14:08:29 +02:00
teknomunk c1a7001c31 Add immortal item entity support, add legacy rail conversion that uses immortal item drops for corners/tees/crosses that are no longer possible 2024-06-15 14:08:29 +02:00
teknomunk 8cd9ee9b32 Fix more rail connection bugs 2024-06-15 14:08:29 +02:00
teknomunk 3391a28fa9 Get sloped connections working correctly 2024-06-15 14:08:29 +02:00
teknomunk ad11fc22ec Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-06-15 14:08:29 +02:00
teknomunk 4589206985 Fix mcl_util.table_merge where a standard value overwrites a table, fix base definition usage, implement behavior difference when there is a solid block after a straight piece of track (this will eventually allow minecarts to fly off the end of the track) 2024-06-15 14:08:29 +02:00
teknomunk 19e2dc58eb Update all rail types to new version 2024-06-15 14:08:29 +02:00
teknomunk 4b8cb85319 Reorganize 2024-06-15 14:08:29 +02:00
teknomunk 7b7dfd1da3 Finish reverting 08b41a3b39 2024-06-15 14:08:29 +02:00
teknomunk 603577e7a6 Enable new track with get_next_dir handlers 2024-06-15 14:08:29 +02:00
teknomunk 34f394d8dc Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-06-15 14:08:29 +02:00
teknomunk 75f394e5ab Add sloped rail 2024-06-15 14:08:29 +02:00
teknomunk 478c488c85 Fix rail visuals, add switch operation 2024-06-15 14:08:29 +02:00
teknomunk 4265f0b428 Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-06-15 14:08:29 +02:00
teknomunk 57ad709bdd Start implementing new rail nodes 2024-06-15 14:08:29 +02:00
teknomunk 296c301669 Implement minecart with command block 2024-06-15 14:08:29 +02:00
teknomunk 4c88eb1439 Create mesecons command API and modify commandblock to use it 2024-06-15 14:08:29 +02:00
teknomunk 4db70fd729 Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-06-15 14:08:29 +02:00
teknomunk 6f7e1df002 Remove cart oscillation when pushed 2024-06-15 14:08:29 +02:00
teknomunk c18976c0ca Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-06-15 14:08:29 +02:00
teknomunk ff5e185629 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-06-15 14:08:29 +02:00
teknomunk 64b930ac3e Fix call signature of mcl_util.hopper_pull_to_inventory, move cart-specific behaviors to _mcl_minecarts_on_step handlers, fix typo, change distance used in rail reattach code, move cart_id generation 2024-06-15 14:08:29 +02:00
teknomunk f9e8f60a1c Add groups to minecart entities (for containers), fix cart node watch handling, relocate hopper_push_to_mc in mcl_hopper/init.lua, implement hopper-to-minecart push using enter/leave hooks for both straight and bent hoppers 2024-06-15 14:08:29 +02:00
teknomunk ec2d08524e Add API function to remove node watch 2024-06-15 14:08:29 +02:00
teknomunk 6c6bfcfcb2 Refactor enter/leave hook processing, add node watches for implementing hopper-to-minecart functionality (should properly handle heavy server lag without missing any time), temporarily disable hopper push/pull to minecart in mcl_hoppers, prepare to move minecart-specific on_step behavior out of main on_step function and to a minecart-specific handler 2024-06-15 14:08:29 +02:00
teknomunk b0c075714f Start adding hooks for implpementing minecart with command block 2024-06-15 14:08:29 +02:00
teknomunk 44f9a3e619 Make minecarts solid and add players pushing 2024-06-15 14:08:29 +02:00
teknomunk 1618693726 Fix forwards/backwars tilt in all directions 2024-06-15 14:08:29 +02:00
teknomunk fd6f4ee80e Prevent players from entering minecarts when sneaking, prevents players from causing https://git.minetest.land/MineClone2/MineClone2/issues/3188 2024-06-15 14:08:29 +02:00