I don't have time / skill to make a mockup, but I can describe something in text.
Terminology
- List: the list of stations and conditions in the train GUI.
- Station: station element in the list.
- Condition: condition element in the list.
- Element / item: either a station or a condition.
- Selection: the elements that are selected.
- Copy button: the button to add a copy of the selected items at the bottom of the list.
Summary
This proposal is based on file system GUIs, where you can often select/deselect multiple items by clicking while holding CTRL.
Players can select elements to be copied, and can then add copies of the selected items to the list. After copying, they edit the names of stations to the ones they want.
Selecting elements
Selected elements are highlighted with a yellow outline.
When selecting / deselecting a station, it will also select / deselect all conditions for that station. If you only want the conditions and not the station or only the station and not the conditions you have to (de)select the conditions all one by one.
Selections are kept when closing the train GUI, to allow for copying to a different train. This selection is cleared when selecting something in the next train GUI. Selections can either use the same "slot" as normal shift+right click / shift+left click copying, or get their own "slot".
shift + right click an element: set element as currently selected item (all other selected elements become deselected).
ctrl + shift + right click an element: add/remove element to/from current selection. Allow dragging the mouse to (de)select / toggle selection of everything that is dragged over (allows quickly selecting stations / conditions, in particular, it allows quickly selecting all conditions of a station without selecting the station itself)
Copying selected elements
Option 1: copy button at the bottom of the list.
There is a copy button either next to the "add station" button (divide "add station" button in half to make space) or below / above it. The copy button has the text "add copy of selected items".
When the copy button is clicked (left mouse button), it adds a copy of the current selection at the bottom of the list. [todo: some way to copy into the middle of the list?]
If nothing is selected, disable the button. Optionally change the text to "use shift+right click or ctrl+shift+right click to select stations or conditions" or link to a tutorial or something. This could also be a hover text.
Option 2: copy with shift + left click anywhere in list.
The player can hold shift to make a white bar appear between elements, which follows the location of the cursor (see attachment). When they left click, the selected items are copied to that position in the list.
Valid positions where the selected elements will be copied to (and thus where the white bar moves) depends on the selection:
- Only conditions -> anywhere where you could drag and drop an existing condition.
- Also has stations -> anywhere where you could drag and drop an existing station.
I personally like option 2, it feels fluid and more powerful (can copy to anywhere instead of only at the bottom). Disadvantages: the white bar appears when holding shift, which you also need to hold while selecting elements, and it is far less discoverable than a disabled button with an explanation.
Edge case:
If a condition is selected but its station is not, create an "invalid" station element instead. This invalid station acts the same as a station that doesn't exist anymore. The player should use the edit button to change it to a valid station.
Changing station names
Station elements get a button (icon: that pen one. There was a pen icon no?) to edit the station. Editing the station opens the same dialog/menu thing that the "Add station" button does. Editing keeps all the conditions of the station, it just changes the station. This can be used after copying a station and its conditions to reuse the same conditions for a different station.
Example use
IRON ORE 5 is depleted. I want to send the train to IRON ORE 6 instead.
1. Use the "edit station" button.
2. Select IRON ORE 6.
The coal train should go to the power plant more often. I want to add a copy of the current power plant station and its conditions between other items to make it go more often.
1. Shift + right click on power plant station to select it (and deselect anything I may have had selected)
2. Shift + left click at the position where I want it to go, or click copy button and drag and drop where I want.
I built a new outpost IRON 7. I need a train to go there. Either:
Option 1: new train
1. Build a new train.
2. find an existing train to copy from, shift+right click train to copy.
3. shift + left click on newly build train to paste full schedule.
4. left click on train to open train GUI.
5. edit IRON 6 to IRON 7.
Option 2: add station to existing train, the smart way
1. find train, open GUI
2. shift + right click IRON 6 station to select it and clear any previous selection
3. shift + left click where in the schedule I want the new station.
4. use edit button to change IRON 6 to IRON 7
Option 3: add station to existing train, the "I added the station first" way
1. find train, open GUI
2. click "add station" button
3. choose IRON 7
4. realise I should have copied and edited instead as described in Option 2.
5. ctrl + shift + right click and drag over conditions of IRON 6
6. shift + left click on/under IRON 7 to paste conditions.
Attachment
- bar_between_items.gif (33.35 KiB) Viewed 34761 times