So I have creative_props with three tags, T_Barn, T_Lane and T_.
tag_manager := class():
IDTagMap<public> : [int]tag = map{
1 => T_1{},
2 => T_2{},
3 => T_3{},
4 => T_4{},
5 => T_5{},
6 => T_6{},
7 => T_7{},
8 => T_8{}
}
BarnNoToTag<public> : [int]tag = map{
0 => B_1{},
1 => B_2{},
2 => B_3{},
3 => B_4{}
}
GetLaneObjects<public>(QueryDevice : creative_device, BarnID: int, LaneNo : int) : []creative_prop =
var LaneObjects : []creative_prop = array{}
Print("Searching for BarnID {BarnID} and LaneNo {LaneNo}...")
if:
LaneTag := IDTagMap[LaneNo]
BarnTag := BarnNoToTag[BarnID]
then:
Generator := QueryDevice.FindCreativeObjectsWithTag(T_Lane{})
for (Object : Generator, TileProp := creative_prop[Object]):
Print("...Found an object with T_Lane. Checking other tags...")
TagView := TileProp.GetTags()
if (TagView.Has[T_1{}]):
Print("SUCCESS: Found Tile for Lane {LaneNo} and Barn {BarnID}")
set LaneObjects += array{TileProp}
else:
Print("ERROR: Invalid BarnID ({BarnID}) or LaneNo ({LaneNo}). Not found in map.")
return LaneObjects
However, the if condition for Has or HasAll fails, no matter what. Can someone please tell me if I am doing something wrong? The documentation for Tags is also not updated.