Commit Graph

12652 Commits

Author SHA1 Message Date
teknomunk 48d8a64e6b Move cart code to its own file, more code cleanup, add aliases for old track items 2024-10-27 16:00:44 +01:00
teknomunk f8c56c2fc2 Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-10-27 16:00:44 +01:00
teknomunk 740b48ac06 Get rail reattachment (especially after jumps) working correctly 2024-10-27 16:00:44 +01:00
teknomunk 892c2d3e95 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-27 16:00:44 +01:00
teknomunk 9d41eed732 Silence unmaskable print statements 2024-10-27 16:00:44 +01:00
teknomunk 7db52f9b7c 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-27 16:00:44 +01:00
teknomunk d85e998ab0 Fix more rail connection bugs 2024-10-27 16:00:44 +01:00
teknomunk f1b23796cc Get sloped connections working correctly 2024-10-27 16:00:44 +01:00
teknomunk ab5e556cfc Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-10-27 16:00:44 +01:00
teknomunk c32433bd71 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-27 16:00:44 +01:00
teknomunk 2321376462 Update all rail types to new version 2024-10-27 16:00:44 +01:00
teknomunk c1eddc8f40 Reorganize 2024-10-27 16:00:44 +01:00
teknomunk a614020859 Finish reverting 08b41a3b39 2024-10-27 16:00:44 +01:00
teknomunk 512236c9ce Enable new track with get_next_dir handlers 2024-10-27 16:00:44 +01:00
teknomunk 00eb02b643 Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-10-27 16:00:44 +01:00
teknomunk 4424a971cb Add sloped rail 2024-10-27 16:00:44 +01:00
teknomunk 45528c0282 Fix rail visuals, add switch operation 2024-10-27 16:00:44 +01:00
teknomunk aeb29331cd Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-10-27 16:00:44 +01:00
teknomunk 8aea906646 Start implementing new rail nodes 2024-10-27 16:00:44 +01:00
teknomunk 4fd9418dc8 Implement minecart with command block 2024-10-27 16:00:44 +01:00
teknomunk 2e33906867 Create mesecons command API and modify commandblock to use it 2024-10-27 16:00:44 +01:00
teknomunk c469160b5e Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-10-27 16:00:44 +01:00
teknomunk a7e2474297 Remove cart oscillation when pushed 2024-10-27 16:00:44 +01:00
teknomunk f6dee42c6f Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-10-27 16:00:44 +01:00
teknomunk 824769a8e3 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-10-27 16:00:44 +01:00
teknomunk ac6d645e31 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-27 16:00:44 +01:00
teknomunk d777d150ba 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-27 16:00:44 +01:00
teknomunk 344435d2f8 Add API function to remove node watch 2024-10-27 16:00:44 +01:00
teknomunk 9606eb1b40 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-27 16:00:44 +01:00
teknomunk 4a222bfdd9 Start adding hooks for implpementing minecart with command block 2024-10-27 16:00:44 +01:00
teknomunk 76fbd663ee Make minecarts solid and add players pushing 2024-10-27 16:00:44 +01:00
teknomunk c93102011c Fix forwards/backwars tilt in all directions 2024-10-27 16:00:44 +01:00
teknomunk 5035dceb76 Prevent players from entering minecarts when sneaking, prevents players from causing MineClone2/MineClone2#3188 2024-10-27 16:00:44 +01:00
teknomunk 60a1793253 Increase default track friction, disable right-click to exit minecarts 2024-10-27 16:00:44 +01:00
teknomunk 66c517cde5 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-27 16:00:44 +01:00
teknomunk 3d32bc593e 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-27 16:00:44 +01:00
teknomunk a3dd85536a Mostly fix carts stopping between powered rails (there is still some strangeness with acceleration physics) 2024-10-27 16:00:44 +01:00
teknomunk 2c83dfce8f Fix diagonal movement 2024-10-27 16:00:44 +01:00
teknomunk 1ccfe32748 Add diagonal track movement on zig-zag track, rewrite mcl_minecarts:get_rail_direction 2024-10-27 16:00:44 +01:00
teknomunk cb6d1256c6 Make TNT minecarts available in creative menu 2024-10-27 16:00:44 +01:00
teknomunk 0c5dc7dd3d Implement custom item dropper handlers, implement droppers placing minecarts 2024-10-27 16:00:44 +01:00
teknomunk 6b46bb8f02 Hopper minecarts pull from containers above rail 2024-10-27 16:00:44 +01:00
teknomunk 6f2724f816 Rework in preparation to add code to pull from containers into the hopper minecart 2024-10-27 16:00:44 +01:00
teknomunk 7966f2c0f5 Move fiction constant to top of file, suppress cart flips when direction reverses due to gravity or end of track 2024-10-27 16:00:44 +01:00
teknomunk 38c462ca3e Add code to reattach carts to rail when data corruption occurs, fix bug in last commit that caused carts to bury into the ground 2024-10-27 16:00:44 +01:00
teknomunk 970e83de8b Remove dip into the ground that occured when gravity caused the cart to reverse directions 2024-10-27 16:00:44 +01:00
teknomunk adb44f9837 Implement gravity, move orientation update to own function, fix cart stopping in process_acceleration 2024-10-27 16:00:44 +01:00
teknomunk a575572d9d Change connected railcar behavior to fix unreliable end of track stopping, set maximum acceleration of powered rails to 8 blocks per second (per https://minecraft.fandom.com/wiki/Powered_Rail), stop powered rails from powering the block underneath it (allows below rail hopper to work while the rail is powered like in https://www.youtube.com/watch?v=szjO0-duTAk), modify mcl_hoppers to allow triggering a hopper pull once the minecart is stopped on top of the hopper and wait before allowing the cart to move to allow redstone circuits time to process 2024-10-27 16:00:44 +01:00
teknomunk c449c3eed9 Make minecart always stop at correct location at end of track, fix crash when placing chest minecart after changing how staticdata is handled 2024-10-27 16:00:44 +01:00
teknomunk c86609ec65 Modify do_movement_step to move to always move to the edge of the current rail segment before updating the direction to prevent oscillations at corners, fix end of track stop location with new movement behavior, disable experimental controls, swap code to detach the driver on float with a call to detach_driver() 2024-10-27 16:00:44 +01:00