1145 {
1149 if (targetItem)
1150 {
1151 parent = targetItem.GetHierarchyParent();
1152 }
1153 target =
new ActionTarget(targetItem, parent, -1, vector.Zero, -1);
1154 bool hasTarget = targetItem != NULL;
1155
1156 if (mainItem)
1157 {
1158 array<ActionBase_Basic> actions;
1159 array<ref ActionBase> variant_actions;
1160 ActionBase picked_action;
1161 int variants_count,v;
1162
1163
1164 mainItem.GetActions(DefaultActionInput, actions);
1165 if (actions)
1166 {
1167 for (int i = 0; i < actions.Count(); i++)
1168 {
1169 picked_action = ActionBase.Cast(actions[i]);
1171 {
1174 for (v = 0; v < variant_actions.Count(); v ++)
1175 {
1176 picked_action = variant_actions[v];
1178 {
1179 if (hasTarget == picked_action.
HasTarget())
1180 return true;
1181 }
1182 }
1183 }
1184 else
1185 {
1187 {
1188 if (hasTarget == picked_action.
HasTarget())
1189 return true;
1190 }
1191 }
1192 }
1193 }
1194
1196 if (actions)
1197 {
1198 for (int j = 0; j < actions.Count(); j++)
1199 {
1200 picked_action = ActionBase.Cast(actions[j]);
1202 {
1205 for (v = 0; v < variant_actions.Count(); v ++)
1206 {
1207 picked_action = variant_actions[v];
1209 {
1210 if (hasTarget == picked_action.
HasTarget())
1211 return true;
1212 }
1213 }
1214 }
1215 else
1216 {
1218 {
1219 if (hasTarget == picked_action.
HasTarget())
1220 return true;
1221 }
1222 }
1223 }
1224 }
1225 }
1226 return false;
1227 }
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
class GP5GasMask extends MaskBase ItemBase
int GetVariants(out array< ref ActionBase > variants)
void UpdateVariants(Object item, Object target, int componet_index)
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
bool CanBeSetFromInventory()