Beispiel #1
0
 public TileDef(ETile id, string name, TileResourceDef tileResourceDef, TileProperties tileProperties)
 {
     Id         = id;
     Name       = name;
     Resource   = tileResourceDef;
     Properties = tileProperties;
 }
Beispiel #2
0
    private void UpdateText()
    {
        if (!GameManager.Instance)
        {
            return;
        }

        // Update all texts for now
        for (int i = 0; i < NumInventorySlots; ++i)
        {
            ItemCount ic = GameManager.Instance.MainPlayer.Inventory.GetSlotInformation(i);

            InventorySlotUI isu = m_inventorySlot[i];

            if (ic.Count == 0)
            {
                isu.m_count.text = "";
            }
            else
            {
                isu.m_count.text = ic.Count.ToString();
            }

            isu.m_title.color = (i == m_selectSlotIndex)
            ? new Color(48 / 255f, 255 / 255f, 42 / 255f)
            : new Color(1f, 1f, 1f);

            // set what is owned by this inventory slot
            if (ic.Item == EItem.None)
            {
                isu.m_icon.sprite = null;
                isu.m_icon.color  = new Color(1f, 1f, 1f, 0f);
            }
            else
            {
                if (isu.m_icon.sprite == null)
                {
                    TileResourceDef tileResourceDef = TileMapping.GetTileResourceDef((ETile)ic.Item);
                    Texture2D       tex             = tileResourceDef != null
                        ? Resources.Load(tileResourceDef.Filename) as Texture2D
                        : null;

                    if (tex)
                    {
                        Sprite sprite = Sprite.Create(tex, tileResourceDef.Rect, Vector2.zero);
                        isu.m_icon.sprite = sprite;
                        isu.m_icon.color  = ItemInstance.GetColorForItem(ic.Item);
                        isu.m_icon.rectTransform.SetWidth(Mathf.Min(tileResourceDef.Rect.width, 32));
                        isu.m_icon.rectTransform.SetHeight(Mathf.Min(tileResourceDef.Rect.height, 32));
                    }
                }
            }
        }
    }
Beispiel #3
0
    private static bool BuildFromJSON(JSONNode rootNode)
    {
        m_tilesDef.Clear();

        JSONNode tilesInfo = rootNode["tilesInfo"];

        if (tilesInfo == null)
        {
            return(false);
        }

        foreach (var tileNode in tilesInfo.Childs)
        {
            JSONNode resNode = tileNode["resource"];
            if (resNode == null)
            {
                continue;
            }

            string filename = resNode["file"];
            int    x        = resNode["x"].AsInt;
            int    y        = resNode["y"].AsInt;
            int    w        = resNode["w"].AsInt;
            int    h        = resNode["h"].AsInt;
            int    count    = resNode["count"].AsInt;

            TileResourceDef trd = new TileResourceDef(filename, new Rect(x, y, w, h), count);

            ETile  id   = (ETile)tileNode["id"].AsInt;
            string name = tileNode["name"];

            TileProperties tileProperties = new TileProperties(tileNode["properties"]);

            TileDef td = new TileDef(id, name, trd, tileProperties);

            if (m_tilesDef.ContainsKey(id))
            {
                Debug.Log(string.Format("Ignoring duplicate id {0}", id));
                continue;
            }

            m_tilesDef.Add(id, td);
        }

        return(true);
    }
Beispiel #4
0
    private ItemInstance SpawnItem(EItem item)
    {
        if (!m_itemInstancePrefab)
        {
            return(null);
        }

        TileResourceDef tileResourceDef = TileMapping.GetTileResourceDef((ETile)item);

        if (tileResourceDef == null)
        {
            return(null);
        }

        GameObject obj = Instantiate(m_itemInstancePrefab);

        if (obj == null)
        {
            return(null);
        }

        Transform    tr = obj.GetComponent <Transform>();
        ItemInstance ii = obj.GetComponent <ItemInstance>();
        MeshRenderer mr = obj.GetComponent <MeshRenderer>();

        if (mr)
        {
            Texture tex = Resources.Load(tileResourceDef.Filename) as Texture;
            if (tex)
            {
                mr.material.mainTexture = tex;
                mr.material.color       = ItemInstance.GetColor32ForItem(item);

                //float scale = (float) (Screen.height / 2.0) / Camera.main.orthographicSize;
                //tr.localScale = new Vector3((float)tex.width / scale, (float)tex.height / scale, tr.localScale.z);
                tr.localScale = new Vector3(1.0f, 1.0f, tr.localScale.z);
            }

            ii.SetType(item);
        }

        return(ii);
    }