Exemplo n.º 1
0
        //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();
        }
Exemplo n.º 2
0
        //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();
        }