Пример #1
0
        public WebApp(IConfigSource config, string configName, IHttpServer server, ISceneActor sactor)
        {
            m_SceneActor = sactor;

            ReadConfigs(config, configName);

            // Extract embedded resources
            ExtractResources();

            // Create the two parts
            Services       = new Services(config, configName, this);
            WifiScriptFace = new WifiScriptFace(this);

            m_ExtensionMethods = typeof(ExtensionMethods);
            m_Statistics       = new StatisticsDict();

            WebAppInstance         = this;
            WifiScriptFaceInstance = WifiScriptFace;

            if (m_LocalizationCachingPeriod != TimeSpan.Zero && m_FrontendLanguage != null)
            {
                Diva.Wifi.Localization.SetFrontendLanguage(m_FrontendLanguage);
            }

            m_log.DebugFormat("[Wifi]: Starting with extension methods type {0}", m_ExtensionMethods);
        }
Пример #2
0
        // WifiModule calls this
        public WifiMain(IConfigSource config, IHttpServer server, string configName, ISceneActor sactor)
        {
            m_Config     = config;
            m_Server     = server;
            m_SceneActor = sactor;

            m_log.DebugFormat("[Wifi]: WifiMain starting with config {0}", ConfigName);

            Initialize(server);
        }
Пример #3
0
        // WifiModule calls this
        public WifiMain(IConfigSource config, IHttpServer server, string configName, ISceneActor sactor)
        {
            m_Config = config;
            m_Server = server;
            m_SceneActor = sactor;

            m_log.DebugFormat("[Wifi]: WifiMain starting with config {0}", ConfigName);

            Initialize(server);
        }
Пример #4
0
        public void Update()
        {
            if (currentActorIndex >= Actors.Count) {
                FullTurnFinished();
            }
            CurrentActor = Actors[currentActorIndex];

            if (!ActedThisTurn.Contains(CurrentActor.GetId()))
            {
                CurrentActor.PromptActions();
                ActedThisTurn.Add(CurrentActor.GetId());
                CurrentActor.Finished += currentActor_Finished;
            }
        }
Пример #5
0
        public void Update()
        {
            if (currentActorIndex >= Actors.Count)
            {
                FullTurnFinished();
            }
            CurrentActor = Actors[currentActorIndex];

            if (!ActedThisTurn.Contains(CurrentActor.GetId()))
            {
                CurrentActor.PromptActions();
                ActedThisTurn.Add(CurrentActor.GetId());
                CurrentActor.Finished += currentActor_Finished;
            }
        }
Пример #6
0
        public WebApp(IConfigSource config, string configName, IHttpServer server, ISceneActor sactor)
        {
            m_SceneActor = sactor;

            ReadConfigs(config, configName);

            // Create the two parts
            Services       = new Services(config, configName, this);
            WifiScriptFace = new WifiScriptFace(this);

            m_ExtensionMethods = typeof(ExtensionMethods);
            m_Statistics       = new StatisticsDict();

            WebAppInstance         = this;
            WifiScriptFaceInstance = WifiScriptFace;

            m_log.DebugFormat("[Wifi]: Starting with extension methods type {0}", m_ExtensionMethods);
        }
Пример #7
0
        public ClientConnection(IConnection server, Guid clientId, Guid sceneId)
        {
            _server   = server;
            _clientId = clientId;
            _sceneId  = sceneId;

            _spawnedObjects = new Dictionary <Guid, IGameObject>();
            _scene          = _server.RegisterClient(_clientId, _sceneId,
                                                     CreateObserver <IConnectionObserver>()).Result;


            string scenename  = _scene.GetSceneName().Result;
            Guid   scenebunle = _scene.GetBundleId().Result;

            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                LoadScene(scenename, scenebunle);
            });


//            Debug.Log(_scene.GetSceneName().Result + "Name of scnce");
        }
Пример #8
0
 async Task IConnection.AddLoadedScene(Guid sceneId, ISceneActor scene)
 {
     _loadedScenes.Add(sceneId, scene);
 }
Пример #9
0
 public virtual void Resolve(ISceneActor Caster, ISceneActor Target)
 {
 }
Пример #10
0
 public virtual void Resolve(ISceneActor Caster, ISceneActor Target)
 {
 }
