Elin Decompiled Documentation EA 23.344.1 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 CardRow value;
35 return crafters.GetOrCreate(id, () => (map.TryGetValue(id, out value) ? (value.model.trait as TraitCrafter) : null) ?? Trait.SelfFactory);
36 }
37
38 public void AddRow(CardRow row, bool isChara = false)
39 {
40 if (row.id.IsEmpty())
41 {
42 Debug.Log("assf");
43 return;
44 }
45 row.isChara = isChara;
46 row.elementMap = Element.GetElementMap(row.elements);
47 if (row.isChara)
48 {
49 (row as SourceChara.Row).tileType = TileType.Obj;
50 }
51 else
52 {
53 SourceThing.Row row2 = row as SourceThing.Row;
54 if (row2._tileType.IsEmpty())
55 {
56 row2.tileType = TileType.Obj;
57 }
58 else if (!TileType.dict.TryGetValue(row2._tileType, out row2.tileType))
59 {
60 Debug.LogError("#source unknown tile type '" + row2._tileType + "' for thing row " + row2.id);
61 row2.tileType = TileType.Obj;
62 }
63 }
64 if (!row._origin.IsEmpty())
65 {
66 row.origin = EClass.sources.things.map[row._origin];
67 if (!firstVariations.ContainsKey(row._origin))
68 {
69 firstVariations[row._origin] = row;
70 }
71 row.origin.isOrigin = true;
72 }
73 try
74 {
75 row.SetRenderData();
76 rows.Add(row);
77 map[row.id] = row;
78 }
79 catch (Exception arg)
80 {
81 ModPackage arg2 = ModUtil.FindSourceRowPackage(row);
82 Debug.LogError($"#source failed to set render data for '{row.id}' - {arg2}\n{arg}");
83 }
84 }
85}
Card model
Definition: CardRow.cs:60
int[] elements
Definition: CardRow.cs:21
string _origin
Definition: CardRow.cs:15
bool isChara
Definition: CardRow.cs:55
string id
Definition: CardRow.cs:7
Trait trait
Definition: Card.cs:54
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
static Dictionary< int, int > GetElementMap(int[] list)
Definition: ELEMENT.cs:568
string _tileType
Definition: RenderRow.cs:40
TileType tileType
Definition: RenderRow.cs:77
void SetRenderData()
Definition: RenderRow.cs:180
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:38
SourceThing things
SourceChara charas
static TileTypeObj Obj
Definition: TileType.cs:77
static Dictionary< string, TileType > dict
Definition: TileType.cs:129
Definition: Trait.cs:7
static TraitSelfFactory SelfFactory
Definition: Trait.cs:26