public override void init(GameObject obj) { base.init(obj); _scrollView = obj.GetComponent <SScrollViewFake3D>(); _scrollView.init(); _gridList = new T[_scrollView.gridList.Length]; _gridIndexMap = new SMap <UIObject, int>(); for (int i = 0; i < _gridList.Length; ++i) { UIObject uObj = _gridList[i] = createOne(); uObj.init(_scrollView.gridList[i].gameObject); uObj.name = "g" + i; uObj.setParent(this); uObj.setIsGrid(true); _gridIndexMap[uObj] = i; } _scrollView.setTouchDownAction(onTouchDown); _scrollView.setTouchUpAction(onTouchUp); _scrollView.setTouchCancelAction(onTouchCanceled); _scrollView.setDataAction(onSetDataAction); _scrollView.setEndAction(SetScrollCallback); }
public EntryIterator(SMap <K, V> map) { _index = _tSafeIndex = map.getLastFreeIndex(); if (map._size == 0) { _index = _tSafeIndex + 1; } _tSet = map._set; _tValues = map._values; _entry = new Entry <K, V>(); _entry.key = default(K); }
public ForEachIterator(SMap <K, V> map) { _index = _tSafeIndex = map.getLastFreeIndex(); if (map._size == 0) { _index = _tSafeIndex + 1; } _tSet = map._set; _tValues = map._values; _k = default(K); _v = default(V); }
void RebuildMapping() { needRebuild = false; mapping = new SMap <string, Sprite>(); rootNode = new DirtWordNode(); if (data != null) { foreach (var i in data) { mapping[i.Value] = i.Sprite; DirtWordTool.AddDirtWord(i.Value, rootNode); } } }
public SMap <K, V> clone() { if (_size == 0) { return(new SMap <K, V>()); } SMap <K, V> re = new SMap <K, V>(capacity()); Array.Copy(_set, 0, re._set, 0, _set.Length); Array.Copy(_values, 0, re._values, 0, _values.Length); re._defaultKey = _defaultKey; re._defaultValue = _defaultValue; re.copyBase(this); return(re); }
public ObjectPool(Func <T> createFunc, int size) { _maxSize = size; _queue = new SQueue <T>(); _createFunc = createFunc; if (ShineSetting.openCheck) { _checkSet = new SSet <T>(); _callStackDic = new SMap <T, string>(); } if (!ShineSetting.useObjectPool) { _enable = false; } }
public void putAll(SMap <K, V> dic) { if (dic.isEmpty()) { return; } K[] keys = _set; V[] vals = _values; K key; for (int i = (keys.Length) - 1; i >= 0; --i) { if (!Equals(_defaultKey, key = keys[i])) { put(key, vals[i]); } } }
public override void init(GameObject obj) { base.init(obj); _pageView = obj.GetComponent <SPageView>(); _pageView.init(); _gridList = new T[_pageView.gridList.Length]; _gridIndexMap = new SMap <UIObject, int>(); for (int i = 0; i < _gridList.Length; ++i) { _gridList[i] = createOne(); _gridList[i].init(_pageView.gridList[i].gameObject); _gridList[i].setParent(this); _gridList[i].setIsGrid(true); _gridIndexMap[_gridList[i]] = i; } _pageView.setTouchDownAction(onTouchDown); _pageView.setTouchUpAction(onTouchUp); _pageView.setTouchCancelAction(onTouchCanceled); }
private static void doOneGenerate(XML xml, string controlClsPath, string adapterOutPath, int projectType) { clearGenerate(); string[] fileList = FileUtils.getFileList(adapterOutPath, "cs"); SMap <string, string> fileMap = new SMap <string, string>(); foreach (string s in fileList) { string fN = FileUtils.getFileNameWithoutEx(s); if (fN.EndsWith("Adapter")) { fileMap.put(fN.Substring(0, fN.Length - 7), s); } } _isShine = projectType == 0; int aLen = "Assets/".Length; //先处理包路径 foreach (XML xl in xml.getChildrenByName("root")) { SList <string> ignoreList = new SList <string>(); foreach (XML pXml in xl.getChildrenByName("ignorePath")) { ignoreList.add(pXml.getProperty("path")); } StringIntMap hotfixPathDic = new StringIntMap(); foreach (XML pXml in xl.getChildrenByName("hotfixPath")) { hotfixPathDic.put(pXml.getProperty("path"), pXml.getProperty("needFactory").Equals("true") ? 1 : 0); } string rootPath = "Assets/" + xl.getProperty("path"); string[] deepFileList = FileUtils.getDeepFileList(rootPath, "cs"); foreach (string s in deepFileList) { //编辑器类的跳过 if (s.Contains("/Editor/")) { continue; } string tailPath = s.Substring(rootPath.Length + 1); bool failed = false; //排除组 foreach (string ig in ignoreList) { if (tailPath.StartsWith(ig)) { failed = true; break; } } if (failed) { continue; } string fQName = FileUtils.getFileFrontName(s.Substring(aLen)); String fName = FileUtils.getFileName(fQName); _clsNameToPathDic.put(fName, fQName); string[] keys = hotfixPathDic.getKeys(); int[] values = hotfixPathDic.getValues(); string k; int v; for (int i = keys.Length - 1; i >= 0; --i) { if ((k = keys[i]) != null) { v = values[i]; //需要 if (tailPath.StartsWith(k)) { _adapterClsDic.add(fName); if (v == 1) { _factoryClsDic.add(fName); } break; } } } } } string clsStr = FileUtils.readFileForUTF(controlClsPath); string projectMark = getProjectMark(projectType); string factoryClsPath = getFactoryClsPath(projectType); ClsAnalysis.FactoryClassInfo factoryClass = null; string factoryClsName = null; if (!_isShine) { factoryClass = ClsAnalysis.readFactory(factoryClsPath); factoryClsName = FileUtils.getFileFrontName(FileUtils.getFileName(factoryClsPath)); //遍历父 for (int i = projectType - 1; i >= Project_Common; i--) { ClsAnalysis.FactoryClassInfo parentFactoryCls = ClsAnalysis.readFactory(getFactoryClsPath(i)); factoryClass.addParent(parentFactoryCls); } } StringBuilder sb = new StringBuilder(); endClsLine(sb); if (!_isShine) { sb.Append("base.initOtherAdapters(appdomain);"); endClsLine(sb); } TypeInfo factoryTypeInfo = null; if (!_isShine) { //工厂最后执行 factoryTypeInfo = getTypeInfo(factoryClsName); _clsNameToPathDic.remove(factoryClsName); } //ex foreach (XML xl in xml.getChildrenByName("customClass")) { ILClassInfo cls = new ILClassInfo(xl.getProperty("name")); foreach (XML mXml in xl.getChildrenByName("method")) { string visitTypeStr = mXml.getProperty("visitType"); int visitType = visitTypeStr.isEmpty() ? VisitType.Protected : VisitType.getTypeByName(visitTypeStr); string needBaseCallStr = mXml.getProperty("needBaseCall"); bool needBaseCall = needBaseCallStr.isEmpty() ? true : StringUtils.strToBoolean(needBaseCallStr); string argsStr = mXml.getProperty("args"); string[] args = argsStr.isEmpty() ? ObjectUtils.EmptyStringArr : argsStr.Split(','); cls.addMethod(mXml.getProperty("name"), mXml.getProperty("returnType"), visitType, needBaseCall, args); } doOneClass(cls, adapterOutPath, _isShine, sb); fileMap.remove(cls.clsName); } foreach (string k in _clsNameToPathDic.getSortedMapKeys()) { TypeInfo typeInfo = getTypeInfo(k); if (typeInfo == null) { if (!_isShine) { Ctrl.throwError("不该找不到类型", k); } } else { if (typeInfo.hasHotfixMark || !typeInfo.isEmpty()) { //需要工厂,并且不是虚类 if (!_isShine && !typeInfo.iCls.isAbstract && (typeInfo.needFactory || _factoryClsDic.contains(k))) { ClsAnalysis.FMethod method = factoryClass.addMethod(k, projectMark); //补方法 factoryTypeInfo.iCls.addMethod("create" + method.name, method.returnType, VisitType.Public, true); } //需要适配器 if (typeInfo.hasHotfixMark || _adapterClsDic.contains(k)) { doOneClass(typeInfo.iCls, adapterOutPath, _isShine, sb); fileMap.remove(typeInfo.clsName); } } } } if (!_isShine) { doOneClass(factoryTypeInfo.iCls, adapterOutPath, _isShine, sb); fileMap.remove(factoryTypeInfo.clsName); } //去掉最后一个tab sb.Remove(sb.Length - 1, 1); clsStr = replaceMethod(clsStr, "protected " + (_isShine ? "virtual" : "override") + " void initOtherAdapters(AppDomain appdomain)", sb.ToString()); if (!_isShine) { factoryClass.writeToPath(factoryClsPath); } FileUtils.writeFileForUTF(controlClsPath, clsStr); if (!fileMap.isEmpty()) { fileMap.forEach((k, v) => { FileUtils.deleteFile(v); }); } }
public EntrySet(SMap <K, V> map) { _map = map; }