private void findAndReplace(Item toReplace, Item newItem, FindAndReplaceOptions options, int layer) { Func <Item, Item, bool> compareFunc = GetComparer(options); FieldItemLayer fil = layer == 0 ? fieldManager.Layer1 : fieldManager.Layer2; int replaceCount = 0; for (int i = 0; i < MapItemsWidthMax; ++i) { for (int j = 0; j < MapItemsHeightMax; ++j) { Item item = fil.GetTile(i, j); if (compareFunc(toReplace, item)) { item.CopyFrom(newItem); fil.SetExtensionTiles(item, i, j); replaceCount++; } } } if (replaceCount > 0) { UI_Popup.CurrentInstance.CreatePopupMessage(2f, $"Replaced {replaceCount} items.", () => { }); } else { UI_Popup.CurrentInstance.CreatePopupMessage(3f, "Unable to find any items that match desired replacement type.", () => { }, Color.red); } UpdateLayerImage(); updateGrid(lastCursorX, lastCursorY); }
// Remove all tile checking code public void Spawn(Item[] newItems, int itemsPerLine = 10, bool forceFlag32 = true) { int totalXTiles = itemsPerLine * 2; int x = SpawnX; int y = SpawnY; for (int i = 0; i < newItems.Length; ++i) { var currItem = newItems[i]; x = SpawnX + ((i * 2) % totalXTiles); y = SpawnY + ((i / itemsPerLine) * 2); var tile = ItemLayer.GetTile(x, y); if (!currItem.IsNone) { tile.CopyFrom(currItem); if (forceFlag32) { tile.SystemParam = 0x20; } ItemLayer.SetExtensionTiles(tile, x, y); } else { tile.Delete(); ItemLayer.DeleteExtensionTiles(tile, x, y); } } }