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