2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2019-02-12 17:18:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*  world_environment.cpp                                                */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                       This file is part of:                           */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                           GODOT ENGINE                                */  
						 
					
						
							
								
									
										
										
										
											2017-08-27 14:16:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*                      https://godotengine.org                          */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2021-01-01 20:13:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.                 */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).   */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*                                                                       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Permission is hereby granted, free of charge, to any person obtaining */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* a copy of this software and associated documentation files (the       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* "Software"), to deal in the Software without restriction, including   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* without limitation the rights to use, copy, modify, merge, publish,   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* distribute, sublicense, and/or sell copies of the Software, and to    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* permit persons to whom the Software is furnished to do so, subject to */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* the following conditions:                                             */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* The above copyright notice and this permission notice shall be        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* included in all copies or substantial portions of the Software.       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:50:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-12 17:18:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "world_environment.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-07-01 14:18:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-12 18:05:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "scene/3d/node_3d.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-03-03 22:51:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "scene/main/window.h" 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  WorldEnvironment : : _notification ( int  p_what )  {  
						 
					
						
							
								
									
										
										
										
											2020-03-26 18:49:16 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( p_what  = =  Node3D : : NOTIFICATION_ENTER_WORLD  | |  p_what  = =  Node3D : : NOTIFICATION_ENTER_TREE )  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-22 00:50:48 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( environment . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											add_to_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											_update_current_environment ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-22 00:50:48 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( camera_effects . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											add_to_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											_update_current_camera_effects ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-26 18:49:16 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									}  else  if  ( p_what  = =  Node3D : : NOTIFICATION_EXIT_WORLD  | |  p_what  = =  Node3D : : NOTIFICATION_EXIT_TREE )  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( environment . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											remove_from_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											_update_current_environment ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( camera_effects . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											remove_from_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											_update_current_camera_effects ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  WorldEnvironment : : _update_current_environment ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WorldEnvironment  * first  =  Object : : cast_to < WorldEnvironment > ( get_tree ( ) - > get_first_node_in_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( first )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										get_viewport ( ) - > find_world_3d ( ) - > set_environment ( first - > environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										get_viewport ( ) - > find_world_3d ( ) - > set_environment ( Ref < Environment > ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									get_tree ( ) - > call_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ,  " update_configuration_warnings " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  WorldEnvironment : : _update_current_camera_effects ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WorldEnvironment  * first  =  Object : : cast_to < WorldEnvironment > ( get_tree ( ) - > get_first_node_in_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( first )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										get_viewport ( ) - > find_world_3d ( ) - > set_camera_effects ( first - > camera_effects ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										get_viewport ( ) - > find_world_3d ( ) - > set_camera_effects ( Ref < CameraEffects > ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									get_tree ( ) - > call_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ,  " update_configuration_warnings " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  WorldEnvironment : : set_environment ( const  Ref < Environment >  & p_environment )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( environment  = =  p_environment )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( is_inside_tree ( )  & &  environment . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										remove_from_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-22 00:50:48 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									environment  =  p_environment ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-24 08:58:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( is_inside_tree ( )  & &  environment . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										add_to_group ( " _world_environment_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( is_inside_tree ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										_update_current_environment ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										update_configuration_warnings ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Ref < Environment >  WorldEnvironment : : get_environment ( )  const  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  environment ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  WorldEnvironment : : set_camera_effects ( const  Ref < CameraEffects >  & p_camera_effects )  {  
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( camera_effects  = =  p_camera_effects )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( is_inside_tree ( )  & &  camera_effects . is_valid ( )  & &  get_viewport ( ) - > find_world_3d ( ) - > get_camera_effects ( )  = =  camera_effects )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										remove_from_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									camera_effects  =  p_camera_effects ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( is_inside_tree ( )  & &  camera_effects . is_valid ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 11:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										add_to_group ( " _world_camera_effects_ "  +  itos ( get_viewport ( ) - > find_world_3d ( ) - > get_scenario ( ) . get_id ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( is_inside_tree ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										_update_current_camera_effects ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										update_configuration_warnings ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Ref < CameraEffects >  WorldEnvironment : : get_camera_effects ( )  const  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  camera_effects ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								TypedArray < String >  WorldEnvironment : : get_configuration_warnings ( )  const  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TypedArray < String >  warnings  =  Node : : get_configuration_warnings ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 23:59:27 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-03 20:02:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! environment . is_valid ( )  & &  ! camera_effects . is_valid ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										warnings . push_back ( TTR ( " To have any visible effect, WorldEnvironment requires its  \" Environment \"  property to contain an Environment, its  \" Camera Effects \"  property to contain a CameraEffects resource, or both. " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-16 11:15:15 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! is_inside_tree ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  warnings ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( environment . is_valid ( )  & &  get_viewport ( ) - > find_world_3d ( ) - > get_environment ( )  ! =  environment )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										warnings . push_back ( ( " Only the first Environment has an effect in a scene (or set of instantiated scenes). " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-22 10:54:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( camera_effects . is_valid ( )  & &  get_viewport ( ) - > find_world_3d ( ) - > get_camera_effects ( )  ! =  camera_effects )  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-17 16:03:09 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										warnings . push_back ( TTR ( " Only one WorldEnvironment is allowed per scene (or set of instantiated scenes). " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 05:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  warnings ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-17 18:27:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								void  WorldEnvironment : : _bind_methods ( )  {  
						 
					
						
							
								
									
										
										
										
											2017-08-09 13:19:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ClassDB : : bind_method ( D_METHOD ( " set_environment " ,  " env " ) ,  & WorldEnvironment : : set_environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ClassDB : : bind_method ( D_METHOD ( " get_environment " ) ,  & WorldEnvironment : : get_environment ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ADD_PROPERTY ( PropertyInfo ( Variant : : OBJECT ,  " environment " ,  PROPERTY_HINT_RESOURCE_TYPE ,  " Environment " ) ,  " set_environment " ,  " get_environment " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ClassDB : : bind_method ( D_METHOD ( " set_camera_effects " ,  " env " ) ,  & WorldEnvironment : : set_camera_effects ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ClassDB : : bind_method ( D_METHOD ( " get_camera_effects " ) ,  & WorldEnvironment : : get_camera_effects ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ADD_PROPERTY ( PropertyInfo ( Variant : : OBJECT ,  " camera_effects " ,  PROPERTY_HINT_RESOURCE_TYPE ,  " CameraEffects " ) ,  " set_camera_effects " ,  " get_camera_effects " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								WorldEnvironment : : WorldEnvironment ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}