Example #1
0
    public void SaveVolume(TerrainGenerator terraingen, CellularLiquid celliq)
    {
        if (spriterenderer == null)
        {
            spriterenderer = GetComponent <SpriteRenderer>();
        }

        CurrentVolume = NewVolume;

        if (CurrentVolume == 0 || CurrentVolume < CellularLiquid.Minmass)
        {
            //ChangeTileType(TileType.Air, SubType.Air);
        }
        else if (CurrentVolume > CellularLiquid.Minmass)
        {
            if (!celliq.LiquidTiles.ContainsKey(this.HashKey))
            {
                celliq.LiquidTiles.Add(this.HashKey, this);
            }

            //var liquidSprite = terraingen.WaterSprite;
            //spriterenderer.sprite = liquidSprite;

            //gameObject.transform.localScale = new Vector3(gameObject.transform.localScale.x, Mathf.Clamp(CurrentVolume / 1, 0, 1), gameObject.transform.localScale.z);
            spriterenderer.color = new Color(1f, 1f, 1f, Mathf.Clamp(CurrentVolume / 1.12f, 0.08f, 1.0f));

            if (CurrentVolume < CellularLiquid.MaxMass)
            {
                tempPos.Set(this.GridPos.x, this.GridPos.y + 1);
                var neighbour = terraingen.TilePosDict[tempPos];
                if (neighbour.CurrentVolume >= CellularLiquid.mindraw)
                {
                    gameObject.transform.localScale = Vector3.one;
                }
                else
                {
                    tempPos.Set(gameObject.transform.localScale.x, Mathf.Clamp(CurrentVolume / 1, 0, 1));
                    gameObject.transform.localScale = tempPos;
                    //gameObject.transform.localScale = new Vector3(gameObject.transform.localScale.x, Mathf.Clamp(CurrentVolume / 1, 0, 1), gameObject.transform.localScale.z);
                }
            }
            else
            {
                transform.localScale = Vector3.one;
            }
        }
    }
Example #2
0
 void Start()
 {
     _tileMan = GameObject.Find("TerrainGenerator").GetComponent <TileManager>();
     _celliq  = _tileMan.gameObject.GetComponent <CellularLiquid>();
 }