public bool ChangeTerrainAtlas(Bitmap atlas) { if (!ValidateBitmap("terrain.png", atlas)) { return(false); } if (atlas.Height < atlas.Width) { Chat.Add("&cUnable to use terrain.png from the texture pack."); Chat.Add("&c Its height is less than its width."); return(false); } if (Graphics.LostContext) { return(false); } Atlas1D.Dispose(); Atlas2D.Dispose(); Atlas2D.UpdateState(atlas); Atlas1D.UpdateState(); Events.RaiseTerrainAtlasChanged(); return(true); }
public void Dispose() { ChunkUpdater.Dispose(); Atlas2D.Dispose(); Atlas1D.Dispose(); ModelCache.Dispose(); Entities.Dispose(); WorldEvents.OnNewMap -= OnNewMapCore; WorldEvents.OnNewMapLoaded -= OnNewMapLoadedCore; Events.TextureChanged -= TextureChangedCore; for (int i = 0; i < Components.Count; i++) { Components[i].Dispose(); } Drawer2D.DisposeInstance(); Graphics.Dispose(); // TODO: is this needed //window.Dispose(); if (!Options.HasChanged()) { return; } Options.Load(); Options.Save(); }
void MakeTexture(ref int id, ref int lastTexLoc, BlockID block) { int texLoc = BlockInfo.GetTextureLoc(block, Side.Top); if (texLoc == lastTexLoc || game.Graphics.LostContext) { return; } lastTexLoc = texLoc; game.Graphics.DeleteTexture(ref id); id = Atlas2D.LoadTile(texLoc); }