Commit Graph

12196 Commits

Author SHA1 Message Date
teknomunk 59e2ab01a4 Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-04-28 11:12:44 +00:00
teknomunk 32e626fa6f Start implementing new rail nodes 2024-04-28 11:12:44 +00:00
teknomunk bdab5b1853 Implement minecart with command block 2024-04-28 11:12:44 +00:00
teknomunk 253c82eb31 Create mesecons command API and modify commandblock to use it 2024-04-28 11:12:44 +00:00
teknomunk 62de57b13c Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-04-28 11:12:44 +00:00
teknomunk 59b32a89e0 Remove cart oscillation when pushed 2024-04-28 11:12:44 +00:00
teknomunk d07a7d4ae6 Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-04-28 11:12:44 +00:00
teknomunk 430842f052 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-04-28 11:12:44 +00:00
teknomunk 52846d67a0 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-04-28 11:12:44 +00:00
teknomunk dbd4675856 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-04-28 11:12:42 +00:00
teknomunk 8bd5559d13 Add API function to remove node watch 2024-04-28 11:11:38 +00:00
teknomunk 2265ac1dce 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-04-28 11:11:38 +00:00
teknomunk 3efd9d123a Start adding hooks for implpementing minecart with command block 2024-04-28 11:11:38 +00:00
teknomunk 91964536c7 Make minecarts solid and add players pushing 2024-04-28 11:11:38 +00:00
teknomunk 9332d828a8 Fix forwards/backwars tilt in all directions 2024-04-28 11:11:38 +00:00
teknomunk df29329d74 Prevent players from entering minecarts when sneaking, prevents players from causing MineClone2/MineClone2#3188 2024-04-28 11:11:38 +00:00
teknomunk 23c2fa8649 Increase default track friction, disable right-click to exit minecarts 2024-04-28 11:11:38 +00:00
teknomunk 7a22c1de23 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-04-28 11:11:38 +00:00
teknomunk 44142b65dd 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-04-28 11:11:38 +00:00
teknomunk 4d807e2716 Mostly fix carts stopping between powered rails (there is still some strangeness with acceleration physics) 2024-04-28 11:11:38 +00:00
teknomunk b179bff3b9 Fix diagonal movement 2024-04-28 11:11:38 +00:00
teknomunk b1cd177bb6 Add diagonal track movement on zig-zag track, rewrite mcl_minecarts:get_rail_direction 2024-04-28 11:11:38 +00:00
teknomunk ada5fe43ee Make TNT minecarts available in creative menu 2024-04-28 11:11:38 +00:00
teknomunk 7736bfc0dd Implement custom item dropper handlers, implement droppers placing minecarts 2024-04-28 11:11:38 +00:00
teknomunk 29fa07f785 Hopper minecarts pull from containers above rail 2024-04-28 11:11:38 +00:00
teknomunk 972b104b68 Rework in preparation to add code to pull from containers into the hopper minecart 2024-04-28 11:11:38 +00:00
teknomunk 72a2dfebc2 Move fiction constant to top of file, suppress cart flips when direction reverses due to gravity or end of track 2024-04-28 11:11:38 +00:00
teknomunk 56bf3257de 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-04-28 11:11:38 +00:00
teknomunk 63ed9bc048 Remove dip into the ground that occured when gravity caused the cart to reverse directions 2024-04-28 11:11:38 +00:00
teknomunk a667721c3d Implement gravity, move orientation update to own function, fix cart stopping in process_acceleration 2024-04-28 11:11:38 +00:00
teknomunk 30ccead2b4 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-04-28 11:11:38 +00:00
teknomunk 8447b99e78 Make minecart always stop at correct location at end of track, fix crash when placing chest minecart after changing how staticdata is handled 2024-04-28 11:11:38 +00:00
teknomunk 382c5ee7d9 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-04-28 11:11:38 +00:00
teknomunk 153917fc35 Add DEBUG flag, stop small do_movement_step's from occuring (this improves but doesn't eliminate the bug I with the a6be179ed commit), add recovery when staticdata field gets lost 2024-04-28 11:11:38 +00:00
teknomunk 8c13ef1784 Fix initial_properties for minecarts 2024-04-28 11:11:38 +00:00
teknomunk 5a54050197 Change left,right and back vectors to matrix math results with no branching 2024-04-28 11:11:38 +00:00
teknomunk 2b51f34e7c Remove now unused properties from minecart definition, convert more vectors to use vector.new syntax 2024-04-28 11:11:38 +00:00
teknomunk 6ee2a0cf84 Complete rewrite of minecart movement that resolves MineClone2/MineClone2#2446 and MineClone2/MineClone2#247 (comment) but has a bug where carts will synchronize movements that I am still investigating 2024-04-28 11:11:38 +00:00
teknomunk 5cb23790a9 Change staticdata serialization (with migration from old data), disable debugging code used to investigate MineClone2/MineClone2#2446 2024-04-28 11:11:38 +00:00
teknomunk 8ab04f0305 Change to vector.new from {x=...}, relocate movement code to own function for future changes 2024-04-28 11:11:38 +00:00
the-real-herowl 5f70189e08 Don't touch description if tt snippets did nothing (#4264)
This should prevent problems like the ones described in MineClone2/MineClone2#4196 (comment) or MineClone2/MineClone2#4130 (comment)

Reviewed-on: MineClone2/MineClone2#4264
Co-authored-by: the-real-herowl <wiktor_t-i@proton.me>
Co-committed-by: the-real-herowl <wiktor_t-i@proton.me>
2024-04-28 15:04:39 +00:00
the-real-herowl 4e12c6747c Merge pull request 'Fix #4189 - Make hoppers move items if there is space for one item' (#4190) from teknomunk/MineClone2:hopper-changes into master
Reviewed-on: MineClone2/MineClone2#4190
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
2024-04-27 13:51:34 +00:00
the-real-herowl 1d8fc7abac Merge pull request 'Bed Fixes' (#4253) from teknomunk/MineClone2:bed-fixes into master
Reviewed-on: MineClone2/MineClone2#4253
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
2024-04-27 12:35:14 +00:00
teknomunk 09c595c363 Fix two hopper clocks 2024-04-27 08:41:09 +00:00
teknomunk 6fbe60f1ac Fix crash with undefined nodes 2024-04-27 08:41:09 +00:00
teknomunk 3705be24d7 Fix 'Undeclared global variable' warning 2024-04-27 08:41:09 +00:00
teknomunk 681075df5a Correct null -> nil 2024-04-27 08:41:09 +00:00
teknomunk 6ecb304946 make hoppers behave the same say regardless of the order the server processes the nodes by following a chain of hoppers to the end and processing back to the starting node and marking all those nodes as processed 2024-04-27 08:41:09 +00:00
teknomunk 034b0142c6 Make sure the inventory slot has at least the number of items requsted in it before selecting it 2024-04-27 08:41:09 +00:00
teknomunk e02d1c0e27 Update to comply with coding guidelines 2024-04-27 08:41:09 +00:00