mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-09-27 13:50:45 +00:00
Update LOCFile interface
This commit is contained in:
@@ -25,12 +25,12 @@ namespace PckStudio.Classes.IO.LOC
|
||||
{
|
||||
int loc_type = ReadInt(stream);
|
||||
int language_count = ReadInt(stream);
|
||||
List<string> keys = null;
|
||||
if (loc_type == 2) keys = ReadKeys(stream);
|
||||
bool lookUpKey = loc_type == 2;
|
||||
List<string> keys = lookUpKey ? ReadKeys(stream) : null;
|
||||
for (int i = 0; i < language_count; i++)
|
||||
{
|
||||
string language = ReadString(stream);
|
||||
_file.languages.Add(language);
|
||||
_file.Languages.Add(language);
|
||||
ReadInt(stream); // padding ???
|
||||
}
|
||||
for (int i = 0; i < language_count; i++)
|
||||
@@ -38,21 +38,14 @@ namespace PckStudio.Classes.IO.LOC
|
||||
ReadInt(stream);
|
||||
stream.ReadByte();
|
||||
string language = ReadString(stream);
|
||||
if (!_file.languages.Contains(language))
|
||||
if (!_file.Languages.Contains(language))
|
||||
throw new Exception("language not found");
|
||||
int count = ReadInt(stream);
|
||||
for (int j = 0; j < count; j++)
|
||||
{
|
||||
string key = loc_type == 2 ? keys[j] : ReadString(stream);
|
||||
string key = lookUpKey ? keys[j] : ReadString(stream);
|
||||
string value = ReadString(stream);
|
||||
if (_file.keys.ContainsKey(key))
|
||||
{
|
||||
_file.keys[key].Add(language, value);
|
||||
continue;
|
||||
}
|
||||
var dict = new Dictionary<string, string>();
|
||||
dict.Add(language, value);
|
||||
_file.keys.Add(key, dict);
|
||||
_file.SetLocEntry(key, language, value);
|
||||
}
|
||||
}
|
||||
return _file;
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace PckStudio.Classes.IO.LOC
|
||||
{
|
||||
if (_locfile == null) throw new ArgumentNullException("Loc File is null");
|
||||
WriteInt(stream, type);
|
||||
WriteInt(stream, _locfile.languages.Count);
|
||||
WriteInt(stream, _locfile.Languages.Count);
|
||||
if (type == 2) WriteLocKeys(stream);
|
||||
WriteLanguages(stream);
|
||||
WriteLanguageEntries(stream, type);
|
||||
@@ -35,14 +35,14 @@ namespace PckStudio.Classes.IO.LOC
|
||||
private void WriteLocKeys(Stream stream)
|
||||
{
|
||||
stream.WriteByte(0);
|
||||
WriteInt(stream, _locfile.keys.Count);
|
||||
foreach (var key in _locfile.keys.Keys)
|
||||
WriteInt(stream, _locfile.LocKeys.Count);
|
||||
foreach (var key in _locfile.LocKeys.Keys)
|
||||
WriteString(stream, key);
|
||||
}
|
||||
|
||||
private void WriteLanguages(Stream stream)
|
||||
{
|
||||
foreach (var language in _locfile.languages)
|
||||
foreach (var language in _locfile.Languages)
|
||||
{
|
||||
WriteString(stream, language);
|
||||
WriteInt(stream, 0);
|
||||
@@ -51,16 +51,16 @@ namespace PckStudio.Classes.IO.LOC
|
||||
|
||||
private void WriteLanguageEntries(Stream stream, int type)
|
||||
{
|
||||
foreach (var language in _locfile.languages)
|
||||
foreach (var language in _locfile.Languages)
|
||||
{
|
||||
WriteInt(stream, 0x1337);
|
||||
stream.WriteByte(0);
|
||||
WriteString(stream, language);
|
||||
WriteInt(stream, _locfile.keys.Keys.Count);
|
||||
foreach(var locKey in _locfile.keys.Keys)
|
||||
WriteInt(stream, _locfile.LocKeys.Keys.Count);
|
||||
foreach(var locKey in _locfile.LocKeys.Keys)
|
||||
{
|
||||
if (type == 0) WriteString(stream, locKey);
|
||||
WriteString(stream, _locfile.keys[locKey][language]);
|
||||
WriteString(stream, _locfile.LocKeys[locKey][language]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user