Example #1
0
        public override int GetHash()
        {
            var szSkin = "";

            if (SkinId < 10)
            {
                szSkin = "0" + SkinId;
            }
            else
            {
                szSkin = SkinId.ToString();
            }

            var hash = 0;
            var gobj = "[Character]";

            for (var i = 0; i < gobj.Length; i++)
            {
                hash = char.ToLower(gobj[i]) + 0x1003F * hash;
            }

            for (var i = 0; i < Model.Length; i++)
            {
                hash = char.ToLower(Model[i]) + 0x1003F * hash;
            }

            for (var i = 0; i < szSkin.Length; i++)
            {
                hash = char.ToLower(szSkin[i]) + 0x1003F * hash;
            }

            return(hash);
        }
Example #2
0
    //更新衣服gizmo
    public void UpdateClothGizmo()
    {
        for (int i = 0; i < 3; i++)
        {
            SkinId id = new SkinId
            {
                SkinID  = gm.TakeonSkin.SkinID,
                ClothID = i
            };

            state = gm.CheckClothState(id);
            switch (state)
            {
            case ItemState.Buy:
                ClothStateGizmo[i].overrideSprite = gizmoBuy;
                break;

            case ItemState.UnBuy:
                ClothStateGizmo[i].overrideSprite = gizmoUnbuy;
                break;

            case ItemState.Equiped:
                ClothStateGizmo[i].overrideSprite = gizmoEquip;
                break;

            default:
                break;
            }
        }
    }
Example #3
0
 /// <summary>
 /// 使用したスキンのIDをセーブする
 /// </summary>
 /// <param name="skinId"></param>
 public void SaveUsedSkin(SkinId skinId)
 {
     if (!saveData.usedSkinData.skinIdList.Contains(skinId))
     {
         saveData.usedSkinData.skinIdList.Add(skinId);
     }
 }
Example #4
0
    //更新购买按钮图标(衣服)
    public void UpdateClothBuyBtn(int i)
    {
        SkinId id = new SkinId
        {
            SkinID  = gm.TakeonSkin.SkinID,
            ClothID = i
        };

        state = gm.CheckClothState(id);
        switch (state)
        {
        case ItemState.Buy:
            imgClothBuybtn.transform.gameObject.SetActive(true);
            imgClothBuybtn.sprite = sprEquip;
            break;

        case ItemState.UnBuy:
            imgClothBuybtn.transform.gameObject.SetActive(true);
            imgClothBuybtn.sprite = sprBuy;
            break;

        case ItemState.Equiped:
            imgClothBuybtn.transform.gameObject.SetActive(false);
            break;

        default:
            break;
        }
    }
Example #5
0
        private static void ApplySkin(SkinId skin)
        {
            var dict = Application.Current.Resources.MergedDictionaries;

            dict.Remove(OfficeBlack);
            dict.Remove(OfficeSilver);
            dict.Remove(WindowsSeven);
            dict.Remove(Vista);
            switch (skin)
            {
            case SkinId.OfficeBlack:
                dict.Add(OfficeBlack);
                break;

            case SkinId.OfficeSilver:
                dict.Add(OfficeSilver);
                break;

            case SkinId.Windows7:
                dict.Add(WindowsSeven);
                break;

            case SkinId.Vista:
                dict.Add(Vista);
                break;
            }
            OnSkinChanged();
        }
Example #6
0
 /// <summary>
 /// スキンを選択したときに呼ばれる
 /// </summary>
 /// <param name="id">選択されたID</param>
 public void OnSelectSkin(SkinId id)
 {
     if (nowSkinId != id)
     {
         nowSkinId = id;
         SaveDataManager.Inst.SavePlayerSkinID(nowSkinId);
         EventManager.Inst.InvokeEvent(SubjectType.OnChangeSkin);
     }
 }
Example #7
0
    public SkinId NowSkinID => nowSkinId;                       //外部に公開するためのプロパティ

    /// <summary>
    /// スクリプトのインスタンスがロードされたときに呼び出される
    /// </summary>
    void Awake()
    {
        nowSkinId      = SaveDataManager.Inst.GetSkinID();
        skinDictionary = new Dictionary <SkinId, GameObject>();
        foreach (var skinData in playerSkinData.Skins)
        {
            skinDictionary.Add(skinData.id, skinData.skin);
        }
        EventManager.Inst.InvokeEvent(SubjectType.OnChangeSkin);
    }
