private void InventoryChanged(User obj) { Inventory inventory = GetComponent <PublicStorageComponent>().Storage; User owner = OwnerUser; User creator = Creator; if (owner == null && creator == null) { return; } if (owner == null) { owner = creator; } if (creator == null) { creator = owner; } if (!SkillUtils.UserHasSkill(owner, RequiredSkill, RequiredLevel) && (!SkillUtils.UserHasSkill(creator, RequiredSkill, RequiredLevel))) { if ((inventory.TotalNumberOfItems(typeof(RuinedCarcassItem)) == 0) && (!inventory.IsEmpty)) { InventoryChangeSet changes = new InventoryChangeSet(inventory); changes.Clear(); changes.AddItem <RuinedCarcassItem>(); Result result = changes.TryApply(); } } }
//[Serialized] private string description = "An Empty note. You can copy text from a sign to it or use /writenote to add text."; //[Serialized] private string name = "Empty Note"; //[Serialized] private bool empty = true; public override InteractResult OnActRight(InteractionContext context) { if (context.HasTarget && context.Target is WorldObject) { WorldObject wo = context.Target as WorldObject; if (wo.HasComponent <CustomTextComponent>()) { NoteItem noteItem = (NoteItem)Item.Create <NoteItem>(); noteItem.description = wo.GetComponent <CustomTextComponent>().Text; noteItem.owner = context.Player.User; InventoryChangeSet inventoryChange = new InventoryChangeSet(context.Player.User.Inventory, context.Player.User); inventoryChange.RemoveItem(typeof(EmptyNoteItem)); inventoryChange.AddItem(noteItem); if (inventoryChange.TryApply().Success) { return(InteractResult.Success); } else { return(InteractResult.Failure("Not enough room in inventory".ToLocString()));//ChatManager.ServerMessageToPlayer("Not enough room in inventory",context.Player.User); } } } return(base.OnActRight(context)); }
public static void WriteText(User user, string text) { //string onestringtext = string.Concat(text); NoteItem noteItem = (NoteItem)Item.Create <NoteItem>(); noteItem.description = text; noteItem.owner = user; InventoryChangeSet inventoryChange = new InventoryChangeSet(user.Inventory, user); inventoryChange.AddItem(noteItem); inventoryChange.RemoveItem(typeof(EmptyNoteItem)); if (inventoryChange.TryApply().Success) { return; } else { ChatManager.ServerMessageToPlayer("Not enough room in inventory", user); } }