Page 1 of 7

Circuit network features for 0.15

Posted: Fri Aug 12, 2016 12:26 pm
by Twinsen
Over time I made quite a list of features or improvements worth considering to be added to the circuit network.
So what better way to decide than ask the community. So here is an unreasonably long poll where you can vote for your favorite features.

Of course, keep in mind that these are not fleshed out ideas, some of them might turn out to be completely wrong and not worth implementing.
The results of this poll will not be a promise, but rather something to help me decide.

This topic is only for general comments about the ideas proposed above. For ideas and suggestions not related to the options above, please create separate topics in viewforum.php?f=6
Some options have a link to a topic about or related to it.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 1:59 pm
by Zeblote
How about fixing cable shadow? :D

viewtopic.php?f=48&t=8897

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 2:29 pm
by EvanT
I would like a mode for the arithmetic combinator in which it does not add the red and green wires but performs the operation on them. Like:
Green wire (each) / Red wire (each) = result (each)
Green wire (item.A) / Red wire (item.B) = result (item.[A|C])

That way percentages could be calculated. without having one combinator per item type.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 2:32 pm
by siggboy
Thanks for having this poll and engaging in that way with us :). I've already voted, it was not easy to pick just 5 out of the many great ideas!

Regarding trains, which appears to be the most popular addition: I'd love to see a way to send a train directly to a station via circuit signalling (like with SmartTrains). Disabling/enabling stations could be used towards that end, but it would be much, much harder in practice. It would also be great if a train line could be stored independent of trains (again, like in SmartTrains). This all kind of ties together, so I'm mentioning it here.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 2:43 pm
by Xeteth
<3 wireless transmission using radars :D

With regards to the train stuff this is something I would love to see expanded on. Version 0.13 added a lot in terms of setting up schedules and added many different conditions for leaving which really aided in controlling trains more effectively and efficiently. Having said that, I think there is room for the implementation of the ability to control train destinations by using the circuit network. Before going into how I believe this should work, I will first try to justify why I think that this would be a worthy feature in the game;

a) It's cool. Can't argue with that.
b) Allows for the creation of systems that totally control trains through the circuit network and as such adds another level of control to other areas of the factory (imagine letting an outpost know that a train is on the way, which flicks a power switch to re-enable miners or something).
c) Further refines the players ability to control schedules and train behaviour in general

Now, the current proposed idea would be something along the line of enabling/disabling stations based on circuit network signal. Whilst I agree that this would be a step in the right direction I think it sort of 'leaves the job half done' and we may as well go the whole way and give the player 100% control. Furthermore it raises pathing and train behaviour issues - for example what happens when a train is pathing somewhere and the station gets disabled? (I can especially see this being an issue when multiple stations are named the same and one of them gets disabled).

Another benefit I can see is that enabling/disabling stations (and signals) can cause quite a few issues on the train pathfinding, so actually removing the ability for the player to control these and instead allowing the player to just tell the train where to go with the circuit network I believe is a much simpler approach.

Although quite complex, I believe this feature could be implemented in a user friendly manner and in-fact the way the Smart Trains mod (by Choumiko) works provides a great basis to how this feature could work. Stations are assigned a signal ID (which the player can map if they choose) and if a train is waiting at a station and it receives a circuit network signal (for example 5) then the train will path to whatever station is mapped as 5.

If you're interested here's a video of a system I made that controls all the resource trains by using such a system, I think this highlights the power of such a feature being added to the game.

https://www.youtube.com/watch?v=BwXu_suPgR0

Other than that, I would love a few more operations in the arithmetic as suggested (please add the ability for exponents! :D) as well as the decider combinator.

One thing that I notice isn't on the list although was mentioned a while back in a FFF is the ability for mining drills to output their remaining ore amount as a signal. This could be a bit tricky though as the mining area of mining drills has a 1 tile larger radius than the actual entity and as such stringing multiple drills together might skew the output as they overlap.

As for a proper wiki/guide I am still working on a YouTube tutorial series which I hope will help introduce players to the circuit network and combinators in general.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 2:47 pm
by brunzenstein
Floating and pinnable windows are missing - and badly needed not only for smaller screens but for convenience.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:17 pm
by British_Petroleum
Thanks for making this poll and asking the community! I was pleasantly surprised to see a few of my suggestions listed ;)

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:25 pm
by Chameleos
Assembly Machines: How about being able to read the contents of the machines and then allowing for a smart requestor chest that requests exactly the amount of ingredients still required? Would work amazing with the timer combinator ^_^

