Commit Graph

11072 Commits

Author SHA1 Message Date
teknomunk 17a5b1eee3 Major reorganization, start setup for trains 2024-11-12 00:59:50 +01:00
teknomunk cf7350418f Make sure carts that collide move in the same direction the colliding cart was 2024-11-12 00:59:50 +01:00
teknomunk 0511de8876 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-11-12 00:59:50 +01:00
teknomunk ce8b79fbe2 Harden against unknown nodes 2024-11-12 00:59:50 +01:00
teknomunk 41943522a5 Allow players to push minecarts that are not on track 2024-11-12 00:59:50 +01:00
teknomunk 38ee22c3bd 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-11-12 00:59:50 +01:00
teknomunk efe190e23c Fix rail movement regressions 2024-11-12 00:59:50 +01:00
teknomunk 9aacafe52c Move cart code to its own file, more code cleanup, add aliases for old track items 2024-11-12 00:59:50 +01:00
teknomunk 8517885521 Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-11-12 00:59:50 +01:00
teknomunk 826a827db2 Get rail reattachment (especially after jumps) working correctly 2024-11-12 00:59:50 +01:00
teknomunk 0aa45092cf 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-11-12 00:59:50 +01:00
teknomunk 9e16947080 Silence unmaskable print statements 2024-11-12 00:59:50 +01:00
teknomunk 90c8bf35b7 Add immortal item entity support, add legacy rail conversion that uses immortal item drops for corners/tees/crosses that are no longer possible 2024-11-12 00:59:50 +01:00
teknomunk 95d168d8bd Fix more rail connection bugs 2024-11-12 00:59:50 +01:00
teknomunk 76f4135dde Get sloped connections working correctly 2024-11-12 00:59:50 +01:00
teknomunk b2fd8d5339 Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-11-12 00:59:50 +01:00
teknomunk 7164063644 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-11-12 00:59:50 +01:00
teknomunk 2724c25e90 Update all rail types to new version 2024-11-12 00:59:50 +01:00
teknomunk ef5feffb98 Reorganize 2024-11-12 00:59:50 +01:00
teknomunk 0fc7383221 Finish reverting 08b41a3b39 2024-11-12 00:59:50 +01:00
teknomunk 5bf26706fa Enable new track with get_next_dir handlers 2024-11-12 00:59:50 +01:00
teknomunk b78c462306 Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-11-12 00:59:50 +01:00
teknomunk de59535dae Add sloped rail 2024-11-12 00:59:50 +01:00
teknomunk 7541ef8e03 Fix rail visuals, add switch operation 2024-11-12 00:59:50 +01:00
teknomunk 61bb7f06b5 Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-11-12 00:59:50 +01:00
teknomunk 5c3e2c8f90 Start implementing new rail nodes 2024-11-12 00:59:50 +01:00
teknomunk d4b90a4bd5 Implement minecart with command block 2024-11-12 00:59:50 +01:00
teknomunk 9397e329e7 Create mesecons command API and modify commandblock to use it 2024-11-12 00:59:50 +01:00
teknomunk d9db08d35b Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-11-12 00:59:50 +01:00
teknomunk d78c4593ec Remove cart oscillation when pushed 2024-11-12 00:59:50 +01:00
teknomunk 371ad8d737 Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-11-12 00:59:50 +01:00
teknomunk 0cb19e5218 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-11-12 00:59:50 +01:00
teknomunk c17874bc48 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-11-12 00:59:50 +01:00
teknomunk 1dd8f0efef 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-11-12 00:59:50 +01:00
teknomunk 6646c6e84f Add API function to remove node watch 2024-11-12 00:59:50 +01:00
teknomunk 746780ab1f 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-11-12 00:59:50 +01:00
teknomunk c3b6cf758c Start adding hooks for implpementing minecart with command block 2024-11-12 00:59:50 +01:00
teknomunk 58cdc1b66a Make minecarts solid and add players pushing 2024-11-12 00:59:50 +01:00
teknomunk 390419e67c Fix forwards/backwars tilt in all directions 2024-11-12 00:59:50 +01:00
teknomunk c42302cfd2 Prevent players from entering minecarts when sneaking, prevents players from causing MineClone2/MineClone2#3188 2024-11-12 00:59:50 +01:00
teknomunk 5b1ebbff97 Increase default track friction, disable right-click to exit minecarts 2024-11-12 00:59:50 +01:00
teknomunk c198257ae7 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-11-12 00:59:50 +01:00
teknomunk 12ac5740d3 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-11-12 00:59:50 +01:00
teknomunk cc84d5efa9 Mostly fix carts stopping between powered rails (there is still some strangeness with acceleration physics) 2024-11-12 00:59:50 +01:00
teknomunk 0b1252a60d Fix diagonal movement 2024-11-12 00:59:50 +01:00
teknomunk e04d82b80e Add diagonal track movement on zig-zag track, rewrite mcl_minecarts:get_rail_direction 2024-11-12 00:59:50 +01:00
teknomunk 88f5796cad Make TNT minecarts available in creative menu 2024-11-12 00:59:50 +01:00
teknomunk e82e5f805f Implement custom item dropper handlers, implement droppers placing minecarts 2024-11-12 00:59:50 +01:00
teknomunk 8ee950d31e Hopper minecarts pull from containers above rail 2024-11-12 00:59:50 +01:00
teknomunk 356c2c6418 Rework in preparation to add code to pull from containers into the hopper minecart 2024-11-12 00:59:50 +01:00
teknomunk ce9f92e017 Move fiction constant to top of file, suppress cart flips when direction reverses due to gravity or end of track 2024-11-12 00:59:50 +01:00
teknomunk 435141357d 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-11-12 00:59:50 +01:00
teknomunk 063c84d2ba Remove dip into the ground that occured when gravity caused the cart to reverse directions 2024-11-12 00:59:50 +01:00
teknomunk 7a87a8282d Implement gravity, move orientation update to own function, fix cart stopping in process_acceleration 2024-11-12 00:59:50 +01:00
teknomunk 2dcb790ace 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-11-12 00:59:50 +01:00
teknomunk c9d6a417cd Make minecart always stop at correct location at end of track, fix crash when placing chest minecart after changing how staticdata is handled 2024-11-12 00:59:50 +01:00
teknomunk d57d83009d 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-11-12 00:59:50 +01:00
teknomunk da4b8ba579 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-11-12 00:59:50 +01:00
teknomunk 5271375843 Fix initial_properties for minecarts 2024-11-12 00:59:50 +01:00
teknomunk 669d9d0556 Change left,right and back vectors to matrix math results with no branching 2024-11-12 00:59:50 +01:00
teknomunk 2bb1aa7241 Remove now unused properties from minecart definition, convert more vectors to use vector.new syntax 2024-11-12 00:59:50 +01:00
teknomunk 6de06945c1 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-11-12 00:59:50 +01:00
teknomunk 960309462f Change staticdata serialization (with migration from old data), disable debugging code used to investigate MineClone2/MineClone2#2446 2024-11-12 00:59:50 +01:00
teknomunk c008d2ea3a Change to vector.new from {x=...}, relocate movement code to own function for future changes 2024-11-12 00:59:50 +01:00
marro 4dc5d0939c Whitespace fix in translation (#4701)
Reviewed-on: VoxeLibre/VoxeLibre#4701
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: marro <marronclement0403@gmail.com>
Co-committed-by: marro <marronclement0403@gmail.com>
2024-11-11 03:49:43 +01:00
grorp 88c3c4558b Fix for VoxeLibre 2024-11-10 15:14:56 +01:00
grorp 3954acdfb7 Creative inventory: padding[-0.015,-0.015] on mobile
- less wasted screen space
- matches old layout
2024-11-10 15:14:56 +01:00
grorp 02b354f54a Avoid tab buttons going off-screen with high scaling values 2024-11-10 15:14:56 +01:00
grorp cb624fe1d9 Creative inventory: Make the whole tab button clickable
Previously, only the tab icon was clickable. Clicking next to the icon would
just close the inventory.
The icon is still kept clickable too since that gives a nicer press animation.
I didn't end up using image_button because that resulted in a different image
size and position, even with the exact same coordinates.
2024-11-10 15:14:56 +01:00
grorp bd9ab16762 Add touch_interaction to (cross)bow and spyglass 2024-11-10 15:14:56 +01:00
kno10 fb3c85e289 Improve stalker textures (#4674)
- don't change back to default texture when falling, but rather keep the previous texture
- use a colorized default texture for gaps in the texture

Reviewed-on: VoxeLibre/VoxeLibre#4674
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-11-10 12:02:20 +01:00
kno10 f6f5481f30 Attempt to fix chest minecarts, at least for 5.9 (#4684)
Not using the `RecheckCartHack` on >5.9 seems to help with #4670 - not tested on older minetest; chest minecarts might still be empty there when the block is unloaded in the meantime. For <5.9, maybe it helps to decrease the time interval, 3 seconds seems to fairly long.

This also makes the minecarts random: 40% minecart, 40% chest minecart, 20% tnt minecart.

Reviewed-on: VoxeLibre/VoxeLibre#4684
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-11-10 11:41:19 +01:00
teknomunk a46833eaa4 Fix alias 2024-11-09 20:30:35 -06:00
teknomunk 3514fe211f Implement more bonemeal mod shim, update bonemeal dependencies 2024-11-09 20:30:35 -06:00
teknomunk 94d9e4c881 Address review comments 2024-11-09 20:30:35 -06:00
teknomunk 6b1aa43238 Only show particles if bone meal is consumed, don't continue testing positions if bonemeal was used on the first check position 2024-11-09 20:30:35 -06:00
teknomunk cfdef2435a Show particles regardless of success 2024-11-09 20:30:35 -06:00
teknomunk 49c8ae2fa0 Quick patch to get cherry saplings growing pending inclusing of a proper tree API 2024-11-09 20:30:33 -06:00
teknomunk 6ada1a3477 Remove check with mcl_core.check_vines_supported for twisted and crimson vines 2024-11-09 20:24:02 -06:00
teknomunk 189a2c62ad Address review comments on mcl_util.trace_nodes 2024-11-09 20:24:02 -06:00
teknomunk 981cddddd4 Add growth limits to crimson/twisting vines 2024-11-09 20:24:02 -06:00
teknomunk 66b5a369f1 Add mcl_util.trace_node(), rewrite bamboo growth code to fix bone meal growth 2024-11-09 20:24:02 -06:00
teknomunk 4eda77acd1 Prevent bonemealing grass from making flowers and also bonemealing the block above the grass 2024-11-09 20:24:02 -06:00
teknomunk afc270195a Fix crash when bonemealing weaping and twisting vines, fix weaping vine growth 2024-11-09 20:24:02 -06:00
teknomunk 8f53074b58 Reorder functions to prevent crash 2024-11-09 20:24:02 -06:00
teknomunk 70e8ba9a89 Remove TODO pending future discussions, revert timer change in composter code 2024-11-09 20:24:02 -06:00
teknomunk 6741c5a809 Make composter_progress_chance local, as it is not used anywhere except in mcl_composters 2024-11-09 20:24:02 -06:00
teknomunk d09791db7b Fix typo that prevented bone mealing pumpkin plants 2024-11-09 20:24:02 -06:00
teknomunk 354160e9e6 Check both above and below in pointed_thing for bonemealing (and pass thru the position as .under), make crimson vines and twisting vines compostable by rightclicking on the composter 2024-11-09 20:24:02 -06:00
teknomunk cf1325d466 Fix crash at one more spot 2024-11-09 20:24:02 -06:00
teknomunk 7112369917 Fix crashes when using bonemeal on nether nodes 2024-11-09 20:24:02 -06:00
teknomunk e6e13bdc67 Change _mcl_on_bonemealing to _on_bone_meal, update API.md to reflect this 2024-11-09 20:24:02 -06:00
teknomunk 42d37210c5 Fix mods/ITEMS/mcl_composters/locale/mcl_composters.ru.tr 2024-11-09 20:24:02 -06:00
teknomunk c3a33ea2c2 Update mod authors, remove a TODO 2024-11-09 20:24:02 -06:00
teknomunk 7f6d456a32 Remove bone to bone meal recipe from mcl_dye as it now resides in mcl_bone_meal 2024-11-09 20:24:02 -06:00
teknomunk 44d154f594 Modify backtrace listing to use minetest.log 2024-11-09 20:24:02 -06:00
teknomunk eb6131b037 Fix localization errors 2024-11-09 20:24:02 -06:00
teknomunk 3c2f2593db Only consume bone meal if a _mcl_on_bonemealing callback is defined or the legacy API returns true, convert vines to use new bonemeal API 2024-11-09 20:24:02 -06:00
teknomunk 9e6d49dd38 Fix localization except mcl_composters.ru.tr 2024-11-09 20:24:02 -06:00
teknomunk 4a865fa2df Enable bamboo bonemealing despite rightclick handling strangeness 2024-11-09 20:24:02 -06:00