Exemplo n.º 1
0
 public Networking(IEngineServer engineServer, IGlobalVars globals, IEngineModel engineModel, IEntityDictionary entityDictionary, ITrace trace)
 {
     EngineServer     = engineServer ?? throw new ArgumentNullException(nameof(engineServer));
     Globals          = globals ?? throw new ArgumentNullException(nameof(globals));
     EngineModel      = engineModel ?? throw new ArgumentNullException(nameof(engineModel));
     EntityDictionary = entityDictionary ?? throw new ArgumentNullException(nameof(entityDictionary));
     Trace            = trace ?? throw new ArgumentNullException(nameof(trace));
 }
Exemplo n.º 2
0
        public Boolean Process(IEngineModel engineModel)
        {
            // Do all necessary prerequisite steps

            // Call Start on the model if model is not an external tool
            if (engineModel.Start())
                return true;
            else
                return false;
        }
Exemplo n.º 3
0
 /// <summary>
 /// Attaches a video model to the list controlled by this manager. This will load the model from the content pipeline and link the sprite with the manager for drawing and updating.
 /// </summary>
 /// <param name="sprite"></param>
 public void Attach(IEngineModel model)
 {
     if (!modelList.Contains(model))
     {
         model.Manager = this;
         model.Destroy = false;
         modelList.Add(model);
     }
     else
         Log.Write(this, "Model being added was already in list.", LogLevels.Warning);
 }
Exemplo n.º 4
0
 public Boolean Process(IEngineModel engineModel)
 {
     // Do some work with the source file using iComponent for configuration information
     return true;
 }
Exemplo n.º 5
0
 public void Attach(IEngineModel entity)
 {
     if (!modelList.Contains(entity))
         modelList.Add(entity);
     else
         Log.Write(this, "Unable to attach 3D entity, was already found in the list of existing ones.", LogLevels.Warning);
 }
Exemplo n.º 6
0
        private Boolean processAdapter(XPathNavigator navEngineModel, IEngineModel engineModel, String adapterType, Int32 id, String link)
        {
            ////////////////////////////////////////
            // Adapter                            //
            ////////////////////////////////////////

            String engineModelAssembly = navEngineModel.GetAttribute("assembly", navEngineModel.NamespaceURI);

            // Get the name of the input adapter from config and create an InputAdapter       
            XPathNavigator navAdapter = navEngineModel.SelectSingleNode(String.Format("Adapters/Adapter[@type='{0}']", adapterType));
            //if (navAdapter == null)
            //    return true; // for opt bug.
            String adapterName = navAdapter.GetAttribute("name", navAdapter.NamespaceURI);
            String adapterFullName = navAdapter.GetAttribute("fullname", navAdapter.NamespaceURI);
            IXPathNavigable iComponentAdapter = m_model.GetComponent(adapterName);

            ObjectHandle objAdapter;
            Boolean success = false;
            try
            {
                objAdapter = Activator.CreateInstance(engineModelAssembly, adapterFullName);

                IModelingAdapter adapter = (IModelingAdapter)objAdapter.Unwrap();

                IXPathNavigable iNavigator = this.GetComponentAndChildren(id, link, new ComponentOptions());
                XPathNavigator navigator = iNavigator.CreateNavigator();
                XPathNavigator navigatorAdapter = navigator.SelectSingleNode(String.Format("Components/Component/Component[@BaseType='{0}']", adapterType));
                if (navigatorAdapter != null)
                    adapter.Component = navigatorAdapter;
                else
                    adapter.Component = iComponentAdapter;
       
                adapter.ModelConfiguration = this.m_model.ModelConfiguration;
                success = adapter.Process(engineModel);
            }
            catch (TypeLoadException)
            {
                // What to do?
            }

            return success;
        }
Exemplo n.º 7
0
        public Boolean OutputAdapter(XPathNavigator navComponentSimType, String gmeAssemblyName, String projectAssemblyName, IEngineModel engineModel)
        {
            ////////////////////////////////////////
            // C. OutputAdapter                    //
            ////////////////////////////////////////

            // Get the name of the output adapter from config and create an OutputSimAdapter          
            XPathNavigator navSubcomponentOutputAdapter = navComponentSimType.SelectSingleNode(String.Format("SubComponents/Component[@type='{0}']", "Output"));
            String outputAdapterName = navSubcomponentOutputAdapter.GetAttribute("name", navSubcomponentOutputAdapter.NamespaceURI);
            IXPathNavigable iComponentOutputAdapter = m_model.GetComponent(Configuration, outputAdapterName);
            String outputAdapterTypeName = projectAssemblyName + ".Adapters." + outputAdapterName;
            ObjectHandle objOutputSimAdapter;
            try
            {
                objOutputSimAdapter = Activator.CreateInstance(Assembly.GetEntryAssembly().GetName().Name, outputAdapterTypeName);
            }
            catch (TypeLoadException)
            {
                outputAdapterTypeName = outputAdapterTypeName.Replace(projectAssemblyName, gmeAssemblyName); // This needs to be changed in case project name is in the string twice
                objOutputSimAdapter = Activator.CreateInstance(gmeAssemblyName, outputAdapterTypeName);
            }
            IModelingAdapter outputAdapter = (IModelingAdapter)objOutputSimAdapter.Unwrap();
            outputAdapter.Component = iComponentOutputAdapter;
            Boolean outputSuccess = outputAdapter.Process(engineModel);

            return outputSuccess;
        }
Exemplo n.º 8
0
 /// <summary>
 /// Marks a sprite to be removed on next update. This breaks the link between manager and sprite, it will no longer be drawn or updated.
 /// </summary>
 /// <param name="sprite"></param>
 public void Detatch(IEngineModel model)
 {
     model.Destroy = true;
 }
Exemplo n.º 9
0
 public virtual Boolean Process(IEngineModel engineModel)
 {
     return true;
 }