public IStoryValueFactory FindFactory(StoryValueGroupDefine group, string type) { IStoryValueFactory factory = null; lock (m_Lock) { int ix = (int)group; if (ix >= 0 && ix < c_MaxValueGroupNum) { Dictionary<string, IStoryValueFactory> factories = m_GroupedValueFactories[ix]; factories.TryGetValue(type, out factory); } } return factory; }
public void RegisterValueFactory(StoryValueGroupDefine group, string name, IStoryValueFactory factory, bool replace) { lock (m_Lock) { int ix = (int)group; if (ix >= 0 && ix < c_MaxValueGroupNum) { Dictionary<string, IStoryValueFactory> handlers = m_GroupedValueFactories[ix]; if (!handlers.ContainsKey(name)) { handlers.Add(name, factory); } else if (replace) { handlers[name] = factory; } else { //error } } } }
public void RegisterValueFactory(StoryValueGroupDefine group, string name, IStoryValueFactory factory) { RegisterValueFactory(group, name, factory, false); }