Also - there's an option to read pump flow, why not regular pipes as well?

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:34 pm
by TheUnknown007
brunzenstein wrote:Floating and pinnable windows are missing - and badly needed not only for smaller screens but for convenience.
+1 to this. I don't need it, but I definitely would not mind it. Although this needs a rethink on how windows work: currently, when you get out of reach of an object, the window closes, which would be pretty inconvenient.
Xeteth wrote:[...] Having said that, I think there is room for the implementation of the ability to control train destinations by using the circuit network. [...]
Also +1 to this, please make the ability to send a train to a specific station in general / station in schedule.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:51 pm
by siggboy
Xeteth wrote:in-fact the way the Smart Trains mod (by Choumiko) works provides a great basis to how this feature could work. Stations are assigned a signal ID (which the player can map if they choose) and if a train is waiting at a station and it receives a circuit network signal (for example 5) then the train will path to whatever station is mapped as 5.
Yes, and also it helps a lot if the station can output its own station number as a signal, and also outputs certain status signals ("train is at station", "train just left for destination #s"). We've fleshed out the stuff that is needed for the most advanced scenarios, and Choumiko has added all of them to the 0.13 version of SmartTrains.

"train is at station" is the most important of the status signals; right now there is no reliable, straightforward way to check this.

The "go-to-signal" feature is what opens up the full range of train automation.
If you're interested here's a video of a system I made that controls all the resource trains by using such a system
Alright, since Xeteth has plugged his setup, I'll be plugging mine as well: check my signature :).
Other than that, I would love a few more operations in the arithmetic as suggested (please add the ability for exponents! :D) as well as the decider combinator.
Decider needs "!=" and "<=", ">=" for sure; arithmetic could use "mod" and exponentiation; bitwise operations in general would be great for complicated circuits/protocols (i.e. bitwise NOT/OR/AND/XOR, because that's just very difficult right now; and a bitwise decoder would be good, even though it can be made rather easily).

Also the decider should get the "Anything" output as suggested by XKnight in the Ideas subforum. It's way, way, WAY too difficult right now to pick an (arbitrary) signal from a bunch of signals, and the "anything" output would make that very easy, and help with filter inserters.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:58 pm
by garath
I realize how much a novice I am when I don't know what ANY of these are to vote for one. :-)

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 3:59 pm
by crysanja
This is a very minor part of the game.

You can play the game without it, usualy causing no issues.


Work on core features not on silly things! - A huge part of the community is not going to use/understand it anyways and the few who use it propably will not push it to its limits(that it would need proposed expansions).


Sorry i know this is a very negative few on this topic - i think you fell in love with something which is not realy needed. Games about programming stuff can be nice, but its not factorio.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 4:09 pm
by Optera
The combinators really need operations like >=, =<, !=, % and bit operations.
I also want to see a combinators being able to handle wire signals separately
e.g. each green wire / each red wire outputting each
or each green wire >= each red wire output each 1
each should only compare the same signal from both wires when used this way

Many are currently available through mods.
Here's some mods I know already implementing more than the suggested additions:

Train Station - control trains by disabling/enabling the station:
Station control in Smart Trains is still better

Rocket silo - read when silo is ready and has satellite. Launch rocket on condition. Add checkbox for autolaunch in gui:
Score Extended handles auto launching rockets perfectly

Train Station - read train contents:
Inventory Sensor reads inventories from any adjacent traincar, locomotive, car, furnace, assembler.

Read flow from pumps... why not make any pipe connectable like belts in 0.13?
Read content as hold and pulse, enable/disable on signal to make it a valve.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 4:20 pm
by HammerPiano
Ahhhh it is so hard to choose...
Gimme all of 'em :D

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 4:22 pm
by vipm23
Would like the ability to specify which station to go to.

Especially if it can be a GOTO command on the Wait Until menu.

And also the ability to copy/paste train settings.


If pumps/pipes can output fluid flow/pressure/temperature, it could help control nuclear reactors.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 4:37 pm
by HammerPiano
vipm23 wrote: Would like the ability to specify which station to go to.
Especially if it can be a GOTO command on the Wait Until menu.
In 0.12 there was a mod called something like "smart trains". In this mode, you could add a smart train stop. The smart train stop can read cargo contents and it was possible to tell a train to go to a station depending on the signal.
About the GOTO command, do you mean go to station X if the signal is 2 else go to station Y?

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 5:03 pm
by aubergine18
Radar seems to be a very strange device to use to transmit signals. If anything, add radio masts or leave to modders to add them.

If you do add wireless signal transmission by radar, at least provide a way for modders to turn it off (and ideally use the feature in other custom entities).

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 5:08 pm
by vipm23
HammerPiano wrote: In 0.12 there was a mod called something like "smart trains". In this mode, you could add a smart train stop. The smart train stop can read cargo contents and it was possible to tell a train to go to a station depending on the signal.
Aware of that mod, never used. Thought it didn't have that feature, stupidly enough.
Can the signal used for each stop be configured by train, or receiving station? Otherwise sounds unwieldy.
HammerPiano wrote: About the GOTO command, do you mean go to station X if the signal is 2 else go to station Y?
More or less. Got the idea from here:viewtopic.php?f=6&t=30519&start=0

My vision of it was, a GOTO command could be set in the Wait Until menu for each stop, attached to a set of Wait Until conditions.

For instance, an outpost resupply train could have:

Schedule

Outpost #1
Outpost #2
>Outpost Depot #1

Wait Until
GOTO Outpost #1
IF Cargo: AMMO > 1k
AND Cargo: GUN TURRET > 10
AND Cargo: CONSTRUCTION BOTS >100
AND Circuit:[1] = 1

GOTO Outpost #2
IF Cargo: AMMO > 1k
AND Cargo: GUN TURRET > 10
AND Cargo: CONSTRUCTION BOTS >100
AND Circuit:[2] = 1

So if the train was waiting at the Outpost Depot #1 station, and Outpost 2 needed a resupply, it'd send a "Outpost #2 needs resupply" signal to the Depot, which would set off an S-R latch outputting [2] and send it to the Outpost Depot #1 station continuously until the train is loaded, at which point it satisfies the Wait Until conditions for Outpost #2 and sets off. When the train arrives, and if Outpost #2 doesn't require further resupply, it sends a "Outpost #2 is satisfied" signal to the Depot that resets the S-R latch.

If 2 or more Wait Until sets are satisfied simultaneously, priority could be set by which set is higher in the Wait Until sheet.

In theory, with this and train reading, you could make an automated request/delivery system with this that only ships the items requested instead of a designated loadout. Heck, it's already been done with Smart Trains, it just needs a lot of combinators.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 5:14 pm
by siggboy
HammerPiano wrote:Would like the ability to specify which station to go to.
Especially if it can be a GOTO command on the Wait Until menu.
You should also mention that this would require for stations to become "addressable" in some way, probably by giving them a "number". Otherwise you could not mention a specific station in a "GOTO" rule.
And while were at that... one might as well turn a train line into a thing that is independent of individual trains, and then just assign the trains to an existing line (instead of having a separate train schedule for each an every train, of course that could still be possible).
In 0.12 there was a mod called something like "smart trains". In this mode, you could add a smart train stop. The smart train stop can read cargo contents and it was possible to tell a train to go to a station depending on the signal.
SmartTrains is fully up-to-date for 0.13 and works really well. It's only not on the mod portal yet because still considered beta.

Re: Circuit network features for 0.14

Posted: Fri Aug 12, 2016 5:48 pm
by y.petremann
Optera wrote:The combinators really need operations like >=, =<, !=, % and bit operations.
I also want to see a combinators being able to handle wire signals separately
e.g. each green wire / each red wire outputting each
or each green wire >= each red wire output each 1
each should only compare the same signal from both wires when used this way.
Handling wire separately would be great and would allow more compact circuits and not redundant circuits.

middle buttons on signal slots is not used, so I thinked about that, and I think that it would switch the mode for that input slot.

Here is a truth table I've made to describe how it would works. There is mainly two part handling switch and behaviour depending of current selected mode and connected cables.
truth.png
truth.png (24.73 KiB) Viewed 27961 times
The first thing is that handling switch would only apply on manual mode, since copying entities would keep current settings, Don't mind about Default and Both, they are the same thing, it was simply that the displaying logic with Both would always show the slot in grey since with Default, It would change depending to available cables.

To resume the switch, the logic would block to current mode unless green and red cable are both present, this would prevent bad clicks.
For Displaying and Behaviour, The logic follow this part, if only one cable is present, it would act like it was set to the connected cable, unless it's specificaly set to the oposite color, but would keep the setting.
If two cable are connected it would use the prefered mode (here Red, Green or Both)

Finaly, output signal slots would get also the functionnality to select which result you want to output, so you could select only red, green or both, keep in mind that it would not select to which cable you want to output.


Something that anoy me a lot is that nulified signals become not present, so for example if you implement a modulo operation on all color signal