Re: Friday Facts #379 - Abstract rewiring
Posted: Sat Oct 07, 2023 9:19 am
There's a tiny detail I missed: If both WireConnectors are alive (not ghosts) can a wire connecting them be a ghost?
I was wondering how this would interact with reach. If ghost wire between real entities is not a thing, there are two options left. Either the player can connect wires using the map remotely without bots, or can not connect wires remotely at all.
Great mod! Thanks! Hopefully vanilla implements the toggle shortcut as well so you don't have to make the mod turn off the auto wiring with a toggle instead lolOmnifarious wrote: ↑Sat Oct 07, 2023 3:13 amYou guys implemented my LD Auto Circuit mod (more or less) into the base game!
It obviously wont autoconnect different circuit networks. That would a bug.BlackKnight wrote: ↑Sat Oct 07, 2023 12:51 amWire auto-routing: My only concern is if red/green wires are auto-rerouted like copper cables do when (re)-placing power poles, this could end up being a big headache after meticulously wiring a setup. So I trust there is some exclusion for this scenario.
Yeah it was a huge mistake that they actually went and implemented updates to make remote building worse.BlackKnight wrote: ↑Sat Oct 07, 2023 12:51 amRe Wire free placement. Completely logical and appreciated. When people expressly circumvent building circuit wires by copy/pasting blueprints of them, you know its a feature that needs to change.
Being able to interact with inventories makes it possible to make mods like Recursive Blueprints+ that needs a reference to a blueprint to place it. And we can make other similar mods for other tools with data this way as well.Mango wrote: ↑Fri Oct 06, 2023 8:01 pmI was actually hoping for more changes in the case of abstract items. I find it very confusing, that I can open blueprints, click on one and actually move it to my inventory (while actually removing it from blueprint interface) and then put it somewhere else or throw in on ground.
I don't get why the abstract items have to interact with inventories at all.
I would much rather have them only existing in hands when used and never delete them unless specifically selecting the delete button in an opened blueprint.
This would also nicely work for wires, discharge and artilery remote - you select what you want to use and just use it.
The spidertron remote is similar to blueprint because you can have multiple different remotes existing at the same time. It would need special menu like the blueprint one to set/manage remotes but then you also just select which you want to use and just use it.
It is already an abstract item. Abstract just means it has no recipe to create it, instead they are made for free with player UI interactions.Upserter wrote: ↑Fri Oct 06, 2023 8:42 pmA trick I learned only recently is to set the output filter on a splitter to the deconstruction planner. This is useful when you only have one side of the splitter output connected up, because it prevents items from passing through to the end of the belt on the unconnected side where they would just sit unused. Any item will work for this, but I like to use the deconstruction planner because it would never clash with an actual production item, and it leaves a nice big red square on the splitter, which to me reads symbolically as “no exit”.
With the deconstruction planner becoming an abstract item, will it still be possible to use it in this way?
Hovering over entities DOES highlight the connected wires.KeithFromCanada wrote: ↑Fri Oct 06, 2023 8:24 pmThe Problem
- Using red & green wires was a useful hack in the beginning, but trying to use them in a complicated circuit can damage your sanity because of how difficult it is to place & trace them. (Yes, hovering over an entity and having the connected wires & entities highlighted would be helpful, but still wouldn't deal with the real problem.)
- Using more than two nets requires Rube-Goldberg-level shenanigans at both input and output ends. Not fun and (eventually) hits your UPS.
Are you actually saying that wires should be removed completely?KeithFromCanada wrote: ↑Fri Oct 06, 2023 8:24 pmMy Solution
- Ditch the primitive wiring and go modern: use WiFi. (Could be a tech that needs to be researched.) Use the roboport code and define each power pole as having separate power and WiFi ranges. Each entity within WiFi range has an automatic data connection without needing to worry about connecting wires.
This is not a replacement. Named global signals can't be blueprinted and copied without each instance making interference. You can't connect networks automatically based on physical placement position of the instance. Wires are required.KeithFromCanada wrote: ↑Fri Oct 06, 2023 8:24 pm
- Add a 'router' entity to create separate data nets, just as power switches can separate power nets. (Each net can separately be shared through the router or not.)
- Add fully named virtual signals, as is done for train stations/etc., instead of just using a single icon. For example, instead of just [...]--which could mean anything involving iron ore, players could use [...], which tells you exactlywhat the signal actually used for, instead of having to guess.
- Use the solution that others have come up with (like TSM) and allow players to define separate nets by simply adding a higher-order virtual signal before the main one. For example, [...] would reference a completely different value than [...], even though the final virtual signal is exactly the same.
- (Optional) Going a step farther for mega-mega-bases, add a second (or even third) level of nets.
NO! Worst idea ever.KeithFromCanada wrote: ↑Fri Oct 06, 2023 8:24 pmThis should deal with a lot of the issues both y'all and the players are having with circuits, and should improve game efficiency, to boot.
Does that sound reasonable?
Waow such a different understanding from me, i read it as an additionnal option similar to "connect to logistic network" , which is wireless and can be activated on many entities and then it interact with signals/logistic quantities. I guessed i didn't read the later part of the sentence as exclusive.Qon wrote: ↑Sat Oct 07, 2023 10:29 amAre you actually saying that wires should be removed completely?KeithFromCanada wrote: ↑Fri Oct 06, 2023 8:24 pmMy Solution
- Ditch the primitive wiring and go modern: use WiFi. (Could be a tech that needs to be researched.) Use the roboport code and define each power pole as having separate power and WiFi ranges. Each entity within WiFi range has an automatic data connection without needing to worry about connecting wires.
That's just...
NO! Worst idea ever.
The "alledged sun" of Nauvis, i prefer the term "unknown source of light" , because a sun would'nt set everywhere at the same timecoppercoil wrote: ↑Fri Oct 06, 2023 9:58 pmNo, shadows should lie on the ground
With the distance, every shadow becomes blurry because the Sun is not a point light source.
Glad, you are just doing it!A refactoring was imminent!
The mods are enough for the suggesters usecase of simply transmitting signals far. Integrating the mods into every entity that can interact with signals is kind of pointless, but logistic network signals do something similar instead of adding a logistics network combinator so I can't know they won't just add that kind of feature.mmmPI wrote: ↑Sat Oct 07, 2023 11:00 amI thought this is somewhat possible to test the gameplay with mods that replicate the wireless transmission, although not removing the wires completly. [...]
It is easier to make "global network", or semi local and it somewhat uses the same conventions for channels or input/ouput mechanism as was described. And i think there will be something similar to communicate with the space platform or the other planets in the expansion.
Adding Shortwave to Factorio base (nice to have but kind of pointless if you build rail network with blueprints) or Space Age makes sense. Simple and easy way to connect things to a global network.mmmPI wrote: ↑Sat Oct 07, 2023 11:00 ami think some degree of wirelessness is desirable imo. I don't expect every player to have to come up with a DIY solution to transmit request of material accross planet or space platform. In SE combinators feels more necessary than in vanilla, almost mandadory and probably too difficult for vanilla expansion. So i suppose there will be something to help in that direction of "transmitting signals accross surface". And if you can do that, you can send also to anywhere on the same surface if you bounce back to your space platform, like a satelite.
2 colors is almost always enough. It is always enough if you can fit in 1 tick delay and an everything|0 combinator to split a wire up into 2 wires. And you can just have several parallel rows of wired entities (poles, constant combinators) if you need more data transfer. It could make multi channel data bus use a bit less entities. And maybe I'm so used to the 2 color paradigm that I'm capable of working around the issues and always finding my solution with ease, but I don't really see where one more wire color would help me.
If you are suggesting to remove one color and only have this system: This would make network separation invisible. Advanced contraptions would become unreadable. Not just "unreadable" as some say when they actually mean "hard" or "I'm not smart enough for combinators", I mean actually impossible to follow data flow visually without bringing up GUI elements. Or otherwise the name of each channel in a wire must be written on each wire. But that is obviously inferior to coloring the wires.raidho36 wrote: ↑Sat Oct 07, 2023 5:40 pmBetter yet, make signal system not depend on the color of the wire. Simplify the system to "power wire" and "data wire", like mains and fiber. Solve the signal separation by being able to specify an abstract data channel(s) within the data wire to send signal to, and to read from. At that point, you can actually make data wires costly. Or just make power poles contain both wires by default.
All I'm seeing is ad-hoc excuses -not reasons- why [CURRENT IMPLEMENTATION] is overall the best, and shouldn't be touched. Thankfully, the devs don't share your view. Otherwise we wouldn't have had new rails.
If any virtual wire can be accessed from anywhere on the map, a combinator-heavy approach which uses many thousands of wires becomes unmaintainable, even when using folders. The only place where I could see this approach working is locally inside an 'integrated circuit combinator', and that is because in that case the virtual signals aren't global.raidho36 wrote: ↑Sat Oct 07, 2023 7:51 pmAll I'm seeing is ad-hoc excuses -not reasons- why [CURRENT IMPLEMENTATION] is overall the best, and shouldn't be touched. Thankfully, the devs don't share your view. Otherwise we wouldn't have had new rails.
I mean really. Creating a huge mess of wires and combinators is a perfectly good solution, and being able to simply assign your signal to a folder is too much work and it's too hard to follow?
LOL. I gave reasons. You not being able to understand is your problem, it doesn't mean I didn't give any. You declaring that devs don't share my views doesn't make it so. You would have to actually convince them. I never said features can't be added, read again.
If you actually had done some big and advanced contraption then you would know why being forced to assign wires to channels every time you wire things together would drive anyone completely insane. And not having the option of organizing your wires so that they are possible to visually identify would not make things better. Removing the current features for no reason is a bad idea. Make something non-trivial with combinators once and earn your right to write about the topic.
Well I'm not necessarily suggesting getting rid of colored wires. It's a simple solution for single-channel data transmission and it already works. It's just really not ideal for making complicated systems, precisely. I can't quite put it into words, and none of the features are problematic on their own, but together they very subtly make the whole system very obtuse; I think many will find it an apt description. I tried making a PID controller for my nuclear reactor array and I gave up halfway. Though such a trivial system to implement in Lua, it wasn't worth the effort to do in Factorio.Qon wrote: ↑Sat Oct 07, 2023 8:36 pmIf you actually had done some big and advanced contraption then you would know why being forced to assign wires to channels every time you wire things together would drive anyone completely insane. And not having the option of organizing your wires so that they are possible to visually identify would not make things better. Removing the current features for no reason is a bad idea. Make something non-trivial with combinators once and earn your right to write about the topic.
Code: Select all
function pid:step(input)
local error = self.setpoint - input
local speed = input - self.previous
local accum = math.min(math.max(self.accumulator + error, self.lowerlimit), self.upperlimit)
self.previous = input
self.accumulator = accum
return error * self.P + accum * self.I + speed * self.D
end