Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
SerializedCards Class Reference
Inheritance diagram for SerializedCards:
EClass

Classes

class  Data
 

Public Member Functions

void Add (Card c)
 
void Restore (Map map, Map orgMap, bool addToZone, PartialMap partial=null)
 

Public Attributes

List< Datacards = new List<Data>()
 
int version = 2
 
List< CardimportedCards = new List<Card>()
 

Additional Inherited Members

- Static Public Member Functions inherited from EClass
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Static Public Attributes inherited from EClass
static Core core
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 6 of file SerializedCards.cs.

Member Function Documentation

◆ Add()

void SerializedCards.Add ( Card  c)
inline

Definition at line 393 of file SerializedCards.cs.

394 {
395 Data data = new Data
396 {
397 id = c.id,
398 idEditor = c.c_idEditor,
399 idRefCard = c.c_idRefCard,
400 idTrait = c.c_idTrait,
401 tags = c.c_editorTags,
402 traitVals = c.c_editorTraitVal,
403 obj = c.mapObj,
404 idMat = c.material.id,
405 x = c.pos.x,
406 z = c.pos.z,
407 placeState = (int)c.placeState,
408 dir = c.dir,
409 altitude = c.altitude,
410 fx = (int)(c.fx * 1000f),
411 fy = (int)(c.fy * 1000f),
412 lightColor = c.c_lightColor,
413 bits1 = c._bits1.ToInt(),
414 bits2 = c._bits2.ToInt(),
415 tile = c.sourceCard.tiles[0],
416 idRender = c.sourceCard.idRenderData,
417 refVal = c.refVal,
418 idSkin = c.idSkin,
419 idDeity = c.c_idDeity,
420 isEmpty = (c.things.Count == 0)
421 };
422 if (c.c_idBacker != 0)
423 {
424 SourceBacker.Row row = EClass.sources.backers.map.TryGetValue(c.c_idBacker);
425 if (row != null && row.isStatic != 0)
426 {
427 data.idBacker = c.c_idBacker;
428 }
429 }
430 if (c.material.id == c.DefaultMaterial.id)
431 {
432 data.idMat = -1;
433 }
434 data.idDyeMat = (c.isDyed ? c.c_dyeMat : (-1));
435 if (c.isChara)
436 {
437 Point orgPos = c.Chara.orgPos;
438 if (orgPos != null)
439 {
440 data.x = orgPos.x;
441 data.z = orgPos.z;
442 }
443 if (c.Chara.isDead)
444 {
445 data.isDead = true;
446 }
447 if (c.Chara.uidEditor == 0)
448 {
449 int num = 1;
450 foreach (Chara item in EClass._map.charas.Concat(EClass._map.deadCharas))
451 {
452 if (item.uidEditor >= num)
453 {
454 num = item.uidEditor + 1;
455 }
456 }
457 c.Chara.uidEditor = num;
458 }
459 data.lv = c.LV;
460 data.element = c.c_idMainElement;
461 data.uidEditor = c.Chara.uidEditor;
462 }
463 TryAddStr(52);
464 cards.Add(data);
465 data.ints[0] = data._bits1.ToInt();
466 void TryAddStr(int key)
467 {
468 string str = c.GetStr(key);
469 if (!str.IsEmpty())
470 {
471 if (data.cstr == null)
472 {
473 data.cstr = new Dictionary<int, string>();
474 }
475 data.cstr[key] = str;
476 }
477 }
478 }
string GetStr(int id, string defaultStr=null)
Definition: BaseCard.cs:54
Dictionary< int, object > mapObj
Definition: BaseCard.cs:7
override string idRenderData
Definition: CardRow.cs:62
BitArray32 _bits1
Definition: Card.cs:75
virtual Chara Chara
Definition: Card.cs:1946
int c_idMainElement
Definition: Card.cs:1337
string id
Definition: Card.cs:31
SourceMaterial.Row material
Definition: Card.cs:1927
string c_idDeity
Definition: Card.cs:1481
string c_idTrait
Definition: Card.cs:1625
virtual SourceMaterial.Row DefaultMaterial
Definition: Card.cs:2281
BitArray32 _bits2
Definition: Card.cs:77
PlaceState placeState
Definition: Card.cs:79
string c_idEditor
Definition: Card.cs:1589
Point pos
Definition: Card.cs:55
string c_editorTags
Definition: Card.cs:1601
int c_lightColor
Definition: Card.cs:1056
int refVal
Definition: Card.cs:190
int altitude
Definition: Card.cs:214
int c_idBacker
Definition: Card.cs:1361
virtual bool isChara
Definition: Card.cs:1959
int idSkin
Definition: Card.cs:346
int dir
Definition: Card.cs:142
virtual CardRow sourceCard
Definition: Card.cs:2007
string c_editorTraitVal
Definition: Card.cs:1613
int LV
Definition: Card.cs:370
string c_idRefCard
Definition: Card.cs:1637
Definition: Chara.cs:10
int uidEditor
Definition: Chara.cs:338
Point orgPos
Definition: Chara.cs:21
bool isDead
Definition: Chara.cs:374
Definition: EClass.cs:5
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
List< Chara > deadCharas
Definition: Map.cs:46
List< Chara > charas
Definition: Map.cs:81
Definition: Point.cs:9
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
int[] tiles
Definition: RenderRow.cs:10
List< Data > cards
SourceBacker backers
int ToInt()
Definition: BitArray32.cs:84

