public static clientSkin saveDefaultSkin() { GameObject hc = UnityEngine.Object.Instantiate(HeroController.instance.gameObject); tk2dSpriteAnimator anim = hc.GetComponent <tk2dSpriteAnimator>(); defaultSkin = new clientSkin(); defaultSkin.Name = "Default Knight"; defaultSkin.Author = "Team Cherry"; defaultSkin.Knight = anim.GetClipByName("Idle").frames[0].spriteCollection.spriteDefinitions[0].material.mainTexture as Texture2D; defaultSkin.Sprint = anim.GetClipByName("Sprint").frames[0].spriteCollection.spriteDefinitions[0].material.mainTexture as Texture2D; defaultSkinLoaded = true; return(defaultSkin); }
public void saveDefaultSkins() { if (savedDefaultSkins == false) { clientSkin defaultSkin = skinUtils.saveDefaultSkin(); if (!skinManager.skinLoader.KnightMap.ContainsKey("defaultSkin")) { skinManager.skinLoader.KnightMap.Add("defaultSkin", defaultSkin); } skinUtils.patchAllSkins(skinManager.skinLoader.KnightMap); savedDefaultSkins = true; } return; }
public void updateRemotePlayerSkin(ClientPlayerData player, ushort skin) { var old = player.Skin; player.Skin = skin; clientSkin playerSkin = getSkinForIndex(skin); // Get the player object and update the skin SkinManager.updateTextureInMaterialPropertyBlock(player.PlayerObject, playerSkin.Knight); if (old != skin) { UI.UIManager.InfoBox.AddMessage($"Player '{player.Username}' is now {getSkinNameForIndex(skin)}"); } }
public static clientSkin patchSkinWithDefault(clientSkin source) { if (!defaultSkinLoaded) { return(source); } if (source.Sprint == null) { source.Sprint = defaultSkin.Sprint; } if (source.Knight == null) { source.Knight = defaultSkin.Knight; } return(source); }
public void updateLocalPlayerSkin(ushort skin) { var old = LocalPlayerSkin; LocalPlayerSkin = skin; GameObject player = HeroController.instance.gameObject; clientSkin playerSkin = getSkinForIndex(skin); var anim = player.GetComponent <tk2dSpriteAnimator>(); anim.GetClipByName("Idle").frames[0].spriteCollection.spriteDefinitions[0].material.mainTexture = playerSkin.Knight; anim.GetClipByName("Sprint").frames[0].spriteCollection.spriteDefinitions[0].material.mainTexture = playerSkin.Sprint; if (old != skin) { //todo network call here _serverKnightsManager.sendServerKnightUpdate(0, (ushort)skin); UI.UIManager.InfoBox.AddMessage($"You are now {getSkinNameForIndex(skin)}"); } }