Пример #11
0
        Task IConnection.AddLoadedScene(Guid sceneId, ISceneActor scene)
        {
            _loadedScenes.Add(sceneId, scene);

            return(Task.FromResult(true));
        }
        public WifiServerConnector(IConfigSource config, IHttpServer server, string configName, ISceneActor sactor)
            : base(config, server, configName)
        {
            m_log.DebugFormat("[Wifi]: WifiServerConnector starting");
            IConfig serverConfig = config.Configs[m_ConfigName];
            if (serverConfig == null)
                throw new Exception(String.Format("No section {0} in config file", m_ConfigName));

            //
            // Leaving this here for educational purposes
            //
            //if (Environment.StaticVariables.ContainsKey("AppDll"))
            //{
            //    object[] args = new object[] { config, server };
            //    WebApp app = ServerUtils.LoadPlugin<IWebApp>(Environment.StaticVariables["AppDll"].ToString(), args);
            //    Environment.InitializeWebApp(app);
            //}

            // Launch the WebApp
            WebApp app = new WebApp(config, m_ConfigName, server, sactor);

            // Register all the handlers
            server.AddStreamHandler(new WifiDefaultHandler(app));
            server.AddStreamHandler(new WifiHeadHandler(app));
            server.AddStreamHandler(new WifiNotifyHandler(app));
            server.AddStreamHandler(new WifiInstallGetHandler(app));
            server.AddStreamHandler(new WifiInstallPostHandler(app));
            server.AddStreamHandler(new WifiLoginHandler(app));
            server.AddStreamHandler(new WifiLogoutHandler(app));
            server.AddStreamHandler(new WifiForgotPasswordGetHandler(app));
            server.AddStreamHandler(new WifiForgotPasswordPostHandler(app));
            server.AddStreamHandler(new WifiPasswordRecoverGetHandler(app));
            server.AddStreamHandler(new WifiPasswordRecoverPostHandler(app));
            server.AddStreamHandler(new WifiUserAccountGetHandler(app));
            server.AddStreamHandler(new WifiUserAccountPostHandler(app));
            server.AddStreamHandler(new WifiUserManagementGetHandler(app));
            server.AddStreamHandler(new WifiUserManagementPostHandler(app));
            server.AddStreamHandler(new WifiConsoleHandler(app));

            server.AddStreamHandler(new WifiInventoryLoadGetHandler(app));
            server.AddStreamHandler(new WifiInventoryGetHandler(app));
            server.AddStreamHandler(new WifiInventoryPostHandler(app));

            server.AddStreamHandler(new WifiHyperlinkGetHandler(app));
            server.AddStreamHandler(new WifiHyperlinkPostHandler(app));

            server.AddStreamHandler(new WifiTOSGetHandler(app));
            server.AddStreamHandler(new WifiTOSPostHandler(app));

            server.AddStreamHandler(new WifiGroupsManagementGetHandler(app));
            server.AddStreamHandler(new WifiGroupsManagementPostHandler(app));

            //server.AddStreamHandler(new WifiRegionManagementPostHandler(app));
            //server.AddStreamHandler(new WifiRegionManagementGetHandler(app));

            // Add handlers for serving configured paths
            IEnumerable<string> servePaths = serverConfig.GetKeys().Where(option => option.StartsWith(m_ServePathPrefix));
            if (servePaths.Count() > 0)
            {
                foreach (string servePath in servePaths)
                {
                    string paths = serverConfig.GetString(servePath, string.Empty);
                    string[] parts = paths.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts.Count() == 2)
                        server.AddStreamHandler(new WifiGetHandler(parts[0], parts[1]));
                    else
                        m_log.WarnFormat("[Wifi]: Invalid format with configuration option {0}: {1}", servePath, paths);
                }
            }

            // Load addons
            IEnumerable<string> addonVars = serverConfig.GetKeys().Where(option => option.StartsWith(m_AddonPrefix));
            if (addonVars.Count() > 0)
            {
                foreach (string addonVar in addonVars)
                {
                    string addonDll = serverConfig.GetString(addonVar, string.Empty);
                    if (addonDll != string.Empty)
                    {
                        m_log.InfoFormat("[Wifi]: Loading addon {0}", addonDll);
                        object[] args = new object[] { config, m_ConfigName, server, app };
                        IWifiAddon addon = ServerUtils.LoadPlugin<IWifiAddon>(addonDll, args);

                        if (addon == null)
                            m_log.WarnFormat("[Wifi]: Unable to load addon {0}", addonDll);
                    }
                }
            }
        }
