Applied Energistics 2

Applied Energistics 2

137M Downloads

[Feature] Suspend/Pause Button for Jobs in Crafting Processor

willies952002 opened this issue ยท 5 comments

commented

I was just playing on a custom mod-pack I had made for me and my friends (private) and one of my friends had queued up 50 x 64K drives which was taking a long time. That's when I had the idea about possibly having a button to suspend/pause a job instead of just cancelling it all together to let other jobs process.

commented

i must say i like that idea

commented

Might be an idea, if you want to stop a large job from stealing resources for a smaller but more important job.
But it would still have to block the crafting cpu from accepting a new job.

It would need some considerations, like how often would a player pause it, but then forget to unpause it, but report it as bug.

Maybe a similar feature would be to assign priorities to crafting cpu (if this is possible without breaking the API). So players could have a few high priority cpus, which will the preferred destination for finished crafting tasks.

commented

what would work better

On Thu, Mar 24, 2016 at 10:53 AM, yueh [email protected] wrote:

Might be an idea, if you want to stop a large job from stealing resources
for a smaller but more important job.
But it would still have to block the crafting cpu from accepting a new job.

It would need some considerations, like how often would a player pause it,
but then forget to unpause it, but report it as bug.

Maybe a similar feature would be to assign priorities to crafting cpu (if
this is possible without breaking the API). So players could have a few
high priority cpus, which will the preferred destination for finished
crafting tasks.

โ€”
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#2156 (comment)

commented

Is that even possible since all resources are taken upon starting a crafting job?

commented

Wrong idea, even a pause button will not solve this ๐Ÿ˜‰

The idea is mostly for cases, where you say requested 10k iron ingots and suddenly need something which requires pulverized iron. But the currently running job for iron ingots will catch all pulverized iron until it is finished before moving to the next request (as all pulverizers might be occupied)

Pausing it somehow would allow the dust to enter the network or another crafting cpu.
Prioritizing a crafting cpu would allow it to be the first one to recieve the crafted materials instead of being randomly like now. But it would most likely not catch finished crafting jobs. Say you need some pulverized iron while still crafting iron ingots. In these cases it would be directly dumped into the running job.

Pausing/Parking has the advantage of also allowing intermediate materials to reach the network. But players might forget that the have parked a cpu and then ponder why they suddenly cannot craft anymore. Also it would not require any planning.

Adding a priority would only affect finished products, but not intermediate ones.
But it would require some planning as well as allowing the player to better fine tune their network.
Like having a large cpu with a low priority for long running jobs and some smaller high priority ones, if you need something now.

This could potentially also be extended to interfaces/export buses, think of cpu pinning for them.
But instead of pinning it to an actual cpu, you could decide to use a low or high priority cpu.
For example use a high priority one to craft your fuel and export it to the power generation, without being stalled by other jobs. Say stockpiling torches when using coal/charcoal as fuel.

Both should be similar in terms of work.
But Pausing would probably need an API change for crafting cpus (isAwake() or similar).
While a Priority would be mostly changing the datatype from a HashSet in CraftingGridCache.craftingCPUClusters to some sorted collection.
Plus the GUI changes in both cases.

Extending it to the export buses/interfaces would be additional work.