Inheritance: MonoBehaviour
コード例 #1
0
    void Start()
    {
        current   = this;
        waterMesh = GetComponent <MeshFilter>().mesh;

        waveDirection = new Vector2(Mathf.Cos(waveAngle * Mathf.Deg2Rad), Mathf.Sin(waveAngle * Mathf.Deg2Rad));
    }
コード例 #2
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Water") && !pulledByWater)
        {
            pulledByWater = true;
            waterTime     = GameManager.Instance.maxWaterTime;
            WaterController wc = other.GetComponentInParent <WaterController>();
            direction = wc.GetWaterDirection(other.transform.position);
            direction = direction.normalized * GameManager.Instance.waterForce;
        }
        else if (other.CompareTag("Bonus"))
        {
            switch (other.GetComponent <BonusController>().GetBonusType())
            {
            case BonusType.INCREASE_HYDRANT:
                IncreaseHydrantQtd();
                break;

            case BonusType.INCREASE_WATER:
                waterLength++;
                break;

            default:
                break;
            }
            board.SetTile(other.transform.position, TileType.FREE);
            Destroy(other.gameObject);
        }
    }
コード例 #3
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.gameObject.tag == "Player" && tag == "Respawn")
     {
         WaterController.StartWater();
     }
 }
コード例 #4
0
ファイル: FlowInterface.cs プロジェクト: Sauroctone/CRAB
 void Start()
 {
     flowMovement     = GetComponentInParent <FlowMovement> ();
     waterControl     = GetComponent <WaterController> ();
     playerController = GetComponent <PlayerController> ();
     sW = GetComponentInChildren <SeaWeedManager> ();
 }
コード例 #5
0
        /// <summary>
        /// Sets step size for the fuel controller basing on pickup feed rate and engine fuel capacity
        /// </summary>
        /// <param name="type">Pickup</param>

        public override void SetStepSize(PickupObject matchPickup)
        {
            if (MaximumSteamHeatBoilerWaterTankCapacityL != 0)
            {
                WaterController.SetStepSize(matchPickup.Capacity.FeedRateKGpS / MSTSNotchController.StandardBoost / MaximumSteamHeatBoilerWaterTankCapacityL);
            }
        }
コード例 #6
0
    public void OnPauseClick()
    {
        GameObject pauseMenu   = GameObject.Find("PauseMenu");
        GameObject canvas      = GameObject.Find("Canvas");
        GameObject optionsMenu = GameObject.Find("OptionsMenu");

        if (paused)
        {
            PlayerController.speed = savedSpeed;
            WaterController.StartWater();
            GameObject.FindGameObjectWithTag("Player").GetComponent <Rigidbody2D>().simulated = true;
            savedSpeed = 0;
            paused     = false;
            pauseMenu.transform.position   = new Vector3(5000f, pauseMenu.transform.position.y, pauseMenu.transform.position.z);
            optionsMenu.transform.position = new Vector3(5000f, optionsMenu.transform.position.y, optionsMenu.transform.position.z);
        }
        else
        {
            savedSpeed             = PlayerController.speed;
            PlayerController.speed = 0;
            GameObject.FindGameObjectWithTag("Player").GetComponent <Rigidbody2D>().simulated = false;
            WaterController.StopWater();
            paused = true;
            pauseMenu.transform.position = new Vector3(canvas.transform.position.x, pauseMenu.transform.position.y, pauseMenu.transform.position.z);
        }
    }
コード例 #7
0
 // Use this for initialization
 void Start()
 {
     defaultCamera.enabled = true;
     chasingCamera.enabled = false;
     waterControl          = sea.GetComponent <WaterController>();
     UpdateInfoText();
 }
コード例 #8
0
    private void Start()
    {
        // Here, we search through all the box colliders in this body of water until we find the one that's a trigger, then cache a reference to it.
        BoxCollider[] allColliders = GetComponents <BoxCollider>();

        BoxCollider waterTrigger = null;

        for (int i = 0; i < allColliders.Length; i++)
        {
            if (allColliders[i].isTrigger)
            {
                waterTrigger = allColliders[i];
                break;
            }
        }

        // We use this trigger collider to identify the Y position of the water's surface.
        if (waterTrigger != null)
        {
            waterSurfaceYPos = waterTrigger.bounds.max.y;
        }
        else
        {
            Debug.LogWarning("Trigger Collider not found in water source " + gameObject.name);
        }

        waterController = GetComponentInParent <WaterController>();
    }
コード例 #9
0
 public MovementController(string joystickName, int joystickID)
 {
     this.joystickID   = joystickID;
     this.joystickName = joystickName;
     airController     = new AirController(joystickID);
     groundController  = new GroundController(joystickID);
     waterController   = new WaterController(joystickID);
 }
コード例 #10
0
 private void Awake()
 {
     //コンポーネント
     _rb = GetComponent <Rigidbody2D>();
     _tr = GetComponent <TrailRenderer>();
     //外部コンポーネント
     _waterScr = gameObject.transform.parent.GetComponent <WaterController>();
 }
コード例 #11
0
 public WaterControllerContext(string id, BcmPin pin, double litersPerSecond)
 {
     TimeProvider    = new TestTimeProvider();
     GpioPin         = new TestGpioPin(pin);
     GpioPin.PinMode = GpioPinDriveMode.Output;
     GpioPin.Write(WaterController.PIN_OFF);
     WaterController = new WaterController(id, new LoggerFactory(), GpioPin, litersPerSecond, TimeProvider);
 }
コード例 #12
0
    void Start()
    {
        player = this.gameObject;
        GM     = GameObject.Find("GameManager").GetComponent <GameManager>();
        WC     = GameObject.Find("WaterGenerator").GetComponent <WaterController>();

        SoundEffect = GetComponent <AudioSource>(); // 시작하자마자 오디오 찾기.
        BGM         = GetComponent <AudioSource>(); // 시작하자마자 오디오 찾기.
    }
コード例 #13
0
 public void DashAbilityEnded()
 {
     animator.SetBool("isTeleporting", false);
     transform.position = new Vector3(gameObject.transform.position.x, playerCollider.transform.position.y - (boxCollider.size.y / 2), gameObject.transform.position.z);
     GameController.amountOfPlatforms += 1;
     GameController.updateFloorCount();
     playerCollider = null;
     WaterController.StartWater();
 }
コード例 #14
0
    void Start()
    {
        Instance   = this;
        meshFilter = GetComponent <MeshFilter>();

        // create mesh for water
        CreateMesh();

        OnCameraForwardChanged();
    }
コード例 #15
0
    // Start is called before the first frame update
    void Start()
    {
        waterController = GetComponentInParent <WaterController>();

        meshRend = GetComponent <MeshRenderer>();

        //initialAlpha = meshRend.material.color.a;

        previousState = waterController.waterState;
    }
コード例 #16
0
    public void Squirt()
    {
        GameObject water = Instantiate <GameObject>(waterPrefab);

        water.transform.position = transform.position;
        WaterController wc = water.GetComponent <WaterController>();

        wc.maxLength = waterLength * GameManager.Instance.TILE_SIZE;
        GameManager.Instance.board.SetWater(transform.position, waterLength, 1);
    }
コード例 #17
0
 public void Start()
 {
     aSWalk           = GetComponent <AudioSource>();
     initJumpThrust   = jumpThrust;
     privateSpeed     = speed;
     animController   = GetComponent <AnimationController>();
     rb2D             = GetComponent <Rigidbody2D>();
     playerController = GetComponent <PlayerController>();
     playerFeet       = GetComponentInChildren <PlayerFeet>();
     waterController  = GetComponent <WaterController>();
     wj = GetComponentInChildren <WallJump>();
 }
コード例 #18
0
 // Start is called before the first frame update
 void Start()
 {
     playerC = Player.GetComponent <PlayerController>();
     cameraC = MainCamera.GetComponent <CameraController>();
     waterC  = WaterTower.GetComponent <WaterController>();
     GameControllerObject = GameObject.Find("GameControllerObject");
     gameC     = GameControllerObject.GetComponent <GameController>();
     soundC    = GameControllerObject.GetComponent <SoundController>();
     timeC     = GameControllerObject.GetComponent <TimeController>();
     playableD = GetComponent <PlayableDirector>();
     StartCoroutine(waterC.StartEvelation(waterDuration));
 }
コード例 #19
0
 private void Start()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else
     {
         Debug.LogWarning("Duplicate WaterController found, deleting this one.");
         Destroy(this);
     }
 }
コード例 #20
0
    void Start()
    {
        player     = this.gameObject;
        GM         = GameObject.Find("GameManager").GetComponent <GameManager>();
        SUI        = GameObject.Find("SaveUserInfo").GetComponent <SaveUserInfo>();
        playerHP   = SUI.player1_HP;
        WC         = GameObject.Find("WaterGenerator").GetComponent <WaterController>();
        Controller = GameObject.Find("P1_btn");

        SoundEffect = GetComponent <AudioSource>(); // 시작하자마자 오디오 찾기.
        BGM         = GetComponent <AudioSource>(); // 시작하자마자 오디오 찾기.
    }
コード例 #21
0
ファイル: TestInputHandler.cs プロジェクト: Sarnir/SeaStories
    void Start()
    {
        wc = FindObjectOfType <WaterController>();

        speedTarget  = wc.waveSpeed;
        scaleTarget  = wc.waveScale;
        heightTarget = wc.waveHeight;

        speedSlider.onValueChanged.AddListener(value => speedTarget   = value);
        scaleSlider.onValueChanged.AddListener(value => scaleTarget   = value);
        heightSlider.onValueChanged.AddListener(value => heightTarget = value);
    }
コード例 #22
0
        private void SendChartElectric1Data()
        {
            var gasChart   = new GasController().GetGasData().Data;
            var waterChart = new WaterController().GetWaterData().Data;
            var kenh1Chart = new HomeController().GetChartKenh1Data().Data;
            var kenh2Chart = new HomeController().GetChartKenh2Data().Data;
            var kenh3Chart = new HomeController().GetChartKenh3Data().Data;
            var kenh4Chart = new HomeController().GetChartKenh4Data().Data;
            var kenh5Chart = new HomeController().GetChartKenh5Data().Data;
            var kenh6Chart = new HomeController().GetChartKenh6Data().Data;

            GetAllClients().All.UpdateChartElectric1(gasChart, waterChart, kenh1Chart, kenh2Chart, kenh3Chart, kenh4Chart, kenh5Chart, kenh6Chart);
        }
コード例 #23
0
    // Start is called before the first frame update
    void Start()
    {
        waterController = GetComponentInParent <WaterController>();

        // We don't want to be switching our Trigger collider off - so we'll temporarily store ALL of the collides in this body of water,
        // then loop through them, only adding colliders to our final internalColliders array if they aren't triggers.
        BoxCollider[] tempInternalColliders = GetComponents <BoxCollider>();

        // As water bodies only need one trigger collider, we know the final size of this array is one less than the total collider count.
        internalColliders = new BoxCollider[tempInternalColliders.Length - 1];

        int indexShift = 0;

        for (int i = 0; i < tempInternalColliders.Length; i++)
        {
            if (tempInternalColliders[i].isTrigger)
            {
                // This marks the point where we skip over storing the trigger collider
                indexShift = -1;
            }
            else
            {
                internalColliders[i + indexShift] = tempInternalColliders[i];
            }
        }

        colliderInitialSizes = new float[internalColliders.Length];

        if (freezeDirection == FreezeDirection.Left || freezeDirection == FreezeDirection.Right)
        {
            for (int i = 0; i < internalColliders.Length; i++)
            {
                colliderInitialSizes[i] = internalColliders[i].size.x;
            }
        }
        else
        {
            for (int i = 0; i < internalColliders.Length; i++)
            {
                colliderInitialSizes[i] = internalColliders[i].size.y;
            }
        }

        // We check if this is a deep water source - and if so cache that information for tag adjustments later.
        if (gameObject.CompareTag("DeepWater"))
        {
            isDeepWater = true;
        }
    }
コード例 #24
0
    void Start()
    {
        switch01   = GameObject.Find("switch_1");
        switch02   = GameObject.Find("switch_2");
        switch03   = GameObject.Find("switch_3");
        switchDoor = GameObject.Find("switch_door");
        switch04   = GameObject.Find("switch_4");


        water00 = GameObject.Find("water_00");
        water01 = GameObject.Find("water_01");
        water02 = GameObject.Find("water_02");

        boat       = GameObject.Find("boat");
        player     = GameObject.Find("player");
        mainCamera = GameObject.Find("Main Camera");

        offset = transform.position - mainCamera.transform.position;

        s1 = switch01.GetComponent <SwitchController>();
        s2 = switch02.GetComponent <SwitchController>();
        s3 = switch03.GetComponent <SwitchController>();
        s4 = switch04.GetComponent <SwitchController>();

        sd = switchDoor.GetComponent <SwitchController>();

        w0 = water00.GetComponent <WaterController>();
        w1 = water01.GetComponent <WaterController>();
        w2 = water02.GetComponent <WaterController>();

        bc = boat.GetComponent <BoatController>();
        pc = player.GetComponent <PlyrMoveController>();
        cc = mainCamera.GetComponent <CameraController>();

        gameElements = GameObject.Find("GameElements");
        menuposition = GameObject.Find("menuposition");

        //clone.transform.position = cannon.transform.position;

        items = new List <GameObject>();
        items.Add(createLife());
        items.Add(createLife());
        items.Add(createLife());

        //MountMenu();

        goToSavePoint();
    }
コード例 #25
0
    void Start()
    {
        BoatMesh       = GetComponent <MeshFilter>().mesh;
        UnderWaterMesh = UnderwaterMeshOBJ.GetComponent <MeshFilter>().mesh;

        originalVerticesArray  = BoatMesh.vertices;
        originalTrianglesArray = BoatMesh.triangles;

        boatRB = GetComponent <Rigidbody>();
        boatRB.maxAngularVelocity = 0.5f;

        GameObject gameController = GameObject.FindGameObjectWithTag("GameController");

        waveScript  = gameController.GetComponent <WaveController>();
        waterScript = GameObject.FindGameObjectWithTag("Water").GetComponent <WaterController>();
    }
コード例 #26
0
        /// <summary>
        /// This function updates periodically the wagon heating.
        /// </summary>
        protected override void UpdateCarSteamHeat(float elapsedClockSeconds)
        {
            // Update Steam Heating System

            // TO DO - Add test to see if cars are coupled, if Light Engine, disable steam heating.


            if (IsSteamHeatFitted && this.IsLeadLocomotive())  // Only Update steam heating if train and locomotive fitted with steam heating
            {
                // Update water controller for steam boiler heating tank
                WaterController.Update(elapsedClockSeconds);
                if (WaterController.UpdateValue > 0.0)
                {
                    Simulator.Confirmer.UpdateWithPerCent(CabControl.SteamHeatBoilerWater, CabSetting.Increase, WaterController.CurrentValue * 100);
                }


                CurrentSteamHeatPressurePSI = SteamHeatController.CurrentValue * MaxSteamHeatPressurePSI;

                // Calculate steam boiler usage values
                // Don't turn steam heat on until pressure valve has been opened, water and fuel capacity also needs to be present, and steam boiler is not locked out
                if (CurrentSteamHeatPressurePSI > 0.1 && CurrentLocomotiveSteamHeatBoilerWaterCapacityL > 0 && CurrentSteamHeatBoilerFuelCapacityL > 0 && !IsSteamHeatBoilerLockedOut)
                {
                    // Set values for visible exhaust based upon setting of steam controller
                    HeatingSteamBoilerVolumeM3pS = 1.5f * SteamHeatController.CurrentValue;
                    HeatingSteamBoilerDurationS  = 1.0f * SteamHeatController.CurrentValue;
                    Train.CarSteamHeatOn         = true; // turn on steam effects on wagons

                    // Calculate fuel usage for steam heat boiler
                    float FuelUsageLpS = L.FromGUK(pS.FrompH(TrainHeatBoilerFuelUsageGalukpH[pS.TopH(CalculatedCarHeaterSteamUsageLBpS)]));
                    CurrentSteamHeatBoilerFuelCapacityL -= FuelUsageLpS * elapsedClockSeconds; // Reduce Tank capacity as fuel used.
                    float FuelOilConvertLtoKg = 0.85f;
                    MassKG -= FuelUsageLpS * elapsedClockSeconds * FuelOilConvertLtoKg;        // Reduce locomotive weight as Steam heat boiler uses fuel.

                    // Calculate water usage for steam heat boiler
                    float WaterUsageLpS = L.FromGUK(pS.FrompH(TrainHeatBoilerWaterUsageGalukpH[pS.TopH(CalculatedCarHeaterSteamUsageLBpS)]));
                    CurrentLocomotiveSteamHeatBoilerWaterCapacityL -= WaterUsageLpS * elapsedClockSeconds; // Reduce Tank capacity as water used.
                    MassKG -= WaterUsageLpS * elapsedClockSeconds;                                         // Reduce locomotive weight as Steam heat boiler uses water - NB 1 litre of water = 1 kg.
                }
                else
                {
                    Train.CarSteamHeatOn = false; // turn on steam effects on wagons
                }
            }
        }
コード例 #27
0
    void Start()
    {
        Screen.orientation = ScreenOrientation.LandscapeLeft;

        _currentSceneState = SceneState.Unfavorable;

        _dayNightCycleController   = new DayNightCycleController();
        _windController            = new WindController();
        _cloudController           = new CloudController(StartCoroutine);
        _rainController            = new RainController();
        _temperatureController     = new TemperatureController(StartCoroutine, _dayNightCycleController);
        _waterController           = new WaterController();
        _terrainController         = new TerrainController(StartCoroutine);
        _snowController            = new SnowController();
        _treeGrowthStateController = new TreeGrowthStateController(StartCoroutine, _windController.UpdateTreeWindForceOnGrow);

        _sceneRestarted = false;
    }
コード例 #28
0
        /// <summary>
        /// This function updates periodically the wagon heating.
        /// </summary>
        protected override void UpdateCarSteamHeat(double elapsedClockSeconds)
        {
            // Update Steam Heating System

            // TO DO - Add test to see if cars are coupled, if Light Engine, disable steam heating.


            if (IsSteamHeatFitted && this.IsLeadLocomotive())  // Only Update steam heating if train and locomotive fitted with steam heating
            {
                // Update water controller for steam boiler heating tank
                WaterController.Update(elapsedClockSeconds);
                if (WaterController.UpdateValue > 0.0)
                {
                    Simulator.Confirmer.UpdateWithPerCent(CabControl.SteamHeatBoilerWater, CabSetting.Increase, WaterController.CurrentValue * 100);
                }


                CurrentSteamHeatPressurePSI = SteamHeatController.CurrentValue * MaxSteamHeatPressurePSI;

                // Calculate steam boiler usage values
                // Don't turn steam heat on until pressure valve has been opened, water and fuel capacity also needs to be present, and steam boiler is not locked out
                if (CurrentSteamHeatPressurePSI > 0.1 && CurrentLocomotiveSteamHeatBoilerWaterCapacityL > 0 && CurrentSteamHeatBoilerFuelCapacityL > 0 && !IsSteamHeatBoilerLockedOut)
                {
                    // Set values for visible exhaust based upon setting of steam controller
                    HeatingSteamBoilerVolumeM3pS = 1.5f * SteamHeatController.CurrentValue;
                    HeatingSteamBoilerDurationS  = 1.0f * SteamHeatController.CurrentValue;
                    Train.CarSteamHeatOn         = true; // turn on steam effects on wagons

                    // Calculate fuel usage for steam heat boiler
                    float FuelUsageLpS = (float)Size.LiquidVolume.FromGallonUK(Frequency.Periodic.FromHours(TrainHeatBoilerFuelUsageGalukpH[Frequency.Periodic.ToHours(CalculatedCarHeaterSteamUsageLBpS)]));
                    CurrentSteamHeatBoilerFuelCapacityL -= (float)(FuelUsageLpS * elapsedClockSeconds); // Reduce Tank capacity as fuel used.

                    // Calculate water usage for steam heat boiler
                    float WaterUsageLpS = (float)Size.LiquidVolume.FromGallonUK(Frequency.Periodic.FromHours(TrainHeatBoilerWaterUsageGalukpH[Frequency.Periodic.ToHours(CalculatedCarHeaterSteamUsageLBpS)]));
                    CurrentLocomotiveSteamHeatBoilerWaterCapacityL -= (float)(WaterUsageLpS * elapsedClockSeconds); // Reduce Tank capacity as water used.Weight of locomotive is reduced in Wagon.cs
                }
                else
                {
                    Train.CarSteamHeatOn = false; // turn on steam effects on wagons
                }
            }
        }
コード例 #29
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        // GameObject player = GameObject.FindWithTag ("Player");
        // playerController = player.GetComponent<PlayerController> ();
        cloudSpawner = GetComponentInChildren <CloudSpawner> ();
        GameObject water = GameObject.FindWithTag("Water");

        waterController = water.GetComponent <WaterController>();

        obstacleGenerator = GetComponentInChildren <ObstacleGenerator>();
        obstacleGenerator.GenerateObstacles(70f);
    }
コード例 #30
0
ファイル: ChartHub.cs プロジェクト: zzdaicazz/PowerWebsite
        public void InitChartDataElectric1()
        {
            //Show Chart initially when InitChartData called first time
            //LineChart lineChart = new LineChart();
            //PieChart pieChart = new PieChart();
            //lineChart.SetLineChartData();
            //pieChart.SetPieChartData();

            var gasChart   = new GasController().GetGasData().Data;
            var waterChart = new WaterController().GetWaterData().Data;
            var kenh1Chart = new HomeController().GetChartKenh1Data().Data;
            var kenh2Chart = new HomeController().GetChartKenh2Data().Data;
            var kenh3Chart = new HomeController().GetChartKenh3Data().Data;
            var kenh4Chart = new HomeController().GetChartKenh4Data().Data;
            var kenh5Chart = new HomeController().GetChartKenh5Data().Data;
            var kenh6Chart = new HomeController().GetChartKenh6Data().Data;

            Clients.All.UpdateChartElectric1(gasChart, waterChart, kenh1Chart, kenh2Chart, kenh3Chart, kenh4Chart, kenh5Chart, kenh6Chart);
            //Call GetChartData to send Chart data every 5 seconds
            _ChartInstance.GetChartElectric1Data();
        }
