Elin Decompiled Documentation EA 23.256 Nightly Patch 1
Loading...
Searching...
No Matches
AM_Picker.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
5{
6 public struct Result
7 {
9
11
12 public Thing thing;
13
14 public bool IsValid => source != null;
15
16 public string category => source.recipeCat;
17
18 public string GetText()
19 {
20 return source.Name + (EClass.debug.showExtra ? (":" + source.id) : "") + "(" + mat.GetName() + (EClass.debug.showExtra ? (":" + mat.id) : "") + ")" + (EClass.player.recipes.IsKnown(source.id) ? "" : (Environment.NewLine + "noRecipe".lang()));
21 }
22 }
23
24 public override bool IsBuildMode => true;
25
27
29
31
32 public bool CanActivate
33 {
34 get
35 {
36 if (!base.IsActive)
37 {
39 {
40 if (EClass.Branch != null)
41 {
42 return EClass.Branch.elements.Has(4005);
43 }
44 return false;
45 }
46 return true;
47 }
48 return false;
49 }
50 }
51
52 public override void OnUpdateCursor()
53 {
55 }
56
57 public override HitResult HitTest(Point point, Point start)
58 {
59 if (!Test(point).IsValid)
60 {
61 return HitResult.Default;
62 }
63 return HitResult.Valid;
64 }
65
66 public override void OnProcessTiles(Point point, int dir)
67 {
68 Test(point, select: true);
69 }
70
71 public override void OnRenderTile(Point point, HitResult result, int dir)
72 {
73 if (point.cell.HasWallOrFence && (result == HitResult.Valid || result == HitResult.Invalid))
74 {
76 }
77 else
78 {
79 base.OnRenderTile(point, result, dir);
80 }
81 }
82
83 public Result TestBlock(Point point)
84 {
85 Result result = default(Result);
86 result.mat = point.matBlock;
87 result.source = TryGetRecipe(point.sourceBlock.RecipeID);
88 return result;
89 }
90
91 public Result TestObj(Point point)
92 {
93 Result result = default(Result);
94 result.mat = point.cell.matObj;
95 result.source = TryGetRecipe(point.sourceObj.RecipeID);
96 return result;
97 }
98
99 public Result TestFloor(Point point)
100 {
101 Result result = default(Result);
102 if (point.cell._bridge == 0)
103 {
104 result.mat = point.matFloor;
105 result.source = TryGetRecipe(point.sourceFloor.RecipeID);
106 }
107 else
108 {
109 result.mat = point.cell.matBridge;
110 result.source = TryGetRecipe(point.cell.sourceBridge.RecipeID + "-b");
111 }
112 return result;
113 }
114
116 {
117 Result result = default(Result);
118 if (t.trait.IsGround)
119 {
120 return result;
121 }
122 result.mat = t.material;
123 result.source = TryGetRecipe(t.sourceCard.RecipeID);
124 result.thing = t;
125 return result;
126 }
127
128 public Result Test(Point point, bool select = false)
129 {
130 List<Card> list = point.ListCards(includeMasked: true);
131 for (int num = list.Count - 1; num >= 0; num--)
132 {
133 Card card = list[num];
134 if (card.isThing)
135 {
136 Result result = TestThing(card.Thing);
137 if (result.IsValid)
138 {
139 if (select)
140 {
141 Select(result);
142 }
143 if (card.trait is TraitHouseBoard houseBoard)
144 {
145 ActionMode.Build.houseBoard = houseBoard;
146 }
147 return result;
148 }
149 }
150 }
151 if (point.HasBlock)
152 {
153 Result result2 = TestBlock(point);
154 if (result2.IsValid)
155 {
156 if (select)
157 {
158 Select(result2);
159 }
160 return result2;
161 }
162 }
163 if (EClass.debug.godBuild && point.HasObj)
164 {
165 Result result3 = TestObj(point);
166 if (result3.IsValid)
167 {
168 if (select)
169 {
170 Select(result3);
171 }
172 return result3;
173 }
174 }
175 if (point.HasFloor)
176 {
177 Result result4 = TestFloor(point);
178 if (result4.IsValid)
179 {
180 if (select)
181 {
182 Select(result4);
183 }
184 return result4;
185 }
186 }
187 return default(Result);
188 }
189
190 public RecipeSource TryGetRecipe(string id)
191 {
192 return EClass.player.recipes.GetSource(id);
193 }
194
195 public new bool Select(Result r)
196 {
197 ActionMode.ignoreSound = true;
198 BM.Select(r);
199 return true;
200 }
201}
HitResult
Definition: HitResult.cs:2
override void OnProcessTiles(Point point, int dir)
Definition: AM_Picker.cs:66
override HitResult HitTest(Point point, Point start)
Definition: AM_Picker.cs:57
Result Test(Point point, bool select=false)
Definition: AM_Picker.cs:128
RecipeSource TryGetRecipe(string id)
Definition: AM_Picker.cs:190
override BaseTileSelector.HitType hitType
Definition: AM_Picker.cs:26
Result TestFloor(Point point)
Definition: AM_Picker.cs:99
override BaseTileSelector.SelectType selectType
Definition: AM_Picker.cs:28
override void OnRenderTile(Point point, HitResult result, int dir)
Definition: AM_Picker.cs:71
override bool IsBuildMode
Definition: AM_Picker.cs:24
Result TestBlock(Point point)
Definition: AM_Picker.cs:83
Result TestThing(Thing t)
Definition: AM_Picker.cs:115
BuildMenu BM
Definition: AM_Picker.cs:30
override void OnUpdateCursor()
Definition: AM_Picker.cs:52
Result TestObj(Point point)
Definition: AM_Picker.cs:91
new bool Select(Result r)
Definition: AM_Picker.cs:195
bool CanActivate
Definition: AM_Picker.cs:33
static AM_Select Select
Definition: ActionMode.cs:59
void SetCursorOnMap(CursorInfo cursor)
Definition: ActionMode.cs:565
ScreenGuide guide
BaseTileSelector tileSelector
void Select(AM_Picker.Result r)
Definition: BuildMenu.cs:409
static BuildMenu Instance
Definition: BuildMenu.cs:77
Definition: Card.cs:11
SourceMaterial.Row material
Definition: Card.cs:2051
Trait trait
Definition: Card.cs:53
bool HasWallOrFence
Definition: Cell.cs:831
byte _bridge
Definition: Cell.cs:46
SourceMaterial.Row matObj
Definition: Cell.cs:1036
SourceMaterial.Row matBridge
Definition: Cell.cs:1034
SourceFloor.Row sourceBridge
Definition: Cell.cs:1056
BlockColors blockColors
bool godBuild
Definition: CoreDebug.cs:304
BaseGameScreen screen
Definition: Core.cs:67
static CursorInfo Picker
Definition: CursorSystem.cs:72
Definition: EClass.cs:6
static ColorProfile Colors
Definition: EClass.cs:39
static Core core
Definition: EClass.cs:7
static FactionBranch Branch
Definition: EClass.cs:23
static BaseGameScreen screen
Definition: EClass.cs:33
static Player player
Definition: EClass.cs:13
static CoreDebug debug
Definition: EClass.cs:49
bool Has(int ele)
ElementContainerZone elements
RecipeManager recipes
Definition: Player.cs:1097
Definition: Point.cs:9
SourceMaterial.Row matBlock
Definition: Point.cs:55
SourceMaterial.Row matFloor
Definition: Point.cs:57
SourceBlock.Row sourceBlock
Definition: Point.cs:63
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1051
SourceObj.Row sourceObj
Definition: Point.cs:69
SourceFloor.Row sourceFloor
Definition: Point.cs:65
bool HasObj
Definition: Point.cs:137
bool HasFloor
Definition: Point.cs:219
bool HasBlock
Definition: Point.cs:141
Cell cell
Definition: Point.cs:51
bool IsKnown(string id)
RecipeSource GetSource(string id)
string recipeCat
Definition: RecipeSource.cs:37
virtual string RecipeID
Definition: RenderRow.cs:105
void DrawWall(Point point, int color, bool useMarkerPass=false, float offsetZ=0f)
Definition: ScreenGuide.cs:42
Definition: Thing.cs:8
override CardRow sourceCard
Definition: Thing.cs:47
virtual bool IsGround
Definition: Trait.cs:68
string category
Definition: AM_Picker.cs:16
SourceMaterial.Row mat
Definition: AM_Picker.cs:10
string GetText()
Definition: AM_Picker.cs:18
RecipeSource source
Definition: AM_Picker.cs:8