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 | ||
</ | </ | ||
< | < | ||