Commit Graph

11126 Commits

Author SHA1 Message Date
teknomunk d12896c162 Rework rail_dir_curve to significantly reduce code size 2024-11-12 00:59:50 +01:00
teknomunk bb0f0747ae Convert curved rails direction code to use fourdir 2024-11-12 00:59:50 +01:00
teknomunk 644393c856 Change verticle offset for testing reattaching to rail to 0.55, which is a bit more than the stair step height 2024-11-12 00:59:50 +01:00
teknomunk 0f364016ee Fix cart detaching without unregistering from everything 2024-11-12 00:59:50 +01:00
teknomunk 407133bdd3 Fix typo, set use_texture_alpha = clip for all rail 2024-11-12 00:59:50 +01:00
teknomunk 133184c329 Fix several undefined global warnings, fix cart movement when over maximum speed, fix cart reattachment to sloped track 2024-11-12 00:59:50 +01:00
teknomunk 597147e9cd Revert changed made to debug minecart-updates integration into tsm_railcorridors 2024-11-12 00:59:50 +01:00
teknomunk a71ed25496 Make punch move minecarts a little, comment out more debug prints 2024-11-12 00:59:50 +01:00
teknomunk 9ed1d0a059 Fix visual artifacts on the sides of rails 2024-11-12 00:59:50 +01:00
teknomunk ffd3dbc7b1 Stop carts from reversing when they stop, make stopped carts try to start moving in the direction the player is facing 2024-11-12 00:59:50 +01:00
teknomunk a7d8b52510 Fix crash after entering a minecart not on rails 2024-11-12 00:59:50 +01:00
teknomunk a3b3585300 Fix placed rail conversion, start automatic inventory rail conversion 2024-11-12 00:59:50 +01:00
teknomunk b0f12dfabb Fix players repelling carts with new player metadata system 2024-11-12 00:59:50 +01:00
teknomunk b8ed85a004 Cleanup debug prints 2024-11-12 00:59:50 +01:00
teknomunk edf3b54fd4 Add documentation for newly exposed attach_driver 2024-11-12 00:59:50 +01:00
teknomunk fad40d9444 Add persistent player-specific metadata into mcl_playerinfo, simple cart reattachment (only exists if the luaentity for the cart exists when the player logs in) 2024-11-12 00:59:50 +01:00
teknomunk d5ab0b5406 More fixes for minecart-hopper movement 2024-11-12 00:59:50 +01:00
teknomunk 2cde46563d Get rail placement creating corners that lead into a downward sloped rail 2024-11-12 00:59:50 +01:00
teknomunk e495dbc0a2 Create mcl_util.metadata_timer, fix crashes, add checks to prevent hoppers from pulling from carts that are not in the square above it 2024-11-12 00:59:50 +01:00
teknomunk 0af628a8d4 Fix hopper-minecart interaction, convert ipairs(table) to use for i=1,#table instead 2024-11-12 00:59:50 +01:00
teknomunk 889c89c0e6 Update mineshafts for new rail and minecarts, add loot to generated chest and hopper minecarts (and remove notes about a hack) 2024-11-12 00:59:50 +01:00
teknomunk a388b6ebff Give carts a small vertical lift when pushed to allow them to get back on rails 2024-11-12 00:59:50 +01:00
teknomunk 0368cf958b Stop rail from being placed directly above rail (floating in air) 2024-11-12 00:59:50 +01:00
teknomunk 938c05e68e Fix sloped power,activator and detector rails, remove debug print 2024-11-12 00:59:50 +01:00
teknomunk 8bcf9388d4 Modify mcl_entity_invs to add support for save/load items hooks in entities, add save/load hooks to minecarts to store item list in the minecart data and not in the entity data so that respawn doesn't destroy items 2024-11-12 00:59:50 +01:00
teknomunk 4c6a10f613 Add documentation on the rail 2024-11-12 00:59:50 +01:00
teknomunk d250678689 Add documentation on file structure and overviewes of each file 2024-11-12 00:59:50 +01:00
teknomunk 57525d2072 Fix crashes, fix link in documentation 2024-11-12 00:59:50 +01:00
teknomunk 9df1f9a588 More documentation, add myself to copyright list in README.txt 2024-11-12 00:59:50 +01:00
teknomunk 17705348c3 More minor changes to API.md, start overall implementation documentation 2024-11-12 00:59:50 +01:00
teknomunk 6160534ed5 Fix table of contents 2024-11-12 00:59:50 +01:00
teknomunk 3881cd60f5 Finish writing API documentation, remove drop_railcarts (replaced by try_detach_minecart), rename constants to ALL CAPS for consistency, change mcl_minecarts. to mod. for API function definitions 2024-11-12 00:59:50 +01:00
teknomunk d22aa7285d Nearly finish API documentation, create mcl_minecarts.add_blocks_to_map() 2024-11-12 00:59:50 +01:00
teknomunk c8513d5acd Continue writing API documentation, update call signatures for a couple of API functions 2024-11-12 00:59:50 +01:00
teknomunk 20bf40a6ec Change document formatting, finally move cactus cart dropping to node definition for mcl_core:cactus 2024-11-12 00:59:50 +01:00
teknomunk b17710db9c Correct crashes/item duplication with dropping carts, start API documentation 2024-11-12 00:59:50 +01:00
teknomunk 1d9ba2211f Fix cart controls, cart pushing 2024-11-12 00:59:50 +01:00
teknomunk d41f2f03ce Fix typo in rail replacement mapping, fix several crashes 2024-11-12 00:59:50 +01:00
teknomunk 14b50faf92 Implement movement thru tee rails 2024-11-12 00:59:50 +01:00
teknomunk 464771b79d Tune respawn distance limit 2024-11-12 00:59:50 +01:00
teknomunk 1f80628298 Fix crashes 2024-11-12 00:59:50 +01:00
teknomunk 39ca793a43 Remove memory leak for cart data, check distance to players before respawning distant carts to prevent adding entities that are immediately inactivated 2024-11-12 00:59:50 +01:00
teknomunk b084ec558d Implement offline/out of range minecart movement and fix minecart respawning, remove railtype tracking 2024-11-12 00:59:50 +01:00
teknomunk 763c59a1a2 Remove do_movement dependency on the existence of a cart luaentity 2024-11-12 00:59:50 +01:00
teknomunk 188aca8c12 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-11-12 00:59:50 +01:00
teknomunk a0d8e5ad7e Make trains containing a player in a minecart function, minor cleanup in mcl_playerinfo 2024-11-12 00:59:50 +01:00
teknomunk e3ca5a84c8 Fix crashes in train logic, allow breaking apart trains 2024-11-12 00:59:50 +01:00
teknomunk d9bc707800 Implement train reversing 2024-11-12 00:59:50 +01:00
teknomunk 8d15b8e99f Repair vectors in cart data, mostly fix train movement bugs (still possible to have a furnace minecart flip, without the train also flipping) 2024-11-12 00:59:50 +01:00
teknomunk 9490e4a910 Add cart entity respawn/destroy to match cart data (partially working) 2024-11-12 00:59:50 +01:00
teknomunk b38d8c3fa9 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-11-12 00:59:50 +01:00
teknomunk 643e6f3de6 Fix rail detach crash, make tnt minecarts explode if they hit something hard (off rails) 2024-11-12 00:59:50 +01:00
teknomunk dd54270294 Make sure carts get detatch if the rail under them is removed 2024-11-12 00:59:50 +01:00
teknomunk 9927f54ab4 Fixish reorganizing, initial train implementation 2024-11-12 00:59:50 +01:00
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