/// <summary> /// Invokes the Xna PostLoadContent event. /// </summary> /// <param name="content"></param> public static void InvokePostLoadContent(ContentManager content) { var args = new XnaLoadContentEventArgs { Content = content }; PostLoadContent.Invoke(args); }
/// <summary> /// Xna PostLoadContent event callback. /// </summary> /// <param name="e"></param> public static void OnXnaPostLoadContent(XnaLoadContentEventArgs e) { Logging.Instance.Log("[Detox:Xna] OnXnaPostLoadContent was called!"); // Store the sprite batch object.. Terraria.MainSpriteBatch = Terraria.GetMainField <SpriteBatch>("spriteBatch", true); // Load tiny font for chat.. Detox.TinyFont = e.Content.Load <SpriteFont>(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\Fonts\\tiny")); // Override fonts per-configrations.. if (Configurations.Instance.Current.CustomObjects.UseCustomFonts) { // Load ou custom fonts.. var small = e.Content.Load <SpriteFont>(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\Fonts\\small")); var medium = e.Content.Load <SpriteFont>(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\Fonts\\medium")); var large = e.Content.Load <SpriteFont>(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\Fonts\\large")); var huge = e.Content.Load <SpriteFont>(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\Fonts\\huge")); // Set the Terraria fonts.. Terraria.SetMainField("fontCombatText", new[] { medium, large }); Terraria.SetMainField("fontDeathText", huge); Terraria.SetMainField("fontItemStack", small); Terraria.SetMainField("fontMouseText", small); } // Override hp/mp icons per-configurations.. if (Configurations.Instance.Current.CustomObjects.UseCustomHpMpIcons) { using (var hpStream = new FileStream(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\hp.png"), FileMode.Open, FileAccess.Read)) { var hpTexture = Texture2D.FromStream(Terraria.MainGame.GraphicsDevice, hpStream); Terraria.SetMainField("heartTexture", hpTexture); } using (var hpStream = new FileStream(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\hp2.png"), FileMode.Open, FileAccess.Read)) { var hpTexture = Texture2D.FromStream(Terraria.MainGame.GraphicsDevice, hpStream); Terraria.SetMainField("heart2Texture", hpTexture); } using (var mpStream = new FileStream(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\mp.png"), FileMode.Open, FileAccess.Read)) { var mpTexture = Texture2D.FromStream(Terraria.MainGame.GraphicsDevice, mpStream); Terraria.SetMainField("manaTexture", mpTexture); } } // Override background textures per-configurations.. if (Configurations.Instance.Current.CustomObjects.UseCustomBackgrounds) { // Set the inventory background textures.. using (var bgStream = new FileStream(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\bg.png"), FileMode.Open, FileAccess.Read)) { var bg = Texture2D.FromStream(Terraria.MainGame.GraphicsDevice, bgStream); Terraria.SetMainField("inventoryBackTexture", bg); for (var x = 2; x <= 12; x++) { Terraria.SetMainField(string.Format("inventoryBack{0}Texture", x), bg); } } // Set the npc chat background texture.. using (var chatBackgroundStream = new FileStream(Path.Combine(Detox.DetoxBasePath, "DetoxContent\\chat_bg.png"), FileMode.Open, FileAccess.Read)) { var chatBackgroundTexture = Texture2D.FromStream(Terraria.MainGame.GraphicsDevice, chatBackgroundStream); Terraria.SetMainField("chatBackTexture", chatBackgroundTexture); } } // Delete the original Terraria mouse texture.. var cursorTexture = new Texture2D(Terraria.MainGame.GraphicsDevice, 1, 1); cursorTexture.SetData(new[] { Color.Transparent }); Terraria.SetMainField("cursorTexture", cursorTexture); Logging.Instance.Log("[Detox:Xna] OnXnaPostLoadContent completed!"); }