示例#1
0
        void _mapM2Names_MapM2_Selected(object sender, Entry entry)
        {
            FileADT adt = ModelSceneService.Instance.CurrentADT;

            if (adt == null)
            {
                return;
            }
            string      path = adt.GetM2FileName((uint)entry.Id, false);
            M2SceneNode node = ModelSceneService.Instance.SetMainM2SceneNode(path, false);

            if (node != null)
            {
                ModelEditorService.Instance.ShowEditPart(node);
                ModelEditorService.Instance.SetWireFrame(node);

                node.BuildVisibleGeosets();

                //update property
                ShellService.Instance.PropertyContent.UpdateNormalM2Node(node);
            }

            Player player = Client.Instance.GetPlayer();

            player.SetM2AsTarget(null, 15, (float)(Math.PI / 6.0f));
        }
示例#2
0
        private void ItemContent_ItemSelected(object sender, Item item)
        {
            int         slot = 0;
            M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode;

            if (node != null && node.Type == M2Type.MT_CHARACTER && !node.IsNpc)
            {
                node.TakeItem(item.Id, out slot);

                ModelEditorService.Instance.ShowModelPart(node);
                ModelEditorService.Instance.ShowEditPart(node);
                ModelEditorService.Instance.SetWireFrame(node);

                if (node.SlotHasModel((E_CHAR_SLOTS)slot))
                {
                    if (slot == (int)E_CHAR_SLOTS.CS_HEAD)
                    {
                        node.BuildVisibleGeosets();
                    }
                }
                else
                {
                    node.UpdateCharacter();
                }

                //update property
                ShellService.Instance.PropertyContent.UpdateCharacterNode(node);
                ShellService.Instance.EquipmentsWindow.Update();
            }
        }
        private void ResetClothesSlotExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            E_CHAR_SLOTS?slot = e.Parameter as E_CHAR_SLOTS?;
            M2SceneNode  node = ModelSceneService.Instance.MainM2SceneNode;

            if (slot != null)
            {
                node.ResetSlot(slot.Value);
                if (node.SlotHasModel(slot.Value))
                {
                    if (slot.Value == E_CHAR_SLOTS.CS_HEAD)
                    {
                        node.BuildVisibleGeosets();
                    }
                }
                else
                {
                    node.UpdateCharacter();
                }
            }

            //update property
            ShellService.Instance.PropertyContent.UpdateCharacterNode(node);
            ShellService.Instance.EquipmentsWindow.Update();
        }
        private void LoadItem()
        {
            SlotItem item = _listView.SelectedItem as SlotItem;

            if (item == null)
            {
                return;
            }

            M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode;

            if (node != null && node.Type == M2Type.MT_CHARACTER && !node.IsNpc)
            {
                M2Appearance appearance = node.M2Appearance;
                if (appearance == null)
                {
                    return;
                }
                appearance.TakeItem(item.ItemId);

                ModelEditorService.Instance.ShowModelPart(node);
                ModelEditorService.Instance.ShowEditPart(node);
                ModelEditorService.Instance.SetWireFrame(node);
                ModelEditorService.Instance.SheathM2NodeWeapon(node);

                int slot = node.M2Instance.GetItemSlot(item.ItemId);

                if (node.M2Instance.SlotHasModel((E_CHAR_SLOTS)slot))
                {
                    if (slot == (int)E_CHAR_SLOTS.CS_HEAD)
                    {
                        node.BuildVisibleGeosets();
                    }
                    else if (slot == (int)E_CHAR_SLOTS.CS_BELT)
                    {
                        node.UpdateCharacter();
                    }
                }
                else
                {
                    node.UpdateCharacter();
                }

                //update property
                ShellService.Instance.PropertyContent.UpdateCharacterNode(node);

                if (ShellService.Instance.EquipmentsWindow.IsVisible)
                {
                    ShellService.Instance.EquipmentsWindow.Update();
                }
            }
        }
        private void ShowModelPartExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            E_MODEL_PART?part = e.Parameter as E_MODEL_PART?;

            if (!part.HasValue)
            {
                return;
            }

            M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode;
            bool        show = ModelEditorService.Instance.IsShow(part.Value);

            node.ShowModelPart(part.Value, !show);
            if (part.Value == E_MODEL_PART.EMP_ALL || part.Value == E_MODEL_PART.EMP_CAPE)
            {
                node.BuildVisibleGeosets();
            }
            else if (part.Value == E_MODEL_PART.EMP_HEAD)
            {
                node.BuildVisibleGeosets();
            }

            ModelEditorService.Instance.SetShow(part.Value, !show);
        }
示例#6
0
        private void LoadEffectVisual(int visualId)
        {
            string      path = Engine.Instance.WowDatabase.GetSpellVisualEffectPath(visualId);
            M2SceneNode node = ModelSceneService.Instance.SetMainM2SceneNode(path, true);

            if (node != null)
            {
                ModelEditorService.Instance.ShowEditPart(node);
                ModelEditorService.Instance.SetWireFrame(node);

                node.BuildVisibleGeosets();

                //update property
                ShellService.Instance.PropertyContent.UpdateNormalM2Node(node);
            }
        }
示例#7
0
        private void openFileExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            OpenTypes?type = e.Parameter as OpenTypes?;

            switch (type.Value)
            {
            case OpenTypes.LoginScreen:
            {
                M2SceneNode node = ModelSceneService.Instance.SetMainM2SceneNode(@"interface\Glues\Models\UI_MainMenu_Cataclysm\UI_MainMenu_CataClysm.m2", false);
                node.BuildVisibleGeosets();
                ModelEditorService.Instance.SetWireFrame(node);

                ShellService.Instance.PropertyContent.UpdateNormalM2Node(node);
            }
            break;
            }
        }
        private void LoadWorldM2(string m2filename)
        {
            M2SceneNode node = ModelSceneService.Instance.SetMainM2SceneNode(m2filename, false);

            if (node != null)
            {
                ModelEditorService.Instance.ShowEditPart(node);
                ModelEditorService.Instance.SetWireFrame(node);

                node.BuildVisibleGeosets();

                //update property
                ShellService.Instance.PropertyContent.UpdateNormalM2Node(node);
            }

            Player player = Client.Instance.GetPlayer();

            player.SetM2AsTarget(null, 15, (float)(Math.PI / 6.0f));
        }