Refactoring to asynchronous. (partially completed)

This commit is contained in:
BruceChen 2022-12-20 22:41:14 +08:00
parent 7ee08092d4
commit 096ea0c70c
72 changed files with 6033 additions and 5080 deletions

View file

@ -39,8 +39,8 @@ namespace MinecraftClient.Inventory
if (ValidateSlots(source, dest, destContainer) &&
HasItem(source) &&
((destContainer != null && !HasItem(dest, destContainer)) || (destContainer == null && !HasItem(dest))))
return mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick)
&& mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, dest, WindowActionType.LeftClick);
return mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick).Result
&& mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, dest, WindowActionType.LeftClick).Result;
else return false;
}
@ -57,9 +57,9 @@ namespace MinecraftClient.Inventory
if (ValidateSlots(slot1, slot2, destContainer) &&
HasItem(slot1) &&
(destContainer != null && HasItem(slot2, destContainer) || (destContainer == null && HasItem(slot2))))
return mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick)
&& mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, slot2, WindowActionType.LeftClick)
&& mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick);
return mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick).Result
&& mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, slot2, WindowActionType.LeftClick).Result
&& mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick).Result;
else return false;
}
@ -104,14 +104,14 @@ namespace MinecraftClient.Inventory
break;
}
}
mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick); // grab item
mc.DoWindowAction(c.ID, -999, startDragging);
mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick).Wait(); // grab item
mc.DoWindowAction(c.ID, -999, startDragging).Wait();
foreach (var slot in availableSlots)
{
mc.DoWindowAction(c.ID, slot, addDragging);
mc.DoWindowAction(c.ID, slot, addDragging).Wait();
}
mc.DoWindowAction(c.ID, -999, endDragging);
mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick); // put down item left (if any)
mc.DoWindowAction(c.ID, -999, endDragging).Wait();
mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick).Wait(); // put down item left (if any)
return true;
}
else return false;