This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 4rpl:commands:setunitcell [2021/09/15 14:49] – added another example Grabz | 4rpl:commands:setunitcell [2025/02/14 14:57] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 15: | Line 15: | ||
| <code 4rpl> | <code 4rpl> | ||
| SetUnitCell(< | SetUnitCell(< | ||
| - | </ | ||
| - | ===== Handling all the cases ===== | ||
| - | Here's an example of how to handle all the cases with setting custom occupied count on a unit. This is an example of a 9x9 unit that only wants the outer rim of the unit to occupy space, with a hollow middle. Make sure the unit is set to not occupy land in unit settings. | ||
| - | <code 4rpl> | ||
| - | :Awake | ||
| - | once | ||
| - | RegisterForMSG(" | ||
| - | endonce | ||
| - | :Once | ||
| - | @Awake | ||
| - | :PostUpdate | ||
| - | Self GetUnitMoveCell pop -> | ||
| - | Self GetUnitCell ->POU_iZ ->POU_iX | ||
| - | |||
| - | #If a movable unit is moved by the player | ||
| - | #Remove custom occupied cells when the unit takes off | ||
| - | #Add them back when the unit has landed | ||
| - | < | ||
| - | < | ||
| - | Self GetUnitCell TRUE @SetCustomOccupiedLand | ||
| - | else | ||
| - | Self GetUnitCell FALSE @SetCustomOccupiedLand | ||
| - | endif | ||
| - | #Update occupied count when the unit is forcibly moved in the editor | ||
| - | #Only occurs when the unit is landed | ||
| - | else < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | endif | ||
| - | endif endif | ||
| - | |||
| - | < | ||
| - | < | ||
| - | #i1 i2 b3 - | ||
| - | #Uniformly set or unset a chunk of occupied land | ||
| - | #Arguments: CellX and CellY of the last position (if unsetting) or current position (if setting), | ||
| - | # | ||
| - | #Result: None | ||
| - | : | ||
| - | -> | ||
| - | 4 -> | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | I J GetCellOccupiedCount -> | ||
| - | < | ||
| - | I J < | ||
| - | else | ||
| - | I J < | ||
| - | endif | ||
| - | endif | ||
| - | loop | ||
| - | loop | ||
| </ | </ | ||
| < | < | ||