Elin Decompiled Documentation EA 23.102 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:49
virtual bool CanOnlyCarry
Definition: Trait.cs:283

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 230 of file AM_Build.cs.

231 {
232 bridgeHeight = -1;
233 if (recipe.IsBridge)
234 {
235 bridgeHeight = (byte)((point.cell.bridgeHeight == 0) ? (point.cell.height + recipe.tileType.MinAltitude) : point.cell.bridgeHeight);
236 }
237 }
int bridgeHeight
Definition: AM_Build.cs:6
Recipe recipe
Definition: AM_Build.cs:10
byte bridgeHeight
Definition: Cell.cs:74
Cell cell
Definition: Point.cs:51
virtual TileType tileType
Definition: Recipe.cs:198
bool IsBridge
Definition: Recipe.cs:233
virtual int MinAltitude
Definition: TileType.cs:201

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 124 of file AM_Build.cs.

125 {
127 }
virtual bool CanInstaComplete
Definition: TileType.cs:199

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

◆ GetGuidePass()

override MeshPass AM_Build.GetGuidePass ( Point  point)
inline

Definition at line 115 of file AM_Build.cs.

116 {
117 if (!recipe.IsBlock)
118 {
120 }
122 }
ScreenGuide guide
Definition: EClass.cs:5
static BaseGameScreen screen
Definition: EClass.cs:32
virtual bool IsBlock
Definition: Recipe.cs:229
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 106 of file AM_Build.cs.

107 {
108 if (p.detail?.designation is TaskBuild)
109 {
110 return HitResult.Warning;
111 }
112 return HitResult.Invalid;
113 }
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 177 of file AM_Build.cs.

178 {
179 if (start != null)
180 {
181 mold.bridgeHeight = start.cell.bridgeHeight;
182 }
183 else
184 {
185 mold.bridgeHeight = point.cell.bridgeHeight;
186 }
187 if (recipe == null)
188 {
189 return HitResult.Default;
190 }
191 if (IsRoofEditMode())
192 {
193 return HitResult.Valid;
194 }
195 if (IsFillMode())
196 {
197 Cell cell = point.cell;
198 if (recipe.IsBridge)
199 {
200 if (cell._bridge != start.cell._bridge)
201 {
202 return HitResult.NoTarget;
203 }
204 return HitResult.Valid;
205 }
206 if (recipe.IsFloor)
207 {
208 if (cell._floor != start.cell._floor)
209 {
210 return HitResult.NoTarget;
211 }
212 return HitResult.Valid;
213 }
214 if (recipe.IsBlock)
215 {
216 if (cell._block != start.cell._block)
217 {
218 return HitResult.NoTarget;
219 }
220 return HitResult.Valid;
221 }
222 }
224 {
225 return HitResult.Invalid;
226 }
227 return base.HitTest(point, start);
228 }
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:30
byte _bridge
Definition: Cell.cs:46
byte _floor
Definition: Cell.cs:34
byte height
Definition: Cell.cs:72
bool Equals(int _x, int _z)
Definition: Point.cs:924
bool IsFloor
Definition: Recipe.cs:225
virtual BaseTileSelector.SelectType SelectType
Definition: TileType.cs:259

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 350 of file AM_Build.cs.

351 {
353 {
354 if (recipe.MaxAltitude > 0)
355 {
356 ModAltitude(wheel);
358 }
359 else
360 {
361 base.InputWheel(wheel);
362 }
363 }
364 }
void ModAltitude(int a)
Definition: AM_Build.cs:366
BaseTileSelector tileSelector
void RefreshMouseInfo(bool force=false)
Definition: EInput.cs:8
static bool isCtrlDown
Definition: EInput.cs:263
static bool isAltDown
Definition: EInput.cs:265
int MaxAltitude
Definition: Recipe.cs:212

References EInput.isAltDown, EInput.isCtrlDown, 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:303
static CoreDebug debug
Definition: EClass.cs:48
virtual bool IsThing
Definition: Recipe.cs:235

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

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

