12 public void Add(
Card c)
15 CS$<>8__locals1.c = c;
18 id = CS$<>8__locals1.c.id,
19 idEditor = CS$<>8__locals1.c.c_idEditor,
20 idRefCard = CS$<>8__locals1.c.c_idRefCard,
21 idTrait = CS$<>8__locals1.c.c_idTrait,
22 tags = CS$<>8__locals1.c.c_editorTags,
23 traitVals = CS$<>8__locals1.c.c_editorTraitVal,
24 obj = CS$<>8__locals1.c.mapObj,
25 idMat = CS$<>8__locals1.c.material.id,
26 x = CS$<>8__locals1.c.pos.x,
27 z = CS$<>8__locals1.c.pos.z,
28 placeState = (int)CS$<>8__locals1.c.placeState,
29 dir = CS$<>8__locals1.c.dir,
30 altitude = CS$<>8__locals1.c.altitude,
31 fx = (
int)(CS$<>8__locals1.c.fx * 1000f),
32 fy = (
int)(CS$<>8__locals1.c.fy * 1000f),
33 lightColor = CS$<>8__locals1.c.c_lightColor,
34 bits1 = CS$<>8__locals1.c._bits1.ToInt(),
35 bits2 = CS$<>8__locals1.c._bits2.ToInt(),
36 tile = CS$<>8__locals1.c.sourceCard.tiles[0],
37 idRender = CS$<>8__locals1.c.sourceCard.idRenderData,
38 refVal = CS$<>8__locals1.c.refVal,
39 idSkin = CS$<>8__locals1.c.idSkin,
40 idDeity = CS$<>8__locals1.c.c_idDeity
42 if (CS$<>8__locals1.c.c_idBacker != 0)
45 if (row !=
null && row.isStatic != 0)
47 CS$<>8__locals1.data.idBacker = CS$<>8__locals1.c.c_idBacker;
50 if (CS$<>8__locals1.c.material.id == CS$<>8__locals1.c.DefaultMaterial.id)
52 CS$<>8__locals1.data.idMat = -1;
54 CS$<>8__locals1.data.idDyeMat = (CS$<>8__locals1.c.isDyed ? CS$<>8__locals1.c.c_dyeMat : -1);
55 if (CS$<>8__locals1.c.isChara)
57 Point orgPos = CS$<>8__locals1.c.Chara.orgPos;
60 CS$<>8__locals1.data.x = orgPos.x;
61 CS$<>8__locals1.data.z = orgPos.z;
63 if (CS$<>8__locals1.c.Chara.isDead)
65 CS$<>8__locals1.data.isDead =
true;
67 if (CS$<>8__locals1.c.Chara.uidEditor == 0)
72 if (chara.uidEditor >= num)
74 num = chara.uidEditor + 1;
77 CS$<>8__locals1.c.Chara.uidEditor = num;
79 CS$<>8__locals1.data.lv = CS$<>8__locals1.c.LV;
80 CS$<>8__locals1.data.element = CS$<>8__locals1.c.c_idMainElement;
81 CS$<>8__locals1.data.uidEditor = CS$<>8__locals1.c.Chara.uidEditor;
84 this.cards.Add(CS$<>8__locals1.data);
85 CS$<>8__locals1.data.ints[0] = CS$<>8__locals1.data._bits1.ToInt();
89 public void Restore(
Map map,
Map orgMap,
bool addToZone,
PartialMap partial =
null)
91 List<Thing> things = map.things;
92 List<Chara> serializedCharas = map.serializedCharas;
93 bool isUserZone =
EClass._zone.IsUserZone;
94 this.importedCards.Clear();
101 if (partial.result.ruined.Contains(point.index))
106 int num2 = point.x - partial.offsetX;
107 int num3 = point.z - partial.offsetZ;
129 point.x = num2 + partial.destX;
130 point.z = num3 + partial.destZ;
131 if (!partial.validPoints.Contains(point.index) || !point.IsValid)
135 if (!partial.editMode)
139 if (!(
id ==
"sign_spawnThing"))
141 if (
id ==
"sign_spawnChara")
143 card =
CharaGen.CreateFromFilter(data.idRefCard.IsEmpty(
EClass._zone.biome.spawn.GetRandomCharaId()),
EClass._zone.DangerLv, -1);
148 card =
ThingGen.CreateFromFilter(data.idRefCard.IsEmpty(
EClass._zone.biome.spawn.GetRandomThingId()),
EClass._zone.DangerLv);
153 EClass._zone.AddCard(card, card.pos);
154 if (card.trait.IsDoor)
156 EClass._map.OnSetBlockOrDoor(card.pos.x, card.pos.z);
163 data._bits1.SetInt(data.ints[0]);
164 string text = data.id;
167 text = (data.idV.ToString() ??
"");
169 if (addToZone && partial !=
null && !partial.editMode)
172 if (!(
id ==
"editor_torch"))
174 if (
id ==
"editor_torch_wall")
176 text =
EClass._zone.biome.style.GetIdLight(
true);
181 text =
EClass._zone.biome.style.GetIdLight(
false);
184 CardRow source =
EClass.sources.cards.map.TryGetValue(text,
null);
193 if (source.quality >= 4)
195 using (Dictionary<int, Chara>.ValueCollection.Enumerator enumerator2 =
EClass.game.cards.globalCharas.Values.GetEnumerator())
197 while (enumerator2.MoveNext())
199 if (enumerator2.Current.id == text)
209 foreach (
Chara chara
in orgMap.charas.Concat(orgMap.serializedCharas).Concat(orgMap.deadCharas))
211 if (source.quality >= 4 && chara.id == text)
216 if (chara.id == text && chara.orgPos !=
null && chara.orgPos.Equals(point))
229 if (data.ints.Length > 20)
231 card2.Chara.SetLv(data.lv);
232 if (data.element != 0)
234 card2.Chara.SetMainElement(data.element, 0,
false);
237 card2.Chara.orgPos = point.Copy();
241 card2.Chara.isDead =
true;
243 card2.Chara.hunger.value =
EClass.rnd(
EClass.rnd(20) + 1);
246 serializedCharas.Add(card2.Chara);
251 PlaceState placeState = data.placeState.ToEnum<PlaceState>();
252 if (isUserZone && placeState != PlaceState.installed)
261 card2.ChangeMaterial((data.idMat == -1) ? card2.DefaultMaterial.id : data.idMat);
264 things.Add(card2.Thing);
266 card2.altitude = data.altitude;
267 card2.placeState = placeState;
268 card2.c_lightColor = data.lightColor;
272 num = Mathf.Abs(card2.sourceCard.tiles.Length + num);
276 card2._bits1.SetInt(data.bits1);
277 card2._bits2.SetInt(data.bits2);
278 card2.isPlayerCreation =
true;
279 card2.autoRefuel =
true;
280 card2.c_editorTraitVal = data.traitVals;
281 card2.c_idRefCard = data.idRefCard;
282 card2.isImported =
true;
283 card2.refVal = data.refVal;
284 card2.idSkin = data.idSkin;
285 card2.c_idDeity = data.idDeity;
286 if (data.idBacker != 0)
288 Debug.Log(data.idBacker);
289 card2.c_idBacker = data.idBacker;
291 if (this.version >= 2 && data.idDyeMat != -1)
293 card2.Dye(
EClass.sources.materials.rows[data.idDyeMat]);
295 card2.mapObj = data.obj;
296 Dictionary<int, object> mapObj = card2.mapObj;
297 if (((mapObj !=
null) ? mapObj.TryGetValue(2,
null) :
null) !=
null)
299 card2.mapObj.Remove(2);
301 if (data.cstr !=
null)
303 foreach (KeyValuePair<int, string> keyValuePair
in data.cstr)
305 card2.SetStr(keyValuePair.Key, keyValuePair.Value);
310 card2.fx = (float)data.fx * 0.001f;
311 card2.fy = (float)data.fy * 0.001f;
313 if (!data.idEditor.IsEmpty())
315 card2.c_idEditor = data.idEditor;
317 if (!data.idTrait.IsEmpty())
319 card2.c_idTrait = data.idTrait;
321 card2.trait.OnCreate(
EClass._zone.lv);
323 if (!data.tags.IsEmpty())
325 card2.c_editorTags = data.tags;
328 foreach (
string value
in data.tags.Split(
',', StringSplitOptions.None))
330 card2.ApplyEditorTags(value.ToEnum(
true));
335 Debug.LogWarning(
"Could not convert editor tag:" + card2.Name +
"/" + data.tags);
340 card2.Chara.homeZone =
EClass._zone;
341 card2.Chara.uidEditor = data.uidEditor;
342 if (card2.isBackerContent)
344 card2.ApplyBacker(card2.c_idBacker);
349 EClass._zone.AddCard(card2, card2.pos);
350 if (card2.trait.IsDoor)
352 EClass._map.OnSetBlockOrDoor(card2.pos.x, card2.pos.z);
354 if (partial !=
null && !card2.sourceCard.lightData.IsEmpty())
356 partial.result.hasLight =
true;
359 this.importedCards.Add(card2);
362 foreach (
Card card3
in this.importedCards)
366 foreach (
Card card4
in this.importedCards)
368 if (card4.isRestrained && card4.pos.Equals(card3.pos))
370 card3.c_uidRefCard = card4.uid;
374 card3.trait.OnImportMap();
380 internal static void <Add>g__TryAddStr|4_0(
int key, ref
SerializedCards.<>c__DisplayClass4_0 A_1)
382 string str = A_1.c.GetStr(key,
null);
385 if (A_1.data.cstr ==
null)
387 A_1.data.cstr =
new Dictionary<int, string>();
389 A_1.data.cstr[key] = str;
399 public int version = 2;
402 public List<Card> importedCards =
new List<Card>();
418 this.ints[2] = value;
433 this.ints[3] = value;
448 this.ints[4] = value;
463 this.ints[5] = value;
478 this.ints[6] = value;
493 this.ints[7] = value;
500 public int placeState
508 this.ints[8] = value;
523 this.ints[9] = value;
534 return this.ints[10];
538 this.ints[10] = value;
549 return this.ints[11];
553 this.ints[11] = value;
560 public int lightColor
564 return this.ints[12];
568 this.ints[12] = value;
579 return this.ints[13];
583 this.ints[13] = value;
594 return this.ints[14];
598 this.ints[14] = value;
609 return this.ints[15];
613 this.ints[15] = value;
624 return this.ints[16];
628 this.ints[16] = value;
639 return this.ints[17];
643 this.ints[17] = value;
654 return this.ints[18];
658 this.ints[18] = value;
669 return this.ints[19];
673 this.ints[19] = value;
684 return this.ints[20];
688 this.ints[20] = value;
699 return this.ints[21];
703 this.ints[21] = value;
718 this.strs[0] = value;
725 public string idEditor
733 this.strs[1] = value;
740 public string idTrait
748 this.strs[2] = value;
763 this.strs[3] = value;
770 public string idRender
778 this.strs[4] = value;
785 public string traitVals
793 this.strs[5] = value;
800 public string idRefCard
808 this.strs[6] = value;
815 public string idDeity
823 this.strs[7] = value;
834 return this._bits1[0];
838 this._bits1[0] = value;
844 public int[] ints =
new int[30];
848 public string[] strs =
new string[10];
852 public Dictionary<int, object> obj;
856 public Dictionary<int, string> cstr;
859 public BitArray32 _bits1;