mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-10-11 07:05:57 -04:00
71 lines
1.6 KiB
C#
71 lines
1.6 KiB
C#
// ClassicalSharp copyright 2014-2016 UnknownShadow200 | Licensed under MIT
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
|
|
namespace ClassicalSharp.Textures {
|
|
|
|
public sealed class EntryList {
|
|
|
|
public List<string> Entries = new List<string>();
|
|
const string folder = "texturecache";
|
|
string file;
|
|
|
|
public EntryList(string file) {
|
|
this.file = file;
|
|
}
|
|
|
|
public void AddEntry(string entry) {
|
|
Entries.Add(entry);
|
|
Save();
|
|
}
|
|
|
|
public bool HasEntry(string entry) {
|
|
return Entries.Contains(entry);
|
|
}
|
|
|
|
public bool Load() {
|
|
string path = Path.Combine(Program.AppDirectory, folder);
|
|
path = Path.Combine(path, file);
|
|
if (!File.Exists(path))
|
|
return true;
|
|
|
|
try {
|
|
using (Stream fs = File.OpenRead(path))
|
|
using (StreamReader reader = new StreamReader(fs, false))
|
|
{
|
|
string line;
|
|
while ((line = reader.ReadLine()) != null) {
|
|
line = line.Trim();
|
|
if (line.Length == 0 || line[0] == '#') continue;
|
|
Entries.Add(line);
|
|
}
|
|
}
|
|
return true;
|
|
} catch(IOException ex) {
|
|
ErrorHandler.LogError("loading " + file, ex);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool Save() {
|
|
try {
|
|
string path = Path.Combine(Program.AppDirectory, folder);
|
|
if (!Directory.Exists(path))
|
|
Directory.CreateDirectory(path);
|
|
|
|
using (Stream fs = File.Create(Path.Combine(path, file)))
|
|
using (StreamWriter writer = new StreamWriter(fs))
|
|
{
|
|
for (int i = 0; i < Entries.Count; i++)
|
|
writer.WriteLine(Entries[i]);
|
|
}
|
|
return true;
|
|
} catch(IOException ex) {
|
|
ErrorHandler.LogError("saving " + file, ex);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|