protected TLeafElement ReadLeaf(ExcelWorksheet sheet, int row, string parentKeyPath) { string leafName = sheet.Cells[row, Configuration.DataNameColumn].Value?.ToString().Trim(); if (string.IsNullOrEmpty(leafName)) { return(null); } TLeafElement leaf = new TLeafElement() { Name = leafName, Description = sheet.Cells[row, Configuration.DataDescriptionColumn].Value?.ToString().Trim(), Guid = GuidHelper.Create(Configuration.Guid_CompatibilityMode ? GuidHelper.LegacyGuids.DnsNamespace : LeafTypeGuid, (UseParentKeyInLeafGuid ? parentKeyPath + "++" : "") + leafName, false).ToString(), BaseType = sheet.Cells[row, Configuration.BaseTypeColumn].Value?.ToString().Trim(), Type = sheet.Cells[row, Configuration.DataTypeColumn].Value?.ToString().Trim().ToLower(), }; ReadLeafProperties(leaf, sheet, row); try { if (leaf.BaseType is null && !string.IsNullOrEmpty(leaf.Type)) { DataTypeManager.SetDataType(leaf.Type, leaf); SetLengthAndDecimals(sheet, row, leaf); } } catch (Exception ex) { Console.WriteLine("Error parsing Data Type for row " + row); HandleException(sheet.Name, ex); } return(leaf); }
public override void OnAdd(IStation station) { //throw new NotImplementedException(); Station st = (Station)station; string xml = CommuniPortConfigSerializer.Serialize(st.CommuniPortConfig); int id = DBI.Instance.InsertStation(st.Name, xml, st.Ordinal, st.Street, st.Remark); st.Guid = GuidHelper.Create((uint)id); }
/// <summary> /// /// </summary> /// <param name="row"></param> public StationSource(DataRow row) { if (row == null) { throw new ArgumentNullException("row"); } this.DataRow = row; this.Guid = GuidHelper.Create((UInt32)(int)row["StationID"]); }
public override IDeviceSource[] OnGetDeviceSources() { var s = new TDeviceSource(); s.Address = 123; s.DevcieTypeName = "Tdevice"; s.Guid = GuidHelper.Create(01); s.StationGuid = GuidHelper.Create(11); return(new IDeviceSource[] { s }); }
public void t() { UInt32 //min = 0, max = UInt32.MaxValue; max = 1; Guid id = GuidHelper.Create(max); //Console.WriteLine(); Assert.AreEqual(GuidHelper.ConvertToUInt32(id), max); }
protected override IStationSource[] OnGetStationSources() { TStationSource s = new TStationSource(); s.Guid = GuidHelper.Create(11); TStationSource s2 = new TStationSource(); s2.Guid = GuidHelper.Create(12); TStationSource[] ss = new TStationSource[] { s, s2 }; return(ss); }
protected override void OnAdd(IDevice device) { Xd202 d = (Xd202)device; string s = string.Format( "insert into tblDevice(DeviceAddress, deviceType, stationID, DeviceName) values({0}, '{1}', {2}, '{3}')", d.Address, d.DeviceType.Type.Name, GuidHelper.ConvertToInt32(d.Station.Guid), d.Name ); DBI.Instance.ExecuteScalar(s); d.Guid = GuidHelper.Create(GetMaxDeviceID(DBI.Instance)); }
private static void ItemDefinitionCopyBuilder(ItemDefinition sourceItemDefinition, string name, string weaponType, List <string> weaponTags) { Guid newGuid = GuidHelper.Create(ModGuidNamespace, name); ItemDefinition builtItemDefinition = ScriptableObject.CreateInstance <ItemDefinition>(); Traverse.Create(builtItemDefinition).Field("name").SetValue(name); WeaponDescription sourceWeaponDescription = (WeaponDescription)Traverse.Create(sourceItemDefinition).Field("weaponDefinition").GetValue(); Traverse.Create(sourceWeaponDescription).Field("weaponType").SetValue(weaponType); Traverse.Create(sourceWeaponDescription).Field("weaponTags").SetValue(weaponTags); builtItemDefinition.name = name; Traverse.Create(builtItemDefinition).Field("inDungeonEditor").SetValue(sourceItemDefinition.InDungeonEditor); Traverse.Create(builtItemDefinition).Field("merchantCategory").SetValue(sourceItemDefinition.MerchantCategory); Traverse.Create(builtItemDefinition).Field("weight").SetValue(sourceItemDefinition.Weight); Traverse.Create(builtItemDefinition).Field("slotTypes").SetValue(sourceItemDefinition.SlotTypes); Traverse.Create(builtItemDefinition).Field("slotsWhereActive").SetValue(sourceItemDefinition.SlotsWhereActive); Traverse.Create(builtItemDefinition).Field("forceEquipSlot").SetValue(sourceItemDefinition.ForceEquipSlot); Traverse.Create(builtItemDefinition).Field("stackSize").SetValue(sourceItemDefinition.StackSize); Traverse.Create(builtItemDefinition).Field("defaultStackCount").SetValue(sourceItemDefinition.DefaultStackCount); Traverse.Create(builtItemDefinition).Field("costs").SetValue(sourceItemDefinition.Costs); Traverse.Create(builtItemDefinition).Field("itemTags").SetValue(sourceItemDefinition.ItemTags); Traverse.Create(builtItemDefinition).Field("activeTags").SetValue(sourceItemDefinition.ActiveTags); Traverse.Create(builtItemDefinition).Field("inactiveTags").SetValue(sourceItemDefinition.InactiveTags); Traverse.Create(builtItemDefinition).Field("requiredAttunementClasses").SetValue(sourceItemDefinition.RequiredAttunementClasses); Traverse.Create(builtItemDefinition).Field("staticProperties").SetValue(sourceItemDefinition.StaticProperties); Traverse.Create(builtItemDefinition).Field("armorDefinition").SetValue(sourceItemDefinition.ArmorDescription); Traverse.Create(builtItemDefinition).Field("isWeapon").SetValue(sourceItemDefinition.IsWeapon); Traverse.Create(builtItemDefinition).Field("ammunitionDefinition").SetValue(sourceItemDefinition.AmmunitionDescription); Traverse.Create(builtItemDefinition).Field("usableDeviceDescription").SetValue(sourceItemDefinition.UsableDeviceDescription); Traverse.Create(builtItemDefinition).Field("toolDefinition").SetValue(sourceItemDefinition.ToolDescription); Traverse.Create(builtItemDefinition).Field("starterPackDefinition").SetValue(sourceItemDefinition.StarterPackDescription); Traverse.Create(builtItemDefinition).Field("containerItemDefinition").SetValue(sourceItemDefinition.ContainerItemDescription); Traverse.Create(builtItemDefinition).Field("lightSourceItemDefinition").SetValue(sourceItemDefinition.LightSourceItemDescription); Traverse.Create(builtItemDefinition).Field("focusItemDefinition").SetValue(sourceItemDefinition.FocusItemDescription); Traverse.Create(builtItemDefinition).Field("wealthPileDefinition").SetValue(sourceItemDefinition.WealthPileDescription); Traverse.Create(builtItemDefinition).Field("spellbookDefinition").SetValue(sourceItemDefinition.SpellbookDescription); Traverse.Create(builtItemDefinition).Field("documentDescription").SetValue(sourceItemDefinition.DocumentDescription); Traverse.Create(builtItemDefinition).Field("foodDescription").SetValue(sourceItemDefinition.FoodDescription); Traverse.Create(builtItemDefinition).Field("factionRelicDescription").SetValue(sourceItemDefinition.FactionRelicDescription); Traverse.Create(builtItemDefinition).Field("personalityFlagOccurences").SetValue(sourceItemDefinition.PersonalityFlagOccurences); Traverse.Create(builtItemDefinition).Field("soundEffectDescriptionOverride").SetValue(sourceItemDefinition.SoundEffectDescription); Traverse.Create(builtItemDefinition).Field("soundEffectOnHitDescriptionOverride").SetValue(sourceItemDefinition.SoundEffectOnHitDescription); Traverse.Create(builtItemDefinition).Field("itemPresentation").SetValue(sourceItemDefinition.ItemPresentation); Traverse.Create(builtItemDefinition).Field("guiPresentation").SetValue(sourceItemDefinition.GuiPresentation); Traverse.Create(builtItemDefinition).Field("guid").SetValue(newGuid.ToString()); DatabaseRepository.GetDatabase <ItemDefinition>().Add(builtItemDefinition); }
protected override void OnAdd(IDevice device) { HDDevice d = (HDDevice)device; string s = @"insert into tblDevice(DeviceAddress, deviceType, stationID, DeviceName) values(@DeviceAddress, @DeviceType, @StationID, @DeviceName)"; ListDictionary list = new ListDictionary(); list.Add("DeviceAddress", d.Address); list.Add("DeviceType", d.DeviceType.Type.Name); list.Add("StationID", GuidHelper.ConvertToInt32(d.Station.Guid)); list.Add("DeviceName", d.Name); DBI.Instance.ExecuteScalar(s, list); d.Guid = GuidHelper.Create(GetMaxDeviceID(DBI.Instance)); }
/// <summary> /// /// </summary> /// <param name="device"></param> protected override void OnAdd(IDevice device) { string s = @"insert into tblDevice(DeviceAddress, DeviceName, deviceType, deviceExtend, DeviceRemark, stationID) values(@DeviceAddress, @DeviceName, @DeviceType, @DeviceExtend, @DeviceRemark, @StationID)"; ListDictionary list = new ListDictionary(); list.Add("DeviceAddress", device.Address); list.Add("DeviceName", device.Name); list.Add("DeviceType", device.DeviceType.Type.Name); list.Add("DeviceExtend", device.GetStringParameters()); list.Add("DeviceRemark", device.Remark); list.Add("StationID", GuidHelper.ConvertToInt32(device.Station.Guid)); _dbi.ExecuteScalar(s, list); object obj = GetMaxDeviceID(_dbi); device.Guid = GuidHelper.Create(Convert.ToInt32(obj)); }
private static void WeaponTypeDefinitionCopyBuilder(WeaponTypeDefinition sourceWeaponTypeDefinition, string name, string weaponCategory) { Guid newGuid = GuidHelper.Create(ModGuidNamespace, name); WeaponTypeDefinition builtWeaponTypeDefinition = ScriptableObject.CreateInstance <WeaponTypeDefinition>(); Traverse.Create(builtWeaponTypeDefinition).Field("weaponCategory").SetValue(weaponCategory); Traverse.Create(builtWeaponTypeDefinition).Field("name").SetValue(name); builtWeaponTypeDefinition.name = name; Traverse.Create(builtWeaponTypeDefinition).Field("isAttachedToBone").SetValue(sourceWeaponTypeDefinition.IsAttachedToBone); Traverse.Create(builtWeaponTypeDefinition).Field("animationTag").SetValue(sourceWeaponTypeDefinition.AnimationTag); Traverse.Create(builtWeaponTypeDefinition).Field("soundEffectDescription").SetValue(sourceWeaponTypeDefinition.SoundEffectDescription); Traverse.Create(builtWeaponTypeDefinition).Field("soundEffectOnHitDescription").SetValue(sourceWeaponTypeDefinition.SoundEffectOnHitDescription); Traverse.Create(builtWeaponTypeDefinition).Field("MeleeAttackerParticle").SetValue(sourceWeaponTypeDefinition.MeleeAttackerParticle); Traverse.Create(builtWeaponTypeDefinition).Field("MeleeImpactParticle").SetValue(sourceWeaponTypeDefinition.MeleeImpactParticle); Traverse.Create(builtWeaponTypeDefinition).Field("ThrowAttackerParticle").SetValue(sourceWeaponTypeDefinition.ThrowAttackerParticle); Traverse.Create(builtWeaponTypeDefinition).Field("ThrowImpactParticle").SetValue(sourceWeaponTypeDefinition.ThrowImpactParticle); Traverse.Create(builtWeaponTypeDefinition).Field("guiPresentation").SetValue(sourceWeaponTypeDefinition.GuiPresentation); Traverse.Create(builtWeaponTypeDefinition).Field("guid").SetValue(newGuid.ToString()); DatabaseRepository.GetDatabase <WeaponTypeDefinition>().Add(builtWeaponTypeDefinition); }
protected override void ProcessFile(ExcelWorksheet sheet, GroupStructure group) { Groups[group.Name] = group; int row = Configuration.DataStartRow; int atts = 0; string subtypeName = sheet.Cells[row, Configuration.DataNameColumn].Value?.ToString().Trim(); while (!string.IsNullOrEmpty(subtypeName)) { Console.WriteLine($"Processing subtype {subtypeName}"); try { GroupAttribute subtype = new GroupAttribute() { Name = subtypeName, Description = sheet.Cells[row, Configuration.DataDescriptionColumn].Value?.ToString().Trim(), Guid = GuidHelper.Create(GuidHelper.ObjClass.Attribute, subtypeName, false).ToString(), Supertype = sheet.Cells[row, Configuration.SupertypeColumn].Value?.ToString().Trim(), }; if (Attributes.TryGetValue(subtypeName, out var other) && subtype.ToString() != other.ToString()) { Console.WriteLine($"{subtype.Name} was already defined with a different supertype {other.ToString()}, taking into account the last one {subtype.ToString()}"); } Attributes[subtypeName] = subtype; atts++; group.Items.Add(subtype); row++; } catch (Exception ex) when(HandleException($"at row:{row}", ex, true)) { } subtypeName = sheet.Cells[row, Configuration.DataNameColumn].Value?.ToString().Trim(); } if (atts == 0) { throw new Exception($"Definition without content, check the {nameof(Configuration.DataStartRow)} and {nameof(Configuration.DataStartColumn)} values on the config file"); } }
/// <summary> /// /// </summary> /// <param name="stationSource"></param> /// <returns></returns> protected override IStation OnCreate(IStationSource stationSource) { StationSource source = stationSource as StationSource; DataRow row = source.DataRow; string stationName = row["StationName"].ToString(); string xml = row["StationCPConfig"].ToString().Trim(); int stationID = (int)row["StationID"]; int ordinal = Convert.ToInt32(row["StationOrdinal"]); string street = row["Street"].ToString().Trim(); Station st = new Station(); st.Name = stationName; st.Ordinal = ordinal; st.Street = street; st.Guid = GuidHelper.Create((uint)stationID); st.Spu = this.Spu; st.StationSource = stationSource; st.StationType = this.Spu.StationType; st.CommuniPortConfig = CommuniPortConfigSerializer.Deserialize(xml); return(st); }
public static string NewImageFileName() { return(GuidHelper.Create() + ".png"); }
protected override void ProcessFile(ExcelWorksheet sheet, TLevelElement obj) { Dictionary <int, TLevelElement> levels = new Dictionary <int, TLevelElement>(); TLevelElement level = obj; levels[0] = level; Levels[level.Name] = level; int row = Configuration.DataStartRow; int atts = 0; while (sheet.Cells[row, Configuration.DataStartColumn].Value != null) { level = ReadLevel(row, sheet, level, levels, out bool isLevel); if (!isLevel) { try { TLeafElement leaf = ReadLeaf(sheet, row, level.KeyPath); if (leaf.BaseType != null && leaf.Type != null && !Domains.ContainsKey(leaf.BaseType)) { DataTypeElement domain = new DataTypeElement { Name = leaf.BaseType, Guid = GuidHelper.Create(GuidHelper.ObjClass.Domain, leaf.BaseType, false).ToString() }; DataTypeManager.SetDataType(leaf.Type, domain); SetLengthAndDecimals(sheet, row, domain); Domains[domain.Name] = domain; } if (leaf != null) { if (Leafs.TryGetValue(leaf.Name, out var other) && leaf.ToString() != other.ToString()) { Console.WriteLine($"{leaf.Name} was already defined with a different data type {other.ToString()}, taking into account the last one {leaf.ToString()}"); } Leafs[leaf.Name] = leaf; atts++; level.Items.Add(leaf); Console.WriteLine($"Processing Attribute {leaf.Name}"); row++; } else { break; } } catch (Exception ex) when(HandleException($"at row:{row}", ex, true)) { } } else { ReadLevelProperties(level, sheet, row); row++; } } if (atts == 0) { throw new Exception($"Definition without content, check the {nameof(Configuration.DataStartRow)} and {nameof(Configuration.DataStartColumn)} values on the config file"); } }
private TLevelElement ReadLevel(int row, ExcelWorksheet sheet, TLevelElement level, Dictionary <int, TLevelElement> levels, out bool isLevel) { int id; string idValue = sheet.Cells[row, Configuration.LevelIdColumn].Value?.ToString(); if (idValue is null) { id = -1; } else { try { id = int.Parse(sheet.Cells[row, Configuration.LevelIdColumn].Value?.ToString()); } catch (Exception ex) { throw new Exception($"Invalid identifier for level at {row}, {Configuration.LevelIdColumn} " + ex.Message, ex); } } isLevel = false; if (sheet.Cells[row, Configuration.LevelCheckColumn].Value?.ToString().ToLower().Trim() == Configuration.LevelIdentifierKeyword.ToLower().Trim()) //is a level { isLevel = true; if (id == 0) { return(levels[0]); } int parentId = 0; // Read Level Id parentId = GetParentLevelId(sheet, row); string levelName = sheet.Cells[row, Configuration.DataNameColumn].Value?.ToString(); if (levelName is null) { throw new Exception($"Could not find the Level name at [{row} , {Configuration.DataNameColumn}], please take a look at the configuration file "); } string levelDesc = sheet.Cells[row, Configuration.DataDescriptionColumn].Value?.ToString(); TLevelElement parent = levels[parentId]; TLevelElement newLevel = CreateLevelElement( name: levelName, guid: GuidHelper.Create(Configuration.Guid_CompatibilityMode ? GuidHelper.LegacyGuids.IsoOidNamespace : LevelTypeGuid, (parent.KeyPath is string parentKeyPath ? parentKeyPath + "::" : "") + levelName, false), description: levelDesc, parentKeyPath: parent.KeyPath ); Debug.Assert(id >= 1); levels[id] = newLevel; parent.Items.Add(newLevel); return(newLevel); } else { if (id == 0) { throw new Exception($"Invalid identifier for item at {row}, {Configuration.LevelIdColumn}. Only the root level element can have id 0 "); } if (sheet.Cells[row, Configuration.LevelParentIdColumn].Value != null) // Explicit level id { int parentLevel = GetParentLevelId(sheet, row); if (parentLevel >= 0 && levels.ContainsKey(parentLevel)) { return(levels[parentLevel]); } } return(level); //continue in the same level, there is no level at this row, so assume the same. } }