Integrated Dynamics

Integrated Dynamics

63M Downloads

Redstone Writer doesn't change it's state

Charismara opened this issue ยท 20 comments

commented

Issue type:

  • ๐Ÿ› Bug

Short description:

I have created a progamm which reads the cooldown nbt of a botania thermalily and returns true if it's 0.
But the Redstone Writer doesn't change it's state. I need to remove the variable card and add it back again to change the state from false to true and from true to false.

Steps to reproduce the problem:

My full programm:

  1. Tile Entity NBT (Block Reader)
  2. NBT.get_integer with string "cooldown"
  3. integer == 0 (this card is in my redstone writer)

Expected behaviour:

If the thermaliliy has more than 0 cooldown then it should be false and if the cooldown is 0 it should be true.


Versions:

  • This mod: 1.16.5-1.7.2
  • Minecraft: 1.16.5
  • Forge: 1.16.5-36.1.6

Log file:

commented

Thanks for reporting!

commented

Could you check if this also occurs on vanilla blocks? Such as the vanilla chest?

commented

Redstone Writer doesn't change it's state

This also happens if i use a redstone clock variable card instead of the program.

Could you check if this also occurs on vanilla blocks? Such as the vanilla chest?

Sure, i'm gonna try it now.

:edit
Also happens with vanilla chest.

commented

how far away is the variable store that you put the programmed cards to the redstone writer?

they are in the same chunk.

Are you by any chance using the Performant mod?

The only performance mod i use is ferritecore

commented

Could you try reproducing this without that mod?

commented

Could you try reproducing this without that mod?

Still happening

commented

how far away is the variable store that you put the programmed cards to the redstone writer?

they are in the same chunk.

Are you by any chance using the Performant mod?

The only performance mod i use is ferritecore

put the variable store right next to the writer, thats what i had to do, my problem was also in the same chunk, and it still didn't update regularly until i put the cards close enough

commented

put the variable store right next to the writer

It seems to work now. Thank you :)

commented

put the variable store right next to the writer

It seems to work now. Thank you :)

ya if somehow u must have a card from a far away variable store, proxy it, and then put that proxy output in the near variable store, thats what i do

commented

Definitely sounds like a bug though

commented

Definitely sounds like a bug though

id assume keeping it as it is will actually reduce performance cost?

commented

how far away is the variable store that you put the programmed cards to the redstone writer?
from my experience, a card inside a part which is referencing other cards from a far away variable store won't update regularly unless as you said

remove the variable card and add it back again to change the state

commented

Are you by any chance using the Performant mod? If so, stop using it, it horribly breaks mods.

commented

Are you by any chance using the Performant mod? If so, stop using it, it horribly breaks mods.

i wasn't, and i still have to put the cards being referenced to the closest variable store for the cards that are being exposed to update in some circumstances

commented

I'm unable to reproduce this myself.

Could you share a world with me that (only) contains a reproducible build, without any other mods installed? (So I can load it into my dev environment)

commented

is there a way to simply copy and paste all Integrated Dynamics blocks/settings/cards from one world to another world? including what they are materialized into and which card is linked to which via which operator?

because to replicate what i have done would take quite a while as it involves quite a few operators, and it will be really hard to figure out which part is actually not updating since multiple parts are involved.

Here is a summary of what i have done.

  1. Read from two inventory lists ::[Item]
  2. from the two lists, compare them to another list their size and output another [Item] lets call craftList
  3. from the craftList i expose only one of the items to a crafting writer, and the exposed item changes with time (controlled by a counter which advances with time)

my current observations:
in 3. when the counter that controlls the cycle of Item has its card that returns the index::Int (call this card Index)too far away from the crafting writer, the numbers will no longer update once the length of craftList reaches 0. When craftList actually contains Item, it no longer cycle through anything, this is fixed by brining Index close to a variable store from the writer.

However, another problem appeared in 2. where the comparison of the two lists craftList does not update. This problem isn't consistent, sometimes it does update, sometimes it doesn't, so I am unsure how to deal with this.

commented

is there a way to simply copy and paste all Integrated Dynamics blocks/settings/cards from one world to another world? including what they are materialized into and which card is linked to which via which operator?

No, not at the moment unfortunately.

It's always possible to share a dedicated world zip, if it doesn't contain other mods.

commented

if it doesn't contain other mods.

well ya if thats the case i would have sent the world already...

commented

some new info, seems like the problem from step2 can be solved by putting both inventory [Item] into two display panels near by. (not sure if nearby is even a requirement though)

is there a way to simply copy and paste all Integrated Dynamics blocks/settings/cards from one world to another world? including what they are materialized into and which card is linked to which via which operator?

because to replicate what i have done would take quite a while as it involves quite a few operators, and it will be really hard to figure out which part is actually not updating since multiple parts are involved.

Here is a summary of what i have done.

  1. Read from two inventory lists ::[Item]
  2. from the two lists, compare them to another list their size and output another [Item] lets call craftList
  3. from the craftList i expose only one of the items to a crafting writer, and the exposed item changes with time (controlled by a counter which advances with time)

my current observations:
in 3. when the counter that controlls the cycle of Item has its card that returns the index::Int (call this card Index)too far away from the crafting writer, the numbers will no longer update once the length of craftList reaches 0. When craftList actually contains Item, it no longer cycle through anything, this is fixed by brining Index close to a variable store from the writer.

However, another problem appeared in 2. where the comparison of the two lists craftList does not update. This problem isn't consistent, sometimes it does update, sometimes it doesn't, so I am unsure how to deal with this.

commented

Note to self: also seems to occur on a simple display panel reading the age of cocoa bean blocks.