Terraria 1.3.5.3 Source Code
This commit is contained in:
commit
4b21dac4b6
503 changed files with 409032 additions and 0 deletions
66
TexturePackSupport.cs
Normal file
66
TexturePackSupport.cs
Normal file
|
@ -0,0 +1,66 @@
|
|||
// Decompiled with JetBrains decompiler
|
||||
// Type: Terraria.TexturePackSupport
|
||||
// Assembly: Terraria, Version=1.3.5.3, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 68659D26-2BE6-448F-8663-74FA559E6F08
|
||||
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
||||
|
||||
using Ionic.Zip;
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
||||
namespace Terraria
|
||||
{
|
||||
public class TexturePackSupport
|
||||
{
|
||||
public static bool Enabled = false;
|
||||
public static int ReplacedTextures = 0;
|
||||
private static ZipFile texturePack;
|
||||
private static Dictionary<string, ZipEntry> entries = new Dictionary<string, ZipEntry>();
|
||||
private static Stopwatch test = new Stopwatch();
|
||||
|
||||
public static bool FetchTexture(string path, out Texture2D tex)
|
||||
{
|
||||
ZipEntry zipEntry;
|
||||
if (TexturePackSupport.entries.TryGetValue(path, out zipEntry))
|
||||
{
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
zipEntry.Extract((Stream) memoryStream);
|
||||
tex = TexturePackSupport.FromStreamSlow(Main.instance.GraphicsDevice, (Stream) memoryStream);
|
||||
++TexturePackSupport.ReplacedTextures;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tex = (Texture2D) null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static Texture2D FromStreamSlow(GraphicsDevice graphicsDevice, Stream stream)
|
||||
{
|
||||
Texture2D texture2D = Texture2D.FromStream(graphicsDevice, stream);
|
||||
Color[] data = new Color[texture2D.Width * texture2D.Height];
|
||||
texture2D.GetData<Color>(data);
|
||||
for (int index = 0; index != data.Length; ++index)
|
||||
data[index] = Color.FromNonPremultiplied(data[index].ToVector4());
|
||||
texture2D.SetData<Color>(data);
|
||||
return texture2D;
|
||||
}
|
||||
|
||||
public static void FindTexturePack()
|
||||
{
|
||||
string path = Main.SavePath + "/Texture Pack.zip";
|
||||
if (!File.Exists(path))
|
||||
return;
|
||||
TexturePackSupport.entries.Clear();
|
||||
TexturePackSupport.texturePack = ZipFile.Read((Stream) File.OpenRead(path));
|
||||
foreach (ZipEntry entry in (IEnumerable<ZipEntry>) TexturePackSupport.texturePack.Entries)
|
||||
TexturePackSupport.entries.Add(entry.FileName.Replace("/", "\\"), entry);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue