Commit Graph

12992 Commits

Author SHA1 Message Date
teknomunk
135eea4de4 Fix crashes 2024-12-31 02:36:18 +01:00
teknomunk
c99f972b31 Remove memory leak for cart data, check distance to players before respawning distant carts to prevent adding entities that are immediately inactivated 2024-12-31 02:36:18 +01:00
teknomunk
4dccfff1d0 Implement offline/out of range minecart movement and fix minecart respawning, remove railtype tracking 2024-12-31 02:36:18 +01:00
teknomunk
a500f554e0 Remove do_movement dependency on the existence of a cart luaentity 2024-12-31 02:36:18 +01:00
teknomunk
7c7a987342 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-12-31 02:36:18 +01:00
teknomunk
265a25d6ae Make trains containing a player in a minecart function, minor cleanup in mcl_playerinfo 2024-12-31 02:36:18 +01:00
teknomunk
2e41f2df48 Fix crashes in train logic, allow breaking apart trains 2024-12-31 02:36:18 +01:00
teknomunk
d280e2e942 Implement train reversing 2024-12-31 02:36:18 +01:00
teknomunk
88ed70ce92 Repair vectors in cart data, mostly fix train movement bugs (still possible to have a furnace minecart flip, without the train also flipping) 2024-12-31 02:36:18 +01:00
teknomunk
d6e6194316 Add cart entity respawn/destroy to match cart data (partially working) 2024-12-31 02:36:18 +01:00
teknomunk
7bd95257bd 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-12-31 02:36:18 +01:00
teknomunk
40a5184703 Fix rail detach crash, make tnt minecarts explode if they hit something hard (off rails) 2024-12-31 02:36:18 +01:00
teknomunk
e680869cbd Make sure carts get detatch if the rail under them is removed 2024-12-31 02:36:18 +01:00
teknomunk
eb0f82bdfb Fixish reorganizing, initial train implementation 2024-12-31 02:36:18 +01:00
teknomunk
dbeec9b542 Major reorganization, start setup for trains 2024-12-31 02:36:18 +01:00
teknomunk
1b9c149803 Make sure carts that collide move in the same direction the colliding cart was 2024-12-31 02:36:18 +01:00
teknomunk
09f044245e 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-12-31 02:36:18 +01:00
teknomunk
8117b9010a Harden against unknown nodes 2024-12-31 02:36:18 +01:00
teknomunk
d318390778 Allow players to push minecarts that are not on track 2024-12-31 02:36:18 +01:00
teknomunk
f089d0a702 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-12-31 02:36:18 +01:00
teknomunk
60ee3a06b9 Fix rail movement regressions 2024-12-31 02:36:18 +01:00
teknomunk
e1b973fbf5 Move cart code to its own file, more code cleanup, add aliases for old track items 2024-12-31 02:36:18 +01:00
teknomunk
b59d6d37dc Cleanup code, restore uphill/downhill cart movement, completely remove old rail 2024-12-31 02:36:18 +01:00
teknomunk
f490846892 Get rail reattachment (especially after jumps) working correctly 2024-12-31 02:36:18 +01:00
teknomunk
e7605b7abd 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-12-31 02:36:18 +01:00
teknomunk
140689cd7d Silence unmaskable print statements 2024-12-31 02:36:18 +01:00
teknomunk
fdf8161d23 Add immortal item entity support, add legacy rail conversion that uses immortal item drops for corners/tees/crosses that are no longer possible 2024-12-31 02:36:18 +01:00
teknomunk
7944015266 Fix more rail connection bugs 2024-12-31 02:36:18 +01:00
teknomunk
e02906e46f Get sloped connections working correctly 2024-12-31 02:36:18 +01:00
teknomunk
48dbe97516 Re-enable rule for powering rail from underneath, have stairs block minecart movement, fix crash when lightning strikes a minecart 2024-12-31 02:36:18 +01:00
teknomunk
279733e711 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-12-31 02:36:18 +01:00
teknomunk
be18edf7c6 Update all rail types to new version 2024-12-31 02:36:18 +01:00
teknomunk
40b62eea1d Reorganize 2024-12-31 02:36:18 +01:00
teknomunk
06c1b362b2 Finish reverting 08b41a3b392005e7078b09d68854e6df562d5fd7 2024-12-31 02:36:18 +01:00
teknomunk
e1c4606e8f Enable new track with get_next_dir handlers 2024-12-31 02:36:18 +01:00
teknomunk
6a9080844e Change connection rules again to allow building parallel track, tees and crosses), start implementing rail rules callbacks 2024-12-31 02:36:18 +01:00
teknomunk
f3a4d928da Add sloped rail 2024-12-31 02:36:18 +01:00
teknomunk
b870fcebd0 Fix rail visuals, add switch operation 2024-12-31 02:36:18 +01:00
teknomunk
2151644b1c Implement initial rail connection logic (no vertical track yet), experiment with texture modifiers and gravel underlay for display (not working) 2024-12-31 02:36:18 +01:00
teknomunk
8fafb32a5c Start implementing new rail nodes 2024-12-31 02:36:18 +01:00
teknomunk
4c6c506713 Implement minecart with command block 2024-12-31 02:36:18 +01:00
teknomunk
fd154f7f79 Create mesecons command API and modify commandblock to use it 2024-12-31 02:36:18 +01:00
teknomunk
3443e327ec Disable punch to move minecarts, implement punch to drop minecart, enable basic cart keyboard controls (accelerate and brake) 2024-12-31 02:36:18 +01:00
teknomunk
3f4d8f5ec2 Remove cart oscillation when pushed 2024-12-31 02:36:18 +01:00
teknomunk
be241f64fe Limit top speed of furnace minecarts to 4 blocks/second, limit total fuel time to 27 minutes 2024-12-31 02:36:18 +01:00
teknomunk
bf3872e445 Fix bug with furnace minecart at max velocity (stopped until fuel ran out), move _fueltime into staticdata 2024-12-31 02:36:18 +01:00
teknomunk
718938b0fe 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-12-31 02:36:18 +01:00
teknomunk
f5616738e7 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-12-31 02:36:18 +01:00
teknomunk
615df7378a Add API function to remove node watch 2024-12-31 02:36:18 +01:00
teknomunk
fba7b04e82 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-12-31 02:36:18 +01:00