Color (List<? extends UExpression> args) { try { ColorConstructors type = args.isEmpty() ? null : getConstructorType(args.size(), args.get(0).getExpressionType()); if (type != null) { return switch (type) { case INT -> new Color(getInt(args.get(0))); case INT_BOOL -> new Color(getInt(args.get(0)), getBoolean(args.get(1))); case INT_x3 -> new Color(getInt(args.get(0)), getInt(args.get(1)), getInt(args.get(2))); case INT_x4 -> new Color(getInt(args.get(0)), getInt(args.get(1)), getInt(args.get(2)), getInt(args.get(3))); case FLOAT_x3 -> new Color(getFloat(args.get(0)), getFloat(args.get(1)), getFloat(args.get(2))); case FLOAT_x4 -> new Color(getFloat(args.get(0)), getFloat(args.get(1)), getFloat(args.get(2)), getFloat(args.get(3))); }; } } catch (Exception ignore) { } return null; }