Commit Graph

12605 Commits

Author SHA1 Message Date
teknomunk 7c5f2f4dfb Make sure carts that collide move in the same direction the colliding cart was 2024-10-11 11:22:23 +02:00
teknomunk 74791e7219 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-10-11 11:22:23 +02:00
teknomunk af9e01350e Harden against unknown nodes 2024-10-11 11:22:23 +02:00
teknomunk da674131ec Allow players to push minecarts that are not on track 2024-10-11 11:22:23 +02:00
teknomunk 34de252d97 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-10-11 11:22:23 +02:00
teknomunk ead9da6d14 Fix rail movement regressions 2024-10-11 11:22:23 +02:00
teknomunk 4879899e06 Move cart code to its own file, more code cleanup, add aliases for old track items 2024-10-11 11:22:23 +02:00
teknomunk 2f4ac9a02d Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-10-11 11:22:23 +02:00
teknomunk 17a27e9169 Get rail reattachment (especially after jumps) working correctly 2024-10-11 11:22:23 +02:00
teknomunk b356da9472 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-10-11 11:22:23 +02:00
teknomunk 9524b8313a Silence unmaskable print statements 2024-10-11 11:22:23 +02:00
teknomunk 4b66ae64eb Add immortal item entity support, add legacy rail conversion that uses immortal item drops for corners/tees/crosses that are no longer possible 2024-10-11 11:22:23 +02:00
teknomunk d4234f0c4d Fix more rail connection bugs 2024-10-11 11:22:23 +02:00
teknomunk d8ea7659f2 Get sloped connections working correctly 2024-10-11 11:22:23 +02:00
teknomunk 299a6c4177 Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-10-11 11:22:23 +02:00
teknomunk 9d9a0d2faa 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-10-11 11:22:23 +02:00
teknomunk 5877854f3a Update all rail types to new version 2024-10-11 11:22:23 +02:00
teknomunk 659bf8fed9 Reorganize 2024-10-11 11:22:23 +02:00
teknomunk 1598f7fa80 Finish reverting 08b41a3b39 2024-10-11 11:22:23 +02:00
teknomunk 78ee4481c9 Enable new track with get_next_dir handlers 2024-10-11 11:22:23 +02:00
teknomunk da4058ad2c Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-10-11 11:22:23 +02:00
teknomunk 6a6405366a Add sloped rail 2024-10-11 11:22:23 +02:00
teknomunk bcbb319129 Fix rail visuals, add switch operation 2024-10-11 11:22:23 +02:00
teknomunk 68f7eb509a Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-10-11 11:22:23 +02:00
teknomunk fde18b5020 Start implementing new rail nodes 2024-10-11 11:22:23 +02:00
teknomunk d5bdd46529 Implement minecart with command block 2024-10-11 11:22:23 +02:00
teknomunk d729c702f7 Create mesecons command API and modify commandblock to use it 2024-10-11 11:22:23 +02:00
teknomunk 960a053485 Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-10-11 11:22:23 +02:00
teknomunk 8cfe8c8247 Remove cart oscillation when pushed 2024-10-11 11:22:23 +02:00
teknomunk 2cf5510549 Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-10-11 11:22:23 +02:00
teknomunk a819d5e6da Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-10-11 11:22:23 +02:00
teknomunk 4097c5a5d5 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-10-11 11:22:23 +02:00
teknomunk 9b0e387ffa 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-10-11 11:22:23 +02:00
teknomunk 232769e5fb Add API function to remove node watch 2024-10-11 11:22:23 +02:00
teknomunk 55a13cba60 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-10-11 11:22:23 +02:00
teknomunk 46bb715645 Start adding hooks for implpementing minecart with command block 2024-10-11 11:22:23 +02:00
teknomunk 5871d2996a Make minecarts solid and add players pushing 2024-10-11 11:22:23 +02:00
teknomunk 7021eb3787 Fix forwards/backwars tilt in all directions 2024-10-11 11:22:23 +02:00
teknomunk f61c6a8c30 Prevent players from entering minecarts when sneaking, prevents players from causing MineClone2/MineClone2#3188 2024-10-11 11:22:23 +02:00
teknomunk a5d8fcdfc3 Increase default track friction, disable right-click to exit minecarts 2024-10-11 11:22:23 +02:00
teknomunk aa3f9dfe54 Initial tuning of acceleration/gravity, fix crash when entering an activator rail, detach mobs from cart on active activator rail, remove commented out code no longer needed 2024-10-11 11:22:23 +02:00
teknomunk 98034e25dd Move code that handles below-rail hoppers to handle_cart_enter, implement timestep-independent cart physics (will need tuning punch, power rail and gravityaccelerations to make game fun) 2024-10-11 11:22:23 +02:00
teknomunk c200ef25b4 Mostly fix carts stopping between powered rails (there is still some strangeness with acceleration physics) 2024-10-11 11:22:23 +02:00
teknomunk ca917b1d22 Fix diagonal movement 2024-10-11 11:22:23 +02:00
teknomunk 97ddc79b90 Add diagonal track movement on zig-zag track, rewrite mcl_minecarts:get_rail_direction 2024-10-11 11:22:23 +02:00
teknomunk 8e4f902371 Make TNT minecarts available in creative menu 2024-10-11 11:22:23 +02:00
teknomunk b17a5bb61d Implement custom item dropper handlers, implement droppers placing minecarts 2024-10-11 11:22:23 +02:00
teknomunk 36cfa11e71 Hopper minecarts pull from containers above rail 2024-10-11 11:22:23 +02:00
teknomunk 1d03823da3 Rework in preparation to add code to pull from containers into the hopper minecart 2024-10-11 11:22:23 +02:00
teknomunk 0575f0a1a4 Move fiction constant to top of file, suppress cart flips when direction reverses due to gravity or end of track 2024-10-11 11:22:23 +02:00