예제 #1
0
 public bool SetClanBanner(Clan clan, string bannerCode)
 {
     try
     {
         if (bannerCode == null)
         {
             return(false);
         }
         if (clan == null)
         {
             return(false);
         }
         Log.write($"Trying to set {clan.Name}'s banner to {bannerCode}");
         // Try to fish out errors by forcing the deserialization and a render attempt before setting the clan's banner
         var bd = new Banner(bannerCode);
         var m  = bd.ConvertToMultiMesh();
         clan.Banner.Deserialize(bannerCode);
         return(true);
     }
     catch (Exception ex)
     {
         Log.write(ex);
         return(false);
     }
 }
 static void Postfix(BannerEditorView __instance)
 {
     if (__instance.SceneLayer.Input.IsHotKeyPressed("Copy") || __instance.GauntletLayer.Input.IsHotKeyPressed("Copy"))
     {
         try
         {
             Input.SetClipboardText(__instance.DataSource.BannerVM.Banner.Serialize());
         }
         catch (Exception ex)
         {
             Log.write("Error copying banner code");
             InformationManager.DisplayMessage(new InformationMessage("Error copying banner code", new Color(1f, 0, 0)));
             Log.write(ex);
         }
     }
     else if (__instance.SceneLayer.Input.IsHotKeyPressed("Paste") || __instance.GauntletLayer.Input.IsHotKeyPressed("Paste"))
     {
         try
         {
             // test banner deserialization first
             var bannerCode = Input.GetClipboardText();
             var banner     = new Banner(bannerCode);
             // then try to draw it
             banner.ConvertToMultiMesh();
             // hopefully we have thrown by now if we're gonna
             __instance.DataSource.BannerVM.BannerCode = bannerCode;
             Traverse.Create(__instance).Method("RefreshShieldAndCharacter").GetValue();
         }
         catch (Exception ex)
         {
             Log.write("Error deserializing banner code");
             InformationManager.DisplayMessage(new InformationMessage($"Error pasting banner code", new Color(1f, 0, 0)));
             Log.write(ex);
         }
     }
 }