void updateGrid(int startX, int startY) { // Go up 1 if these are odd nums (ext tiles) if (startX % 2 != 0) { startX--; } if (startY % 2 != 0) { startY--; } var layer = CurrentAffectMode == AffectMode.Layer1 ? fieldManager.Layer1 : fieldManager.Layer2; var tiles = fieldManager.Layer1.Tiles; int index = 0; for (int i = startX; i < startX + 16; i += 2) { var ix = i * MapItemsHeightMax; for (int j = startY; j < startY + 16; j += 2) { var indexTile = ((index * 8) % 64) + Mathf.FloorToInt(index / 8f); var bgColor = graphicGenerator.GetBackgroudPixel(i / 2, j / 2); var block = new FieldItemBlock(layer, i, j); itemTiles[indexTile].SetItem(block, bgColor, this); index++; } } lastCursorX = startX; lastCursorY = startY; updatePositionText(); }
public void SetItem(FieldItemBlock block, Color bg, UI_MapTerrain editorCallback) { if (Recipes == null) { Recipes = GameInfo.Strings.CreateItemDataSource(RecipeList.Recipes, false); Fossils = GameInfo.Strings.CreateItemDataSource(GameLists.Fossils, false); } // Manually destroy any cached images if (Image.texture) { if (Image.texture != ResourceLoader.GetLeafImage()) { Destroy(Image.texture); } } callback = editorCallback; var rootItem = block.SelectedItem; var isNone = rootItem.IsNone; OverlayText.text = string.Empty; item = block; Texture2D tex; Color c = Color.white; if (rootItem.SystemParam == 0x20) { // use menuicon for fish/bugs that are "placed" var kind = ItemInfo.GetItemKind(rootItem); if (kind == ItemKind.Kind_Insect || ItemKindExtensions.IsFish(kind)) { tex = MenuSpriteHelper.CurrentInstance.GetIconTexture(rootItem.ItemId); } else { tex = SpriteBehaviour.ItemToTexture2D(rootItem, out c); } } else { tex = SpriteBehaviour.ItemToTexture2D(rootItem, out c); } Image.texture = tex; Background.color = isNone ? bg : c; Image.gameObject.SetActive(!isNone); if (tex != null) { if (tex.name.StartsWith("leaf")) // all defaults are "leaf" { // default image/no sprites loaded/field item OverlayText.text = GetName(rootItem.DisplayItemId); Image.gameObject.SetActive(false); } } if (rootItem.ItemId >= 60_000 && !isNone) { OverlayText.text = GetName(rootItem.DisplayItemId); } if (rootItem.ItemId == Item.MessageBottle || rootItem.ItemId == Item.DIYRecipe || rootItem.ItemId == Item.MessageBottleEgg) { OverlayText.text = Recipes.Find(x => x.Value == rootItem.Count).Text; } if (rootItem.ItemId == UI_SearchWindow.FOSSILITEM) { OverlayText.text = Fossils.Find(x => x.Value == rootItem.Count).Text; } ViewId = rootItem.ItemId; }