Elin Decompiled Documentation EA 23.286 Nightly
Loading...
Searching...
No Matches
SourceCard.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class SourceCard : EClass
6{
7 public List<CardRow> rows = new List<CardRow>();
8
9 public Dictionary<string, CardRow> map = new Dictionary<string, CardRow>();
10
11 public Dictionary<string, CardRow> firstVariations = new Dictionary<string, CardRow>();
12
13 public Dictionary<string, TraitCrafter> crafters = new Dictionary<string, TraitCrafter>();
14
15 public void Init()
16 {
17 rows.Clear();
18 map.Clear();
19 firstVariations.Clear();
20 crafters.Clear();
21 foreach (SourceThing.Row row in EClass.sources.things.rows)
22 {
23 AddRow(row);
24 }
25 foreach (SourceChara.Row row2 in EClass.sources.charas.rows)
26 {
27 AddRow(row2, isChara: true);
28 }
29 SourceChara.rowDefaultPCC = EClass.sources.charas.map["chara"];
30 }
31
32 public TraitCrafter GetModelCrafter(string id)
33 {
34 return crafters.GetOrCreate(id, () => (map[id].model.trait as TraitCrafter) ?? Trait.SelfFactory);
35 }
36
37 public void AddRow(CardRow row, bool isChara = false)
38 {
39 if (row.id.IsEmpty())
40 {
41 Debug.Log("assf");
42 return;
43 }
44 row.isChara = isChara;
45 row.elementMap = Element.GetElementMap(row.elements);
46 if (row.isChara)
47 {
48 (row as SourceChara.Row).tileType = TileType.Obj;
49 }
50 else
51 {
52 SourceThing.Row row2 = row as SourceThing.Row;
53 if (row2._tileType.IsEmpty())
54 {
55 row2.tileType = TileType.Obj;
56 }
57 else
58 {
59 row2.tileType = TileType.dict[row2._tileType];
60 }
61 }
62 if (!row._origin.IsEmpty())
63 {
64 row.origin = EClass.sources.things.map[row._origin];
65 if (!firstVariations.ContainsKey(row._origin))
66 {
67 firstVariations[row._origin] = row;
68 }
69 row.origin.isOrigin = true;
70 }
71 try
72 {
73 row.SetRenderData();
74 rows.Add(row);
75 map[row.id] = row;
76 }
77 catch (Exception arg2)
78 {
80 Debug.LogError($"#source failed to set render data for '{row.id}' - {arg}\n{arg2}");
81 }
82 }
83}
$
Definition: ModManager.cs:85
int[] elements
Definition: CardRow.cs:21
string _origin
Definition: CardRow.cs:15
bool isChara
Definition: CardRow.cs:55
string id
Definition: CardRow.cs:7
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
static Dictionary< int, int > GetElementMap(int[] list)
Definition: ELEMENT.cs:536
static ModPackage FindSourceRowPackage(SourceData.BaseRow row)
Definition: ModUtil.cs:90
string _tileType
Definition: RenderRow.cs:40
void SetRenderData()
Definition: RenderRow.cs:169
List< CardRow > rows
Definition: SourceCard.cs:7
Dictionary< string, CardRow > map
Definition: SourceCard.cs:9
TraitCrafter GetModelCrafter(string id)
Definition: SourceCard.cs:32
Dictionary< string, TraitCrafter > crafters
Definition: SourceCard.cs:13
void Init()
Definition: SourceCard.cs:15
Dictionary< string, CardRow > firstVariations
Definition: SourceCard.cs:11
void AddRow(CardRow row, bool isChara=false)
Definition: SourceCard.cs:37
SourceThing things
SourceChara charas
static TileTypeObj Obj
Definition: TileType.cs:73
static Dictionary< string, TileType > dict
Definition: TileType.cs:123
Definition: Trait.cs:7
static TraitSelfFactory SelfFactory
Definition: Trait.cs:26