/// <summary>
        /// Handle a click event on the terrain.
        /// </summary>
        /// <param name="sender">Not used.</param>
        /// <param name="args">The terrain click arguments.</param>
        private void Clicked(object sender, TerrainClickedArgs args)
        {
            if (args.Button == MouseButton.Left)
            {
                Transition(GameState.EditingTerrain, args);
            }

            if (Application.isEditor)
            {
                GameLogger.Info("Selected ({0}); Point Heights ({1}, {2}, {3}, {4})",
                                args.ClickLocation,
                                _terrain.GetVertexHeight(args.ClickLocation.x, args.ClickLocation.z),
                                _terrain.GetVertexHeight(args.ClickLocation.x + 1, args.ClickLocation.z),
                                _terrain.GetVertexHeight(args.ClickLocation.x, args.ClickLocation.z + 1),
                                _terrain.GetVertexHeight(args.ClickLocation.x + 1, args.ClickLocation.z + 1));

                if (Input.GetKey(KeyCode.LeftControl))
                {
                    int submaterial = _terrain.GetSubmaterial(args.ClickLocation.x, args.ClickLocation.z);
                    _terrain.SetSubmaterial(args.ClickLocation.x, args.ClickLocation.z, (submaterial + 1) % _terrain.SubmaterialCount, Rotation.deg270);
                }
            }
        }