◆ 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(), TaskBuild.OnProgressComplete(), OnRenderTile(), and SetAltitude().

◆ ModAltitude()

void AM_Build.ModAltitude ( int  a)
inline

Definition at line 366 of file AM_Build.cs.

367 {
368 altitude += a;
369 if (altitude < (recipe.IsBridge ? (-10) : 0))
370 {
372 }
373 if (altitude > MaxAltitude)
374 {
375 altitude = (recipe.IsBridge ? (-10) : 0);
376 }
378 }
int MaxAltitude
Definition: AM_Build.cs:63
void SetAltitude(int a)
Definition: AM_Build.cs:380

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 134 of file AM_Build.cs.

135 {
136 list = base.Designations.build;
137 base.OnActivate();
138 }

References AM_Designation< TaskBuild >.list.

◆ OnBeforeProcessTiles()

override void AM_Build.OnBeforeProcessTiles ( )
inline

Definition at line 278 of file AM_Build.cs.

279 {
280 _recipe = recipe;
281 _recipe._dir = recipe._dir;
282 mold.dir = recipe._dir;
283 base.OnBeforeProcessTiles();
284 }
Recipe _recipe
Definition: AM_Build.cs:12
int _dir
Definition: Recipe.cs:175

References Recipe._dir, _recipe, and recipe.

◆ OnCancel()

override void AM_Build.OnCancel ( )
inline

Definition at line 151 of file AM_Build.cs.

152 {
154 }
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 171 of file AM_Build.cs.

172 {
173 mold.recipe = (processing ? _recipe : recipe);
175 }

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

◆ OnDeactivate()

override void AM_Build.OnDeactivate ( )
inline

Definition at line 140 of file AM_Build.cs.

141 {
142 base.Summary.SetRecipe(null);
143 recipe = (mold.recipe = null);
144 houseBoard = null;
145 if ((bool)BuildMenu.Instance)
146 {
148 }
149 }
TraitHouseBoard houseBoard
Definition: AM_Build.cs:16
static BuildMenu Instance
Definition: BuildMenu.cs:77
void Unselect()
Definition: BuildMenu.cs:441

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

◆ OnFinishProcessTiles()

override void AM_Build.OnFinishProcessTiles ( )
inline

Definition at line 309 of file AM_Build.cs.

310 {
311 base.OnFinishProcessTiles();
312 ButtonGrid buttonGrid = button();
313 if (recipe.UseStock)
314 {
315 Thing thing = recipe.ingredients[0].thing;
316 if (thing == null || thing.isDestroyed || thing.ExistsOnMap || thing.Num <= 0)
317 {
318 ActionMode.ignoreSound = true;
319 if ((bool)buttonGrid)
320 {
321 buttonGrid.selected = false;
322 buttonGrid.DoNormalTransition();
323 }
328 return;
329 }
330 }
331 if ((bool)buttonGrid)
332 {
333 buttonGrid.SetRecipe();
334 }
335 if (recipe.IsBridge)
336 {
337 SetAltitude(0);
338 }
339 }
Func< ButtonGrid > button
Definition: AM_Build.cs:14
void RefreshCategory(string cat)
Definition: BuildMenu.cs:491
bool isDestroyed
Definition: Card.cs:71
bool ExistsOnMap
Definition: Card.cs:1961
int Num
Definition: Card.cs:154
static Player player
Definition: EClass.cs:12
string lastBuildCategory
Definition: Player.cs:26
Pref pref
Definition: Player.cs:814
List< Ingredient > ingredients
Definition: Recipe.cs:164
bool UseStock
Definition: Recipe.cs:167
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 286 of file AM_Build.cs.

