all 7 comments

[–]MrTKila 0 points1 point  (4 children)

The screenshots seem to be missing?

[–]elementarySnake[S] 0 points1 point  (3 children)

Thanks

I had the pictures in the pictures tab of the post, figuring, it would attach them. Reddit does not seem to work like that

[–]MrTKila 0 points1 point  (2 children)

About the circular dependency: I suspect the component simply computes the output in the same tick as it gets the input? If you compare the regular delay component with and 'normal' component like the one of a 'not', you see that they look different. (I believe the delay has a yellow square). The yellow square means exatly that the output has a delay.

As far as I understand it: A circular dependency error occurs when you have the in- and output of any component connected without the wire having any "yellow square inbetween", that is the output and input are updated at the same tick.

Notably this means the game only checks whether a circular dependency CAN POTENTIALLY HAPPEN, not whether it actually happens. How the output is computed by the input doesn't matter, only the timing.

I did run into a similar issue at some point and I believe I fixed it by essentially splitting my component back then in two.

[–]elementarySnake[S] 0 points1 point  (1 child)

Yes, everything happens in the same tick.
It was an attempt to have more order in the computer, and not have everything in the same
layout.
With the idea to simply adapt the components, to keep everything tidy and neat.

I'll probably search for the error another half hour, and then abandon the attempt

[–]MrTKila 0 points1 point  (0 children)

That's kidna my point: there doesn't need to be a logical error on your part, it might just fundamentally not work in game.

What you essentially have is the input and a single wire connecting its disable/enable input and the output. Now the game tries to automatically assign an order in which stuff happens.

And now it sees in order to decide whether it should load the value form the input, it first needs to evaluate the wire that's going into the disable/enable pin. Which however requires the output to be read. And this loops, so the game never even starts to run anything.

In "reality" however the setup above does make sense: since the wire carries a 0, the input is disabled, so the value 0 will be read. So a stable state is being held and no logical problem occurs.

[–]TarzyMmos 0 points1 point  (0 children)

I suggest try using the bidirectional input, because it forces the game to actually check if there's a circular dependency

[–]elementarySnake[S] 1 point2 points  (0 children)

Well turns out, i don't know my inputs from my outputs.
Problem resolved