Пример #1
0
    private Item[] GetInventoryClone()
    {
        var invItems   = UI_ACItemGrid.LastInstanceOfItemGrid.Items.ToArray();
        var cloneArray = UI_MapTerrain.CloneItemArray(invItems);

        TrimTrailingNoItems(ref cloneArray, Item.NONE);
        return(cloneArray);
    }
    public void HandleTap()
    {
        switch (callback.CurrentSelectMode)
        {
        case TerrainSelectMode.Custom: item.UpdateItem(UI_MapTerrain.ReferenceItem()); SetItem(item, Background.color, callback); break;

        case TerrainSelectMode.Drop: item.UpdateItem(UI_MapTerrain.ReferenceItem(0x20)); SetItem(item, Background.color, callback); break;

        case TerrainSelectMode.Place: item.UpdateItem(UI_MapTerrain.ReferenceItem(0x0)); SetItem(item, Background.color, callback); break;

        case TerrainSelectMode.Delete: item.UpdateItem(new Item(65534)); SetItem(item, Background.color, callback); break;

        case TerrainSelectMode.Load: UI_SearchWindow.LastLoadedSearchWindow.LoadItem(item.SelectedItem); break;
        }

        if (callback.CurrentSelectMode != TerrainSelectMode.Load)
        {
            callback.UpdateLayerImage();
        }
    }
    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;
    }