public ItemStackMoveOperation(IWorldAccessor world, EnumMouseButton mouseButton, EnumModifierKey modifiers, EnumMergePriority currentPriority, int requestedQuantity = 0) { World = world; MouseButton = mouseButton; Modifiers = modifiers; CurrentPriority = currentPriority; RequestedQuantity = requestedQuantity; }
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { if (CollectibleObject.IsBackPack(sourceSlot.Itemstack) && !CollectibleObject.IsEmptyBackPack(sourceSlot.Itemstack)) { return(false); } return(base.CanTakeFrom(sourceSlot, priority)); }
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { if (!IsDressType(sourceSlot.Itemstack, type)) { return(false); } return(base.CanTakeFrom(sourceSlot, priority)); }
/// <summary> /// Whether or not this slot can take the item from the source slot. /// </summary> /// <param name="sourceSlot"></param> /// <returns></returns> public virtual bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { if (inventory?.PutLocked == true) { return(false); } ItemStack sourceStack = sourceSlot.Itemstack; if (sourceStack == null) { return(false); } bool flagsok = (sourceStack.Collectible.GetStorageFlags(sourceStack) & StorageType) > 0; return(flagsok && (itemstack == null || itemstack.Collectible.GetMergableQuantity(itemstack, sourceStack, priority) > 0) && GetRemainingSlotSpace(sourceStack) > 0); }
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { if (inventory?.PutLocked == true) { return(false); } ItemStack sourceStack = sourceSlot.Itemstack; if (sourceStack == null) { return(false); } WaterTightContainableProps props = BlockLiquidContainerBase.GetInContainerProps(sourceStack); return(props != null && (itemstack == null || itemstack.Collectible.GetMergableQuantity(itemstack, sourceStack, priority) > 0) && RemainingSlotSpace > 0); }
// Unfortunately, only some of ItemSlot's method make use of them. public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority) => false;
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { return(CanBeStackedWithOutputSlotItem(sourceSlot as ItemSlot) && base.CanTakeFrom(sourceSlot, priority)); }
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { return(false); }
public override int GetMergableQuantity(ItemStack sinkStack, ItemStack sourceStack, EnumMergePriority priority) { if (priority == EnumMergePriority.DirectMerge) { if (sinkStack.ItemAttributes?["warmth"].Exists != true || sinkStack.ItemAttributes?["warmth"].AsFloat() == 0) { return(base.GetMergableQuantity(sinkStack, sourceStack, priority)); } float repstr = sourceStack?.ItemAttributes?["clothingRepairStrength"].AsFloat(0) ?? 0; if (repstr > 0) { if (sinkStack.Attributes.GetFloat("condition") < 1) { return(1); } return(0); } } return(base.GetMergableQuantity(sinkStack, sourceStack, priority)); }
public ItemStackMergeOperation(IWorldAccessor world, EnumMouseButton mouseButton, EnumModifierKey modifiers, EnumMergePriority currentPriority, int requestedQuantity) : base(world, mouseButton, modifiers, currentPriority, requestedQuantity) { }
public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) { return(base.CanTakeFrom(sourceSlot, priority) && work(sourceSlot)); }
public override int GetMergableQuantity(ItemStack sinkStack, ItemStack sourceStack, EnumMergePriority priority) { if (priority == EnumMergePriority.DirectMerge && sinkStack.Attributes.GetBool("recordMode")) { sinkStack.Attributes.SetBool("recordMode", false); sinkStack.Attributes.SetString("cacheName", sourceStack.GetName()); sinkStack.Attributes.SetItemstack("workStack", sourceStack); } return(base.GetMergableQuantity(sinkStack, sourceStack, priority)); }