Commit 33564988 authored by keyongyu's avatar keyongyu

支持tcgeditor的存档解析

parent 874843a7

using System;
using System.Collections.Generic;
namespace DataEditorX
{
class MyComparer<K> : IComparer<K>
{
public int Compare(K x, K y)
{
return 1; //永远不等,允许重复
}
}
public class MySortList<K,V> : SortedList<K,V>
{
public MySortList():base(new MyComparer<K>())
{
}
public new void Add(K key, V value)
{
//falg用于跳出函数
int flag = 0;
//检查是否具备这个key,并且检查value是否重复
foreach (KeyValuePair<K,V> item in this)
{
if (item.Key.ToString() == key.ToString() && item.Value.ToString() == value.ToString())
{
flag=1;
}
}
if (flag == 1)
return; //跳出函数
//否则就加入
base.Add(key, value);
}
}
}

using System;
using System.IO;
using Newtonsoft.Json;
namespace DataEditorX
{
public class CardSet{
public int game;
public int version;
public MySortList<string, CardInfo> cards;
}
public class CardInfo{
public string title;
public string artwork;
public int[] artwork_crop;
/// <summary>
/// ?
/// </summary>
public int background;
/// <summary>
/// ?
/// </summary>
public int rarity;
public int attribute;
public int level;
public int icon;
public string description;
public string pendulum_description;
public int[] pendulum_scales ;
public string[] subtypes;
public string atk;
public string def;
public string edition;
public string @set;
public string card_number;
public string limitation;
/// <summary>
/// 0,1,1
/// </summary>
public int sticker;
public string copyright;
public override string ToString()
{
return string.Format("[CardInfo Title={0}, Artwork={1}, Artwork_crop={2}, Background={3}, Rarity={4}, Attribute={5}, Level={6}, Icon={7}, Description={8}, Pendulum_description={9}, Pendulum_scales={10}, Subtypes={11}, Atk={12}, Def={13}, Edition={14}, Set={15}, Card_number={16}, Limitation={17}, Sticker={18}, Copyright={19}]", title, artwork, artwork_crop, background, rarity, attribute, level, icon, description, pendulum_description, pendulum_scales, subtypes, atk, def, edition, set, card_number, limitation, sticker, copyright);
}
}
public class CardJson{
public static void test(){
string json = File.ReadAllText(@"F:\TCGEditor_v1.2\t.tcgb");
CardSet cardset = JsonConvert.DeserializeObject<CardSet>(json);
if(cardset.cards!=null){
int index=0;
foreach(string key in cardset.cards.Keys){
Console.WriteLine(key);
CardInfo card = cardset.cards.Values[index];
Console.WriteLine(card);
index++;
}
}
Console.ReadKey();
}
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -47,6 +47,9 @@
<HintPath>DLL\FastColoredTextBox.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Newtonsoft.Json">
<HintPath>DLL\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
......@@ -69,6 +72,7 @@
</Compile>
<Compile Include="Common\CheckUpdate.cs" />
<Compile Include="Common\ConfHelper.cs" />
<Compile Include="Common\MySortList.cs" />
<Compile Include="Common\MyUtils.cs" />
<Compile Include="Common\StrUtil.cs" />
<Compile Include="Common\XMLReader.cs" />
......@@ -115,6 +119,7 @@
<Compile Include="Core\Mse\MSEConfig.cs" />
<Compile Include="Core\MyTask.cs" />
<Compile Include="Core\TaskHelper.cs" />
<Compile Include="Core\TCGEditor\CardSet.cs" />
<Compile Include="Core\YGOUtil.cs" />
<Compile Include="DataEditForm.cs">
<SubType>Form</SubType>
......@@ -223,5 +228,8 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="Core\TCGEditor" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
......@@ -14,6 +14,7 @@
using DataEditorX.Config;
using DataEditorX.Language;
namespace DataEditorX
{
internal sealed class Program
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment