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; } } }
void Start() { _tileMan = GameObject.Find("TerrainGenerator").GetComponent <TileManager>(); _celliq = _tileMan.gameObject.GetComponent <CellularLiquid>(); }