287 {
288 if (dir != -1)
289 {
290 mold.dir = dir;
291 }
292 else
293 {
294 mold.dir = recipe._dir;
295 }
296 if (point.HasDesignation)
297 {
298 if (point.detail.designation is TaskBuild taskBuild && recipe.IsWallOrFence && taskBuild.recipe.IsWallOrFence && taskBuild.dir != dir)
299 {
300 mold.dir = (dir = 2);
301 }
302 point.detail?.designation.Destroy();
303 }
304 mold.bridgeHeight = bridgeHeight;
306 base.OnProcessTiles(point, dir);
307 }
bool HasDesignation
Definition: Point.cs:83
bool IsWallOrFence
Definition: Recipe.cs:231
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 239 of file AM_Build.cs.

240 {
241 if (recipe == null)
242 {
243 return;
244 }
246 {
247 base.OnRenderTile(point, result, dir);
248 return;
249 }
250 if (EClass.screen.tileSelector.start == null)
251 {
252 FixBridge(point, recipe);
253 }
255 {
256 OnRenderTileFloor(point, result);
257 return;
258 }
259 if (result != HitResult.Valid && result != HitResult.Warning)
260 {
261 base.OnRenderTile(point, result, dir);
262 return;
263 }
264 if (bridgeHeight != -1)
265 {
266 Vector3 vector = point.Position();
267 EClass.screen.guide.passGuideFloor.Add(vector.x, vector.y, vector.z - 0.01f, (float)result);
268 }
269 int desiredDir = recipe.tileType.GetDesiredDir(point, recipe._dir);
270 if (desiredDir != -1)
271 {
272 dir = (recipe._dir = desiredDir);
273 }
274 bool main = !base.tileSelector.multisize || (base.tileSelector.firstInMulti && base.Summary.count == base.Summary.countValid);
275 recipe.OnRenderMarker(point, active: false, result, main, dir, bridgeHeight + ((!recipe.tileType.AltitudeAsDir || IsRoofEditMode()) ? altitude : 0));
276 }
void FixBridge(Point point, Recipe recipe)
Definition: AM_Build.cs:230
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:524
virtual void OnRenderMarker(Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
Definition: Recipe.cs:688
virtual bool IsFloorOrBridge
Definition: Recipe.cs:209
virtual bool AltitudeAsDir
Definition: TileType.cs:205
virtual int GetDesiredDir(Point p, int d)
Definition: TileType.cs:362

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 129 of file AM_Build.cs.

130 {
131 SetCursorOnMap(CursorSystem.Build);
132 }
static CursorInfo Build
Definition: CursorSystem.cs:70

References CursorSystem.Build.

◆ RotateUnderMouse()

override void AM_Build.RotateUnderMouse ( )
inline

Definition at line 341 of file AM_Build.cs.

342 {
343 if (recipe != null && recipe.CanRotate)
344 {
345 SE.Rotate();
346 recipe.Rotate();
347 }
348 }
virtual bool CanRotate
Definition: Recipe.cs:282
virtual void Rotate()
Definition: Recipe.cs:825

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

◆ SetAltitude()

void AM_Build.SetAltitude ( int  a)
inline

Definition at line 380 of file AM_Build.cs.

381 {
382 if (mold == null)
383 {
385 }
386 altitude = (mold.altitude = a);
389 {
390 mold.dir = (recipe._dir = altitude);
391 }
392 }
void CreateNewMold(bool processing=false)
virtual void OnChangeAltitude(int a)
Definition: Recipe.cs:821

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 156 of file AM_Build.cs.

157 {
158 recipe = r;
159 button = _button;
160 if (!base.IsActive)
161 {
162 Activate();
163 }
165 bridgeHeight = -1;
166 SetAltitude(0);
167 base.Summary.SetRecipe(r);
168 EClass.ui.hud.hint.Refresh();
169 }
static UI ui
Definition: EClass.cs:16

References bridgeHeight, button, AM_Designation< TaskBuild >.CreateNewMold(), recipe, 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 {
104 }

References altitude, TileType.AltitudeAsDir, bridgeHeight, 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 }
virtual RenderRow renderRow
Definition: Recipe.cs:193

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: