Infinity inventory and automatic hand refill
The suggestion is to add an infinity chest filter to the main editor inventory, like this:And furthermore add multiple ways that automatically create & destroy items
- Placing the filters to the left of the inventory will probably be the easiest way to do it, and it'll prevent confusion when the infinity chest is open.
- Alternatively, the main inventory could be changed to have tabs, one of which would be the infinity filters. This would have the advantage of the filters being collapsable and not take up screen space when not needed, and also be more future proof since further additions could be added as further tabs.
- The filters should apply on every inventory change - it would be bothersome if they only apply once per tick, since they would "stop working" when the game is paused with the time tool.
- Actions that change item counts in your inventory that involve opening GUIs should behave "normally" i.e. no items should be created or destroyed in the transfer - but filters should apply afterwards
- Actions that change items counts in your inventory without a GUI should create or destroy items depending on circumstance and apply filters afterwards:
- Actions reducing the hand stack size to not zero (ctrl+right click, ctrl+click that fails due to full target, building, connecting wires, z-dropping items) should do so without any automatic item refill/ destruction
- Actions depleting the hand stack by reducing stack size by 1 (building, connecting wires, z-dropping single items) should refresh the stack size to it's maximum value instead of emptying the hand (please make sure that the stack in the hand doesn't disappear when doing this, especially when handling stack size 1 items like nuclear fuel or cars)
- Actions depleting the hand stack by trying to transfer it completely (ctrl+left click without GUI) should recreate the initial hand stack upon depletion (i.e. try to insert 37 but only 25 fit results in hand = 12, but if everything went in the hand will stay at 37)
- Actions depleting the hand stack by reducing it by half (ctrl+right click) should let the stack deplete to zero and thus deleting the hand stack.
- Actions increasing inventory counts (manual deconstruction, mining, picking up containers) should delete everything that would create a second stack.
The current editor allows me, the player, to create as many items as I want, but it has a couple flaws: it's cumbersome to delete unwanted items, and it's cumbersome to create more than just a few items. The suggestions is a mix of "make the main inventory a infinity chest" and "refill the hand stack automatically" since those two suggestions interact heavily, which makes it necessary to consider both in order to get the best resulting behaviour.
Some example interactions:
- I want to fill 20 chests/ cars/ cargo wagons with iron plates.
Current method: I have to place an infinity chest that creates the plates, then repeatedly transfer plates via infi chest -> main inventory -> target inventory. This is super cumbersome, especially if you paused the game and infinity chests don't update anymore. (I could spawn in the items without the infi chest, but I'd rather not murderize my left mouse button and index finger to create that many items in the crafting GUI). The clone tool sometimes helps, but only if I want identical chests, which sadly happens only rarely.
Suggested method: Set a single infinity filter in my inventory, and either ctrl+left & drag if I don't want to open the GUI, or open each chest and ctrl+click to fill it up directly. Both of these are a lot faster and much more pleasant - I messed up and want to remove those 20 chests/ cars/ cargo wagons I just placed.
Current method: Manually deconstruct them and suffer your inventory being constantly full of iron plates, or use a filtered decon planner or use the clear destination feature of the clone tool. First method is obviously super tedious, second requires a lot of GUI fiddling with the decon planner and doesn't work with cars, while the last one is easy to mess up and remove more than you wanted.
Suggested method: Just manually deconstruct everything and know that your inventory won't get more than 1 stack of all the things (I especially never want to have 50 cars in my inventory after picking them up to clean up) - I messed up and only want the chests/ cars/ cargo wagons half full instead of full of iron plates.
Current method: Ctrl+right click and lots of emptying inventory into an infinity chest.
Suggested method: Just ctrl+right click and everything just works - I want each of the chests/ cars/ cargo wagons to have 1037 green circuits in addition to the iron plates.
Current method: basically a huge pain - you can ctrl+left click 200 circuits x5 in there quite quickly, but getting 37 into each afterwards is lots of clicking effort. Best workaround I know is to remove all circuits from your inventory and make an infinity chest that keeps exactly 1037 items, then ctrl+click them out and into the chests/ cars/ wagons one by one, but that still requires lots of inventory opening/ closing - and doesn't work in paused mode.
Suggested method: Ctrl+left click with full stack x5 to get 1000 items into each, then get a single stack of 37 and ctrl+click that into each. - I messed up and want to remove those green circuits I just placed in there
Current method: open each inventory and ctrl+click to get the green circuits out. Suffer from your inventory being full within seconds and having to place down a infinity chest to void stuff - that only works if time isn't paused
Suggested method: set a infinity filter on your inventory for green circuits, and go through each inventory one by one and ctrl+click stuff out. - Now I want to connect all the things with circuit wires/ copper cables
Current method: the game never gives them back to you when you disconnect stuff, which means that no matter what you do you'll eventually run out of them and will have to respawn them in again - the 200 stack size helps, but it's still an annoyance every time it happens (which is a lot). Same thing when running long stretches of belts or placing 100s of beacons (blueprints are rarely the most convenient option there)
Suggested method: you just magically get refilled to 200 and everytime it happens you'll praise the Dev who made that happen
Add wires/ cables to the entity tool
The tool currently has pretty much all the things that can be placed into the world, but it doesn't contain red & green wires or copper cables. I'm not sure if other things are missing from it, but if so, those should be added, too.Hotkeys
As mentioned in the recent FFF and basically well liked by everyone I ever asked: we want more hotkeys Here are a few that would probably be useful (most of them can be unbound by default):- A hotkey toggling the editor itself (basically /editor command in hotkey form).
This is useful in workflows that benefit from frequent switching between editor and character mode - e.g. making tests or tutorials. It also doubles as a quick way to hide the quite massive editor GUI.
Maybe expand this to a general "run command" hotkey set - Hotkeys to switch the editor tools. One per tool or some to switch to the next/previous one would be great - the latter would be especially useful in combination with the ability to reorder the tools.
- Hotkeys for game speed increment/ decrement as used in the Time tool (I wished for those since discovering that pause/unpause and step once had hotkeys)
Editor GUI things and options
- Allow the editor GUI to be minized into a single small button similar to how a few mods do it. Even the smallest window is still really big and unnecessarily takes up valuable screen space
- Allow the direct change of game speed via a text box in the Time tool. It can be done via command, but it's just nicer to have the text box (and it helps with not polluting the chat history which probably contains more complex/ useful commands).
- A textbox to set the zoom level - though it's not clear which tool tab would be best for it
- A textbox to set movement speed manually, the Time tool seems like a good place for it
- Remove empty chunks currently only removes completely empty chunks. An option to remove chunks with no player build things would be very useful.
A checkbox to ignore player build tiles is a further helpful option, and allowing to force keep the chunks in a certain radius around the player is nice too. - Extend “Fill with lab tiles” to work with any tiles
- Extend “Edit map gen settings” to achieve feature parity with new game settings
- More tools for cliff-editing. Being able to grab a chunk of cliff and rotate it would be highly appreciated. Blueprintable cliffs would be awesome.
- Extend the Force tool to change force modifiers, e.g. to set a specific mining productivity level easily.
Editor mode blueprinting & building
- Ignore build restrictions for offshore pumps when in editor mode, i.e. allow them to be placed anywhere. Same for miners and pumpjacks.
- Currently, force placing a blueprint keeps existing entities and discards the ones in the blueprint. A mode that does the reverse and always prefers the blueprint entities would be great - this could even be a non-editor feature. Maybe Alt-Click?
- The rail planner should place tracks rather than ghosts in editor mode.
- Allow me to pick up and move entities without changing their configuration (especially circuit connections or which container an inserter targets). When in doubt over validity just allow it anyway since it's not too dramatic if things break a little in editor mode (but I would certainly appreciate it if there were some kind of safe mode that would only move it if all connections to other things remained valid)
Benchmarks
Factorio has a nice inbuilt benchmark tool that some of us use to great effect, but it's quite tedious to do so, and most often we only want a quick and dirty result anyway. The idea is to add a new tool or extend the Time tool with the ability to run a benchmark on the current map:- There needs to be a textbox that allows the user to specify the length of the benchmark
- A checkbox for headless runs - per default it'll run with all visuals & rendering, but checking this will instead show the loading screen while running (bonus points for making the loading bar work with it, but not a necessity)
- The result can either be printed to the chat in the usual (total + min/max/avg) way
- Add a checkbox to track verbose timings and then present them at the end as a graph if checked (probably not too hard to do by reusing the production/ consumption graphing tools)
- Maybe an option to save before benchmarking to allow the user to reload to a known spot
Infinity chests and other infinity objects
- Add “enable/ disable” condition for CN connected infinity chests/ pipes. I.e. the filters only take affect if some CN condition is met.
This is useful in two ways: for one it's probably possible to minimize the UPS impact of infinity objects using CNs (which is important when benchmarking stuff), and otoh it also allows one to simulate things like trains or cars arriving to a station (which I personally would love to have) - Add hidden entities to the infinity filters, most importantly the infinity items themselves.
- Move the EEI and the heat-interface to the "?" category so that all infinity objects are in the same one.
- Allow infinity chests to be upgrade planned to other chests and vice versa
- Add infinity cars, all kinds of train wagons and assemblers, which have an infinity filter for their main inventory and are also able to spawn in fuel/ ammo in a configurable way. Infinity assemblers would spawn in their ingredients when configured to do so, or void their results - they would ideally also have configurable crafting speed/ productivity/ pollution and whatever else can feasibly be set.
- Infinity constant combinator that directly displays all values of the network connected to it - and crucially allows one to change them immediately without having to work around the timing delay of other methods.
This would be invaluable for any work with combinators since it would make monitoring of values and debugging them a lot easier, since it's currently only awkwardly possible to read the current values (the GUI sometimes doesn't fit all of them, and even if it does, they're all truncated to the first few decimals) without delay and next to impossible to change them without having to wait at least 1 tick.
As a possible GUI I suggest to use the constant combinator one, and color the signals corresponding to their source (maybe sort by color too). The GUI will most likely need a scrollbar to be able to display all signals in all cases, since there are almost 300 in vanilla alone (x2 for both colors) and even more in modded games.
Infinity Train station and train related things
Mostly a copy paste from the rough draft we have, will be fixed once a more thought out suggestion is ready- Fix the bug where cloned rolling stock flip their orientation if they’re on a diagonal and the bug where cloned trains lose their manual_mode setting. (see this report)
- TheBloke took it upon him to make a mockup of how an infinity train station might look like, which is mostly self explanatory in it's feature set
Some main points are that it's able to create trains and launch them/ destroy trains that arrived at the station with a configurable configuration of locomotives/ cargo wagons (and probablty fluid tanks & artillery wagons for that matter). There are also a ton of supplementing things like being able to spawn the trains in a regular interval.