Example #8
0
        private void RibbonGallery_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            RibbonGallery g    = sender as RibbonGallery;
            SkinId        skin = IdToSkin(g.SelectedIndex);

            if (Skin != skin)
            {
                Skin = skin;
            }
        }
        public SkinId SaveSkin(Transform tr)
        {
            if (root.Skins == null)
            {
                root.Skins = new List<GLTF.Schema.Skin>();
            }

            var skinMesh = tr.GetComponent<SkinnedMeshRenderer>();

            if (_skin2ID.ContainsKey(skinMesh))
            {
                return _skin2ID[skinMesh];
            }

            var node = tr2node[tr];
            var skin = new Skin();
            skin.Name = "skeleton-" + skinMesh.rootBone.name + "-" + tr.name;
            skin.Skeleton = new NodeId { Id = root.Nodes.IndexOf(node), Root = root };
            skin.Joints = new List<NodeId>();

            foreach (var bone in skinMesh.bones)
            {
                if (!tr2node.ContainsKey(bone))
                {
                    throw new Exception("You are expoting a skinned mesh '" + node.Name + "', but not select bones!");
                }

                skin.Joints.Add(new NodeId { Id = root.Nodes.IndexOf(tr2node[bone]) });
            }

            // Create invBindMatrices accessor
            var bufferView = CreateStreamBufferView("invBind-" + skinMesh.rootBone.name + "-" + tr.name);

            Matrix4x4[] invBindMatrices = new Matrix4x4[skin.Joints.Count];
            for (int i = 0; i < skinMesh.bones.Length; ++i)
            {
                // Generates inverseWorldMatrix in right-handed coordinate system
                Matrix4x4 invBind = skinMesh.sharedMesh.bindposes[i];
                invBindMatrices[i] = Utils.ConvertMat4LeftToRightHandedness(ref invBind);
            }

            skin.InverseBindMatrices = AccessorToId(
                ExporterUtils.PackToBuffer(bufferView.streamBuffer, invBindMatrices, GLTFComponentType.Float),
                bufferView
            );

            root.Skins.Add(skin);

            var id = new SkinId { Id = root.Skins.Count - 1, Root = root };
            _skin2ID.Add(skinMesh, id);

            return id;
        }
Example #10
0
        private static void SkinPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            SkinId id = (SkinId)e.NewValue;

            SkinManager.SkinId = id;
            Main main  = (Main)o;
            int  index = SkinToId(id);

            if (main.StyleGallery.SelectedIndex != index)
            {
                main.StyleGallery.SelectedIndex = index;
            }
        }
Example #11
0
    /// <summary>
    /// IDと対応したスキンを取得する
    /// </summary>
    /// <param name="id">ID</param>
    /// <returns>引数として渡したIDに対応したスキン</returns>
    public GameObject GetSkin(SkinId id)
    {
        GameObject skinObject;

        if (skinDictionary.TryGetValue(id, out skinObject))
        {
            return(skinObject);
        }
        else
        {
            Debug.LogError("IDの対応したスキンが登録されていません。/nPlayerSkinDataにIDとプレハブを登録してください。");
            return(null);
        }
    }
Example #12
0
        private static int SkinToId(SkinId id)
        {
            switch (id)
            {
            case SkinId.Vista: return(0);

            case SkinId.Windows7: return(1);

            case SkinId.OfficeBlue: return(2);

            case SkinId.OfficeSilver: return(3);

            case SkinId.OfficeBlack: return(4);

            default: throw new ArgumentOutOfRangeException();
            }
        }
Example #13
0
 ////检查衣服状态(已装备/已购买/未购买)
 public ItemState CheckClothState(SkinId id)
 {
     if (id.SkinID == TakeonSkin.SkinID && id.ClothID == TakeonSkin.ClothID)
     {
         return(ItemState.Equiped);
     }
     else
     {
         foreach (var item in BuySkin)
         {
             if (id.SkinID == item.SkinID && id.ClothID == item.ClothID)
             {
                 return(ItemState.Buy);
             }
         }
         return(ItemState.UnBuy);
     }
 }
Example #14
0
    public void OnBuyClothBtnClick()
    {
        Game.Instance.sound.PlayEffect("Se_UI_Button");
        SkinId id = new SkinId
        {
            SkinID  = gm.TakeonSkin.SkinID,
            ClothID = selectIndex
        };

        state = gm.CheckClothState(id);
        switch (state)
        {
        case ItemState.Buy:
            //装备物品
            BuySkinArgs e = new BuySkinArgs
            {
                Coin = Game.Instance.staticData.GetPlayerSkinInfo(gm.TakeonSkin.SkinID, selectIndex).coin,
                ID   = new SkinId {
                    SkinID = gm.TakeonSkin.SkinID, ClothID = selectIndex
                }
            };
            SendEvent(Const.E_EquipCloth, e);
            break;

        case ItemState.UnBuy:
            //发起购买
            BuySkinArgs ee = new BuySkinArgs
            {
                Coin = Game.Instance.staticData.GetPlayerSkinInfo(gm.TakeonSkin.SkinID, selectIndex).coin,
                ID   = new SkinId {
                    SkinID = gm.TakeonSkin.SkinID, ClothID = selectIndex
                }
            };
            SendEvent(Const.E_BuyCloth, ee);
            break;

        case ItemState.Equiped:
            break;

        default:
            break;
        }
    }
