Beispiel #1
0
    public void SetType(TileType type, bool forceUpdate = false)
    {
        if (type == oldType && !forceUpdate)
        {
            return;
        }
        oldType = type;
        Sprite[] sprites = GetSprites(type);
        if (!spriteRenderer)
        {
            spriteRenderer = GetComponent <SpriteRenderer>();
        }
        if (!spriteRenderer)
        {
            Debug.Log("Fatal: Missing tile's SpriteRenderer!");
            return;
        }
        if (sprites.Length < 1)
        {
            Debug.Log("Fatal: Couldn't find Sprites!");
            return;
        }

        // Ist NICHT slime, aber wird slime
        if (type == TileType.SLIME && this.type != TileType.SLIME)
        {
            gameObject.AddComponent <SlimeTile>();
        }
        else if (type != TileType.SLIME && this.type == TileType.SLIME) // Ist slime, und verliert diesen state
        {
            SlimeTile slimeTile = GetComponent <SlimeTile>();
            if (slimeTile)
            {
                Destroy(slimeTile);
            }
        }
        this.type             = type;
        spriteRenderer.sprite = sprites[0];
        for (int i = 1; i < sprites.Length; i++)
        {
            SpriteRenderer r = edges[i - 1].GetComponent <SpriteRenderer>();
            if (r && sprites[i])
            {
                r.sprite = sprites[i];
            }
        }
        RecalculateEdges();
        RecalculateNeighbouringEdges();
        return;
    }
Beispiel #2
0
    public void OnAwake()
    {
        spriteRenderer = GetComponent <SpriteRenderer>();

        if (!player)
        {
            player = FindObjectOfType <Player>();
        }

        if (type == TileType.SLIME)
        {
            SlimeTile slimeTile = GetComponent <SlimeTile>();
            if (!slimeTile)
            {
                gameObject.AddComponent <SlimeTile>();
            }
        }

        SetType(type, true);
    }