Cargo Docking Modules

    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Players have wished for a way to automatically transfer cargo from one ship/station to another.

    Cargo docking modules behave like normal docking modules, except they don't allow chain docking. They only behave different if both the docked ship and the mothership have at least one PlexStorage on board.
    I suggest having 2 types of cargo docking modules: the LoadingDockingModule and the UnloadingDockingModule.(both can be extended using a CargoDockExtender or maybe a normal docking extender)

    The LoadingDockingModule takes items from PlexStorages on the mothership and places them in a PlexStorage on the docked ship. This process could use energy for every transported item.

    The UnloadingDockingModule reverses the process and takes items from the PlexStorages in the docked ship and places them in the mothership. Again at a certain energy cost.

    This would allow semi-automated cargo transport based on existing features(docking, energy use, PlexStorages). In combination with other upcoming features(like salvagers, that put the salvaged items in PlexStorages) this would allow the whole cargo and salvaging sector of the StarMade-economy to grow extremely. Huge cargo containers and container transporters would be usable without causing much lag, since the cargo could be transported without having to keep the content of all PlexStorages permanently loaded, nor having to load all PlexStorages simultanously for loading and unloading. The current problem with big cargo storages on ships is, that, whenever one opens one's inventory, all PlexStorages(which can easily go up to 20k on cargo containers) are loaded and added to the GUI, causing an about 10 second or longer lasting framefreeze and maybe a crash

    The octree can be used for the implementation of this feature. The nodes of the tree simply need to contain an additional boolean and a Boolean(I am referring to the class java.lang.Boolean), that determine, weither the part of the ship contains a PlexStorage, and if they are empty, partially filled, or completely filled.(the Boolean allows 3 states{true, false and null}, while the boolean only has 2 states{true and false}) Based on that information, the LoadingDockingModule skips all sections of the ship, that do not contain a PlexStorage or only contain completely filled PlexStorages.
     
    • Like
    Reactions: Ithirahad
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    Erm, having both a loading and unloading type seems a bit complicated. Since it seems likely that there would be a GUI anyway (transfer only blocks x,y,z) you could probably combine the functionality of both into one.

    Also, because plexstores are likely to get finite capacity, I would say that the capacity could be extended by linking one plexstore to others.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Erm, having both a loading and unloading type seems a bit complicated. Since it seems likely that there would be a GUI anyway (transfer only blocks x,y,z) you could probably combine the functionality of both into one.
    True, but this is a post of mine I copied from the old site, so...
    I also didn't want GUIs because they are generally more likely to be buggy, than a block, that does only one single task.
    Also, about transferring only from specific blocks, the assignment of all those blocks would cost tons of time.

    Also, because plexstores are likely to get finite capacity, I would say that the capacity could be extended by linking one plexstore to others.
    possibly.

    I also had the idea to make only one cargo docking module, that functions as a factory-input like block, that simply represents the whole inventory of the docked ship(the player shouldn't be able to open that representative inventory though)
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    I would support docking-platforms where each Plex-Store array defines the x y and z size of your cargo area - which has other blocks placed/removed instead of being inventory-like.
    It would be possible to store Plex-Stores, but only in a line or separated, as anything else will create a new cargo area instance.

    Then, just use the salvage beam on this docking areas. If you either hit a block or one of the Plex-Stores, you get the block into one of your own cargo-areas.

    Plex-Stores form cargo-area instances if more than one axis has more than 1 block, which makes them protected from salvage until the core overheats.
     
    Joined
    Dec 22, 2013
    Messages
    100
    Reaction score
    21
    In ships, the pilot can transfer inventory between storage within the ship. What if the current transfer method was just extended to stations when you docked?
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    In ships, the pilot can transfer inventory between storage within the ship. What if the current transfer method was just extended to stations when you docked?
    because if there are too many plex-storages, opening the inventory to transfer items, just takes minutes and freezes the game.
     
    Joined
    Aug 31, 2013
    Messages
    635
    Reaction score
    875
    • Competition Winner - Small Fleets
    • Legacy Citizen 9
    • Master Builder Bronze
    how about when things are docked together, you can access an inventory menu that lists all docked entities that contain plexstorages, then you can expand the menu of the entity you want to get resources from or place resources into, and use the plexstorages of that entity.
    manually transferring wouldn't be too bad. this way if you have some project someone is working on in build mode and they run out of resources, you can just dock a supply shuttle to their project and they can access the supplies from within build mode. when it's unloaded, your teammate can detatch the supply capsule, then go mining with the supply capsules reattached to their salvage ship. you wouldn't have to faction the supply capsules either, let them stay neutral. it would be a cheap way of transferring resources, trading, supplying materials, and such. between factions. Maybe even have several factions working on the same megabuild.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    refirendum I like that, but what if the support capsule has a wopping 0.2M plex-storages? just opening the inventory in there without any docked ships WILL make the game freeze for about an hour.
     
    Last edited by a moderator:
    Joined
    Aug 31, 2013
    Messages
    635
    Reaction score
    875
    • Competition Winner - Small Fleets
    • Legacy Citizen 9
    • Master Builder Bronze
    then plexstorage needs a change in system. like when plexstorages are touching their inventories combine and so like, if you have 10 plexstorage put together, it brings up 1 inventory menu with 10 pages numbered on tabs at the top.
     
    • Like
    Reactions: Astrocat
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    that won't help much either, since 0.2M of those tabs still have to be instanciated and put into place, and that just takes a ton of time.
     
    Joined
    Aug 31, 2013
    Messages
    635
    Reaction score
    875
    • Competition Winner - Small Fleets
    • Legacy Citizen 9
    • Master Builder Bronze
    hmmm well then there's not much of a good fix for this right now except for more computing power
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    well, there is a little: doing the transfer automatically and tickwise, so there is no big performance impact.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    Grouped plexstores would not gain any additional slots, just depth of slots. Also @refiredum the plexstores should not auto group, but should c-v together using the linking system.
     
    Joined
    Nov 25, 2013
    Messages
    307
    Reaction score
    128
    • Purchased!
    Who the hell needs 0.2 mil plex storages? About 15 is enough to contain ANY amount of EVERY block in game (so far). You just need to stack the same types of blocks together. I know it takes time, but using shift+LMB make it easier. Or ctrl+LMB, don't remember. It'd still take some time but it's still better than lagging Your game with hundreds of storage tabs.

    I'd like to see a way for transporting blocks from ship to the station, but i don't think it needs new type of blocks, just as mentioned above, seeing storage tabs of every docked entity with plex storages would do fine.
    I'm not so much against the idea of automatic transfer between docked entities but implementing two new blocks for thing which take few minutes at max, and what could be resolved by small GUI changes? Really?


    P.S.
    Maybe in future freighters/miners would need thousands of plex storages, but i think it would be mostly a reason for limited space in each plex storage.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    Yeah, and needing only 1.5 mass to carry an infinte amount of cargo is OP. If any ship can be a freighter, then the economy is screwed.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    2 things:
    1. There will be a stack limit
    2. There already is a stack limit, it just is (2^31)-1, which is more than 2 billion items
    And yes, transporting more than 21.6 quadrillion items of the same type is ridiculous, but can happen
     
    • Like
    Reactions: Ithirahad
    Joined
    Nov 25, 2013
    Messages
    307
    Reaction score
    128
    • Purchased!
    These two things still doesn't give a reason for automatic transferring blocks. And to have few thousands of plex storages (yet)
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    Just make the transporting ship heavier for each block.
    I would support docking-platforms where each Plex-Store array defines the x y and z size of your cargo area - which has other blocks placed/removed instead of being inventory-like.
    It would be possible to store Plex-Stores, but only in a line or separated, as anything else will create a new cargo area instance.

    Then, just use the salvage beam on this docking areas. If you either hit a block or one of the Plex-Stores, you get the block into one of your own cargo-areas.

    Plex-Stores form cargo-area instances if more than one axis has more than 1 block, which makes them protected from salvage until the core overheats.
    Will fix a lot of OP-ness.