Elin Decompiled Documentation EA 23.348.1 Nightly
Loading...
Searching...
No Matches
SourceMaterial Class Reference
Inheritance diagram for SourceMaterial:
SourceDataInt< SourceMaterial.Row >

Classes

class  Row
 
class  Tier
 
class  TierList
 

Public Member Functions

override Row CreateRow ()
 
override Row CreateRowByMapping (IReadOnlyDictionary< string, int > mapping)
 
override void SetRow (Row r)
 
override IReadOnlyDictionary< string, int > GetRowMapping ()
 
override IReadOnlyDictionary< string, string > GetTypeMapping ()
 
override void OnInit ()
 
override void OnAfterImportData ()
 
void OnImportRow (Row r)
 
- Public Member Functions inherited from SourceDataInt< SourceMaterial.Row >
override T GetRow (string id)
 

Static Public Attributes

static readonly IReadOnlyDictionary< string, int > RowMapping
 
static readonly IReadOnlyDictionary< string, string > TypeMapping
 
static Dictionary< string, TierList > tierMap = new Dictionary<string, TierList>()
 

Properties

TileLookup< Row > Lookup [get]
 
Row this[int id] [get]
 
override string[] ImportFields [get]
 

Private Attributes

TileLookup< Row > _lookup
 

Detailed Description

Definition at line 6 of file SourceMaterial.cs.

Member Function Documentation

◆ CreateRow()

override Row SourceMaterial.CreateRow ( )
inline

Definition at line 411 of file SourceMaterial.cs.

412 {
413 return new Row
414 {
415 id = SourceData.GetInt(0),
416 alias = SourceData.GetString(1),
417 name_JP = SourceData.GetString(2),
418 name = SourceData.GetString(3),
419 category = SourceData.GetString(4),
420 tag = SourceData.GetStringArray(5),
421 thing = SourceData.GetString(6),
422 goods = SourceData.GetStringArray(7),
423 minerals = SourceData.GetStringArray(8),
424 decal = SourceData.GetInt(9),
425 decay = SourceData.GetInt(10),
426 grass = SourceData.GetInt(11),
427 defFloor = SourceData.GetInt(12),
428 defBlock = SourceData.GetInt(13),
429 edge = SourceData.GetInt(14),
430 ramp = SourceData.GetInt(15),
431 idSound = SourceData.GetString(16),
432 soundFoot = SourceData.GetString(17),
433 hardness = SourceData.GetInt(18),
434 groups = SourceData.GetStringArray(19),
435 tier = SourceData.GetInt(20),
436 chance = SourceData.GetInt(21),
437 weight = SourceData.GetInt(22),
438 value = SourceData.GetInt(23),
439 quality = SourceData.GetInt(24),
440 atk = SourceData.GetInt(25),
441 dmg = SourceData.GetInt(26),
442 dv = SourceData.GetInt(27),
443 pv = SourceData.GetInt(28),
444 dice = SourceData.GetInt(29),
445 bits = SourceData.GetStringArray(30),
446 elements = Core.ParseElements(SourceData.GetStr(31)),
447 altName = SourceData.GetStringArray(32),
448 altName_JP = SourceData.GetStringArray(33)
449 };
450 }
Definition: Core.cs:14
static int[] ParseElements(string str)
Definition: Core.cs:737
static string[] GetStringArray(int id)
Definition: SourceData.cs:1011
static string GetString(int id)
Definition: SourceData.cs:1016
static int GetInt(int id)
Definition: SourceData.cs:981
static string GetStr(int id, bool useDefault=false)
Definition: SourceData.cs:1021

References SourceData< T, T2 >.GetInt(), SourceData< T, T2 >.GetStr(), SourceData< T, T2 >.GetString(), SourceData< T, T2 >.GetStringArray(), and Core.ParseElements().

◆ CreateRowByMapping()

override Row SourceMaterial.CreateRowByMapping ( IReadOnlyDictionary< string, int >  mapping)
inline

