You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | extends Camera3D | 
					
						
							|  |  |  | class_name CameraManager | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var target:int | 
					
						
							|  |  |  | var offset:Vector3 = Vector3(0,1,1) * 5 | 
					
						
							|  |  |  | var level_size:Vector2 | 
					
						
							|  |  |  | var camera_limit = Vector2(6.4,3.6) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _ready(): | 
					
						
							|  |  |  | 	Global.camera_mgr = self | 
					
						
							|  |  |  | 	SignalManager.character_create.connect(on_character_create) | 
					
						
							|  |  |  | 	SignalManager.character_pos_changed.connect(on_character_pos_changed) | 
					
						
							|  |  |  | 	SignalManager.character_destroy.connect(on_character_destroy) | 
					
						
							|  |  |  | 	SignalManager.level_size_change.connect(on_level_size_change) | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | func _process(delta): | 
					
						
							|  |  |  | 	pass | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | func on_character_create(id:int,team:Enum.ETeam,pos:Vector3): | 
					
						
							|  |  |  | 	if team == Enum.ETeam.Player: | 
					
						
							|  |  |  | 		target = id | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | func on_character_pos_changed(id:int,pos:Vector3): | 
					
						
							|  |  |  | 	if id == target: | 
					
						
							|  |  |  | 		pos.x = clamp(pos.x,camera_limit.x,level_size.x-camera_limit.x) | 
					
						
							|  |  |  | 		pos.z = clamp(pos.z,camera_limit.y * 0.25,level_size.y-camera_limit.y) | 
					
						
							|  |  |  | 		pos.y = 0 | 
					
						
							|  |  |  | 		position = Util.snap_vector3(pos + offset) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func on_character_destroy(id:int): | 
					
						
							|  |  |  | 	target = 0 | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | func on_level_size_change(size:Vector2): | 
					
						
							|  |  |  | 	level_size = size |