public bool ChangeOwner(long newOwnerId)
{
// There appear to be quite a few exceptions, blocks that inherit from MyObjectBuilder_TerminalBlock but SE doesn't allow setting of Owner.
if (Cube is MyObjectBuilder_InteriorLight
|| Cube is MyObjectBuilder_ReflectorLight
|| Cube is MyObjectBuilder_LandingGear
|| (Cube is MyObjectBuilder_Cockpit && SubtypeId == "PassengerSeatLarge")
|| Cube is MyObjectBuilder_Thrust)
return false;
if (Cube is MyObjectBuilder_TerminalBlock)
{
this.Owner = newOwnerId;
var identity = SpaceEngineersCore.WorldResource.Checkpoint.Identities.FirstOrDefault(p => p.PlayerId == Owner);
var dead = " (dead)";
if (SpaceEngineersCore.WorldResource.Checkpoint.AllPlayersData != null)
{
var player = SpaceEngineersCore.WorldResource.Checkpoint.AllPlayersData.Dictionary.FirstOrDefault(kvp => kvp.Value.IdentityId == Owner);
dead = player.Value == null ? " (dead)" : "";
}
OwnerName = identity == null ? null : identity.DisplayName + dead;
return true;
}
return false;
}