globals
rect udg_rect // some rect goes here representing the area around a tree to register.
region reg_region // not possible in GUI due to lack of region type, you only have rects in GUI
endglobals
function DesEnumRegionAddRect takes nothing returns nothing
local destructible des = GetEnumDestructable()
call MoveRectTo(udg_rect, GetDestructableX(des), GetDestructableY(des))
call RegionAddRect(reg_region, udg_rect)
set des = null
endfunction
function DestFilterTree takes nothing returns boolean
local integer dest = GetDestructableTypeId(GetFilterDestructable())
return dest == '0000' or dest == '0001' // add all tree tests here
endfunction
// use this function like TriggerRegisterEnterRectSimple, takes trigger and the rect area around each tree
function TriggerRegisterEnterRectNearTree takes trigger trig, rect r returns event
set udg_rect = r
set reg_region = CreateRegion()
call EnumDestructablesInRect(bj_mapInitialPlayableArea, Condition(function DestFilterTree), function DesEnumRegionAddRect)
return TriggerRegisterEnterRegion(trig, reg_region, null)
endfunction