コード例 #31
0
    //Quadlist is list of y coordinates for each section
    public void CreateWaterBody(List<Vector2[]> quadList, List<Vector2> surfaceList, int direction, GameObject parentObj)
    {
        if (quadList.Count == 0)
        {
            return;
        }

        //Create water front surface
        List<Vector3> verts = new List<Vector3>();
        List<int> tris = new List<int>();
        List<Vector2> uvs = new List<Vector2>();
        List<Vector3> normals = new List<Vector3>();

        GameObject waterObj = (GameObject)Instantiate(waterSidePrefab);
        waterObj.AddComponent<MeshFilter>();
        waterObj.AddComponent<MeshRenderer>();
        Mesh mesh = waterObj.GetComponent<MeshFilter>().mesh;
        //mesh.Clear();

        waterObj.transform.parent = parentObj.transform;
        waterController = parentObj.AddComponent<WaterController>();

        float xCoord = quadList[0][0].x;  //Initialize as the first x coordinate in the quad list
        int i = 0;

        //Debug.Log("xCoord" + xCoord);

        foreach (Vector2[] quad in quadList)
        {
            //Debug.Log("quad" + quad);

            if (i == 0)
            {
                //Add leftmost verts
                verts.Add(new Vector3(quad[0].x, quad[0].y, frontSurfZ));
                verts.Add(new Vector3(quad[1].x, quad[1].y, frontSurfZ));
                //uvs.Add(new Vector2(i, i)); //Might want to redo UVs to scale to correct height
                //uvs.Add(new Vector2(i, i+1));
                normals.Add(Vector3.back);
                normals.Add(Vector3.back);
            }

            xCoord += 1f * direction;

            verts.Add(new Vector3(quad[2].x, quad[2].y, frontSurfZ));
            verts.Add(new Vector3(quad[3].x, quad[3].y, frontSurfZ));
            //uvs.Add(new Vector2(i + 1, i)); //Might want to redo UVs to scale to correct height
            //uvs.Add(new Vector2(i + 1, i + 1));
            normals.Add(Vector3.back);
            normals.Add(Vector3.back);

            //if (i == 2)
            //{
            //    Debug.Log("VERTS1 " + verts[0]);
            //    Debug.Log("VERTS2 " + verts[1]);
            //    Debug.Log("VERTS3 " + verts[2]);
            //    Debug.Log("VERTS4 " + verts[3]);
            //    Debug.Log("VERTS5 " + verts[4]);
            //    Debug.Log("VERTS6 " + verts[5]);
            //    Debug.Log("VERTS7 " + verts[6]);
            //    Debug.Log("VERTS8 " + verts[7]);
            //    //Debug.Log("VERTS9 " + verts[8]);
            //}

            i++;

        }

        //Debug.Log("quadList length " + quadList.Count);
        //Debug.Log("verts length " + verts.Count);
        bool flipNormals = false;
        for (int j = 0; j < verts.Count - 2; j++)
        {

            if (direction == 1)
            {
                if (!flipNormals)
                {
                    tris.Add(j);
                    tris.Add(j + 1);
                    tris.Add(j + 2);
                }
                else
                {
                    tris.Add(j);
                    tris.Add(j + 2);
                    tris.Add(j + 1);
                }
            }
            else
            {
                if (!flipNormals)
                {
                    tris.Add(j);
                    tris.Add(j + 2);
                    tris.Add(j + 1);
                }
                else
                {
                    tris.Add(j);
                    tris.Add(j + 1);
                    tris.Add(j + 2);
                }
            }

            flipNormals = !flipNormals;

        }

        //Debug.Log("tris length " + tris.Count);
        //Debug.Log("tris last " + tris[tris.Count-1]);
        //Debug.Log("tris list " + tris);

        mesh.vertices = verts.ToArray();
        //ret.uv = uvs.ToArray();
        mesh.triangles = tris.ToArray();
        //ret.normals = normals.ToArray();
        //mesh.RecalculateNormals();
        mesh.RecalculateBounds();

        waterObj.GetComponent<Renderer>().material = waterMaterial;
        //Debug.Log("mesh length: " + mesh.GetTriangles(0).ToString());

        CreateTopSurfaces(surfaceList, parentObj, direction);
    }