Elin Decompiled Documentation EA 23.336 Nightly
Loading...
Searching...
No Matches
AM_Build Class Reference
Inheritance diagram for AM_Build:
AM_Designation< TaskBuild >

Public Member Functions

bool _IsRoofEditMode (Card c)
 
override bool IsRoofEditMode (Card c=null)
 
override bool IsFillMode ()
 
override int TopHeight (Point p)
 
override HitResult HitResultOnDesignation (Point p)
 
override MeshPass GetGuidePass (Point point)
 
override bool ForcedInstaComplete (TaskBuild t)
 
override void OnUpdateCursor ()
 
override void OnActivate ()
 
override void OnDeactivate ()
 
override void OnCancel ()
 
void StartBuild (Recipe r, Func< ButtonGrid > _button)
 
override void OnCreateMold (bool processing=false)
 
override HitResult HitTest (Point point, Point start)
 
void FixBridge (Point point, Recipe recipe)
 
override void OnRenderTile (Point point, HitResult result, int dir)
 
override void OnBeforeProcessTiles ()
 
override void OnProcessTiles (Point point, int dir)
 
override void OnFinishProcessTiles ()
 
override void RotateUnderMouse ()
 
override void InputWheel (int wheel)
 
void ModAltitude (int a)
 
void SetAltitude (int a)
 
- Public Member Functions inherited from AM_Designation< TaskBuild >
virtual bool CanInstaComplete (T t)
 
virtual bool ForcedInstaComplete (T t)
 
virtual HitResult HitResultOnDesignation (Point p)
 
override void OnActivate ()
 
void CreateNewMold (bool processing=false)
 
virtual void OnCreateMold (bool processing=false)
 
override HitResult HitTest (Point point, Point start)
 
override bool CanProcessTiles ()
 
override void OnBeforeProcessTiles ()
 
override void OnProcessTiles (Point point, int dir)
 
override void OnAfterProcessTiles (Point start, Point end)
 
override void OnRefreshSummary (Point point, HitResult result, HitSummary summary)
 

Public Attributes

int bridgeHeight
 
int altitude
 
Recipe recipe
 
Recipe _recipe
 
Func< ButtonGridbutton
 
TraitHouseBoard houseBoard
 
- Public Attributes inherited from AM_Designation< TaskBuild >
TaskList< T > list
 
mold
 

Properties

override BuildMenu.Mode buildMenuMode [get]
 
override int CostMoney [get]
 
override bool IsBuildMode [get]
 
override string idSound [get]
 
override bool AllowAutoClick [get]
 
override bool AllowMiddleClickFunc [get]
 
override int SelectorHeight [get]
 
override BaseTileSelector.HitType hitType [get]
 
override BaseTileSelector.SelectType selectType [get]
 
override BaseTileSelector.BoxType boxType [get]
 
override int hitW [get]
 
override int hitH [get]
 
int MaxAltitude [get]
 
- Properties inherited from AM_Designation< TaskBuild >
override string idSound [get]
 
override bool IsBuildMode [get]
 

Detailed Description

Definition at line 4 of file AM_Build.cs.

Member Function Documentation

◆ _IsRoofEditMode()

bool AM_Build._IsRoofEditMode ( Card  c)
inline

Definition at line 74 of file AM_Build.cs.

75 {
76 if (Input.GetKey(KeyCode.LeftAlt))
77 {
78 if (c != null)
79 {
80 return !c.trait.CanOnlyCarry;
81 }
82 return true;
83 }
84 return false;
85 }
Trait trait
Definition: Card.cs:54
virtual bool CanOnlyCarry
Definition: Trait.cs:305

References Trait.CanOnlyCarry, and Card.trait.

Referenced by IsRoofEditMode(), and AM_MoveInstalled.IsRoofEditMode().

◆ FixBridge()

void AM_Build.FixBridge ( Point  point,
Recipe  recipe 
)
inline

Definition at line 238 of file AM_Build.cs.

