예제 #1
0
 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;
 }
예제 #2
0
 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();
            }
        }
예제 #4
0
        public static void GetMaxCharFeature(this CharFeature feature, uint raceId, bool female)
        {
            SCharFeature schar = Engine.Instance.WowDatabase.GetMaxCharFeature(raceId, female);

            feature.FromSCharFeature(schar);
        }
예제 #5
0
        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);
        }