コード例 #1
0
        private ModuleData GetModule(MyRuntimeEnvironmentItemInfo info)
        {
            var type = info.Type.StorageModule.Type;

            if (type == null)
            {
                return(null);
            }

            ModuleData moduled;

            if (!m_modules.TryGetValue(type, out moduled))
            {
                moduled = new ModuleData(type, info.Type.StorageModule.Definition);
                if (m_moduleData != null && m_moduleData.ContainsKey(type))
                {
                    moduled.Module.Init(this, m_moduleData[type]);
                }
                else
                {
                    moduled.Module.Init(this, null);
                }

                m_modules[type] = moduled;
            }

            return(moduled);
        }
コード例 #2
0
        public T GetModuleForDefinition <T>(MyRuntimeEnvironmentItemInfo itemEnvDefinition) where T : class, IMyEnvironmentModuleProxy
        {
            var proxyTypes = itemEnvDefinition.Type.ProxyModules;

            if (proxyTypes == null || !proxyTypes.Any(x => typeof(T).IsAssignableFrom(x.Type)))
            {
                return(null);
            }

            Module mod;

            m_modules.TryGetValue(typeof(T), out mod);

            return((T)(mod != null ? mod.Proxy : null));
        }
コード例 #3
0
        public override IMyEnvironmentModule GetModuleForDefinition(MyRuntimeEnvironmentItemInfo def)
        {
            if (def.Type.StorageModule.Type == null)
            {
                return(null);
            }

            ModuleData modData;

            if (m_modules.TryGetValue(def.Type.StorageModule.Type, out modData))
            {
                return(modData.Module);
            }

            return(null);
        }
コード例 #4
0
 public void GetDefinition(ushort index, out MyRuntimeEnvironmentItemInfo def)
 {
     def = EnvironmentDefinition.Items[index];
 }
コード例 #5
0
 public void GetDefinition(ushort index, out MyRuntimeEnvironmentItemInfo def)
 {
     def = EnvironmentDefinition.Items[index];
 }
コード例 #6
0
 public abstract void GetItemDefinition(ushort index, out MyRuntimeEnvironmentItemInfo def);
コード例 #7
0
 public abstract IMyEnvironmentModule GetModuleForDefinition(MyRuntimeEnvironmentItemInfo def);
コード例 #8
0
 public override void GetItemDefinition(ushort key, out MyRuntimeEnvironmentItemInfo it)
 {
     it = m_environment.Items[key];
 }