Page 1 of 1

Improved Access to Train ID

Posted: Fri May 17, 2019 10:07 am
by DreamConspiracy
Problem: Working with numerical train IDs is a pain right now. For example, I have a circuit that stores the train ID of some trains. Trying to track down which train the stored ID belongs to is an absolute pain (best method right now is basically guess and check).

Suggestions:
1) When searching for a train in the train overview window, make searches for an integer also return any trains with that specific ID (or only return trains with that specific ID).
2) In the window for a specific train, display the ID of that train somewhere. Personal suggestion is between the automatic/manual switch and the color picker, but this is flexible. Just a string like "ID: xyz" is enough.

Re: Improved Access to Train ID

Posted: Fri May 17, 2019 12:03 pm
by Tekky
I agree that the current Train IDs are a pain to work with. However, instead of improving the search interface for searching for a specific Train ID, I think it would be more important if the player were able to define his own Train IDs, so that the Train IDs are organized in some way. That would make searching for specific Train IDs unnecessary in most situations.

For example, the player could set the Train IDs in such a way that the first digit of the Train ID would specify the type of train and the second digit the route number.

This has been suggested in the following threads:

viewtopic.php?f=6&t=46969 Constant Combinator for Locomotive
viewtopic.php?f=6&t=56302 Train ID as Constant Combinator

However, I guess there still are some situations in which it could still be useful to be able to search for a specific Train ID.

Re: Improved Access to Train ID

Posted: Fri May 17, 2019 1:20 pm
by DreamConspiracy
Tekky wrote:
Fri May 17, 2019 12:03 pm
I agree that the current Train IDs are a pain to work with. However, instead of improving the search interface for searching for a specific Train ID, I think it would be more important if the player were able to define his own Train IDs, so that the Train IDs are organized in some way. That would make searching for specific Train IDs unnecessary in most situations.
I do not think that we should have to choose between either. There is no reason to not have both available.

Re: Improved Access to Train ID

Posted: Fri May 17, 2019 6:06 pm
by Theikkru
I don't think user-defined IDs would work very well since they get changed every time cars are attached or detached.
I would definitely like better exposure to the IDs though; having to rig up a stop and a power pole just to find the ID of a train is annoying.

Re: Improved Access to Train ID

Posted: Fri May 17, 2019 6:38 pm
by Tekky
Theikkru wrote:
Fri May 17, 2019 6:06 pm
I don't think user-defined IDs would work very well since they get changed every time cars are attached or detached.
If the constant combinator which defines the ID is attached to a locomotive (as suggested in one of the linked threads), then changing the composition of the train will not necessarily change the ID.

Re: Improved Access to Train ID

Posted: Sat May 18, 2019 3:01 am
by Theikkru
The problem is IDs are designed to refer to a specific car composition, so you can't just keep it the same. If you merge 2 trains, for example, currently it deletes the old IDs and assigns a completely new one. If you have persistent user-defined ones, how is the system supposed to decide which one to keep? Conversely if you split a train, which one keeps the old ID?

Another concern is that currently, IDs are never recycled (as far as I know), so all the system has to do is keep track of the next unused ID (one number). If you were to try to let users define IDs, every time one gets changed or a new one is assigned, the game would have to check ALL OTHER trains on the map to make sure that ID is not already used somewhere.

Re: Improved Access to Train ID

Posted: Sat May 18, 2019 9:29 am
by Tekky
Theikkru wrote:
Sat May 18, 2019 3:01 am
The problem is IDs are designed to refer to a specific car composition, so you can't just keep it the same. If you merge 2 trains, for example, currently it deletes the old IDs and assigns a completely new one. If you have persistent user-defined ones, how is the system supposed to decide which one to keep? Conversely if you split a train, which one keeps the old ID?
In vanilla Factorio, it requires manual intervention to change the train composition of a train. Therefore, it can be expected that the player also changes the Train ID on a constant combinator of a locomotive.

However, if you are using a mod that allows for automatic train composition, then I guess the best solution would be for the Train ID to not be a constant combinator, but rather a dynamic read/write combinator, i.e. a memory cell, that can be changed by the circuit network.

However, this discussion is getting off-topic. Therefore, if you want to continue this discussion, I suggestion we do so in this thread.
Another concern is that currently, IDs are never recycled (as far as I know), so all the system has to do is keep track of the next unused ID (one number). If you were to try to let users define IDs, every time one gets changed or a new one is assigned, the game would have to check ALL OTHER trains on the map to make sure that ID is not already used somewhere.
Personally, I don't want my Train IDs to be unique. If I want two trains to be handled exactly the same way by the circuit network (e.g. because they are on the same route doing exactly the same thing), then I want to set the trains to the same Train ID.

Re: Improved Access to Train ID

Posted: Sat May 18, 2019 1:20 pm
by Theikkru
One thing I would like to point out that is relevant to the topic (and, in fact, one of the reasons I agree with the OP): this
Tekky wrote:
Sat May 18, 2019 9:29 am
In vanilla Factorio, it requires manual intervention to change the train composition of a train.
is not quite true, because trains and their cars can get damaged/destroyed, and that causes a change in ID as well. Consequently, the aftermath of a bad train collision or such can involve not only the trains themselves, but a whole lot of circuit strangeness that must be tracked down as well.