239 {
240 bridgeHeight = -1;
241 if (recipe.IsBridge)
242 {
243 bridgeHeight = (byte)((point.cell.bridgeHeight == 0) ? (point.cell.height + recipe.tileType.MinAltitude) : point.cell.bridgeHeight);
244 }
245 }
int bridgeHeight
Definition: AM_Build.cs:6
Recipe recipe
Definition: AM_Build.cs:10
byte bridgeHeight
Definition: Cell.cs:82
Cell cell
Definition: Point.cs:51
virtual TileType tileType
Definition: Recipe.cs:215
bool IsBridge
Definition: Recipe.cs:250
virtual int MinAltitude
Definition: TileType.cs:211

References bridgeHeight, Cell.bridgeHeight, Point.cell, Recipe.IsBridge, TileType.MinAltitude, recipe, and Recipe.tileType.

Referenced by TaskBuild.OnProgressComplete(), and OnRenderTile().

◆ ForcedInstaComplete()

override bool AM_Build.ForcedInstaComplete ( TaskBuild  t)
inline

Definition at line 132 of file AM_Build.cs.

133 {
135 }
virtual bool CanInstaComplete
Definition: TileType.cs:209

References TileType.CanInstaComplete, recipe, and Recipe.tileType.

◆ GetGuidePass()

override MeshPass AM_Build.GetGuidePass ( Point  point)
inline

Definition at line 123 of file AM_Build.cs.

124 {
125 if (!recipe.IsBlock)
126 {
128 }
130 }
ScreenGuide guide
Definition: EClass.cs:6
static BaseGameScreen screen
Definition: EClass.cs:33
virtual bool IsBlock
Definition: Recipe.cs:246
MeshPass passGuideBlock
Definition: ScreenGuide.cs:5
MeshPass passGuideFloor
Definition: ScreenGuide.cs:7

References BaseGameScreen.guide, Recipe.IsBlock, ScreenGuide.passGuideBlock, ScreenGuide.passGuideFloor, recipe, and EClass.screen.

◆ HitResultOnDesignation()

override HitResult AM_Build.HitResultOnDesignation ( Point  p)
inlinevirtual

Reimplemented from AM_Designation< TaskBuild >.

Definition at line 114 of file AM_Build.cs.

115 {
116 if (p.detail?.designation is TaskBuild)
117 {
118 return HitResult.Warning;
119 }
120 return HitResult.Invalid;
121 }
HitResult
Definition: HitResult.cs:2
TaskDesignation designation
Definition: CellDetail.cs:19
CellDetail detail
Definition: Point.cs:71

References CellDetail.designation, and Point.detail.

◆ HitTest()

override HitResult AM_Build.HitTest ( Point  point,
Point  start 
)
inline

Definition at line 185 of file AM_Build.cs.

186 {
187 if (start != null)
188 {
189 mold.bridgeHeight = start.cell.bridgeHeight;
190 }
191 else
192 {
193 mold.bridgeHeight = point.cell.bridgeHeight;
194 }
195 if (recipe == null)
196 {
197 return HitResult.Default;
198 }
199 if (IsRoofEditMode())
200 {
201 return HitResult.Valid;
202 }
203 if (IsFillMode())
204 {
205 Cell cell = point.cell;
206 if (recipe.IsBridge)
207 {
208 if (cell._bridge != start.cell._bridge)
209 {
210 return HitResult.NoTarget;
211 }
212 return HitResult.Valid;
213 }
214 if (recipe.IsFloor)
215 {
216 if (cell._floor != start.cell._floor)
217 {
218 return HitResult.NoTarget;
219 }
220 return HitResult.Valid;
221 }
222 if (recipe.IsBlock)
223 {
224 if (cell._block != start.cell._block)
225 {
226 return HitResult.NoTarget;
227 }
228 return HitResult.Valid;
229 }
230 }
232 {
233 return HitResult.Invalid;
234 }
235 return base.HitTest(point, start);
236 }
int altitude
Definition: AM_Build.cs:8
override bool IsFillMode()
Definition: AM_Build.cs:92
override bool IsRoofEditMode(Card c=null)
Definition: AM_Build.cs:87
Definition: Cell.cs:7
byte _block
Definition: Cell.cs:32
byte _bridge
Definition: Cell.cs:48
byte _floor
Definition: Cell.cs:36
byte height
Definition: Cell.cs:80
bool Equals(int _x, int _z)
Definition: Point.cs:966
bool IsFloor
Definition: Recipe.cs:242
virtual BaseTileSelector.SelectType SelectType
Definition: TileType.cs:279