Definition at line 452 of file SourceMaterial.cs.

453 {
454 return new Row
455 {
456 id = SourceData.GetInt(mapping["id"]),
457 alias = SourceData.GetString(mapping["alias"]),
458 name_JP = SourceData.GetString(mapping["name_JP"]),
459 name = SourceData.GetString(mapping["name"]),
460 category = SourceData.GetString(mapping["category"]),
461 tag = SourceData.GetStringArray(mapping["tag"]),
462 thing = SourceData.GetString(mapping["thing"]),
463 goods = SourceData.GetStringArray(mapping["goods"]),
464 minerals = SourceData.GetStringArray(mapping["minerals"]),
465 decal = SourceData.GetInt(mapping["decal"]),
466 decay = SourceData.GetInt(mapping["decay"]),
467 grass = SourceData.GetInt(mapping["grass"]),
468 defFloor = SourceData.GetInt(mapping["defFloor"]),
469 defBlock = SourceData.GetInt(mapping["defBlock"]),
470 edge = SourceData.GetInt(mapping["edge"]),
471 ramp = SourceData.GetInt(mapping["ramp"]),
472 idSound = SourceData.GetString(mapping["idSound"]),
473 soundFoot = SourceData.GetString(mapping["soundFoot"]),
474 hardness = SourceData.GetInt(mapping["hardness"]),
475 groups = SourceData.GetStringArray(mapping["groups"]),
476 tier = SourceData.GetInt(mapping["tier"]),
477 chance = SourceData.GetInt(mapping["chance"]),
478 weight = SourceData.GetInt(mapping["weight"]),
479 value = SourceData.GetInt(mapping["value"]),
480 quality = SourceData.GetInt(mapping["quality"]),
481 atk = SourceData.GetInt(mapping["atk"]),
482 dmg = SourceData.GetInt(mapping["dmg"]),
483 dv = SourceData.GetInt(mapping["dv"]),
484 pv = SourceData.GetInt(mapping["pv"]),
485 dice = SourceData.GetInt(mapping["dice"]),
486 bits = SourceData.GetStringArray(mapping["bits"]),
487 elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
488 altName = SourceData.GetStringArray(mapping["altName"]),
489 altName_JP = SourceData.GetStringArray(mapping["altName_JP"])
490 };
491 }

References SourceData< T, T2 >.GetInt(), SourceData< T, T2 >.GetStr(), SourceData< T, T2 >.GetString(), SourceData< T, T2 >.GetStringArray(), and Core.ParseElements().

◆ GetRowMapping()

override IReadOnlyDictionary< string, int > SourceMaterial.GetRowMapping ( )
inline

Definition at line 498 of file SourceMaterial.cs.

499 {
500 return RowMapping;
501 }
static readonly IReadOnlyDictionary< string, int > RowMapping

References RowMapping.

◆ GetTypeMapping()

override IReadOnlyDictionary< string, string > SourceMaterial.GetTypeMapping ( )
inline

Definition at line 503 of file SourceMaterial.cs.

504 {
505 return TypeMapping;
506 }
static readonly IReadOnlyDictionary< string, string > TypeMapping

References TypeMapping.

◆ OnAfterImportData()

override void SourceMaterial.OnAfterImportData ( )
inline

Definition at line 561 of file SourceMaterial.cs.

562 {
563 rows.Sort((Row r) => r.id);
564 }

References SourceMaterial.Row.id.

◆ OnImportRow()

void SourceMaterial.OnImportRow ( Row  r)
inline

Definition at line 566 of file SourceMaterial.cs.

567 {
568 List<int> list = new List<int>(r.elements);
569 for (int i = 0; i < r.elements.Length; i += 2)
570 {
571 Add(r.elements[i], r.elements[i + 1]);
572 }
573 Add(13, r.hardness);
574 r.elements = list.ToArray();
575 void Add(int ele, int a)
576 {
577 list.Add(ele);
578 list.Add(a);
579 }
580 }