References Card._bits1, SerializedCards.Data._bits1, Card._bits2, EClass._map, Card.altitude, SourceManager.backers, Card.c_editorTags, Card.c_editorTraitVal, Card.c_idBacker, Card.c_idDeity, Card.c_idEditor, Card.c_idMainElement, Card.c_idRefCard, Card.c_idTrait, Card.c_lightColor, cards, Card.Chara, Map.charas, SerializedCards.Data.cstr, Map.deadCharas, Card.DefaultMaterial, Card.dir, BaseCard.GetStr(), Card.id, CardRow.idRenderData, Card.idSkin, SerializedCards.Data.ints, Card.isChara, Chara.isDead, SourceBacker.Row.isStatic, item, Card.LV, BaseCard.mapObj, Card.material, Chara.orgPos, Card.placeState, Card.pos, Card.refVal, Card.sourceCard, EClass.sources, RenderRow.tiles, BitArray32.ToInt(), Chara.uidEditor, Point.x, and Point.z.

Referenced by MapSubset.OnSave().

◆ Restore()

void SerializedCards.Restore ( Map  map,
Map  orgMap,
bool  addToZone,
PartialMap  partial = null 
)
inline

Definition at line 480 of file SerializedCards.cs.

481 {
482 List<Thing> things = map.things;
483 List<Chara> serializedCharas = map.serializedCharas;
484 bool isUserZone = EClass._zone.IsUserZone;
485 Dictionary<int, int> dictionary = new Dictionary<int, int>();
486 Dictionary<int, int> dictionary2 = new Dictionary<int, int>();
487 importedCards.Clear();
488 foreach (Data card4 in cards)
489 {
490 int num = card4.dir;
491 Point point = new Point(card4.x, card4.z);
492 int index = point.index;
493 if (partial != null)
494 {
495 if (partial.result.ruined.Contains(point.index))
496 {
497 continue;
498 }
499 num -= partial.dir;
500 int num2 = point.x - partial.offsetX;
501 int num3 = point.z - partial.offsetZ;
502 switch (partial.dir)
503 {
504 case 1:
505 {
506 int num5 = num2;
507 num2 = num3;
508 num3 = -num5;
509 break;
510 }
511 case 2:
512 num2 = -num2;
513 num3 = -num3;
514 break;
515 case 3:
516 {
517 int num4 = num2;
518 num2 = -num3;
519 num3 = num4;
520 break;
521 }
522 }
523 point.x = num2 + partial.destX;
524 point.z = num3 + partial.destZ;
525 if (!partial.validPoints.Contains(point.index) || !point.IsValid)
526 {
527 continue;
528 }
529 if (!partial.editMode)
530 {
531 Card card = null;
532 string id = card4.id;
533 if (!(id == "sign_spawnThing"))
534 {
535 if (id == "sign_spawnChara")
536 {
538 }
539 }
540 else
541 {
543 }
544 if (card != null)
545 {
546 card.pos = point;
548 if (card.trait.IsDoor)
549 {
550 EClass._map.OnSetBlockOrDoor(card.pos.x, card.pos.z);
551 }
552 continue;
553 }
554 }
555 }
556 card4._bits1.SetInt(card4.ints[0]);
557 string text = card4.id;
558 if (card4.idV != 0)
559 {
560 text = card4.idV.ToString() ?? "";
561 }
562 if (addToZone && partial != null && !partial.editMode)
563 {
564 string id = card4.id;
565 if (!(id == "editor_torch"))
566 {
567 if (id == "editor_torch_wall")
568 {
569 text = EClass._zone.biome.style.GetIdLight(wall: true);
570 }
571 }
572 else
573 {
574 text = EClass._zone.biome.style.GetIdLight(wall: false);
575 }
576 }
577 CardRow source = EClass.sources.cards.map.TryGetValue(text);
578 if (source == null)
579 {
580 continue;
581 }
582 Card card2 = null;
583 if (source.isChara)
584 {
585 if (orgMap != null)
586 {
587 bool flag = false;
588 if (source.quality >= 4)
589 {
590 foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
591 {
592 if (value2.id == text)
593 {
594 flag = true;
595 break;
596 }
597 }
598 }
599 if (!flag)
600 {
601 foreach (Chara item in orgMap.charas.Concat(orgMap.serializedCharas).Concat(orgMap.deadCharas))
602 {
603 if (source.quality >= 4 && item.id == text)
604 {
605 flag = true;
606 break;
607 }
608 if (item.id == text && item.orgPos != null && item.orgPos.Equals(point))
609 {
610 flag = true;
611 break;
612 }
613 }
614 }
615 if (flag)
616 {
617 continue;
618 }
619 }
620 if (isUserZone && ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)dictionary, index, 0) >= 3)
621 {
622 continue;
623 }
624 card2 = CharaGen.Create(text);
625 if (card4.ints.Length > 20)
626 {
627 card2.Chara.SetLv(card4.lv);
628 if (card4.element != 0)
629 {
630 card2.Chara.SetMainElement(card4.element);
631 }
632 }
633 card2.Chara.orgPos = point.Copy();
634 if (card4.isDead)
635 {
636 card2.hp = -1;
637 card2.Chara.isDead = true;
638 }
639 card2.Chara.hunger.value = EClass.rnd(EClass.rnd(20) + 1);
640 if (!addToZone)
641 {
642 serializedCharas.Add(card2.Chara);
643 }
644 if (isUserZone)
645 {
646 dictionary[index] = ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)dictionary, index, 0) + 1;
647 }
648 }
649 else
650 {
651 PlaceState placeState = card4.placeState.ToEnum<PlaceState>();
652 if (isUserZone && ((ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)dictionary2, index, 0) >= 20 && text != "waystone" && text != "core_zone") || (placeState != PlaceState.installed && !card4.bits1.IsOn(13)) || text == "medal"))
653 {
654 continue;
655 }
656 if (source.isOrigin)
657 {
658 text = SpawnListThing.Get("origin_" + text, (SourceThing.Row a) => a.origin == source).GetFirst().id;
659 }
660 card2 = ThingGen.Create(text, -1, EClass._zone.DangerLv);
661 card2.ChangeMaterial((card4.idMat == -1) ? card2.DefaultMaterial.id : card4.idMat);
662 if (!addToZone)
663 {
664 things.Add(card2.Thing);
665 }
666 card2.altitude = card4.altitude;
667 card2.placeState = placeState;
668 card2.c_lightColor = card4.lightColor;
669 if (isUserZone)
670 {
671 dictionary2[index] = ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)dictionary2, index, 0) + 1;
672 }
673 }
674 if (num < 0)
675 {
676 num = Mathf.Abs(card2.sourceCard.tiles.Length + num);
677 }
678 card2.pos = point;
679 card2.dir = num;
680 card2._bits1.SetInt(card4.bits1);
681 card2._bits2.SetInt(card4.bits2);
682 card2.isPlayerCreation = true;
683 card2.autoRefuel = true;
684 card2.c_editorTraitVal = card4.traitVals;
685 card2.c_idRefCard = card4.idRefCard;
686 card2.isImported = true;
687 card2.refVal = card4.refVal;
688 card2.idSkin = card4.idSkin;
689 card2.c_idDeity = card4.idDeity;
690 if (card4.idBacker != 0)
691 {
692 Debug.Log(card4.idBacker);
693 card2.c_idBacker = card4.idBacker;
694 }
695 if (version >= 2 && card4.idDyeMat != -1)
696 {
697 card2.Dye(EClass.sources.materials.rows[card4.idDyeMat]);
698 }
699 card2.mapObj = card4.obj;
700 if (card2.mapObj?.TryGetValue(2) != null)
701 {
702 card2.mapObj.Remove(2);
703 }
704 if (card4.cstr != null)
705 {
706 foreach (KeyValuePair<int, string> item2 in card4.cstr)
707 {
708 card2.SetStr(item2.Key, item2.Value);
709 }
710 }
711 if (card2.freePos)
712 {
713 card2.fx = (float)card4.fx * 0.001f;
714 card2.fy = (float)card4.fy * 0.001f;
715 }
716 if (!card4.idEditor.IsEmpty())
717 {
718 card2.c_idEditor = card4.idEditor;
719 }
720 if (!card4.idTrait.IsEmpty())
721 {
722 card2.c_idTrait = card4.idTrait;
723 card2.ApplyTrait();
725 }
726 if (!card4.tags.IsEmpty())
727 {
728 card2.c_editorTags = card4.tags;
729 try
730 {
731 string[] array = card4.tags.Split(',');
732 foreach (string value in array)
733 {
734 card2.ApplyEditorTags(value.ToEnum<EditorTag>());
735 }
736 }
737 catch
738 {
739 Debug.LogWarning("Could not convert editor tag:" + card2.Name + "/" + card4.tags);
740 }
741 }
742 if (isUserZone)
743 {
744 if ((card2.isHidden || card2.isMasked) && ((card2.TileType.IsBlockPass && card2.IsInstalled) || card2.trait is TraitCoreZone || card2.trait is TraitWaystone))
745 {
746 Card card3 = card2;
747 bool isHidden = (card2.isMasked = false);
748 card3.isHidden = isHidden;
749 }
750 if (card2.IsContainer && card4.isEmpty)
751 {
752 card2.things.DestroyAll();
753 }
754 }
755 if (card2.isChara)
756 {
757 card2.Chara.homeZone = EClass._zone;
758 card2.Chara.uidEditor = card4.uidEditor;
759 if (card2.isBackerContent)
760 {
761 card2.ApplyBacker(card2.c_idBacker);
762 }
763 card2.SetObj(5, null);
764 }
765 if (addToZone)
766 {
767 EClass._zone.AddCard(card2, card2.pos);
768 if (card2.trait.IsDoor)
769 {
770 EClass._map.OnSetBlockOrDoor(card2.pos.x, card2.pos.z);
771 }
772 if (partial != null && !card2.sourceCard.lightData.IsEmpty())
773 {
774 partial.result.hasLight = true;
775 }
776 }
777 importedCards.Add(card2);
778 }
779 foreach (Card importedCard in importedCards)
780 {
781 if (importedCard.trait is TraitShackle)
782 {
783 foreach (Card importedCard2 in importedCards)
784 {
785 if (importedCard2.isRestrained && importedCard2.pos.Equals(importedCard.pos))
786 {
787 importedCard.c_uidRefCard = importedCard2.uid;
788 }
789 }
790 }
791 importedCard.trait.OnImportMap();
792 }
793 }
EditorTag
Definition: EditorTag.cs:2
PlaceState
Definition: PlaceState.cs:2
void SetStr(int id, string value=null)
Definition: BaseCard.cs:63
void SetObj(int id, object o)
Definition: BaseCard.cs:91
string GetRandomThingId()
string GetRandomCharaId()
string GetIdLight(bool wall)
GlobalCharaList globalCharas
Definition: CardManager.cs:46
int quality
Definition: CardRow.cs:19
bool isChara
Definition: CardRow.cs:55
bool isOrigin
Definition: CardRow.cs:52
string lightData
Definition: CardRow.cs:13
Definition: Card.cs:11
bool isMasked
Definition: Card.cs:562
bool isRestrained
Definition: Card.cs:538
float fy
Definition: Card.cs:250
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2838
Card SetLv(int a)
Definition: Card.cs:2735
string Name
Definition: Card.cs:2013
int uid
Definition: Card.cs:118
void Dye(string idMat)
Definition: Card.cs:5267
void ApplyTrait()
Definition: Card.cs:2714
Trait trait
Definition: Card.cs:49
virtual void ApplyEditorTags(EditorTag tag)
Definition: Card.cs:2689
ThingContainer things
Definition: Card.cs:34
bool IsInstalled
Definition: Card.cs:2241
virtual Thing Thing
Definition: Card.cs:1934
bool isHidden
Definition: Card.cs:502
void ApplyBacker(int bid)
Definition: Card.cs:6193
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:2878
bool IsContainer
Definition: Card.cs:1965
bool freePos
Definition: Card.cs:490
bool isBackerContent
Definition: Card.cs:885
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
Definition: CharaGen.cs:22
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
void SetMainElement(string id, int v=0, bool elemental=false)
Definition: Chara.cs:1804
static Game game
Definition: EClass.cs:8
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
CardManager cards
Definition: Game.cs:155
List< Thing > things
Definition: Map.cs:49
List< Chara > serializedCharas
Definition: Map.cs:43
void OnSetBlockOrDoor(int x, int z)
Definition: Map.cs:1018
List< int > ruined
Definition: PartialMap.cs:22
int offsetX
Definition: PartialMap.cs:31
int offsetZ
Definition: PartialMap.cs:34
HashSet< int > validPoints
Definition: PartialMap.cs:82
Result result
Definition: PartialMap.cs:84
bool editMode
Definition: PartialMap.cs:70
int index
Definition: Point.cs:49
Point Copy()
Definition: Point.cs:467
bool Equals(int _x, int _z)
Definition: Point.cs:924
bool IsValid
Definition: Point.cs:88
List< Card > importedCards
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceMaterial materials
SourceCard cards
int lv
Definition: Spatial.cs:142
static SpawnList Get(string id, Func< SourceThing.Row, bool > func)
string id
Definition: SpawnList.cs:10
void DestroyAll(Func< Thing, bool > funcExclude=null)
static Thing CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
virtual void OnImportMap()
Definition: Trait.cs:606
virtual bool IsDoor
Definition: Trait.cs:56
virtual void OnCreate(int lv)
Definition: Trait.cs:618
BiomeProfile biome
Definition: Zone.cs:126
virtual bool IsUserZone
Definition: Zone.cs:264
override int DangerLv
Definition: Zone.cs:107
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893
void SetInt(int i)
Definition: BitArray32.cs:89

