Elin Decompiled Documentation EA 23.102 Nightly
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 TestFloor(Point point)
92 {
93 Result result = default(Result);
94 if (point.cell._bridge == 0)
95 {
96 result.mat = point.matFloor;
97 result.source = TryGetRecipe(point.sourceFloor.RecipeID);
98 }
99 else
100 {
101 result.mat = point.cell.matBridge;
102 result.source = TryGetRecipe(point.cell.sourceBridge.RecipeID + "-b");
103 }
104 return result;
105 }
106
108 {
109 Result result = default(Result);
110 if (t.trait.IsGround)
111 {
112 return result;
113 }
114 result.mat = t.material;
115 result.source = TryGetRecipe(t.sourceCard.RecipeID);
116 result.thing = t;
117 return result;
118 }
119
120 public Result Test(Point point, bool select = false)
121 {
122 List<Card> list = point.ListCards(includeMasked: true);
123 for (int num = list.Count - 1; num >= 0; num--)
124 {
125 Card card = list[num];
126 if (card.isThing)
127 {
128 Result result = TestThing(card.Thing);
129 if (result.IsValid)
130 {
131 if (select)
132 {
133 Select(result);
134 }
135 if (card.trait is TraitHouseBoard houseBoard)
136 {
137 ActionMode.Build.houseBoard = houseBoard;
138 }
139 return result;
140 }
141 }
142 }
143 if (point.HasBlock)
144 {
145 Result result2 = TestBlock(point);
146 if (result2.IsValid)
147 {
148 if (select)
149 {
150 Select(result2);
151 }
152 return result2;
153 }
154 }
155 if (point.HasFloor)
156 {
157 Result result3 = TestFloor(point);
158 if (result3.IsValid)
159 {
160 if (select)
161 {
162 Select(result3);
163 }
164 return result3;
165 }
166 }
167 return default(Result);
168 }
169
170 public RecipeSource TryGetRecipe(string id)
171 {
172 return EClass.player.recipes.GetSource(id);
173 }
174
175 public new bool Select(Result r)
176 {
177 ActionMode.ignoreSound = true;
178 BM.Select(r);
179 return true;
180 }
181}
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:120
RecipeSource TryGetRecipe(string id)
Definition: AM_Picker.cs:170
override BaseTileSelector.HitType hitType
Definition: AM_Picker.cs:26
Result TestFloor(Point point)
Definition: AM_Picker.cs:91
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:107
BuildMenu BM
Definition: AM_Picker.cs:30
override void OnUpdateCursor()
Definition: AM_Picker.cs:52
new bool Select(Result r)
Definition: AM_Picker.cs:175
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:1927
Trait trait
Definition: Card.cs:49
bool HasWallOrFence
Definition: Cell.cs:831
byte _bridge
Definition: Cell.cs:46
SourceMaterial.Row matBridge
Definition: Cell.cs:1034
SourceFloor.Row sourceBridge
Definition: Cell.cs:1056
BlockColors blockColors
bool godBuild
Definition: CoreDebug.cs:303
BaseGameScreen screen
Definition: Core.cs:67
static CursorInfo Picker
Definition: CursorSystem.cs:72
Definition: EClass.cs:5
static ColorProfile Colors
Definition: EClass.cs:38
static Core core
Definition: EClass.cs:6
static FactionBranch Branch
Definition: EClass.cs:22
static BaseGameScreen screen
Definition: EClass.cs:32
static Player player
Definition: EClass.cs:12
static CoreDebug debug
Definition: EClass.cs:48
bool Has(int ele)
ElementContainerZone elements
RecipeManager recipes
Definition: Player.cs:898
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:1015
SourceFloor.Row sourceFloor
Definition: Point.cs:65
bool HasFloor
Definition: Point.cs:207
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:35
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:64
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