コード例 #1
0
        public void AddScriptInstance(CryScriptInstance instance, ScriptType scriptType)
        {
#if !(RELEASE && RELEASE_DISABLE_CHECKS)
            if (instance == null)
            {
                throw new ArgumentNullException("instance");
            }
            if (!Enum.IsDefined(typeof(ScriptType), scriptType))
            {
                throw new ArgumentException(string.Format("scriptType: value {0} was not defined in the enum", scriptType));
            }
#endif

            var script = FindScript(scriptType, x => x.Type == instance.GetType());
            if (script == null)
            {
                if (CryScript.TryCreate(instance.GetType(), out script))
                {
                    Scripts.Add(script);
                }
                else
                {
                    return;
                }
            }

            AddScriptInstance(script, instance);
        }
コード例 #2
0
ファイル: ScriptManager.cs プロジェクト: BenChung/CryMono
        void AddScriptInstance(CryScript script, CryScriptInstance instance, int scriptId = -1)
        {
#if !(RELEASE && RELEASE_DISABLE_CHECKS)
            if (script == default(CryScript))
            {
                throw new ArgumentException("script");
            }
#endif

            var index = Scripts.IndexOf(script);

#if !(RELEASE && RELEASE_DISABLE_CHECKS)
            if (index == -1)
            {
                throw new ArgumentException("Provided CryScript object was not present in the script collection", "script");
            }
#endif

            instance.ScriptId = (scriptId != -1) ? scriptId : LastScriptId++;

            if (script.ScriptInstances == null)
            {
                script.ScriptInstances = new List <CryScriptInstance>();
            }

            script.ScriptInstances.Add(instance);

            Scripts[index] = script;
        }
コード例 #3
0
        void AddScriptInstance(CryScript script, CryScriptInstance instance, int scriptId = -1)
        {
#if !(RELEASE && RELEASE_DISABLE_CHECKS)
            if (script == null)
            {
                throw new ArgumentException("script");
            }
#endif

            instance.ScriptId = (scriptId != -1) ? scriptId : LastScriptId++;

            if (script.ScriptInstances == null)
            {
                script.ScriptInstances = new List <CryScriptInstance>();
            }

            script.ScriptInstances.Add(instance);
        }
コード例 #4
0
        public void ReplaceScriptInstance(CryScriptInstance newInstance, int scriptId, ScriptType scriptType)
        {
            RemoveInstance(scriptId, scriptType);

            var script = FindScript(scriptType, x => x.Type == newInstance.GetType());

            if (script == null)
            {
                if (CryScript.TryCreate(newInstance.GetType(), out script))
                {
                    Scripts.Add(script);
                }
                else
                {
                    return;
                }
            }

            AddScriptInstance(script, newInstance, scriptId);
        }