//precondition: lock is already taken internal static void SwapItems(TEStorageUnit unit1, TEStorageUnit unit2) { IList <Item> items = unit1.items; unit1.items = unit2.items; unit2.items = items; HashSet <ItemData> dict = unit1.hasSpaceInStack; unit1.hasSpaceInStack = unit2.hasSpaceInStack; unit2.hasSpaceInStack = dict; dict = unit1.hasItem; unit1.hasItem = unit2.hasItem; unit2.hasItem = dict; unit1.PostChangeContents(); unit2.PostChangeContents(); }
//precondition: lock is already taken internal static void SwapItems(TEStorageUnit unit1, TEStorageUnit unit2) { IList <Item> items = unit1.items; unit1.items = unit2.items; unit2.items = items; HashSet <ItemData> dict = unit1.hasSpaceInStack; unit1.hasSpaceInStack = unit2.hasSpaceInStack; unit2.hasSpaceInStack = dict; dict = unit1.hasItem; unit1.hasItem = unit2.hasItem; unit2.hasItem = dict; if (Main.netMode == NetmodeID.Server) { unit1.netQueue.Clear(); unit2.netQueue.Clear(); unit1.netQueue.Enqueue(UnitOperation.FullSync.Create()); unit2.netQueue.Enqueue(UnitOperation.FullSync.Create()); } unit1.PostChangeContents(); unit2.PostChangeContents(); }