Example #15
0
        private void SaveSettings()
        {
            string ExtendName = "";

            if (radioButton1.Checked == true)
            {
                ExtendName = "MP4";
            }
            if (radioButton2.Checked == true)
            {
                ExtendName = "MKV";
            }
            if (radioButton3.Checked == true)
            {
                ExtendName = "TS";
            }
            if (radioButton4.Checked == true)
            {
                ExtendName = "FLV";
            }

            XmlTextWriter xml = new XmlTextWriter(@"Tools\Settings.xml", Encoding.UTF8);

            xml.Formatting = Formatting.Indented;
            xml.WriteStartDocument();
            xml.WriteStartElement("Settings");

            xml.WriteStartElement("Skin"); xml.WriteCData(SkinId.ToString()); xml.WriteEndElement();
            xml.WriteStartElement("DownPath"); xml.WriteCData(textBox_DownloadPath.Text); xml.WriteEndElement();
            xml.WriteStartElement("ExtendName"); xml.WriteCData(ExtendName); xml.WriteEndElement();

            xml.WriteEndElement();
            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();
        }
Example #16
0
		private static void ApplySkin(SkinId skin)
		{
			Collection<ResourceDictionary> dict = Application.Current.Resources.MergedDictionaries;
			dict.Remove(OfficeBlack);
			dict.Remove(OfficeSilver);
			dict.Remove(WindowsSeven);
			dict.Remove(Vista);
			switch (skin)
			{
				case SkinId.OfficeBlack:
					dict.Add(OfficeBlack);
					break;

				case SkinId.OfficeSilver:
					dict.Add(OfficeSilver);
					break;

				case SkinId.Windows7:
					dict.Add(WindowsSeven);
					break;

				case SkinId.Vista:
					dict.Add(Vista);
					break;
			}
			OnSkinChanged();
		}
 public string GetUniquePath()
 {
     return(SkinId.Replace('_', '/') + '/');
 }
Example #18
0
 /// <summary>
 /// スキンが使用されたことがあるかどうか
 /// </summary>
 /// <param name="skinId">使用確認をするスキンのID</param>
 /// <returns>使用されたことがあるかどうか</returns>
 public bool GetIsUsedSkin(SkinId skinId)
 {
     return(saveData.usedSkinData.skinIdList.Contains(skinId));
 }
Example #19
0
 private void RibbonGallery_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     RibbonGallery g = sender as RibbonGallery;
     SkinId skin = IdToSkin(g.SelectedIndex);
     if (Skin != skin) Skin = skin;
 }
Example #20
0
 private void LoadSettings()
 {
     Settings settings = Settings.Default;
     outlook.MaxNumberOfButtons = settings.MaxSections;
     outlook.IsMaximized = settings.IsSidebarExpanded;
     ribbon.CanMinimize = settings.CanRibbonMinimize;
     this.PasswordGrid.PasswordColumn.Width = new GridLength(settings.PasswordWith);
     ribbon.IsExpanded = settings.IsRibbonExpanded && ribbon.CanMinimize;
     if (settings.Left != -1) Left = settings.Left;
     if (settings.Top != -1) Top = settings.Top;
     if (settings.Width > 48) Width = settings.Width;
     if (settings.Height > 32) Height = settings.Height;
     //    IsGlassEnabled = settings.IsGlassEnabled;
     Skin = settings.Skin;
 }
Example #21
0
 private static int SkinToId(SkinId id)
 {
     switch (id)
     {
         case SkinId.Vista: return 0;
         case SkinId.Windows7: return 1;
         case SkinId.OfficeBlue: return 2;
         case SkinId.OfficeSilver: return 3;
         case SkinId.OfficeBlack: return 4;
         default: throw new ArgumentOutOfRangeException();
     }
 }
Example #22
0
 /// <summary>
 /// プレイヤーのマテリアルデータをセーブする
 /// </summary>
 /// <param name="id">上書きするマテリアルID</param>
 public void SavePlayerSkinID(SkinId id)
 {
     saveData.playerSkinId = id;
     JsonDataSaver.Save <SaveData>(saveData);
 }