aboutsummaryrefslogtreecommitdiff
path: root/advtrains/wagons.lua
Commit message (Collapse)AuthorAge
* Merge branch 'master' into route_prog_reworkorwell4 days
|\
| * Fix depercated functions1F616EMO6 days
| |
| * Address wagon aliasing issuesY. Wang6 days
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it turns out, not fully testing new features is not necessarily a good idea ... This patch follows up 1F616EMO's patch by * Making get_wagon_prototype return the resolved alias, * Handling recursive wagon alises (in particular, loops), and * Adding (partial) unittest for the wagon aliasing system. [v2]: The testcases are complemented a bit more to cover situations where the alias resolution system should return nil. [v2]: This patch should hopefully also warn about not spawning wagons. Note that this only warns about the missing wagon entity and does _not_ actually fix the issue. How to test: * In a world with both advtrains_train_subway and advtrains_train_japan enabled, place a subway wagon, a Japanese engine, and a regular Japanese wagon. * Add the test mod to the world; do NOT remove advtrains_train_japan. * Restart the world. Notice that the Japanese wagons still appear as Japanese wagons despite being aliased to subway wagons. * Restart the world without the advtrains_train_japan mod. Notice that the engine appears as the subway wagon while the regular Japanese wagon appears as the wagon placeholder. [v2]: Also note that the warning message about the missing wagon prototype still mentions the regular Japanese wagon. * Restart the world again with the advtrains_train_japan mod. Notice that both type of Japanese wagons reappear as Japanese wagons. * Observe that unittests work. Test mod: advtrains.register_wagon_alias("advtrains:engine_japan", "advtrains:subway_wagon") advtrains.register_wagon_alias("advtrains:wagon_japan", "advtrains:wagon_japan")
| * Allow operate on_rightclick nodes with track placers and wagon placers1F616EMO6 days
| | | | | | | | Press sneak to force default behavior.
| * Wagon iterator, lookup by id, and use them in code1F616EMO6 days
| |
| * Various translation improvementsY. Wang11 days
| |
| * Alias for wagon typesrelease-2.4.61F616EMO2024-09-03
| |
| * Move the Train ID information to a textarea[] without a name attribute so it ↵erstazi2024-09-02
| | | | | | | | remains transparent and the player can copy the Train ID.
| * Add Wagon Properties ToolMaverick27972024-08-09
| | | | | | | | Also added the Wagon ID to the Wagon Properties formspec
| * Fix boardcom train id display, add command to teleport to train by idgpcf2024-08-08
| |
| * Adding Train ID to Onboard Computer formspec so we know what the Train ID is ↵erstazi2024-08-08
| | | | | | | | without LuaATC
| * advtrains_techage: Liquid infotext display needs to be added in corerelease-2.4.3orwell962023-07-20
| |
* | Begin major rework of track registration systemorwell962023-09-04
|/
* Add function to get wagon in train from indexorwell962023-05-27
| | | | | Can be used to determine which wagon is at a certain world position Testing: use debugitems.lua
* Fix new wagon positioning when wheel positions are asymmetric, and remove ↵orwell962022-02-24
| | | | leftover train.debug
* Wagons: Add two-pos wheel positioning logic for more realistic look of long ↵orwell962022-02-09
| | | | | | wagons Adds field "wheel_positions" in wagon definition
* Automatically group wagons and locomotives based on definition valuesMaverick27972021-12-29
| | | | | | | | | Based on the advtrains wiki groups: Type Group Classifier - Locomotives: group:at_loco is_locomotive = true - Controllable: group:at_control seat_groups.dstand - Passengers: group:at_pax seat_groups.pass - Freight: group:at_freight has_inventory = true
* Rework train same-track collision system and deterministic couplingorwell962021-07-07
| | | | | | | - Adds a separate collision system for trains sharing a path - Moved some coupling-related code to couple.lua and refactor it - Handle coupling in a way that the initiating train always keeps its ID - As a side effect, engine has its direction reversed after coupling
* Fix undeclared globals warnings (#176)orwell962021-04-25
| | | | Reported by Vanessa Dannenberg
* Replace deprecated object:getxxx()/setxxx() by get_xxx()/set_xxx()orwell962021-02-10
|
* Add global slowdown factor instead of hard dtime limitingorwell962021-02-10
|
* Add IGNORE_WORLD mode to test using only the advtrains save dataorwell962021-02-10
|
* Fix HUD position and Remote Routesetting buttonorwell962021-02-10
|
* Fix lots of things around new LZBorwell962021-02-10
|
* Remove pcall wrappers completely, add command to disable advtrains mainlooporwell962021-02-10
|
* Implement a LZB speed lookup table for the path and rewrite velocity controlsorwell962021-02-10
|
* Disable ARS train flag and surrounding usesorwell962021-02-10
|
* Discard get_node_or_nil() for area-loaded check and use either a ↵orwell962021-02-03
| | | | | | distance-based approach or minetest.is_block_active() if available See also https://github.com/minetest/minetest/pull/10897
* Add ATC "K" commandGabriel Pérez-Cerezo2021-01-07
| | | | | | | This command kicks out all passengers when the train is stopped and its doors are open. In addtion, a wagon:is_driver_stand(seat) function was added to allow finding out easily if a seat is the driver stand of the wagon.
* Workaround to destroy looping soundsBlockhead2020-11-02
| | | | Needed for linetrack boat sound bug
* Remove couple entities when out of range from playersGabriel Pérez-Cerezo2020-10-12
| | | | | Work around the entity flood bug caused by improper engine handling of static_save=false
* Remove last files with CR-LF line endings.Gabriel Pérez-Cerezo2020-10-11
|
* Don't allow wagons with non-empty inventories to be destroyed (H#164)orwell962020-10-07
|
* localize split function to prevent conflicts with the builtin oneGabriel Pérez-Cerezo2020-09-04
|
* Escape fields in wagon properties (H#158)orwell962020-09-04
|
* Fix seating_from_key_helper: use pname instead of player:get_player_name()Relatio2020-08-27
|
* Add function to step through freight codesGabriel Pérez-Cerezo2020-07-26
|
* add split_train_at_fc luaatc commandGabriel Pérez-Cerezo2020-07-26
| | | | | | This command splits the train at the second non-empty FC it encounters, taking with it the first few freight cars that all go to the same destination.
* add Freightcodes to wagon properties formspecGabriel Pérez-Cerezo2020-07-26
|
* Do not unload wagons when a player that is logged in sits in itrelease-2.1.3orwell962020-07-26
|
* Fix error in workaround causing train entities to despawn.Gabriel Pérez-Cerezo2020-07-19
|
* Add workaround to unload wagons that are too far away from playersorwell962020-07-12
|
* Fix access control to wagon propertiesBlockhead2020-06-29
| | | | | | | Previously, players were able to open the wagon properties of any wagon at all through the wagon properties button on the inventory formspec and through the wagon buttons on the onboard computer. Add a check for ownership before allowing players to open wagon properties.
* Merge branch 'wagon_prop_formspec' of https://github.com/Montandalar/advtrainsGabriel Pérez-Cerezo2020-06-08
|\
| * Remove debugging print statementBlockhead2020-04-12
| |
| * Add road numbers to wagon properties, bordcomBlockhead2020-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A road number is used to allow users to set their own wagon numbers other than the internal IDs assigned by advtrains. A railway company would typically keep a roster of what rollingstock it has in road numbers. The road number can be set on the wagon properties formspec. It is displayed above the wagon's inventory icon in the onboard computer as a button, which will then open the wagon properties on that wagon. Road numbers might be displayable as additional text entities on the wagon like signs. Currently opening the wagon properties (and sometimes onboard computer) formspecs can be quite unreliable (at least on windows), so I hope that closing the wagon 'main menu' before opening other formspecs helps that reliability. It seems to be an upstream bug.
| * Show the wagon properties button only to the ownerBlockhead2020-03-18
| |
| * Use a standard wagon inventory formspecBlockhead2020-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This new formspec also allows access to the wagon properties. Once whitelisted in the wagon properties, other players can access its inventory. Note on 'useless use' of OO: I tried passing just the wagon ID and avoiding using the `self` object in order to bypass the need to look up the lua entitie out of the list, but it ended up retrieving nil data. The best way to solve this overhead might be to wait for some kind of better way upstream in minetest's lua API to get entities, or to keep a central record of entities. Either way, the solution is outside the scope of this commit.
* | Fix trains flipping when autocouplingGabriel Pérez-Cerezo2020-06-08
|/
* Apply minetest.formspec_escape() to prevent formspec injection (H#143)MT0.4Blockhead2020-01-04
|