Implemented Storage Level Emitter

    Joined
    Jul 25, 2016
    Messages
    2
    Reaction score
    6
    I'd like to see a logic block which can emit a signal if the block it's connected to has either a general storage level over a configurable amount or if a filtered item exceeds a configurable amount

    Use case: If storage 'A' contains 1000 grey hull, output signal active. That signal is then used to deactivate the factory that is crafting grey hull

    Use case: If storage 'B' is over 90% full, output signal active. That signal is then used to activate an orange light. A second emitter block checks storage 'B' for over 95% full and activates a red light when true
     
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    165
    Agreed. The way logic is currently (not) working with storage is unsatisfactory, even if it were fixed.
    It would be immensely useful to have more information than just "could or could not complete a pull".

    Regarding Schema's oft-cited dislike of non-integrated interfaces, I think a 'Storage Controller' ('SC') somewhat similar to the Rail Speed Controller could be used - link activation modules to SC (in contrast to the RSC where it is linked to the activators, but we want to get a signal out of the SC in this case), SC to storage, and SC to logic. The ratio of active versus passive activation modules sets the trigger level.

    While this only addresses the second use case, I think this is the more universal one, and at least partially covers the first use case too.
     
    Last edited:
    Joined
    Jul 26, 2013
    Messages
    144
    Reaction score
    48
    • Legacy Citizen 2
    • Purchased!
    There is an OR signal that indicates empty/not empty also. Unfortunately it goes a little deeper than that. Not all things that pull/push items activate storage logic properly. Like Factories and rail blocks, the dev's say this is 'undesired behavior' but haven't specified when it will be fixed.

    Right now we technically have some flow control if your willing to do a little math. 1000 blocks is general 1k for example, with exception for heavy blocks like standard/advanced armor. If a storage pulling only basic grey hull with 1k storage space fills, you should have about 1000 blocks of Grey hull in there. Unfortunately if another factory pulls something out of that storage to say, make yellow hull, it make not send the less than full logic signal. Even then because a storage can pull more than it can hold, there is no 100% guarantee that it won't over fill unless your pulling 1 item at a time.
     
    • Like
    Reactions: RogueVariable
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    165
    Previously OR and Activation Modules were used to indicate (not) full and (not) empty, which I found both more intuitive (I wouldn't exactly call it intuitive, only more intuitive than what we have now), and more useful.


    Recently, the system has been changed to indicate success or failure of the storage module pulling from other storages, ie. they don't signal empty/full anymore, but only whether they were able to complete a pull, and only if there actually are more items to pull from - if the source storage is empty, "fail to pull" would be signalled, regardless of whether the sink storage is full or not.

    That's not very helpful if you're filling the storage say, from a linked salvage computer, because then it doesn't pull from anywhere, and thus will never emit a signal.
    You could add a second storage that pulls from the salvage buffer, but this breaks if you use docked containers to collect the salvage; the source storage they pull from (across the rail/docker connection) must not be set to pull. Again, if a storage doesn't pull, it can not update connected logic, and you can not detect its state... but if it doesn't pull, it can't get items out of its source.
    Even if it could, the storage on the container doesn't count as pulling from another storage because it's pulling through the rail, and so it would fail. Maybe add another intermediate storage...?

    I can only assume the original implementation had other issues, most likely performance scaling, so changing back may not be an option. As is obvious from the latest patch notes, Schine are working on ironing out storage related issues.

    A storage controller would be simple in concept, flexible in application, and complementary to the current system - it can be used to signal full, empty, or intermediate states, and the current system can signal item flow once it gets fixed.


    see also ⚓ T84 Logic blocks next to storages and shipyard computer do not get triggered and ⚓ T914 cargo area - does not detect full state anymore, among others.
     
    Joined
    Jul 25, 2016
    Messages
    2
    Reaction score
    6
    A storage controller would be simple in concept, flexible in application, and complementary to the current system
    It's a good counter-suggestion, I agree with your points but I think implementing something in a way with obvious limitations just to fit a design concept is a wasted effort.
     
    Joined
    Jul 26, 2013
    Messages
    144
    Reaction score
    48
    • Legacy Citizen 2
    • Purchased!
    if there actually are more items to pull from - if the source storage is empty, "fail to pull" would be signalled, regardless of whether the sink storage is full or not.
    Thats not actually true. I find that a simple:

    Storage -> Factory
    Storage->Activation block
    Activation Block -> Factory

    setup works mostly as intended. It will in fact flip the activation block from Low to High even if there is nothing to pull from the factory. There is however still the problem of the storage overflowing if its pulling more than 1 at a time, so Mostly As Intended.

    Edit: Note you do have to define pull items or it will not signal.
     
    Joined
    Jan 25, 2015
    Messages
    964
    Reaction score
    225
    • Wired for Logic
    • Councillor 2 Gold
    • Legacy Citizen 5
    Hai,
    Congrats! This suggestion has been recognised by the council and the devs, it has been added to the phabricator workflow. You can check out all the accepted suggestions that have been added to the planned list over here Group Council · Workboard
    (you have to scroll all the way to the right to see them)

    I hope many more fine suggestions will come from you.

    For reference:
    ⚓ T1756 Storage Level Emitter / sensor block

    Feel free to signup and subscribe to the task to get e-mail notifications once it hits release/dev-builds.

    - Andy
     

    Crimson-Artist

    Wiki Administrator
    Joined
    Sep 10, 2013
    Messages
    1,667
    Reaction score
    1,641
    • Video Genius
    • Competition Winner - Stations
    • Wiki Contributor Gold
    Suggested. Approved. and Implemented!

    Another fine suggestion makes its way into the game! Great work, everyone! Keep up with the great ideas.