hilburn / StevesAddons

Additional functionality for SFM
Other
17 stars 10 forks source link

[Feature Request] Delay/Timer #33

Closed KindarConrath closed 9 years ago

KindarConrath commented 9 years ago

The one thing I've found missing when I build things with SFM is the ability to sleep the code during execution. If I want it to perform an action - wait a second - then perform another action. Any chance you might be able to add this functionality in your mod?

hilburn commented 9 years ago

It depends how you envision it as to whether it is possible - the issue with this is that the data stored in an action would not be valid 1 second later. SFM scans all the inputs and stores them - eg Chest A has 35 cobblestone and 1 plank, Chest B has 67 diamonds etc. This is valid as while the manager is doing stuff nothing else can modify that inventory/tank/whatever (unless someone has set up a thread badly) Now if - after constructing the stored data, but before SFM used the cobblestone, something else took it all, SFM would still think it had the cobblestone to use - resulting in item duplication. Thus having input - delay - output would not be doable. On the other hand... it might not be entirely impossible to break it up like: trigger - input - output - delay - input - output

Until I get that working/if it turns out to not be possible - you can always use a redstone emitter and trigger with a delay - stick it in a cable cluster and you can generate tons of delays in 1 block

KindarConrath commented 9 years ago

Interesting, I wasn't aware of how SFM handled that kind of thing. Makes sense.

My particular situation was to create a wither spawner with SFM, but the heads needed to be placed AFTER the sand not at the same time, or they just fell to the ground. I used an Emitter - Repeater - Receiver with a new trigger for step 2, to get the delay I was aiming for, but I was wondering why a pause function hadn't been put into it before.

I hope that you are able to do it, but knowing how SFM works better now I understand why it might not be possible! Thanks for trying though!

kurokuno commented 9 years ago

Kindar this may be a little off topic but could you not you just have a condition on the heads that requires the soul sand to be down first ?

KindarConrath commented 9 years ago

I may have done it wrong, but I tried several times to have it place the sand first then the heads, but it seemed to do them so quickly that the sand wasn't "placed" before some of the heads were.

kurokuno commented 9 years ago

you would do 4 gates on one command placing the soul sand then use a condition to check the 4 gates that place it to see if there is soul sand in front of them then place heads

KindarConrath commented 9 years ago

I just figured I could do an In->Out 4 soul sand then after that In->Out 3 heads and that would insure that all the soul sand was placed before the heads were.

I also don't totally understand your idea, if the gate has soul sand in front of it, you can't place a head, it would be put in front of it instead of on top. I'd need to check if a gate has soul sand below the block in front of it before placing it, and I don't think I can check that.

kurokuno commented 9 years ago

well no you can given its all just 1 manager im assuming use the condition that the 4 soul sand required to summon a wither be placed by the other 4 gates before the gates placing the head can activate

hilburn commented 9 years ago

Added in 0.10.2