Advertisement
spacechase0

Untitled

May 8th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.14 KB | None | 0 0
  1.     class ModTilesheetMapDisplayDevice : IDisplayDevice
  2.     {
  3.         private XnaDisplayDevice dev;
  4.  
  5.         public ModTilesheetMapDisplayDevice(XnaDisplayDevice device)
  6.         {
  7.             dev = device;
  8.         }
  9.  
  10.         public void BeginScene(SpriteBatch b)
  11.         {
  12.             dev.BeginScene(b);
  13.         }
  14.  
  15.         public void DisposeTileSheet(TileSheet tileSheet)
  16.         {
  17.             dev.DisposeTileSheet(tileSheet);
  18.         }
  19.  
  20.         public void DrawTile(Tile tile, Location location, float layerDepth)
  21.         {
  22.             dev.DrawTile(tile, location, layerDepth);
  23.         }
  24.  
  25.         public void EndScene()
  26.         {
  27.             dev.EndScene();
  28.         }
  29.  
  30.         public void LoadTileSheet( TileSheet tilesheet )
  31.         {
  32.             int modSep = tilesheet.ImageSource.IndexOf(":");
  33.             if ( modSep != -1 )
  34.             {
  35.                 string modId = tilesheet.ImageSource.Substring(0, modSep);
  36.                 string texStr = tilesheet.ImageSource.Substring(modSep + 1);
  37.                
  38.                 if ( Mod.instance.Helper.ModRegistry.Get(modId) != null )
  39.                 {
  40.                     var mods = Mod.instance.Helper.Reflection.GetPrivateValue< List< IMod > >(Mod.instance.Helper.ModRegistry, "Mods");
  41.                     foreach ( var mod in mods )
  42.                     {
  43.                         if ( mod.ModManifest.UniqueID == modId )
  44.                         {
  45.                             var tex = mod.Helper.Content.Load<Texture2D>(texStr, ContentSource.ModFolder);
  46.                             var texs = Mod.instance.Helper.Reflection.GetPrivateValue<Dictionary<TileSheet, Texture2D>>(dev, "m_tileSheetTextures");
  47.                             texs.Add(tilesheet, tex);
  48.                             return;
  49.                         }
  50.                     }
  51.                 }
  52.                 Log.warn("Failed to load tilesheet \"" + tilesheet.ImageSource + "\"; mod does not exist.");
  53.             }
  54.  
  55.             dev.LoadTileSheet(tilesheet);
  56.         }
  57.  
  58.         public void SetClippingRegion(Rectangle clippingRegion)
  59.         {
  60.             dev.SetClippingRegion(clippingRegion);
  61.         }
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement