public override bool CanRemoveItem(CanRemoveItemContext context) { if (context.ByCharacter is null) { // server can remove anything return(true); } var itemsContainer = context.Container; return(ServerCanPlayerInteract(itemsContainer, allowClientNotifications: true)); }
public override bool CanRemoveItem(CanRemoveItemContext context) { if (!(context.Item.ProtoItem is IProtoItemEquipment protoItem)) { return(true); } var itemEquipmentType = protoItem.EquipmentType; //MOD if (itemEquipmentType == EquipmentType.Device && context.Item.ProtoGameObject is ProtoItemBackpack backpack) { return(backpack.SharedCanRemoveItem(context.Item, context.ByCharacter, false)); } if (!(context.Item.ProtoItem is IProtoItemEquipmentImplant protoItemEquipment)) { // impossible - how did it end up here? return(true); } if (itemEquipmentType == EquipmentType.Implant) { // implant item if (context.ByCharacter is null || CreativeModeSystem.SharedIsInCreativeMode(context.ByCharacter)) { // Allowed to add/remove implant item by the game only (via medical station). // But allow to characters in the creative mode to do this directly. return(true); } if (IsClient) { ClientShowNotificationCannotRemoveImplant(protoItemEquipment); } else { this.CallClient(context.ByCharacter, _ => _.ClientRemote_ClientShowNotificationCannotRemoveImplant(protoItemEquipment)); } return(false); } // can remove anything return(true); }
public override bool CanRemoveItem(CanRemoveItemContext context) { if (!(context.Item.ProtoItem is IProtoItemEquipmentImplant protoItemEquipment)) { // impossible - how did it end up here? return(true); } var itemEquipmentType = protoItemEquipment.EquipmentType; if (itemEquipmentType == EquipmentType.Implant) { // implant item if (context.ByCharacter == null || CreativeModeSystem.SharedIsInCreativeMode(context.ByCharacter)) { // Allowed to add/remove implant item by the game only (via medical station). // But allow to characters in the creative mode to do this directly. return(true); } if (IsClient) { NotificationSystem.ClientShowNotification( NotificationUseStationToRemoveImplant_Title, NotificationUseStationToRemoveImplant_Message, NotificationColor.Bad, protoItemEquipment.Icon); } return(false); } // can remove anything return(true); }
public override bool CanRemoveItem(CanRemoveItemContext context) { return(true); }