References Cell._block, Cell._bridge, Cell._floor, altitude, bridgeHeight, Cell.bridgeHeight, Point.cell, Point.Equals(), Cell.height, Recipe.IsBlock, Recipe.IsBridge, IsFillMode(), Recipe.IsFloor, IsRoofEditMode(), recipe, TileType.SelectType, and Recipe.tileType.

◆ InputWheel()

override void AM_Build.InputWheel ( int  wheel)
inline

Definition at line 358 of file AM_Build.cs.

359 {
360 if (recipe.MaxAltitude > 0)
361 {
362 ModAltitude(wheel);
364 }
365 else
366 {
367 base.InputWheel(wheel);
368 }
369 }
void ModAltitude(int a)
Definition: AM_Build.cs:371
BaseTileSelector tileSelector
void RefreshMouseInfo(bool force=false)
int MaxAltitude
Definition: Recipe.cs:229

References Recipe.MaxAltitude, ModAltitude(), recipe, BaseTileSelector.RefreshMouseInfo(), EClass.screen, and BaseGameScreen.tileSelector.

◆ IsFillMode()

override bool AM_Build.IsFillMode ( )
inline

Definition at line 92 of file AM_Build.cs.

93 {
94 if (!recipe.IsThing && Input.GetKey(KeyCode.LeftControl))
95 {
96 return EClass.debug.godBuild;
97 }
98 return false;
99 }
bool godBuild
Definition: CoreDebug.cs:319
static CoreDebug debug
Definition: EClass.cs:49
virtual bool IsThing
Definition: Recipe.cs:252

References EClass.debug, CoreDebug.godBuild, Recipe.IsThing, and recipe.

Referenced by HitTest().

◆ IsRoofEditMode()

override bool AM_Build.IsRoofEditMode ( Card  c = null)
inline

Definition at line 87 of file AM_Build.cs.

88 {
89 return _IsRoofEditMode(recipe?.Mold);
90 }
bool _IsRoofEditMode(Card c)
Definition: AM_Build.cs:74

References _IsRoofEditMode(), and recipe.

Referenced by HitTest(), OnRenderTile(), and SetAltitude().

◆ ModAltitude()

void AM_Build.ModAltitude ( int  a)
inline

Definition at line 371 of file AM_Build.cs.

372 {
373 altitude += a;
374 if (altitude < (recipe.IsBridge ? (-10) : 0))
375 {
377 }
378 if (altitude > MaxAltitude)
379 {
380 altitude = (recipe.IsBridge ? (-10) : 0);
381 }
383 }
int MaxAltitude
Definition: AM_Build.cs:63
void SetAltitude(int a)
Definition: AM_Build.cs:385

References altitude, Recipe.IsBridge, MaxAltitude, recipe, and SetAltitude().

Referenced by AM_Adv._OnUpdateInput(), InputWheel(), and UIPlaceHelper.Refresh().

◆ OnActivate()

override void AM_Build.OnActivate ( )
inline

Definition at line 142 of file AM_Build.cs.

143 {
144 list = base.Designations.build;
145 base.OnActivate();
146 }

References AM_Designation< TaskBuild >.list.

◆ OnBeforeProcessTiles()

override void AM_Build.OnBeforeProcessTiles ( )
inline

Definition at line 286 of file AM_Build.cs.

287 {
288 _recipe = recipe;
289 _recipe._dir = recipe._dir;
290 mold.dir = recipe._dir;
291 base.OnBeforeProcessTiles();
292 }
Recipe _recipe
Definition: AM_Build.cs:12
int _dir
Definition: Recipe.cs:192

References Recipe._dir, _recipe, and recipe.

◆ OnCancel()

override void AM_Build.OnCancel ( )
inline

Definition at line 159 of file AM_Build.cs.

160 {
162 }
void Activate(Thing t)
static AM_Inspect Inspect
Definition: ActionMode.cs:23

References AM_MoveInstalled.Activate(), and ActionMode.Inspect.

