private void StartCommandExe() { BackgroundWorker bw = new BackgroundWorker(); bw.WorkerReportsProgress = true; bw.WorkerSupportsCancellation = true; bw.DoWork += new DoWorkEventHandler(bwOnStartSet); bw.ProgressChanged += new ProgressChangedEventHandler(bwProgChange); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwComplite); NewPortEntered = (INIT_PORT + m_PortCounter).ToString(); m_Dicinternal.TryAdd(INIT_PORT + m_PortCounter, bw); m_DicProgres.TryAdd(INIT_PORT + m_PortCounter, 0); ItemPort.Add(new DataItemsPortAmount((INIT_PORT + m_PortCounter++), 0)); OnPropertyChanged("ItemPort"); }
XElement MakeAttachment(ItemPort itemPort) { Item item = exporter.GetItem(itemPort.itemName); string geomExtension = Path.GetExtension(item.geometry); string Type; if (geomExtension == ".skin") { Type = "CA_SKIN"; } else { Type = "CA_BONE"; } string AName = itemPort.portName; string Binding = item.geometry; string RelRotation = "1,0,0,0"; string RelPosition = "0,0,0"; string BoneName = itemPort.portName; string Flags = "0"; string VisFlags = ""; XElement attachment = new XElement("Attachment"); attachment.Add(new XAttribute("Type", Type)); attachment.Add(new XAttribute("AName", AName)); if (Binding != "") { attachment.Add(new XAttribute("Binding", Binding)); } attachment.Add(new XAttribute("Flags", Flags)); if (Type == "CA_BONE") { attachment.Add(new XAttribute("RelRotation", RelRotation)); attachment.Add(new XAttribute("RelPosition", RelPosition)); attachment.Add(new XAttribute("BoneName", BoneName)); } return(attachment); }
public PrefabObject GetGeomAsPrefabObject(List <Item> itemsList) { PrefabObject prefabObj = null; if (propertiesDataCore != null) { prefabObj = new PrefabObject(); prefabObj.Id = GuidUtility.GenID(); prefabObj.Name = Name; prefabObj.Layer = Layer; prefabObj.LayerGUID = LayerGUID; if (Pos != null) { prefabObj.Pos = Pos; } if (Rotate != null) { prefabObj.Rotate = Rotate; } if (Scale != null) { prefabObj.Scale = Scale; } if (Material != null) { prefabObj.Material = Material; } if (Entity.Attribute("Geometry") != null) { prefabObj.Geometry = Entity.Attribute("Geometry").Value; prefabObj.Type = "GeomEntity"; prefabObj.EntityClass = "GeomEntity"; } else if (propertiesDataCore.Geometry != "") { prefabObj.Geometry = propertiesDataCore.Geometry; prefabObj.Type = "GeomEntity"; prefabObj.EntityClass = "GeomEntity"; if (propertiesDataCore.Material != "") { prefabObj.Material = propertiesDataCore.Material; } if (Material != null) { prefabObj.Material = Material; } } else if (propertiesDataCore.Loadout != null) { Item entityItem = null; foreach (Item it in itemsList) { if (it.name == EntityClass) { entityItem = it; } } if (entityItem != null) { if (entityItem.geometry != "") { prefabObj.Geometry = entityItem.geometry; prefabObj.Type = "GeomEntity"; prefabObj.EntityClass = "GeomEntity"; foreach (ItemPort loadoutItemPort in propertiesDataCore.Loadout.itemPorts) { //Item childItem = exporter.GetItem(loadoutItemPort.itemName); Item childItem = null; foreach (Item it in itemsList) { if (it.name == loadoutItemPort.itemName) { childItem = it; } } if (childItem != null) { if (childItem.geometry != "") { PrefabObject childObj = new PrefabObject(); ItemPort targetItemPort = entityItem.GetItemPort(loadoutItemPort.portName); if (targetItemPort != null) { string targetJointName = targetItemPort.helperName; childObj.Geometry = childItem.geometry; childObj.Id = GuidUtility.GenID(); childObj.Name = loadoutItemPort.itemName; childObj.Layer = Layer; childObj.LayerGUID = LayerGUID; childObj.Pos = "0,0,0"; childObj.Rotate = "1,0,0,0"; childObj.Type = "GeomEntity"; childObj.EntityClass = "GeomEntity"; childObj.ParentId = prefabObj.Id; childObj.AttachmentType = "CharacterBone"; if (targetJointName != null) { childObj.AttachmentTarget = targetJointName; } else { childObj.AttachmentTarget = targetItemPort.portName; } prefabObj.attachments.Add(childObj); } } } } } } } else { Item entityItem = null; foreach (Item it in itemsList) { if (it.name == EntityClass) { entityItem = it; } } if (entityItem != null) { if (entityItem.geometry != "") { prefabObj.Geometry = entityItem.geometry; prefabObj.Type = "GeomEntity"; prefabObj.EntityClass = "GeomEntity"; prefabObj.Name = Name; prefabObj.Layer = Layer; prefabObj.LayerGUID = LayerGUID; if (Pos != null) { prefabObj.Pos = Pos; } if (Rotate != null) { prefabObj.Rotate = Rotate; } if (Scale != null) { prefabObj.Scale = Scale; } if (Material != null) { prefabObj.Material = Material; } } } } } else { if (EntityClass == "AnimObject") { prefabObj = new PrefabObject(); prefabObj.Id = GuidUtility.GenID(); prefabObj.Type = "AnimObject"; prefabObj.EntityClass = "AnimObject"; prefabObj.Name = Name; prefabObj.Layer = Layer; prefabObj.LayerGUID = LayerGUID; if (Pos != null) { prefabObj.Pos = Pos; } if (Rotate != null) { prefabObj.Rotate = Rotate; } if (Scale != null) { prefabObj.Scale = Scale; } if (Material != null) { prefabObj.Material = Material; } prefabObj.Properties = Properties; } if (EntityClass == "GeomEntity") { } } //delete %level% geoms if (prefabObj != null) { if (prefabObj.Geometry != null) { if (prefabObj.Geometry.StartsWith("%level%", StringComparison.OrdinalIgnoreCase)) { prefabObj.Geometry = null; } } } return(prefabObj); }