Suggestion: Every entity spawned from a blueprint or saved to a blueprint, sets in its code a single, semi-static pointer referring to that BP (either the one it was spawned from, or the most recent BP it was saved as).
Purpose: Streamlined repairs in shipyards by allowing a damaged ship to be repaired (deleted & re-spawned, actually, retaining permissions & name) from its original/latest BP, shipyard supply permitting.
The pointer would be extremely easy to implement and is calculation free unless the ship is then saved as another BP in which case the pointer is instantly changed to refer to the newer BP then reverts to being a static pointer, just pointing at that BP.
When a shipyard attempts to repair a damaged ship, it then looks for the pointer, assess the total blocks required to build it (including turrets) and subtracts the the remaining un-destroyed blocks currently on the ship from those figures. The remainder (representing the destroyed blocks that need replacement) is then the "cost" of repair (a confirmation dialogue to the player might be desirable at this point). The shipyard could then simply delete the repair cost from its linked storage/shop, delete the entire damaged entity and all docked entities under it, and re-spawn from the BP in question.
It would be super nice if shops could do this with their paid repair feature too - charging repair costs based on the block difference multiplied by the shops' prices for those blocks plus a service fee, or if player shipyards could 'order' additional needed blocks for a hefty markup.
Purpose: Streamlined repairs in shipyards by allowing a damaged ship to be repaired (deleted & re-spawned, actually, retaining permissions & name) from its original/latest BP, shipyard supply permitting.
The pointer would be extremely easy to implement and is calculation free unless the ship is then saved as another BP in which case the pointer is instantly changed to refer to the newer BP then reverts to being a static pointer, just pointing at that BP.
When a shipyard attempts to repair a damaged ship, it then looks for the pointer, assess the total blocks required to build it (including turrets) and subtracts the the remaining un-destroyed blocks currently on the ship from those figures. The remainder (representing the destroyed blocks that need replacement) is then the "cost" of repair (a confirmation dialogue to the player might be desirable at this point). The shipyard could then simply delete the repair cost from its linked storage/shop, delete the entire damaged entity and all docked entities under it, and re-spawn from the BP in question.
It would be super nice if shops could do this with their paid repair feature too - charging repair costs based on the block difference multiplied by the shops' prices for those blocks plus a service fee, or if player shipyards could 'order' additional needed blocks for a hefty markup.