◆ OnCreateMold()

override void AM_Build.OnCreateMold ( bool  processing = false)
inlinevirtual

Reimplemented from AM_Designation< TaskBuild >.

Definition at line 179 of file AM_Build.cs.

180 {
181 mold.recipe = (processing ? _recipe : recipe);
183 }

References _recipe, altitude, recipe, and SetAltitude().

◆ OnDeactivate()

override void AM_Build.OnDeactivate ( )
inline

Definition at line 148 of file AM_Build.cs.

149 {
150 base.Summary.SetRecipe(null);
151 recipe = (mold.recipe = null);
152 houseBoard = null;
153 if ((bool)BuildMenu.Instance)
154 {
156 }
157 }
TraitHouseBoard houseBoard
Definition: AM_Build.cs:16
static BuildMenu Instance
Definition: BuildMenu.cs:77
void Unselect()
Definition: BuildMenu.cs:448

References houseBoard, BuildMenu.Instance, recipe, and BuildMenu.Unselect().

◆ OnFinishProcessTiles()

override void AM_Build.OnFinishProcessTiles ( )
inline

Definition at line 317 of file AM_Build.cs.

318 {
319 base.OnFinishProcessTiles();
320 ButtonGrid buttonGrid = button();
321 if (recipe.UseStock)
322 {
323 Thing thing = recipe.ingredients[0].thing;
324 if (thing == null || thing.isDestroyed || thing.ExistsOnMap || thing.Num <= 0)
325 {
326 ActionMode.ignoreSound = true;
327 if ((bool)buttonGrid)
328 {
329 buttonGrid.selected = false;
330 buttonGrid.DoNormalTransition();
331 }
336 return;
337 }
338 }
339 if ((bool)buttonGrid)
340 {
341 buttonGrid.SetRecipe();
342 }
343 if (recipe.IsBridge)
344 {
345 SetAltitude(0);
346 }
347 }
Func< ButtonGrid > button
Definition: AM_Build.cs:14
void RefreshCategory(string cat)
Definition: BuildMenu.cs:498
bool isDestroyed
Definition: Card.cs:78
bool ExistsOnMap
Definition: Card.cs:2137
int Num
Definition: Card.cs:161
static Player player
Definition: EClass.cs:13
string lastBuildCategory
Definition: Player.cs:26
Pref pref
Definition: Player.cs:1080
List< Ingredient > ingredients
Definition: Recipe.cs:181
bool UseStock
Definition: Recipe.cs:184
Definition: Thing.cs:8

References AM_MoveInstalled.Activate(), button, Card.ExistsOnMap, Recipe.ingredients, ActionMode.Inspect, BuildMenu.Instance, Recipe.IsBridge, Card.isDestroyed, Player.Pref.lastBuildCategory, Card.Num, EClass.player, Player.pref, recipe, BuildMenu.RefreshCategory(), SetAltitude(), ButtonGrid.SetRecipe(), BuildMenu.Unselect(), and Recipe.UseStock.

◆ OnProcessTiles()

override void AM_Build.OnProcessTiles ( Point  point,
int  dir 
)
inline

Definition at line 294 of file AM_Build.cs.

295 {
296 if (dir != -1)
297 {
298 mold.dir = dir;
299 }
300 else
301 {
302 mold.dir = recipe._dir;
303 }
304 if (point.HasDesignation)
305 {
306 if (point.detail.designation is TaskBuild taskBuild && recipe.IsWallOrFence && taskBuild.recipe.IsWallOrFence && taskBuild.dir != dir)
307 {
308 mold.dir = (dir = 2);
309 }
310 point.detail?.designation.Destroy();
311 }
312 mold.bridgeHeight = bridgeHeight;
314 base.OnProcessTiles(point, dir);
315 }
bool HasDesignation
Definition: Point.cs:83
bool IsWallOrFence
Definition: Recipe.cs:248
Status Destroy()
Definition: Task.cs:31

References Recipe._dir, altitude, bridgeHeight, CellDetail.designation, Task.Destroy(), Point.detail, Point.HasDesignation, Recipe.IsWallOrFence, recipe, and SetAltitude().

◆ OnRenderTile()