References SourceMaterial.Row.elements, and SourceMaterial.Row.hardness.

◆ OnInit()

override void SourceMaterial.OnInit ( )
inline

Definition at line 508 of file SourceMaterial.cs.

509 {
510 Lookup.Build();
511 Cell.matSource = this;
512 Cell.matList = rows;
513 tierMap.Clear();
514 tierMap.Add("gem", new TierList());
515 tierMap.Add("ore", new TierList());
516 foreach (Row row in rows)
517 {
518 row.Init();
519 row.elementMap = Element.GetElementMap(row.elements);
520 int tier = row.tier;
521 if (tier < 0 || tier > 7)
522 {
523 Debug.LogWarning($"#source material {row.id}/{row.alias} tier {row.tier} is not within 0~{7}");
524 row.tier = Mathf.Clamp(row.tier, 0, 7);
525 }
526 if (!row.groups.IsEmpty())
527 {
528 string[] groups = row.groups;
529 foreach (string key in groups)
530 {
531 TierList tierList = tierMap.TryGetValue(key);
532 if (tierList == null)
533 {
534 tierList = new TierList();
535 tierMap[key] = tierList;
536 }
537 Tier obj = tierList.tiers[row.tier];
538 obj.list.Add(row);
539 obj.sum += row.chance;
540 }
541 }
542 string category = row.category;
543 if (!(category == "gem"))
544 {
545 if (category == "ore")
546 {
547 Tier obj2 = tierMap["ore"].tiers[row.tier];
548 obj2.list.Add(row);
549 obj2.sum += row.chance;
550 }
551 }
552 else
553 {
554 Tier obj3 = tierMap["gem"].tiers[row.tier];
555 obj3.list.Add(row);
556 obj3.sum += row.chance;
557 }
558 }
559 }
static Dictionary< int, int > GetElementMap(int[] list)
Definition: ELEMENT.cs:568
static Dictionary< string, TierList > tierMap
TileLookup< Row > Lookup

References $, SourceMaterial.Row.category, SourceMaterial.Row.chance, Debug, SourceMaterial.Row.elements, Element.GetElementMap(), SourceMaterial.Row.groups, SourceMaterial.Row.Init(), SourceMaterial.Tier.list, Lookup, SourceMaterial.Row.tier, tierMap, and SourceMaterial.TierList.tiers.

◆ SetRow()

override void SourceMaterial.SetRow ( Row  r)
inline

Definition at line 493 of file SourceMaterial.cs.

494 {
495 map[r.id] = r;
496 }

References SourceMaterial.Row.id.

Member Data Documentation

◆ _lookup

TileLookup<Row> SourceMaterial._lookup
private

Definition at line 403 of file SourceMaterial.cs.

◆ RowMapping

readonly IReadOnlyDictionary<string, int> SourceMaterial.RowMapping
static

Definition at line 324 of file SourceMaterial.cs.

Referenced by GetRowMapping().

◆ tierMap

Dictionary<string, TierList> SourceMaterial.tierMap = new Dictionary<string, TierList>()
static

Definition at line 400 of file SourceMaterial.cs.

Referenced by MATERIAL.GetRandomMaterial(), OnInit(), and ActEffect.Proc().

◆ TypeMapping

readonly IReadOnlyDictionary<string, string> SourceMaterial.TypeMapping
static

Definition at line 362 of file SourceMaterial.cs.

Referenced by GetTypeMapping().

Property Documentation

◆ ImportFields

override string [] SourceMaterial.ImportFields
get

Definition at line 409 of file SourceMaterial.cs.

◆ Lookup

TileLookup<Row> SourceMaterial.Lookup
getprivate

Definition at line 405 of file SourceMaterial.cs.

Referenced by OnInit().

◆ this[int id]

Row SourceMaterial.this[int id]
get

Definition at line 407 of file SourceMaterial.cs.


The documentation for this class was generated from the following file: