package client.vars;

import static java.lang.annotation.ElementType.FIELD;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import client.vars.BaseVar.VarFunction;
import common.util.CharValidator;

@Target(FIELD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Variable {
	public static enum IntType {
		INT, COLOR, ALPHA;
	}

	String name();
	String display();
	CVarCategory category();
	float min() default (float)Integer.MIN_VALUE;
	float max() default (float)Integer.MAX_VALUE;
	IntType type() default IntType.INT;
	int precision() default 0;
	String unit() default "";
	boolean switched() default false;
	Class<? extends VarFunction> callback() default VarFunction.class;
	Class<? extends CharValidator> validator() default CharValidator.class;
}