override void AM_Build.OnRenderTile ( Point  point,
HitResult  result,
int  dir 
)
inline

Definition at line 247 of file AM_Build.cs.

248 {
249 if (recipe == null)
250 {
251 return;
252 }
254 {
255 base.OnRenderTile(point, result, dir);
256 return;
257 }
258 if (EClass.screen.tileSelector.start == null)
259 {
260 FixBridge(point, recipe);
261 }
263 {
264 OnRenderTileFloor(point, result);
265 return;
266 }
267 if (result != HitResult.Valid && result != HitResult.Warning)
268 {
269 base.OnRenderTile(point, result, dir);
270 return;
271 }
272 if (bridgeHeight != -1)
273 {
274 Vector3 vector = point.Position();
275 EClass.screen.guide.passGuideFloor.Add(vector.x, vector.y, vector.z - 0.01f, (float)result);
276 }
277 int desiredDir = recipe.tileType.GetDesiredDir(point, recipe._dir);
278 if (desiredDir != -1)
279 {
280 dir = (recipe._dir = desiredDir);
281 }
282 bool main = !base.tileSelector.multisize || (base.tileSelector.firstInMulti && base.Summary.count == base.Summary.countValid);
283 recipe.OnRenderMarker(point, active: false, result, main, dir, bridgeHeight + ((!recipe.tileType.AltitudeAsDir || IsRoofEditMode()) ? altitude : 0));
284 }
void FixBridge(Point point, Recipe recipe)
Definition: AM_Build.cs:238
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:553
virtual void OnRenderMarker(Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
Definition: Recipe.cs:730
virtual bool IsFloorOrBridge
Definition: Recipe.cs:226
virtual bool AltitudeAsDir
Definition: TileType.cs:225
virtual int GetDesiredDir(Point p, int d)
Definition: TileType.cs:386

References Recipe._dir, MeshPass.Add(), altitude, TileType.AltitudeAsDir, bridgeHeight, Cell.bridgeHeight, Point.cell, FixBridge(), TileType.GetDesiredDir(), BaseGameScreen.guide, Recipe.IsBridge, Recipe.IsFloorOrBridge, IsRoofEditMode(), Recipe.OnRenderMarker(), ScreenGuide.passGuideFloor, Point.Position(), recipe, EClass.screen, BaseTileSelector.start, BaseGameScreen.tileSelector, and Recipe.tileType.

Referenced by HotItemHeld.OnRenderTile().

◆ OnUpdateCursor()

override void AM_Build.OnUpdateCursor ( )
inline

Definition at line 137 of file AM_Build.cs.

138 {
139 SetCursorOnMap(CursorSystem.Build);
140 }
static CursorInfo Build
Definition: CursorSystem.cs:70

References CursorSystem.Build.

◆ RotateUnderMouse()

override void AM_Build.RotateUnderMouse ( )
inline

Definition at line 349 of file AM_Build.cs.

350 {
351 if (recipe != null && recipe.CanRotate)
352 {
353 SE.Rotate();
354 recipe.Rotate();
355 }
356 }
virtual bool CanRotate
Definition: Recipe.cs:299
virtual void Rotate()
Definition: Recipe.cs:867

References Recipe.CanRotate, recipe, and Recipe.Rotate().

◆ SetAltitude()

void AM_Build.SetAltitude ( int  a)
inline

Definition at line 385 of file AM_Build.cs.

386 {
387 if (mold == null)
388 {
390 }
391 altitude = (mold.altitude = a);
394 {
395 mold.dir = (recipe._dir = altitude);
396 }
397 }
void CreateNewMold(bool processing=false)
virtual void OnChangeAltitude(int a)
Definition: Recipe.cs:863

References altitude, TileType.AltitudeAsDir, AM_Designation< TaskBuild >.CreateNewMold(), IsRoofEditMode(), AM_Designation< TaskBuild >.mold, Recipe.OnChangeAltitude(), recipe, and Recipe.tileType.

Referenced by ModAltitude(), OnCreateMold(), OnFinishProcessTiles(), OnProcessTiles(), and StartBuild().

◆ StartBuild()

void AM_Build.StartBuild ( Recipe  r,
Func< ButtonGrid _button 
)
inline

Definition at line 164 of file AM_Build.cs.

165 {
166 recipe = r;
167 button = _button;
168 if (!base.IsActive)
169 {
170 Activate();
171 }
173 bridgeHeight = -1;
175 base.Summary.SetRecipe(r);
176 EClass.ui.hud.hint.Refresh();
177 }
static UI ui
Definition: EClass.cs:17
virtual RenderRow renderRow
Definition: Recipe.cs:210
virtual SourcePref GetPref()
Definition: RenderRow.cs:354
int defaultAltitude
Definition: SourcePref.cs:303

References bridgeHeight, button, AM_Designation< TaskBuild >.CreateNewMold(), SourcePref.defaultAltitude, RenderRow.GetPref(), recipe, Recipe.renderRow, SetAltitude(), and EClass.ui.

Referenced by BuildMenu.RefreshCategory().

◆ TopHeight()

override int AM_Build.TopHeight ( Point  p)
inline

Definition at line 101 of file AM_Build.cs.

102 {
103 if (!recipe.IsThing)
104 {
106 }
107 if (altitude != 0)
108 {
109 return altitude;
110 }
111 return -1;
112 }

References altitude, TileType.AltitudeAsDir, bridgeHeight, Recipe.IsThing, recipe, and Recipe.tileType.

Member Data Documentation

◆ _recipe

Recipe AM_Build._recipe

Definition at line 12 of file AM_Build.cs.

Referenced by OnBeforeProcessTiles(), and OnCreateMold().

◆ altitude

◆ bridgeHeight

int AM_Build.bridgeHeight

◆ button

Func<ButtonGrid> AM_Build.button

Definition at line 14 of file AM_Build.cs.

Referenced by OnFinishProcessTiles(), and StartBuild().

◆ houseBoard

TraitHouseBoard AM_Build.houseBoard

Definition at line 16 of file AM_Build.cs.

Referenced by RecipeCard.Build(), and OnDeactivate().

◆ recipe

Property Documentation

◆ AllowAutoClick

override bool AM_Build.AllowAutoClick
get

Definition at line 36 of file AM_Build.cs.

37 {
38 get
39 {
40 if (recipe != null)
41 {
42 return !(recipe is RecipeCard);
43 }
44 return false;
45 }
46 }

◆ AllowMiddleClickFunc

override bool AM_Build.AllowMiddleClickFunc
get

Definition at line 48 of file AM_Build.cs.

◆ boxType

override BaseTileSelector.BoxType AM_Build.boxType
get

Definition at line 56 of file AM_Build.cs.

◆ buildMenuMode

override BuildMenu.Mode AM_Build.buildMenuMode
get

Definition at line 18 of file AM_Build.cs.

◆ CostMoney

override int AM_Build.CostMoney
get

Definition at line 20 of file AM_Build.cs.

21 {
22 get
23 {
24 if (recipe == null || recipe.UseStock)
25 {
26 return 0;
27 }
28 return 10;
29 }
30 }

◆ hitH

override int AM_Build.hitH
get

Definition at line 60 of file AM_Build.cs.

◆ hitType

override BaseTileSelector.HitType AM_Build.hitType
get

Definition at line 52 of file AM_Build.cs.

◆ hitW

override int AM_Build.hitW
get

Definition at line 58 of file AM_Build.cs.

◆ idSound

override string AM_Build.idSound
get

Definition at line 34 of file AM_Build.cs.

◆ IsBuildMode

override bool AM_Build.IsBuildMode
get

Definition at line 32 of file AM_Build.cs.

◆ MaxAltitude

int AM_Build.MaxAltitude
get

Definition at line 62 of file AM_Build.cs.

63 {
64 get
65 {
67 {
68 return recipe.MaxAltitude;
69 }
70 return 63;
71 }
72 }

Referenced by ActionMode.GetHintText(), and ModAltitude().

◆ SelectorHeight

override int AM_Build.SelectorHeight
get

Definition at line 50 of file AM_Build.cs.

◆ selectType

override BaseTileSelector.SelectType AM_Build.selectType
get

Definition at line 54 of file AM_Build.cs.


The documentation for this class was generated from the following file: