Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Spatial.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Runtime.Serialization;
3using Algorithms;
4using Newtonsoft.Json;
5using UnityEngine;
6
7public class Spatial : EClass
8{
9 [JsonProperty]
11
12 [JsonProperty]
13 public string id;
14
15 [JsonProperty]
16 public string idUser;
17
18 [JsonProperty]
19 public string name;
20
21 [JsonProperty]
22 public string idMainFaction;
23
24 [JsonProperty]
25 public string idProfile;
26
27 [JsonProperty]
28 public string idCurrentSubset;
29
30 [JsonProperty]
31 public string idHat;
32
33 [JsonProperty]
34 public int[] _ints = new int[30];
35
36 [JsonProperty]
37 public List<Spatial> children = new List<Spatial>();
38
39 [JsonProperty]
40 public List<Spatial> connections = new List<Spatial>();
41
42 [JsonProperty(PropertyName = "Y")]
43 public Dictionary<int, int> mapInt = new Dictionary<int, int>();
44
45 public bool destryoed;
46
47 public bool isImported;
48
50
52
54
55 protected Point _regionPos = new Point();
56
57 public int _bits
58 {
59 get
60 {
61 return _ints[0];
62 }
63 set
64 {
65 _ints[0] = value;
66 }
67 }
68
69 public int uid
70 {
71 get
72 {
73 return _ints[1];
74 }
75 set
76 {
77 _ints[1] = value;
78 }
79 }
80
81 public int icon
82 {
83 get
84 {
85 return _ints[2];
86 }
87 set
88 {
89 _ints[2] = value;
90 }
91 }
92
93 public int x
94 {
95 get
96 {
97 return _ints[3];
98 }
99 set
100 {
101 _ints[3] = value;
102 }
103 }
104
105 public int y
106 {
107 get
108 {
109 return _ints[4];
110 }
111 set
112 {
113 _ints[4] = value;
114 }
115 }
116
117 public int lastActive
118 {
119 get
120 {
121 return _ints[5];
122 }
123 set
124 {
125 _ints[5] = value;
126 }
127 }
128
129 public int idPrefix
130 {
131 get
132 {
133 return _ints[6];
134 }
135 set
136 {
137 _ints[6] = value;
138 }
139 }
140
141 public int lv
142 {
143 get
144 {
145 return _ints[7];
146 }
147 set
148 {
149 _ints[7] = value;
150 }
151 }
152
153 public int visitCount
154 {
155 get
156 {
157 return _ints[8];
158 }
159 set
160 {
161 _ints[8] = value;
162 }
163 }
164
165 public int dateExpire
166 {
167 get
168 {
169 return _ints[9];
170 }
171 set
172 {
173 _ints[9] = value;
174 }
175 }
176
177 public int dateRevive
178 {
179 get
180 {
181 return _ints[10];
182 }
183 set
184 {
185 _ints[10] = value;
186 }
187 }
188
189 public int _dangerLv
190 {
191 get
192 {
193 return _ints[11];
194 }
195 set
196 {
197 _ints[11] = value;
198 }
199 }
200
201 public int dateRegenerate
202 {
203 get
204 {
205 return _ints[12];
206 }
207 set
208 {
209 _ints[12] = value;
210 }
211 }
212
213 public int influence
214 {
215 get
216 {
217 return _ints[13];
218 }
219 set
220 {
221 _ints[13] = value;
222 }
223 }
224
225 public int investment
226 {
227 get
228 {
229 return _ints[14];
230 }
231 set
232 {
233 _ints[14] = value;
234 }
235 }
236
237 public int development
238 {
239 get
240 {
241 return _ints[15];
242 }
243 set
244 {
245 _ints[15] = value;
246 }
247 }
248
249 public int electricity
250 {
251 get
252 {
253 return _ints[16];
254 }
255 set
256 {
257 _ints[16] = value;
258 }
259 }
260
261 public int dateHat
262 {
263 get
264 {
265 return _ints[17];
266 }
267 set
268 {
269 _ints[17] = value;
270 }
271 }
272
273 public int uidBoss
274 {
275 get
276 {
277 return _ints[18];
278 }
279 set
280 {
281 _ints[18] = value;
282 }
283 }
284
285 public int dateQuest
286 {
287 get
288 {
289 return _ints[19];
290 }
291 set
292 {
293 _ints[19] = value;
294 }
295 }
296
297 public int version
298 {
299 get
300 {
301 return _ints[20];
302 }
303 set
304 {
305 _ints[20] = value;
306 }
307 }
308
309 public bool isGenerated
310 {
311 get
312 {
313 return bits[0];
314 }
315 set
316 {
317 bits[0] = value;
318 }
319 }
320
321 public bool isShore
322 {
323 get
324 {
325 return bits[3];
326 }
327 set
328 {
329 bits[3] = value;
330 }
331 }
332
333 public bool isRandomSite
334 {
335 get
336 {
337 return bits[6];
338 }
339 set
340 {
341 bits[6] = value;
342 }
343 }
344
345 public bool isKnown
346 {
347 get
348 {
349 return bits[7];
350 }
351 set
352 {
353 bits[7] = value;
354 }
355 }
356
357 public bool isMapSaved
358 {
359 get
360 {
361 return bits[8];
362 }
363 set
364 {
365 bits[8] = value;
366 }
367 }
368
369 public bool isExternalZone
370 {
371 get
372 {
373 return bits[9];
374 }
375 set
376 {
377 bits[9] = value;
378 }
379 }
380
381 public bool isConquered
382 {
383 get
384 {
385 return bits[10];
386 }
387 set
388 {
389 bits[10] = value;
390 }
391 }
392
393 public bool isBeach
394 {
395 get
396 {
397 return bits[11];
398 }
399 set
400 {
401 bits[11] = value;
402 }
403 }
404
405 public bool isPeace
406 {
407 get
408 {
409 return bits[12];
410 }
411 set
412 {
413 bits[12] = value;
414 }
415 }
416
417 public bool isDeathLocation
418 {
419 get
420 {
421 return bits[13];
422 }
423 set
424 {
425 bits[13] = value;
426 }
427 }
428
430 {
431 get
432 {
433 return EClass.game.factions.dictAll.TryGetValue(idMainFaction) ?? EClass.Wilds;
434 }
435 set
436 {
437 idMainFaction = ((value == null) ? EClass.Wilds.uid : value.uid);
438 }
439 }
440
442
444
445 public bool IsClosed => source.tag.Contains("closed");
446
447 public int mapX
448 {
449 get
450 {
451 if (!EClass._zone.IsRegion)
452 {
453 return x;
454 }
455 return x - EClass.scene.elomap.minX;
456 }
457 }
458
459 public int mapY
460 {
461 get
462 {
463 if (!EClass._zone.IsRegion)
464 {
465 return y;
466 }
467 return y - EClass.scene.elomap.minY;
468 }
469 }
470
471 public virtual int ContentLv => DangerLv;
472
473 public virtual int DangerLv => _dangerLv;
474
475 public virtual int DangerLvFix => 0;
476
477 public virtual float VolumeSea
478 {
479 get
480 {
481 if (!isShore)
482 {
483 return 0f;
484 }
485 return 1f;
486 }
487 }
488
489 public virtual bool ShowDangerLv => false;
490
491 public virtual bool CanSpawnAdv => false;
492
493 public string pathSave => GameIO.pathCurrentSave + uid + "/";
494
495 public virtual string Name => ((idPrefix == 0) ? "" : (EClass.sources.zoneAffixes.map[idPrefix].GetName().ToTitleCase() + Lang.space)) + name.IsEmpty(source.GetText()) + NameSuffix;
496
497 public string NameWithDangerLevel => Name + (isRandomSite ? "dangerLv".lang(DangerLv.ToString() ?? "") : "");
498
499 public virtual string NameSuffix => "";
500
501 public virtual bool IsRegion => false;
502
503 public virtual bool CanFastTravel
504 {
505 get
506 {
507 if (!isRandomSite)
508 {
509 return !IsClosed;
510 }
511 return false;
512 }
513 }
514
516 {
517 get
518 {
519 if (_tile == null)
520 {
523 }
524 return _tile;
525 }
526 }
527
528 public virtual bool IsSnowZone => Tile.IsSnow;
529
530 public virtual bool IsSnowCovered
531 {
532 get
533 {
534 if (!EClass._map.IsIndoor)
535 {
536 if (!IsSnowZone)
537 {
539 }
540 return true;
541 }
542 return false;
543 }
544 }
545
547
548 public virtual bool isClaimable => false;
549
550 public int Seed => EClass.game.seed + Mathf.Abs(x) * 1000 + Mathf.Abs(y);
551
552 public int GetInt(int id, int? defaultInt = null)
553 {
554 if (mapInt.TryGetValue(id, out var value))
555 {
556 return value;
557 }
558 return defaultInt.GetValueOrDefault();
559 }
560
561 public void AddInt(int id, int value)
562 {
563 SetInt(id, GetInt(id) + value);
564 }
565
566 public void SetInt(int id, int value = 0)
567 {
568 if (value == 0)
569 {
570 if (mapInt.ContainsKey(id))
571 {
572 mapInt.Remove(id);
573 }
574 }
575 else
576 {
577 mapInt[id] = value;
578 }
579 }
580
581 public override string ToString()
582 {
583 return Name + "(" + uid + ")";
584 }
585
587 private void OnSerializing(StreamingContext context)
588 {
589 _bits = (int)bits.Bits;
590 }
591
593 private void OnDeserialized(StreamingContext context)
594 {
595 bits.Bits = (uint)_bits;
596 }
597
598 public void Create(string _id, int _x, int _y, int _icon)
599 {
600 x = _x;
601 y = _y;
602 icon = _icon;
604 id = _id;
605 development = source.dev;
606 _ = source.name == "*r";
607 _dangerLv = source.LV;
609 {
610 isKnown = true;
611 }
612 OnCreate();
613 Rand.SetSeed();
614 }
615
616 public void Register()
617 {
618 if (uid == 0)
619 {
621 }
622 }
623
624 public virtual void OnCreate()
625 {
626 }
627
628 public virtual void OnAfterCreate()
629 {
630 }
631
632 public virtual void SetMainFaction(Faction f)
633 {
634 mainFaction = f;
635 }
636
638 {
639 if (this is Zone)
640 {
641 return this as Zone;
642 }
643 foreach (Spatial child in children)
644 {
645 Zone firstZone = child.GetFirstZone();
646 if (firstZone != null)
647 {
648 return firstZone;
649 }
650 }
651 return null;
652 }
653
654 public void OnBeforeSave()
655 {
657 }
658
659 public virtual void _OnBeforeSave()
660 {
661 }
662
663 public void _OnLoad()
664 {
665 foreach (Spatial child in children)
666 {
667 child._OnLoad();
668 }
669 OnLoad();
670 }
671
672 public virtual void OnLoad()
673 {
674 }
675
676 public virtual void Destroy()
677 {
678 }
679
680 public void DeleteMapRecursive()
681 {
682 foreach (Spatial child in children)
683 {
684 child.DeleteMapRecursive();
685 }
686 IO.DeleteDirectory(pathSave);
687 }
688
689 public virtual void AddChild(Spatial child)
690 {
691 child.parent = this;
692 children.Add(child);
693 }
694
695 public void RemoveChild(Spatial child)
696 {
697 children.Remove(child);
698 child.parent = null;
699 }
700
702 {
703 Spatial spatial = this;
704 foreach (Spatial child in children)
705 {
706 if (!child.isExternalZone && child.lv < spatial.lv)
707 {
708 spatial = child;
709 }
710 }
711 return spatial as Zone;
712 }
713
714 public Zone FindZone(int lv)
715 {
716 foreach (Spatial child in children)
717 {
718 if (!child.isExternalZone && child.lv == lv)
719 {
720 return child as Zone;
721 }
722 }
723 if (this.lv != lv)
724 {
725 return null;
726 }
727 return this as Zone;
728 }
729
730 public Zone FindZone(string _id)
731 {
732 foreach (Spatial child in children)
733 {
734 Zone zone = child._FindZone(_id);
735 if (zone != null)
736 {
737 return zone;
738 }
739 }
740 return null;
741 }
742
743 protected Zone _FindZone(string _id)
744 {
745 foreach (Spatial child in children)
746 {
747 Zone zone = child._FindZone(_id);
748 if (zone != null)
749 {
750 return zone;
751 }
752 }
753 if (this is Zone && id == _id)
754 {
755 return (Zone)this;
756 }
757 return null;
758 }
759
760 public virtual bool CanKill()
761 {
762 return false;
763 }
764
765 public int Dist(Point p)
766 {
768 if (pathProgress.HasPath)
769 {
770 int num = 0;
771 {
772 foreach (PathFinderNode node in pathProgress.nodes)
773 {
774 bool flag = EClass.scene.elomap.GetTileInfo(node.X + EClass.scene.elomap.minX, node.Z + EClass.scene.elomap.minY)?.IsSnow ?? false;
775 num += ((!flag) ? 1 : 2);
776 }
777 return num;
778 }
779 }
780 return Fov.Distance(x, y, p.x + EClass.scene.elomap.minX, p.z + EClass.scene.elomap.minY);
781 }
782
783 public int Dist(Spatial s)
784 {
785 return Fov.Distance(s.x, s.y, x, y);
786 }
787
788 public void MakeGameObject(GameObject parentGo)
789 {
790 GameObject gameObject = new GameObject();
791 gameObject.name = ToString();
792 gameObject.transform.SetParent(parentGo.transform);
793 gameObject.AddComponent<SpatialInspector>().spatial = this;
794 foreach (Spatial child in children)
795 {
796 child.MakeGameObject(gameObject);
797 }
798 }
799}
Faction faction
Definition: Chara.cs:412
bool travelAnywhere
Definition: CoreDebug.cs:206
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Scene scene
Definition: EClass.cs:30
static Zone _zone
Definition: EClass.cs:20
static World world
Definition: EClass.cs:40
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static Faction Wilds
Definition: EClass.cs:28
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
void Initialize(EloMap _elomap)
Definition: EloMapActor.cs:28
EloMap elomap
Definition: EloMapActor.cs:7
bool IsSnow
Definition: EloMap.cs:55
int minX
Definition: EloMap.cs:112
int minY
Definition: EloMap.cs:114
bool IsSnow(int gx, int gy)
Definition: EloMap.cs:406
TileInfo GetTileInfo(int gx, int gy)
Definition: EloMap.cs:287
Dictionary< string, Faction > dictAll
string uid
Definition: FACTION.cs:130
Definition: Fov.cs:6
static int Distance(int x1, int y1, int x2, int y2)
Definition: Fov.cs:134
SpatialManager spatials
Definition: Game.cs:152
FactionManager factions
Definition: Game.cs:161
Definition: Lang.cs:6
static string space
Definition: Lang.cs:32
bool IsIndoor
Definition: Map.cs:131
void RequestPathImmediate(PathProgress progress)
Definition: PathManager.cs:41
static PathManager Instance
Definition: PathManager.cs:16
List< PathFinderNode > nodes
Definition: PathProgress.cs:16
Definition: Point.cs:9
Point Set(int _x, int _z)
Definition: Point.cs:479
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
EloMap elomap
Definition: Region.cs:8
EloMapActor elomapActor
Definition: Scene.cs:97
EloMap elomap
Definition: Scene.cs:143
bool isWinter
Definition: Season.cs:53
SourceZone zones
SourceZoneAffix zoneAffixes
void AssignUID(Spatial s)
Dictionary< int, int > mapInt
Definition: Spatial.cs:43
int mapX
Definition: Spatial.cs:448
int _dangerLv
Definition: Spatial.cs:190
int Dist(Spatial s)
Definition: Spatial.cs:783
int Dist(Point p)
Definition: Spatial.cs:765
int lv
Definition: Spatial.cs:142
Zone FindZone(string _id)
Definition: Spatial.cs:730
int electricity
Definition: Spatial.cs:250
virtual bool CanSpawnAdv
Definition: Spatial.cs:491
void SetInt(int id, int value=0)
Definition: Spatial.cs:566
virtual void OnCreate()
Definition: Spatial.cs:624
bool isRandomSite
Definition: Spatial.cs:334
virtual void AddChild(Spatial child)
Definition: Spatial.cs:689
EloMap.TileInfo _tile
Definition: Spatial.cs:53
bool isMapSaved
Definition: Spatial.cs:358
virtual bool IsSnowZone
Definition: Spatial.cs:528
int uid
Definition: Spatial.cs:70
bool isDeathLocation
Definition: Spatial.cs:418
virtual int ContentLv
Definition: Spatial.cs:471
virtual bool ShowDangerLv
Definition: Spatial.cs:489
void AddInt(int id, int value)
Definition: Spatial.cs:561
int investment
Definition: Spatial.cs:226
Spatial parent
Definition: Spatial.cs:10
int icon
Definition: Spatial.cs:82
void RemoveChild(Spatial child)
Definition: Spatial.cs:695
virtual void OnAfterCreate()
Definition: Spatial.cs:628
bool isExternalZone
Definition: Spatial.cs:370
int uidBoss
Definition: Spatial.cs:274
string idCurrentSubset
Definition: Spatial.cs:28
bool isGenerated
Definition: Spatial.cs:310
void MakeGameObject(GameObject parentGo)
Definition: Spatial.cs:788
EloMap.TileInfo Tile
Definition: Spatial.cs:516
void _OnLoad()
Definition: Spatial.cs:663
void DeleteMapRecursive()
Definition: Spatial.cs:680
bool IsClosed
Definition: Spatial.cs:445
virtual int DangerLvFix
Definition: Spatial.cs:475
void Create(string _id, int _x, int _y, int _icon)
Definition: Spatial.cs:598
string idMainFaction
Definition: Spatial.cs:22
void OnBeforeSave()
Definition: Spatial.cs:654
bool IsPlayerFaction
Definition: Spatial.cs:443
virtual bool IsRegion
Definition: Spatial.cs:501
virtual void _OnBeforeSave()
Definition: Spatial.cs:659
string name
Definition: Spatial.cs:19
string pathSave
Definition: Spatial.cs:493
virtual string Name
Definition: Spatial.cs:495
BitArray32 bits
Definition: Spatial.cs:49
int Seed
Definition: Spatial.cs:550
bool isBeach
Definition: Spatial.cs:394
virtual bool IsSnowCovered
Definition: Spatial.cs:531
int dateQuest
Definition: Spatial.cs:286
virtual void Destroy()
Definition: Spatial.cs:676
override string ToString()
Definition: Spatial.cs:581
int dateHat
Definition: Spatial.cs:262
Zone GetFirstZone()
Definition: Spatial.cs:637
bool isKnown
Definition: Spatial.cs:346
virtual void OnLoad()
Definition: Spatial.cs:672
Faction mainFaction
Definition: Spatial.cs:430
Point _regionPos
Definition: Spatial.cs:55
int[] _ints
Definition: Spatial.cs:34
SourceZone.Row source
Definition: Spatial.cs:441
virtual bool CanKill()
Definition: Spatial.cs:760
void OnDeserialized(StreamingContext context)
Definition: Spatial.cs:593
bool destryoed
Definition: Spatial.cs:45
virtual void SetMainFaction(Faction f)
Definition: Spatial.cs:632
virtual float VolumeSea
Definition: Spatial.cs:478
int GetInt(int id, int? defaultInt=null)
Definition: Spatial.cs:552
int idPrefix
Definition: Spatial.cs:130
virtual bool isClaimable
Definition: Spatial.cs:548
virtual string NameSuffix
Definition: Spatial.cs:499
void Register()
Definition: Spatial.cs:616
virtual int DangerLv
Definition: Spatial.cs:473
string id
Definition: Spatial.cs:13
int development
Definition: Spatial.cs:238
int lastActive
Definition: Spatial.cs:118
SourceZone.Row _source
Definition: Spatial.cs:51
void OnSerializing(StreamingContext context)
Definition: Spatial.cs:587
virtual bool CanFastTravel
Definition: Spatial.cs:504
bool isImported
Definition: Spatial.cs:47
bool isConquered
Definition: Spatial.cs:382
int version
Definition: Spatial.cs:298
string idProfile
Definition: Spatial.cs:25
int y
Definition: Spatial.cs:106
virtual Point RegionPos
Definition: Spatial.cs:546
int dateExpire
Definition: Spatial.cs:166
bool isShore
Definition: Spatial.cs:322
Zone _FindZone(string _id)
Definition: Spatial.cs:743
int dateRevive
Definition: Spatial.cs:178
bool isPeace
Definition: Spatial.cs:406
Zone FindDeepestZone()
Definition: Spatial.cs:701
int mapY
Definition: Spatial.cs:460
int dateRegenerate
Definition: Spatial.cs:202
int influence
Definition: Spatial.cs:214
int _bits
Definition: Spatial.cs:58
List< Spatial > connections
Definition: Spatial.cs:40
int visitCount
Definition: Spatial.cs:154
int x
Definition: Spatial.cs:94
List< Spatial > children
Definition: Spatial.cs:37
Zone FindZone(int lv)
Definition: Spatial.cs:714
string idUser
Definition: Spatial.cs:16
string NameWithDangerLevel
Definition: Spatial.cs:497
string idHat
Definition: Spatial.cs:31
Region region
Definition: World.cs:23
Season season
Definition: World.cs:9
Definition: Zone.cs:12
uint Bits
Definition: BitArray32.cs:6