Advertisement
Guest User

Untitled

a guest
Aug 1st, 2014
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.22 KB | None | 0 0
  1. public class EngineContentManager {
  2.         static Game game;
  3.         static Dictionary<String, Texture2D> textures = new Dictionary<string, Texture2D>();
  4.         static List<String> textureFiles = new List<string>();
  5.         static String currentDirectory = Environment.CurrentDirectory + "/GameContent";
  6.         static Microsoft.Xna.Framework.Content.ContentManager XNAcontent;
  7.         static ContentManager LibContent;
  8.  
  9.         public EngineContentManager(Game game, ContentManager XNAContent) {
  10.             EngineContentManager.game = game;
  11.             LoadTextureContent();
  12.             EngineContentManager.XNAcontent = XNAContent;
  13.  
  14.             LibContent = new ContentManager(game.Services);
  15.             LibContent.RootDirectory = "Content";
  16.         }
  17.  
  18.         public static Microsoft.Xna.Framework.Content.ContentManager GetXNAContent() {
  19.             return EngineContentManager.XNAcontent;
  20.         }
  21.  
  22.         public void LoadTextureContent() {
  23.             if (!System.IO.Directory.Exists(currentDirectory + "/textures"))
  24.                 System.IO.Directory.CreateDirectory(currentDirectory + "/textures");
  25.  
  26.             foreach (String file in Directory.GetFiles(currentDirectory + "\\textures")) {
  27.                 textureFiles.Add(file);
  28.                 Console.Out.WriteLine(file);
  29.             }
  30.         }
  31.  
  32.         public static void LoadSceneContent(Scene scene, GraphicsDevice graphics) {
  33.             FileStream fileStream;
  34.  
  35.             foreach (String file in textureFiles) {
  36.                 String temp = file.Substring(currentDirectory.Length);
  37.                 foreach (String contentName in scene.SceneContent) {
  38.                     if (temp.Contains(contentName) && !textures.ContainsKey(contentName)) {
  39.                         fileStream = new FileStream(file, FileMode.Open);
  40.                         textures.Add(contentName, Texture2D.FromStream(graphics, fileStream));
  41.                         fileStream.Close();
  42.                     }
  43.                 }
  44.             }
  45.  
  46.             //textures.Add(contentName, game.Content.Load<Texture2D>(contentName));      
  47.         }
  48.  
  49.         public static Texture2D GetTextureFromFilePath(string path) {
  50.             FileStream fileStream;
  51.  
  52.             fileStream = new FileStream(path, FileMode.Open);
  53.             Texture2D temp = Texture2D.FromStream(Engine.GetGraphicsDevice(), fileStream);
  54.             fileStream.Close();
  55.             return temp;        
  56.         }
  57.  
  58.         public static void LoadSceneTexture(Scene scene, String textureName) {
  59.             FileStream fileStream;
  60.  
  61.             foreach (String file in textureFiles) {
  62.                 String temp = file.Substring(currentDirectory.Length);
  63.                 if (temp.Contains(textureName) && !textures.ContainsKey(textureName)) {
  64.                     fileStream = new FileStream(file, FileMode.Open);
  65.                     textures.Add(textureName, Texture2D.FromStream(game.GraphicsDevice, fileStream));
  66.                     fileStream.Close();
  67.                 }
  68.             }
  69.         }
  70.  
  71.         public static Texture2D GetTexture(String name) {
  72.             if (textures.ContainsKey(name))
  73.                 return textures[name];
  74.             return LibContent.Load<Texture2D>("Error");
  75.         }
  76.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement