static Pullenti.Ner.Measure.UnitReferent _createReferent(Unit u) { Pullenti.Ner.Measure.UnitReferent ur = new Pullenti.Ner.Measure.UnitReferent(); ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_NAME, u.NameCyr, false, 0); ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_NAME, u.NameLat, false, 0); ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_FULLNAME, u.FullnameCyr, false, 0); ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_FULLNAME, u.FullnameLat, false, 0); ur.Tag = u; ur.m_Unit = u; return(ur); }
public Pullenti.Ner.Measure.UnitReferent CreateReferentWithRegister(Pullenti.Ner.Core.AnalyzerData ad) { Pullenti.Ner.Measure.UnitReferent ur = ExtOnto; if (Unit != null) { ur = _createReferent(Unit); } else if (UnknownName != null) { ur = new Pullenti.Ner.Measure.UnitReferent(); ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_NAME, UnknownName, false, 0); ur.IsUnknown = true; } if (Pow != 1) { ur.AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_POW, Pow.ToString(), false, 0); } List <Pullenti.Ner.Measure.UnitReferent> owns = new List <Pullenti.Ner.Measure.UnitReferent>(); owns.Add(ur); if (Unit != null) { for (Unit uu = Unit.BaseUnit; uu != null; uu = uu.BaseUnit) { Pullenti.Ner.Measure.UnitReferent ur0 = _createReferent(uu); owns.Add(ur0); } } for (int i = owns.Count - 1; i >= 0; i--) { if (ad != null) { owns[i] = ad.RegisterReferent(owns[i]) as Pullenti.Ner.Measure.UnitReferent; } if (i > 0) { owns[i - 1].AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_BASEUNIT, owns[i], false, 0); if ((owns[i - 1].Tag as Unit).BaseMultiplier != 0) { owns[i - 1].AddSlot(Pullenti.Ner.Measure.UnitReferent.ATTR_BASEFACTOR, Pullenti.Ner.Core.NumberHelper.DoubleToString((owns[i - 1].Tag as Unit).BaseMultiplier), false, 0); } } } return(owns[0]); }