Пример #13
0
        public WifiServerConnector(IConfigSource config, IHttpServer server, string configName, ISceneActor sactor) :
            base(config, server, configName)
        {
            m_log.DebugFormat("[Wifi]: WifiServerConnector starting");
            IConfig serverConfig = config.Configs[m_ConfigName];

            if (serverConfig == null)
            {
                throw new Exception(String.Format("No section {0} in config file", m_ConfigName));
            }

            //
            // Leaving this here for educational purposes
            //
            //if (Environment.StaticVariables.ContainsKey("AppDll"))
            //{
            //    object[] args = new object[] { config, server };
            //    WebApp app = ServerUtils.LoadPlugin<IWebApp>(Environment.StaticVariables["AppDll"].ToString(), args);
            //    Environment.InitializeWebApp(app);
            //}

            // Launch the WebApp
            WebApp app = new WebApp(config, m_ConfigName, server, sactor);

            // Register all the handlers
            server.AddStreamHandler(new WifiDefaultHandler(app));
            server.AddStreamHandler(new WifiHeadHandler(app));
            server.AddStreamHandler(new WifiNotifyHandler(app));
            server.AddStreamHandler(new WifiInstallGetHandler(app));
            server.AddStreamHandler(new WifiInstallPostHandler(app));
            server.AddStreamHandler(new WifiLoginHandler(app));
            server.AddStreamHandler(new WifiLogoutHandler(app));
            server.AddStreamHandler(new WifiForgotPasswordGetHandler(app));
            server.AddStreamHandler(new WifiForgotPasswordPostHandler(app));
            server.AddStreamHandler(new WifiPasswordRecoverGetHandler(app));
            server.AddStreamHandler(new WifiPasswordRecoverPostHandler(app));
            server.AddStreamHandler(new WifiUserAccountGetHandler(app));
            server.AddStreamHandler(new WifiUserAccountPostHandler(app));
            server.AddStreamHandler(new WifiUserManagementGetHandler(app));
            server.AddStreamHandler(new WifiUserManagementPostHandler(app));
            server.AddStreamHandler(new WifiConsoleHandler(app));

            server.AddStreamHandler(new WifiInventoryLoadGetHandler(app));
            server.AddStreamHandler(new WifiInventoryGetHandler(app));
            server.AddStreamHandler(new WifiInventoryPostHandler(app));

            server.AddStreamHandler(new WifiHyperlinkGetHandler(app));
            server.AddStreamHandler(new WifiHyperlinkPostHandler(app));

            server.AddStreamHandler(new WifiTOSGetHandler(app));
            server.AddStreamHandler(new WifiTOSPostHandler(app));

            server.AddStreamHandler(new WifiGroupsManagementGetHandler(app));
            server.AddStreamHandler(new WifiGroupsManagementPostHandler(app));

            //server.AddStreamHandler(new WifiRegionManagementPostHandler(app));
            //server.AddStreamHandler(new WifiRegionManagementGetHandler(app));

            // Add handlers for serving configured paths
            IEnumerable <string> servePaths = serverConfig.GetKeys().Where(option => option.StartsWith(m_ServePathPrefix));

            if (servePaths.Count() > 0)
            {
                foreach (string servePath in servePaths)
                {
                    string   paths = serverConfig.GetString(servePath, string.Empty);
                    string[] parts = paths.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts.Count() == 2)
                    {
                        server.AddStreamHandler(new WifiGetHandler(parts[0], parts[1]));
                    }
                    else
                    {
                        m_log.WarnFormat("[Wifi]: Invalid format with configuration option {0}: {1}", servePath, paths);
                    }
                }
            }

            // Load addons
            IEnumerable <string> addonVars = serverConfig.GetKeys().Where(option => option.StartsWith(m_AddonPrefix));

            if (addonVars.Count() > 0)
            {
                foreach (string addonVar in addonVars)
                {
                    string addonDll = serverConfig.GetString(addonVar, string.Empty);
                    if (addonDll != string.Empty)
                    {
                        m_log.InfoFormat("[Wifi]: Loading addon {0}", addonDll);
                        object[]   args  = new object[] { config, m_ConfigName, server, app };
                        IWifiAddon addon = ServerUtils.LoadPlugin <IWifiAddon>(addonDll, args);

                        if (addon == null)
                        {
                            m_log.WarnFormat("[Wifi]: Unable to load addon {0}", addonDll);
                        }
                    }
                }
            }
        }