Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitBoat.cs
1using System;
2
3// Token: 0x02000472 RID: 1138
4public class TraitBoat : Trait
5{
6 // Token: 0x170009EB RID: 2539
7 // (get) Token: 0x06001FA1 RID: 8097 RVA: 0x000B2A1E File Offset: 0x000B0C1E
8 public override bool IsFloating
9 {
10 get
11 {
12 return true;
13 }
14 }
15
16 // Token: 0x170009EC RID: 2540
17 // (get) Token: 0x06001FA2 RID: 8098 RVA: 0x000B2A21 File Offset: 0x000B0C21
18 public override bool IsGround
19 {
20 get
21 {
22 return true;
23 }
24 }
25
26 // Token: 0x06001FA3 RID: 8099 RVA: 0x000B2A24 File Offset: 0x000B0C24
27 public override void OnChangePlaceState(PlaceState state)
28 {
29 if (state == PlaceState.installed)
30 {
31 this.ForeachDeck(delegate(Point p)
32 {
33 p.SetFloor(1, 57);
34 p.cell.floorDir = ((this.owner.dir % 2 == 0) ? 0 : 1);
35 });
36 }
37 }
38
39 // Token: 0x06001FA4 RID: 8100 RVA: 0x000B2A3C File Offset: 0x000B0C3C
40 public override void OnRemovedFromZone()
41 {
42 if (this.owner.placeState == PlaceState.installed)
43 {
44 SourceMaterial.Row mat = this.GetWaterMat();
45 this.ForeachDeck(delegate(Point p)
46 {
47 p.SetFloor(mat.id, 43);
48 });
49 }
50 }
51
52 // Token: 0x06001FA5 RID: 8101 RVA: 0x000B2A7C File Offset: 0x000B0C7C
53 public void ForeachDeck(Action<Point> action)
54 {
55 int num = 1 + ((this.owner.dir % 2 == 1 && this.owner.id != "boat3") ? 1 : 0);
56 int num2 = 1 + ((this.owner.dir % 2 == 0 && this.owner.id != "boat3") ? 1 : 0);
57 int x = this.owner.pos.x - this.owner.W + num;
58 int z = this.owner.pos.z + num2;
59 int mx = this.owner.pos.x - num;
60 int mz = this.owner.pos.z + this.owner.H - num2;
61 this.owner.pos.ForeachMultiSize(this.owner.W, this.owner.H, delegate(Point p, bool main)
62 {
63 if (p.x > x && p.z >= z && p.x <= mx && p.z < mz)
64 {
65 action(p);
66 }
67 });
68 }
69
70 // Token: 0x06001FA6 RID: 8102 RVA: 0x000B2B9C File Offset: 0x000B0D9C
71 public SourceMaterial.Row GetWaterMat()
72 {
73 int mat = 67;
74 this.owner.ForeachPoint(delegate(Point p, bool main)
75 {
76 if (p.cell.IsFloorWater)
77 {
78 mat = p.matFloor.id;
79 }
80 });
81 return EClass.sources.materials.rows[mat];
82 }
83}
Definition Point.cs:11
Definition Trait.cs:9