public LSAgent CreateAgent( string agentCode, Vector2d?position = null, //nullable position Vector2d?rotation = null //Nullable rotation for default parametrz ) { Vector2d pos = position != null ? position.Value : new Vector2d(0, 0); Vector2d rot = rotation != null ? rotation.Value : new Vector2d(0, 1); if (!IsValidAgentCode(agentCode)) { throw new System.ArgumentException(string.Format("Agent code '{0}' not found.", agentCode)); } FastStack <LSAgent> cache = CachedAgents [agentCode]; LSAgent curAgent = null; if (cache.IsNotNull() && cache.Count > 0) { curAgent = cache.Pop(); } else { AgentInterfacer interfacer = AgentController.CodeInterfacerMap [agentCode]; curAgent = GameObject.Instantiate(AgentController.CodeInterfacerMap [agentCode].Prefab).GetComponent <LSAgent>(); curAgent.Setup(interfacer); } InitializeAgent(curAgent, pos, rot); return(curAgent); }
public LSAgent CreateAgent(AgentCode agentCode, Vector2d position = default(Vector2d)) { Vector2d vec = new Vector2d(0, 1); if (Enum.IsDefined(typeof(AgentCode), agentCode) == false) { throw new System.MissingMemberException("Specified AgentCode does not exist."); } FastStack <LSAgent> cache = CachedAgents[agentCode]; LSAgent curAgent = null; if (cache.IsNotNull() && cache.Count > 0) { curAgent = cache.Pop(); } else { AgentInterfacer interfacer = AgentController.CodeInterfacerMap[agentCode]; curAgent = GameObject.Instantiate(AgentController.CodeInterfacerMap[agentCode].Prefab).GetComponent <LSAgent>(); curAgent.Setup(interfacer); } InitializeAgent(curAgent, position); return(curAgent); }
public void Open(string agentCode) { AgentInterfacer agentInfo = AgentController.GetAgentInterfacer(agentCode); Imager.sprite = agentInfo.Icon; Texter.text = agentCode.ToString(); gameObject.SetActiveIfNot(true); }
static int SortByType(DataItem item, AgentType agentType) { AgentInterfacer agentInterfacer = item as AgentInterfacer; if (agentInterfacer == null) { return(-1); } return(agentInterfacer.SortDegreeFromAgentType(agentType)); }
public static void Setup() { AgentInterfacer[] agentInters = LSDatabaseManager.CurrentDatabase.AgentData; AgentCodes = (AgentCode[])Enum.GetValues(typeof(AgentCode)); CachedAgents = new Dictionary <AgentCode, FastStack <LSAgent> >(agentInters.Length); for (int i = 0; i < agentInters.Length; i++) { AgentInterfacer interfacer = agentInters[i]; AgentCode agentCode = interfacer.GetAgentCode(); CodeInterfacerMap.Add(agentCode, interfacer); CachedAgents.Add(agentCode, new FastStack <LSAgent>(2)); } }
public static void Setup() { AgentInterfacer[] agentInters = LSDatabaseManager.CurrentDatabase.AgentData; AgentCodes = new string[agentInters.Length]; CachedAgents = new Dictionary <string, FastStack <LSAgent> >(agentInters.Length); for (int i = 0; i < agentInters.Length; i++) { AgentInterfacer interfacer = agentInters[i]; string agentCode = interfacer.Name; AgentCodes[i] = agentCode; AgentCodeIndexMap.Add(agentCode, i); CodeInterfacerMap.Add(agentCode, interfacer); CachedAgents.Add(agentCode, new FastStack <LSAgent>(2)); } }
public void Setup(AgentInterfacer interfacer) { LoadComponents(); GameObject.DontDestroyOnLoad(gameObject); setupAbilitys.FastClear(); MyAgentCode = interfacer.Name; Interfacer = interfacer; SpawnVersion = 1; CheckCasting = true; Influencer = new LSInfluencer(); if (_visualCenter == null) { _visualCenter = CachedTransform; } if (Animator.IsNotNull()) { Animator.Setup(); } abilityManager.Setup(this); Ringer = RingController.Create(); if (Ringer.IsNotNull()) { Ringer.Setup(this); } Influencer.Setup(this); Body.Setup(this); SelectionRadiusSquared = _selectionRadius * _selectionRadius; if (StatsBarer != null) { StatsBarer.Setup(this); } this.RegisterLockstep(); }
public LSAgent CreateAgent(string agentCode, Vector2d position = default(Vector2d)) { Vector2d vec = new Vector2d(0, 1); FastStack <LSAgent> cache = CachedAgents[agentCode]; LSAgent curAgent = null; if (cache.IsNotNull() && cache.Count > 0) { curAgent = cache.Pop(); } else { AgentInterfacer interfacer = AgentController.CodeInterfacerMap[agentCode]; curAgent = GameObject.Instantiate(AgentController.CodeInterfacerMap[agentCode].Prefab).GetComponent <LSAgent>(); curAgent.Setup(interfacer); } InitializeAgent(curAgent, position); return(curAgent); }