Пример #1
0
        public static GameObject GetWorldObject(string worldObjectCode)
        {
            IWorldObjectData interfacer = ResourceManager.WorldObjectCodeInterfacerMap[worldObjectCode];

            return(interfacer.GetWorldObject());
        }
Пример #2
0
        // public static string[] AvatarCodes;

        #endregion

        #region MonoBehavior
        public static void Setup()
        {
            IAgentDataProvider agentDatabase;

            if (LSDatabaseManager.TryGetDatabase <IAgentDataProvider>(out agentDatabase))
            {
                AgentData  = agentDatabase.AgentData;
                AgentCodes = new string[AgentData.Length];

                AgentController.CachedAgents = new Dictionary <string, FastStack <LSAgent> >(AgentData.Length);

                OrganizerObject = LSUtility.CreateEmpty().transform;
                OrganizerObject.gameObject.name = "OrganizerObject";
                OrganizerObject.gameObject.SetActive(false);

                GameObject.DontDestroyOnLoad(OrganizerObject);
                for (int i = 0; i < AgentData.Length; i++)
                {
                    IAgentData interfacer = AgentData[i];
                    string     agentCode  = interfacer.Name;
                    AgentCodes[i] = agentCode;

                    AgentController.CachedAgents.Add(agentCode, new FastStack <LSAgent>(2));
                    AgentCodeInterfacerMap.Add(agentCode, interfacer);
                    AgentCodeIndexMap.Add(agentCode, (ushort)i);
                }
            }
            else
            {
                Debug.Log("Database does not provide AgentData. Make sure it implements IAgentDataProvider.");
            }

            IWorldObjectDataProvider worldObjectDatabase;

            if (LSDatabaseManager.TryGetDatabase <IWorldObjectDataProvider>(out worldObjectDatabase))
            {
                WorldObjectData  = worldObjectDatabase.WorldObjectData;
                WorldObjectCodes = new string[AgentData.Length];

                for (int i = 0; i < WorldObjectData.Length; i++)
                {
                    IWorldObjectData interfacer      = WorldObjectData[i];
                    string           worldObjectCode = interfacer.Name;
                    WorldObjectCodes[i] = worldObjectCode;

                    WorldObjectCodeInterfacerMap.Add(worldObjectCode, interfacer);
                }
            }
            else
            {
                Debug.Log("Database does not provide WorldObjectData. Make sure it implements IWorldObjectDataProvider.");
            }

            IAvatarDataProvider avatarDatabase;

            if (LSDatabaseManager.TryGetDatabase <IAvatarDataProvider>(out avatarDatabase))
            {
                AvatarData = avatarDatabase.AvatarData;
                Avatars    = new Texture2D[AvatarData.Length];

                for (int i = 0; i < AvatarData.Length; i++)
                {
                    IAvatarData interfacer = AvatarData[i];
                    Texture2D   avatar     = interfacer.GetAvatar();
                    //  AvatarCodes[i] = avatarCode;
                    Avatars[i] = avatar;
                    // AvatarCodeInterfacerMap.Add(avatarCode, interfacer);
                }
            }
            else
            {
                Debug.Log("Database does not provide WorldObjectData. Make sure it implements IWorldObjectDataProvider.");
            }
        }