SEToolbox.Models.CubeItemModel.ChangeOwner C# (CSharp) Method

ChangeOwner() public method

public ChangeOwner ( long newOwnerId ) : bool
newOwnerId long
return bool
        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;
        }