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.
		
		
		
		
		
			
		
			
	
	
		
			26 lines
		
	
	
		
			724 B
		
	
	
	
		
			GDScript
		
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			724 B
		
	
	
	
		
			GDScript
		
	
| 
											2 years ago
										 | extends Node3D | ||
|  | class_name CharacterManager | ||
|  | 
 | ||
|  | var scene_player = preload("res://scene/character/player.tscn") | ||
|  | var scene_monster = preload("res://scene/character/monster.tscn") | ||
|  | 
 | ||
|  | var character_map = {} | ||
|  | var character_idx : int = 0 | ||
|  | 
 | ||
|  | func create_character(cfg:CharacterCfg): | ||
|  | 	var characterNode:Node | ||
|  | 	match cfg.type: | ||
|  | 		Enum.ECharacterType.Player: | ||
|  | 			characterNode = scene_player.instantiate() | ||
|  | 		Enum.ECharacterType.Monster: | ||
|  | 			characterNode = scene_monster.instantiate() | ||
|  | 	add_child(characterNode) | ||
|  | 	characterNode.name = cfg.name | ||
|  | 	var character:Character = characterNode as Character | ||
|  | 	character_idx += 1 | ||
|  | 	character_map[character_idx]=character | ||
|  | 	character.init(character_idx,cfg) | ||
|  | 
 | ||
|  | func get_character(id:int): | ||
|  | 	return character_map[id] |