The fix for broken copy/paste: add a base point!

    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    Copy/paste is extremely useful to have, but the current controls are horrible. It's slow, counter-intuitive, difficult select what you want to copy, and even more difficult to paste it where you want.
    We (well, not us, the devs) can learn from existing engineering tools that, while not perfect, are highly developed and evolved.

    I know copy/paste control improvements are not an original suggestion, but one simple idea will fix copy/paste - copy and paste with a base point.
    The suggestion is broken down into five points below.

    1.Instead of setting a cuboid size and then copying, selections should be made by clicking the block at one corner of the desired cuboid, and then the "opposite" corner. (Or by dragging)
    (Double click on the same block to select just a single block)
    See pic below.

    Two point copy. 1: click 1st corner (blue), 2: click 2nd corner (yellow), 3: click base point (cannon computer)

    2. As well as the "two click" selection above, there should be a three click seclection: click any three blocks and the smallest possible cuboid that encloses them all will be selected.

    3. Both the selection methods above should be followed by another click: click on a block that acts as a reference point/base point for the selection. Then when you paste, you click a block to act as the base point, and the copied selection is pasted in a location with respect to that block.
    Pasting in pic below.

    The shield blocks that were copied with the cannon computer as a base point are pasted using the salvage computer as a base point.

    4. For bonus points, instead of choosing just a reference block when copying, it would be even better to be able to choose the face of the block clicked on as a base point. That would allow quick and simple rotation of selections around a block, and quick mirroring without a mirror plane.

    5. Copy, paste, and cut should all have keyboard shortcuts (the usual ctrl-c, ctrl-v and ctrl-x would be a good idea)


    These ideas would make copying and pasting (and therefore designing/building) far, far easier and simpler, as well as more powerful.

    I didn't just take this idea out of a vacuum and assume it would be good - copy/paste with a base/reference point is something I do all day every day as an engineer drawing/modelling ships with AutoCAD and other engineering software. It's easily one of the more powerful and most often used functions of AutoCAD.
     
    Last edited:

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    Thank you for posting this Jojomo (mind-reader :)). I was brainstorming this for a day and you beat me to the punch... by a day. I like this suggestion. If memory serves, MC WorldEdit used to work similar to this and I found their system of copy & paste quite intuitive. It used a wand-tool to create the bounding box by tapping the two reference-blocks on opposite corners of the bounding box. Your third reference-point is new to me and I am happy to take your word that it is useful.

    For the record: your suggestions all seem good to me. Simple and workable...and predictable are what is called for and I still don't find using the current system intuitive at all. So you covered the copy, my idea is about paste and is pretty much identical. Please forgive if I try to describe the same thing (with a minor variant) using different words.

    Conceptually this is similar to registration-marks in printing (also useful when disassembling something to be re-assembled at a later time). Making a stroke across two pieces that will be aligned using those same marks upon re-assembly. This is two block pair that auto orients like basic Rail- docking.

    Paste-Target block: Acts like the basic-rail. Place this block on a object that you will point to during the paste.

    Paste-Reference block. Acts like the Rail-docker. Add this block before saving the copy template.

    When you click 'paste' the template you have copied will attach to the Paste-Target block ensuring that the reference-block is joined to the target-block face-on and automatically oriented as rail dockers do. This system operates in a familiar way since Rail-docking is pretty much on Day-1 of the learning curve and is a 'given'. It is also entirely predictable and versatile. The target/reference pair can be flush or offset to one side for easy removal post-paste.
     
    Last edited:
    Joined
    Jul 22, 2016
    Messages
    76
    Reaction score
    17
    This sounds great. The current system works, but is a pain, any quality of life improvement for this tool would be great.
     
    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    I'm a little bit surprised this hasn't been more popular (not the reason I posted it though).
    The copy/paste controls are really atrocious, and although I'm fairly new I haven't seen anyone with anything positive to say about them.
    I know it's not a sexy or exciting topic, but it's an important one, and if we don't make noise about it no-one will think it's worth spending any time on.

    Anyway, rant over, I thought I'd elaborate on point #4 from the OP a bit. I didn't want to do this in the OP, as #4 could be ignored in favour of the current rotation technique on paste, and it would make the OP too big. Still, I think my suggestion is better with #4.

    This point just means that as well as location (relative to the base point), rotation (relative to the base point face) is also used.


    The cannon block is selected, and the forward face of the salvage computer is chosen as the copy base point face.


    The cannon block is pasted using the top of the computer as the base point. Note that the rotation of the cannon also stays constant with respect to the base point face.


    The cannon block is pasted using the side of the computer as the base point.
     
    Last edited:
    Joined
    Mar 2, 2014
    Messages
    1,293
    Reaction score
    230
    • Thinking Positive
    • Community Content - Bronze 1
    • Legacy Citizen 3
    3. Both the selection methods above should be followed by another click: click on a block that acts as a reference point/base point for the selection. Then when you paste, you click a block to act as the base point, and the copied selection is pasted in a location with respect to that block.
    I don't like this part, what if I need different reference blocks for different situations?

    If memory serves, MC WorldEdit used to work similar to this and I found their system of copy & paste quite intuitive. It used a wand-tool to create the bounding box by tapping the two reference-blocks on opposite corners of the bounding box.
    Copy-pasting works great in MCEdit, why not just borrowing that mechanic?
     

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    Note that the rotation of the cannon also stays constant with respect to the base point face.
    I think I get it now. (This is tricky to visualize so thanks for the diagrams)

    I believe that Jojomo and I are describing an identical functionality with one main difference. My idea uses two actual blocks to help make visualizing the relationship easier. Jojomo has a system that uses no reference-blocks but adds a step; clicking on faces to assign them a temporary reference status. I think both way of doing this have a similar number of button-clicks to accomplish the same thing. Each approach has some advantages and disadvantages.

    I think that using physical blocks is slightly more intuitive and lends itself well to mass production. You can place multiple Paste-target blocks on a build then make multiple pastes onto those blocks. Or try three different modules (templates) without re-doing the references. When designing a modular-template building system your join-points could standardized and pre-installed on the templates. (Snap together like model train tracks) It would be easier to use this system for Co-builds because both builders can see the the physical-links. If you got interrupted you could pick up from where you left off with little confusion. Cons: requires removal of registration-blocks afterwards and uses Block-IDs.

    The non-block system has more elements to juggle at once but is cleaner because there are no blocks to remove & uses no block IDs.
     
    Last edited:
    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    I don't like this part, what if I need different reference blocks for different situations?
    Just use two different copy base points, or two different paste base points.
    The situation is no worse than not having a base point.


    Copy-pasting works great in MCEdit, why not just borrowing that mechanic?
    It's certainly far better than Starmade's current system, but it required holding down a nudge button and then using direction keys to get it into the correct location.

    Using a base point is far more powerful. In practice it really makes copy without a base point obsolete (I've experienced this obsolescence in my work).
     
    Joined
    Mar 2, 2014
    Messages
    1,293
    Reaction score
    230
    • Thinking Positive
    • Community Content - Bronze 1
    • Legacy Citizen 3
    Just use two different copy base points, or two different paste base points.
    The situation is no worse than not having a base point.
    This isn't possible when pasting from a file.

    It's certainly far better than Starmade's current system, but it required holding down a nudge button and then using direction keys to get it into the correct location.
    It allows for freely moving and resizing the selection area. Selecting two corners isn't really better than the current system, we still would have to build lots of helper blocks for anything that isn't a cuboid.
     
    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    This isn't possible when pasting from a file.
    When you created the file you did it with copy and a base point, that would be recorded in the template file (if the suggestion is implemented).

    So no, you can't change the copy base point when first pasting directly from a file, but yes, you can paste to two different base points (same effect).
    (And of course alternatively, once you've pasted from a file the first time you have the structure in game available to be re-copied to any base point you like for subsequent pastes)

    It allows for freely moving and resizing the selection area. Selecting two corners isn't really better than the current system, we still would have to build lots of helper blocks for anything that isn't a cuboid.
    See point #2 in the OP, I also suggested a 3 point selection for any shape that doesn't conveniently fit a "2 point" cuboid, which is faster than manually manipulating the selection area.

    But there's no reason why manipulation of the selection area couldn't also be implemented. It's just an extra layer of functionality beyond this suggestion.
     
    Last edited:
    Joined
    Mar 2, 2014
    Messages
    1,293
    Reaction score
    230
    • Thinking Positive
    • Community Content - Bronze 1
    • Legacy Citizen 3
    See point #2 in the OP, I also suggested a 3 point selection for any shape that doesn't conveniently fit a "2 point" cuboid, which is faster than manually manipulating the selection area.
    3 points aren't enough, I'd need 6.
     
    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    3 points aren't enough, I'd need 6.
    In practice when using MCEdit I've found that 3 points was what I kept wishing for. The need for more was rare.

    I have nothing against altering the selection by moving the faces (I like it, for example in MCEdit), it's just that it's above and beyond this suggestion (it's a significant increase in dev work on top).
     
    Joined
    Mar 2, 2014
    Messages
    1,293
    Reaction score
    230
    • Thinking Positive
    • Community Content - Bronze 1
    • Legacy Citizen 3
    In practice when using MCEdit I've found that 3 points was what I kept wishing for. The need for more was rare.
    Generally, 6 limiting points are needed: top, bottom, right, left, front, back. In special cases several limits can be defined by one click. Blocks at corners of the desired selection box mark 3 limits at once, blocks at edges still 2. But objects like a sphere, for example, don't have any blocks there, and such shapes also cause the most hassle with the current system.

    I'm not against your suggestion, it would definitely be an improvement, but I think it's too halfhearted.
     
    Joined
    Aug 23, 2016
    Messages
    758
    Reaction score
    129
    Generally, 6 limiting points are needed: top, bottom, right, left, front, back. In special cases several limits can be defined by one click. Blocks at corners of the desired selection box mark 3 limits at once, blocks at edges still 2. But objects like a sphere, for example, don't have any blocks there, and such shapes also cause the most hassle with the current system.
    I know, but like I said, I rarely found myself wanting more than 3. Whether or not that translates from MC to SM I don't know, perhaps shapes commonly used will require more, but my guess is that it won't be often.

    I'm not against your suggestion, it would definitely be an improvement, but I think it's too halfhearted.
    It's a lot less effort for the devs than implementing movable selection faces and, rightly or wrongly, I think an easy suggestion is far more likely to happen.

    There's an upgrade already in the pipeline, but it's a pathetic one.