public static void FromSCharFeature(this CharFeature feature, SCharFeature schar) { feature.SkinColor = schar.skinColor; feature.FaceType = schar.faceType; feature.FacialHair = schar.facialHair; feature.HairColor = schar.hairColor; feature.HairStyle = schar.hairStyle; }
public static void ToSCharFeature(this CharFeature feature, out SCharFeature schar) { schar.skinColor = feature.SkinColor; schar.faceType = feature.FaceType; schar.facialHair = feature.FacialHair; schar.hairColor = feature.HairColor; schar.hairStyle = feature.HairStyle; }
void CurrentCharFeature_PropertyChanged(object sender, PropertyChangedEventArgs e) { M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode; if (node != null && node.Type == M2Type.MT_CHARACTER && !node.IsNpc) { SCharFeature schar = new SCharFeature(); schar.skinColor = CurrentCharFeature.SkinColor; schar.faceType = CurrentCharFeature.FaceType; schar.hairStyle = CurrentCharFeature.HairStyle; schar.hairColor = CurrentCharFeature.HairColor; schar.facialHair = CurrentCharFeature.FacialHair; node.CharFeature = schar; ModelEditorService.Instance.ShowModelPart(node); ModelEditorService.Instance.ShowEditPart(node); ModelEditorService.Instance.SetWireFrame(node); node.UpdateCharacter(); } }
public static void GetMaxCharFeature(this CharFeature feature, uint raceId, bool female) { SCharFeature schar = Engine.Instance.WowDatabase.GetMaxCharFeature(raceId, female); feature.FromSCharFeature(schar); }
private bool LoadCharacter() { string shortname = Engine.Instance.WowDatabase.GetRaceName(charInfo.Race); WowDatabase _wowDatabase = Engine.Instance.WowDatabase; string path = _wowDatabase.GetCharacterPath(shortname, charInfo.Gender != 0, true); M2SceneNode node = ModelSceneService.Instance.SetMainM2SceneNode(path, false); if (node == null) { path = _wowDatabase.GetCharacterPath(shortname, charInfo.Gender != 0, false); node = ModelSceneService.Instance.SetMainM2SceneNode(path, false); } if (node != null) { SCharFeature charFeature = new SCharFeature(); charFeature.skinColor = charInfo.SkinColor; charFeature.hairColor = charInfo.HairColor; charFeature.hairStyle = charInfo.HairStyle; charFeature.faceType = charInfo.FaceType; charFeature.facialHair = charInfo.FacialHair; node.M2Instance.CharFeature = charFeature; } //items if (node != null) { M2Appearance appearance = node.M2Appearance; if (appearance != null) { appearance.TakeItem(charInfo.Head); appearance.TakeItem(charInfo.Shoulder); appearance.TakeItem(charInfo.Boots); appearance.TakeItem(charInfo.Belt); appearance.TakeItem(charInfo.Shirt); appearance.TakeItem(charInfo.Pants); appearance.TakeItem(charInfo.Chest); appearance.TakeItem(charInfo.Bracers); appearance.TakeItem(charInfo.Gloves); appearance.TakeItem(charInfo.HandRight); appearance.TakeItem(charInfo.HandLeft); appearance.TakeItem(charInfo.Cape); appearance.TakeItem(charInfo.Tabard); } ModelEditorService.Instance.ShowModelPart(node); ModelEditorService.Instance.ShowEditPart(node); ModelEditorService.Instance.SetWireFrame(node); ModelEditorService.Instance.SheathM2NodeWeapon(node); node.UpdateCharacter(); //update property ShellService.Instance.PropertyContent.UpdateCharacterNode(node); if (ShellService.Instance.EquipmentsWindow.IsVisible) { ShellService.Instance.EquipmentsWindow.Update(); } if (ShellService.Instance.EquipmentSelectWindow.IsVisible) { ShellService.Instance.EquipmentSelectWindow.Update(); } } Player player = Client.Instance.GetPlayer(); if (EngineService.Instance.IsGameMode && node != null && (node.Type == M2Type.MT_CHARACTER || node.Type == M2Type.MT_CREATRUE)) { player.SetM2AsTarget(node, 15, (float)(Math.PI / 6.0f)); } else { player.SetM2AsTarget(null, 15, (float)(Math.PI / 6.0f)); } return(node != null); }