void generateAll() { Item[] itemLayer1 = Item.GetArray(field.Take(MapGrid.MapTileCount32x32 * Item.SIZE).ToArray()); Item[] itemLayer2 = Item.GetArray(field.Slice(MapGrid.MapTileCount32x32 * Item.SIZE, MapGrid.MapTileCount32x32 * Item.SIZE).ToArray()); // create templates for pushing bytes back layerTemplate1 = CloneItemArray(itemLayer1); layerTemplate2 = CloneItemArray(itemLayer2); fieldManager = new FieldItemManager(itemLayer1, itemLayer2); terrainLayer = new NHSE.Core.TerrainLayer(TerrainTile.GetArray(terrain), acre_plaza.Slice(0, AcreSizeAll)); buildings = new List <Building>(Building.GetArray(structure)); plazaX = BitConverter.ToUInt32(acre_plaza, AcreSizeAll + 4); plazaY = BitConverter.ToUInt32(acre_plaza, AcreSizeAll + 8); if (graphicGenerator != null) { graphicGenerator.ReleaseAllResources(); } graphicGenerator = new MapGraphicGenerator(fieldManager, terrainLayer, (ushort)plazaX, (ushort)plazaY, buildings.ToArray()); MapImage.texture = graphicGenerator.MapBackgroundImage; MapImage.color = Color.white; fetched = true; updateGrid(lastCursorX, lastCursorY); UnfetchedBlocker.gameObject.SetActive(false); AffectingMode.interactable = true; RefetchItemsButton.interactable = true; WriteButton.interactable = true; SaveButton.interactable = true; }