Draft: Store prototype API



  • Hello,

    I like this proposal in this current state. Code will be much simpler for many situations.

    The only improvement I'd favour would be to change store.getUsedCapacity([resourceType]) to store.getAmount([resourceType]), favoring concision to regularity, MrFaul's store.getStored looks a bit redundant to me, but I like the rest of his definition.


  • Dev Team

    Remember that this method can (and in most cases will) be called without arguments. Store.getStored() or Store.getAmount() are not definitive enough in terms of "get how much capacity in this store is used for all resources in total". I'd say that Store.getAmount() without arguments should return an object with all resources rather than one single number of total used capacity.

    👍


  • How about getTotalAmount()?



  • What's the behavior of zero capacity Stores?

    This happens when a Storage or Terminal has been RCL downgraded and with the loot Containers the caravans drop. It will also affect the Power Banks when they get a .store property.

    Currently .storeCapacity is set to 0 for these structures. I assume getCapacity() will likewise return 0.

    However as described now getFreeCapacity() will return a negative value. I did this in my own code and it caused all sorts of problems. I suggest the behavior be expanded to never return < 0.


  • Dev Team

    @deft-code Yes, getFreeCapacity is more like Math.max(0, getCapacity - getUsedCapacity)



  • @artch said in Draft: Store prototype API:

    I'd say that Store.getAmount() without arguments should return an object with all resources rather than one single number of total used capacity.

    @artch I would say that Store.getAmounts() should return such an object. Store.getAmount() is "get the amount of whatever is in the store" 😉


  • YP

    @thynosaur and that would be an object.. since there can be several types of resources in a store.



  • @artch How about Store.getStoredMass() couldn't get anymore clearer then that.

    👎


  • Prolegomena: I'm a native English speaker.

    getUsedCapacity reads pretty clear to me that you're getting a number that indicates how much of the store is used. Most other suggestions don't read as clearly as to what they represent.

    👍

  • Dev Team

    Implemented in this PTR patch.


Locked