Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ModTilesheetMapDisplayDevice : IDisplayDevice
- {
- private XnaDisplayDevice dev;
- public ModTilesheetMapDisplayDevice(XnaDisplayDevice device)
- {
- dev = device;
- }
- public void BeginScene(SpriteBatch b)
- {
- dev.BeginScene(b);
- }
- public void DisposeTileSheet(TileSheet tileSheet)
- {
- dev.DisposeTileSheet(tileSheet);
- }
- public void DrawTile(Tile tile, Location location, float layerDepth)
- {
- dev.DrawTile(tile, location, layerDepth);
- }
- public void EndScene()
- {
- dev.EndScene();
- }
- public void LoadTileSheet( TileSheet tilesheet )
- {
- int modSep = tilesheet.ImageSource.IndexOf(":");
- if ( modSep != -1 )
- {
- string modId = tilesheet.ImageSource.Substring(0, modSep);
- string texStr = tilesheet.ImageSource.Substring(modSep + 1);
- if ( Mod.instance.Helper.ModRegistry.Get(modId) != null )
- {
- var mods = Mod.instance.Helper.Reflection.GetPrivateValue< List< IMod > >(Mod.instance.Helper.ModRegistry, "Mods");
- foreach ( var mod in mods )
- {
- if ( mod.ModManifest.UniqueID == modId )
- {
- var tex = mod.Helper.Content.Load<Texture2D>(texStr, ContentSource.ModFolder);
- var texs = Mod.instance.Helper.Reflection.GetPrivateValue<Dictionary<TileSheet, Texture2D>>(dev, "m_tileSheetTextures");
- texs.Add(tilesheet, tex);
- return;
- }
- }
- }
- Log.warn("Failed to load tilesheet \"" + tilesheet.ImageSource + "\"; mod does not exist.");
- }
- dev.LoadTileSheet(tilesheet);
- }
- public void SetClippingRegion(Rectangle clippingRegion)
- {
- dev.SetClippingRegion(clippingRegion);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement