Example #1
0
    public List <KeyValuePair <Item, Color> > TextureToFlowers(Texture2D texture, int size, ColorMatchMethod m)
    {
        int       count       = size * size;
        Texture2D internalImg = MapGraphicGenerator.Resize(texture, size, size);

        internalImg = MapGraphicGenerator.FlipTexture(internalImg);
        var colors = internalImg.GetPixels32();
        var toRet  = new List <KeyValuePair <Item, Color> >();

        for (int i = 0; i < count; ++i)
        {
            Color32 currentCol = colors[i];
            if (currentCol.a > 50)
            {
                var c = ItemColorSolver.GetClosest(currentCol, m);
                toRet.Add(new KeyValuePair <Item, Color>(c.Key, c.Value));
            }
            else
            {
                toRet.Add(new KeyValuePair <Item, Color>(new Item(Item.NONE), new Color()));
            }
        }

        return(toRet);
    }
    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;
    }