Elin Modding Docs Doc
Loading...
Searching...
No Matches
ZonePreEnterDigStairs.cs
1using System;
2using Newtonsoft.Json;
3
4// Token: 0x02000752 RID: 1874
6{
7 // Token: 0x06003647 RID: 13895 RVA: 0x00126F30 File Offset: 0x00125130
8 public override void Execute()
9 {
10 if (this.pos.HasBlock)
11 {
12 this.pos.SetBlock(0, 0);
13 }
14 if (this.pos.HasObj)
15 {
16 this.pos.SetObj(0, 1, 0);
17 }
18 Trait trait = null;
19 foreach (Thing thing in this.pos.Things)
20 {
21 if (thing.trait is TraitStairsLocked)
22 {
23 trait = thing.trait;
24 break;
25 }
26 TraitNewZone traitNewZone = thing.trait as TraitNewZone;
27 if (traitNewZone != null && ((this.fromAbove && traitNewZone.IsUpstairs) || (!this.fromAbove && traitNewZone.IsDownstairs)))
28 {
29 trait = traitNewZone;
30 break;
31 }
32 }
33 if (trait == null)
34 {
35 if (EClass._zone.IsSkyLevel)
36 {
37 for (int i = this.pos.z - 1; i < this.pos.z + 2; i++)
38 {
39 for (int j = this.pos.x - 1; j < this.pos.x + 2; j++)
40 {
41 Point point = new Point(j, i);
42 if (point.IsValid && point.sourceFloor.tileType == TileType.Sky)
43 {
44 EClass._map.SetFloor(point.x, point.z, EClass._zone.biome.interior.floor.mat, EClass._zone.biome.interior.floor.id);
45 }
46 }
47 }
48 }
49 Thing thing2 = ThingGen.Create(EClass._zone.biome.style.GetIdStairs(this.fromAbove), -1, -1);
50 EClass._zone.AddCard(thing2, this.pos.x, this.pos.z);
51 thing2.c_uidZone = this.uidZone;
52 thing2.SetPlaceState(PlaceState.installed, false);
53 thing2.isPlayerCreation = true;
54 }
55 }
56
57 // Token: 0x04001CAB RID: 7339
58 [JsonProperty]
59 public Point pos;
60
61 // Token: 0x04001CAC RID: 7340
62 [JsonProperty]
63 public bool fromAbove;
64
65 // Token: 0x04001CAD RID: 7341
66 [JsonProperty]
67 public int uidZone;
68}
Definition Point.cs:11
Definition Thing.cs:10
Definition Trait.cs:9