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); }
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; }
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); }
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); }