public static bool IsArcValidWithCrossing (Limb[] to, Vector facing) { float facing_rad = facing.toRadian(); foreach (Limb limb in to) { if ( !limb.main.IsUnknown() && !limb.sub.IsUnknown() && !Panel.IsBracketableDirection( facing_rad, limb == to[1], limb.main.panel.index, limb.sub.panel.index ) ) { return false; } if ( !limb.main.IsUnknown() && !limb.extra.IsUnknown() && !Panel.IsBracketableDirection( facing_rad, limb == to[1], limb.main.panel.index, limb.extra.panel.index ) ) { return false; } } return true; }