Commit Graph

199 Commits

Author SHA1 Message Date
teknomunk 8427d072f0 Fix cart controls, cart pushing 2024-06-19 07:18:57 -05:00
teknomunk a95923ad18 Fix typo in rail replacement mapping, fix several crashes 2024-06-19 07:18:57 -05:00
teknomunk aa558fa42b Implement movement thru tee rails 2024-06-19 07:18:57 -05:00
teknomunk 3cffc2a96e Tune respawn distance limit 2024-06-19 07:18:57 -05:00
teknomunk cb047d2474 Fix crashes 2024-06-19 07:18:57 -05:00
teknomunk 291bbfb1f4 Remove memory leak for cart data, check distance to players before respawning distant carts to prevent adding entities that are immediately inactivated 2024-06-19 07:18:57 -05:00
teknomunk 035a1b2401 Implement offline/out of range minecart movement and fix minecart respawning, remove railtype tracking 2024-06-19 07:18:56 -05:00
teknomunk 0ca2ce3ba4 Remove do_movement dependency on the existence of a cart luaentity 2024-06-19 07:18:56 -05:00
teknomunk 8e852b0d23 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-06-19 07:18:56 -05:00
teknomunk aa683d9f99 Make trains containing a player in a minecart function, minor cleanup in mcl_playerinfo 2024-06-19 07:18:56 -05:00
teknomunk 48a130eee6 Fix crashes in train logic, allow breaking apart trains 2024-06-19 07:18:56 -05:00
teknomunk 23eb476c3f Implement train reversing 2024-06-19 07:18:56 -05:00
teknomunk 642d7393a1 Repair vectors in cart data, mostly fix train movement bugs (still possible to have a furnace minecart flip, without the train also flipping) 2024-06-19 07:18:56 -05:00
teknomunk b45de39d71 Add cart entity respawn/destroy to match cart data (partially working) 2024-06-19 07:18:56 -05:00
teknomunk de45866ac9 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-06-19 07:18:56 -05:00
teknomunk c918b34871 Fix rail detach crash, make tnt minecarts explode if they hit something hard (off rails) 2024-06-19 07:18:56 -05:00
teknomunk 0647c6ece6 Make sure carts get detatch if the rail under them is removed 2024-06-19 07:18:56 -05:00
teknomunk 0cda608521 Fixish reorganizing, initial train implementation 2024-06-19 07:18:56 -05:00
teknomunk f9b22f2dc4 Major reorganization, start setup for trains 2024-06-19 07:18:56 -05:00
teknomunk ad161afe1a Make sure carts that collide move in the same direction the colliding cart was 2024-06-19 07:18:56 -05:00
teknomunk 6736d80b0c 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-06-19 07:18:56 -05:00
teknomunk 2247d19dea Harden against unknown nodes 2024-06-19 07:18:56 -05:00
teknomunk 31cd3ac099 Allow players to push minecarts that are not on track 2024-06-19 07:18:56 -05:00
teknomunk 00df623b32 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-06-19 07:18:56 -05:00
teknomunk 520b40bdc2 Fix rail movement regressions 2024-06-19 07:18:56 -05:00
teknomunk 2f6f860c82 Move cart code to its own file, more code cleanup, add aliases for old track items 2024-06-19 07:18:56 -05:00
teknomunk b1d8809a4d Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-06-19 07:18:56 -05:00
teknomunk cf955109c9 Get rail reattachment (especially after jumps) working correctly 2024-06-19 07:18:56 -05:00
teknomunk 3dc09fe41d 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-06-19 07:18:56 -05:00
teknomunk 030b98bcfc Silence unmaskable print statements 2024-06-19 07:18:56 -05:00
teknomunk b0e2e34a23 Add immortal item entity support, add legacy rail conversion that uses immortal item drops for corners/tees/crosses that are no longer possible 2024-06-19 07:18:56 -05:00
teknomunk 2ee94d3e2b Fix more rail connection bugs 2024-06-19 07:18:56 -05:00
teknomunk 879e86e8ad Get sloped connections working correctly 2024-06-19 07:18:56 -05:00
teknomunk 466cda1c41 Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-06-19 07:18:56 -05:00
teknomunk 711a179669 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-06-19 07:18:56 -05:00
teknomunk 38f31ac6df Update all rail types to new version 2024-06-19 07:18:56 -05:00
teknomunk 353ad7f914 Reorganize 2024-06-19 07:18:56 -05:00
teknomunk efae117a89 Finish reverting 08b41a3b39 2024-06-19 07:18:56 -05:00
teknomunk a008d059cb Enable new track with get_next_dir handlers 2024-06-19 07:18:56 -05:00
teknomunk bd23801c51 Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-06-19 07:18:56 -05:00
teknomunk 22d089e1c6 Add sloped rail 2024-06-19 07:18:56 -05:00
teknomunk ce544963d5 Fix rail visuals, add switch operation 2024-06-19 07:18:56 -05:00
teknomunk 0a7aa9751f Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-06-19 07:18:56 -05:00
teknomunk 12ae7869f9 Start implementing new rail nodes 2024-06-19 07:18:56 -05:00
teknomunk c2c577fdde Implement minecart with command block 2024-06-19 07:18:56 -05:00
teknomunk ed07d9f6d4 Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-06-19 07:18:56 -05:00
teknomunk 1f1ccd8427 Remove cart oscillation when pushed 2024-06-19 07:18:56 -05:00
teknomunk 67a8216491 Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-06-19 07:18:56 -05:00
teknomunk 3157492548 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-06-19 07:18:56 -05:00
teknomunk d8091d7441 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-06-19 07:18:56 -05:00