tweaked-programs / cccbridge

CC:C Bridge is a mc mod that adds compatibility between the ComputerCraft and Create mod!
https://cccbridge.tweaked-programs.cc/
Apache License 2.0
29 stars 14 forks source link

Programmable filters #47

Open BirbIrl opened 1 year ago

BirbIrl commented 1 year ago

I've always wished for there to be a lag-free way to interact with item Vaults, extracting specific items you might need and what not. Currently there's no easy way to automate getting a specific item out of a vault. I think, a good additional would be a new filter printer block. 1: Place the "Filter Printer" facing towards any create block that can have a filter applied to it 2: Right click on the filter printer with any source that can return a list of items 3: Attach display link to the CC:C source block 4: Whenever the "Filter Printer" gets updated with a new list, it plays a short animation and edits the filter applied to the block it's pointing towards.

Another way this could be done is via a remote "smart filter" and "smart filter router" that each have channels assigned to it (similarly to redstone links)

Smart filter would be the sturdy sheet version of the filter, while the smart filter router would be another CC peripheral block. It can be interacted with by the player to assign it's channel (similarly to redstone links). Via it's peripheral code you could then assign the filter properties. (Allow/deny list, attribute list etc.)

While this solution would be more elegant, it's also very likely Create simply just doesn't allow this to be done.

Finally, the last way i believe this could be done is by adding a new sturdy sheet funnel/chute. Just like the smart filter idea, they'd connect to their own alternative of "smart filter router". Set the funnel/chute channel, do the same for the router and via a peripheral control what the funnels/chutes should let in/out!

SammyForReal commented 1 year ago

Hm. I think I really gotta have to take a look at Create filters. This is something that I heard people wanting us to implement over and over again.

I don't want to over complicate things with block-chains of peripheral blocks that eventually give you an in/output.

I like the idea of our own Smart filter or funnel/chute block. Not sure how robust the filter item would be to configure within any way (like linking to a peripheral), so ideally I imagine a funnel/chute that acts as a peripheral too, sending events for items that want to pass over and a functions to tell it what to do with it. It would be even better if it can act on its own after configuring it, but not sure how to do this right now.

That all is just brainstorming me. I will keep this issue open for now. I don't know when I will take some time to take a closer look at this. Thanks for contributing here with your idea however, I really appreciate it. ^^