Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        public void Open(string agentCode)
        {
            AgentInterfacer agentInfo = AgentController.GetAgentInterfacer(agentCode);

            Imager.sprite = agentInfo.Icon;
            Texter.text   = agentCode.ToString();
            gameObject.SetActiveIfNot(true);
        }
Exemplo n.º 4
0
    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));
            }
        }
Exemplo n.º 7
0
        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);
        }