References Card._bits1, SerializedCards.Data._bits1, Card._bits2, EClass._map, EClass._zone, Card.Add(), Zone.AddCard(), SerializedCards.Data.altitude, Card.ApplyBacker(), Card.ApplyEditorTags(), Card.ApplyTrait(), Zone.biome, SerializedCards.Data.bits1, SerializedCards.Data.bits2, Card.c_idBacker, card, Game.cards, cards, SourceManager.cards, Card.ChangeMaterial(), Card.Chara, Point.Copy(), ThingGen.Create(), CharaGen.Create(), ThingGen.CreateFromFilter(), CharaGen.CreateFromFilter(), SerializedCards.Data.cstr, Zone.DangerLv, Debug, ThingContainer.DestroyAll(), SerializedCards.Data.dir, Card.Dye(), SerializedCards.Data.element, Point.Equals(), Card.freePos, SerializedCards.Data.fx, Card.fy, EClass.game, SpawnListThing.Get(), BiomeProfile.Style.GetIdLight(), BiomeProfile.Spawns.GetRandomCharaId(), BiomeProfile.Spawns.GetRandomThingId(), CardManager.globalCharas, Card.id, SerializedCards.Data.id, SpawnList.id, SerializedCards.Data.idBacker, SerializedCards.Data.idDeity, SerializedCards.Data.idDyeMat, SerializedCards.Data.idEditor, SerializedCards.Data.idMat, SerializedCards.Data.idRefCard, SerializedCards.Data.idSkin, SerializedCards.Data.idTrait, SerializedCards.Data.idV, importedCards, Point.index, SerializedCards.Data.ints, Card.isBackerContent, Card.isChara, CardRow.isChara, Card.IsContainer, SerializedCards.Data.isDead, Trait.IsDoor, SerializedCards.Data.isEmpty, Card.isHidden, Card.IsInstalled, Card.isMasked, CardRow.isOrigin, Card.isRestrained, Zone.IsUserZone, Point.IsValid, item, SerializedCards.Data.lightColor, CardRow.lightData, SerializedCards.Data.lv, Spatial.lv, SourceCard.map, BaseCard.mapObj, SourceManager.materials, Card.Name, SerializedCards.Data.obj, Trait.OnCreate(), Trait.OnImportMap(), Map.OnSetBlockOrDoor(), SerializedCards.Data.placeState, Card.pos, CardRow.quality, SerializedCards.Data.refVal, EClass.rnd(), Map.serializedCharas, BitArray32.SetInt(), Card.SetLv(), Chara.SetMainElement(), BaseCard.SetObj(), BaseCard.SetStr(), Card.sourceCard, EClass.sources, BiomeProfile.spawn, BiomeProfile.style, SerializedCards.Data.tags, Card.Thing, Card.things, Map.things, RenderRow.tiles, Card.trait, SerializedCards.Data.traitVals, Card.uid, SerializedCards.Data.uidEditor, version, Point.x, SerializedCards.Data.x, Point.z, and SerializedCards.Data.z.

Referenced by MapSubset.Apply(), PartialMap.Apply(), and Map.OnImport().

Member Data Documentation

◆ cards

List<Data> SerializedCards.cards = new List<Data>()

Definition at line 386 of file SerializedCards.cs.

Referenced by Add(), PartialMap.Apply(), MapSubset.OnSave(), and Restore().

◆ importedCards

List<Card> SerializedCards.importedCards = new List<Card>()

Definition at line 391 of file SerializedCards.cs.

Referenced by Restore().

◆ version

int SerializedCards.version = 2

Definition at line 389 of file SerializedCards.cs.

Referenced by Restore().


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