Example usage for com.badlogic.gdx.graphics Color add

List of usage examples for com.badlogic.gdx.graphics Color add

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics Color add.

Prototype

public Color add(float r, float g, float b, float a) 

Source Link

Document

Adds the given color component values to this Color's values.

Usage

From source file:me.scarlet.undertailor.lua.meta.LuaColorMeta.java

License:Open Source License

public LuaColorMeta() {
    this.metatable = new LuaTable();

    // color:getRGB()
    set("getRGB", asFunction(vargs -> {
        Color color = obj(vargs);
        return varargsOf(valueOf((int) (color.r * 255)), valueOf((int) (color.g * 255)),
                valueOf((int) (color.b * 255)));
    }));//  w w w . j ava  2  s .co  m

    // color:add(color)
    // color:add(r, g, b)
    set("add", asFunction(vargs -> {
        Color color = obj(vargs);
        if (vargs.arg(2).isnumber()) {
            float r = vargs.optint(2, 0) / 255F;
            float g = vargs.optint(3, 0) / 255F;
            float b = vargs.optint(4, 0) / 255F;
            return orNil(color.add(r, g, b, 0));
        } else {
            Color added = convert(vargs.arg(2)).getObject();
            return orNil(color.add(added));
        }
    }));

    // color:multiply(color)
    // color:multiply(r, g, b)
    set("multiply", asFunction(vargs -> {
        Color color = obj(vargs);
        if (vargs.arg(2).isnumber()) {
            float r = vargs.optint(2, 0) / 255F;
            float g = vargs.optint(3, 0) / 255F;
            float b = vargs.optint(4, 0) / 255F;
            return orNil(color.mul(r, g, b, 0));
        } else {
            Color multiplier = convert(vargs.arg(2)).getObject();
            return orNil(color.mul(multiplier));
        }
    }));

    // color:subtract(color)
    // color:subtract(r, g, b)
    set("subtract", asFunction(vargs -> {
        Color color = obj(vargs);
        if (vargs.arg(2).isnumber()) {
            float r = vargs.optint(2, 0) / 255F;
            float g = vargs.optint(3, 0) / 255F;
            float b = vargs.optint(4, 0) / 255F;
            return orNil(color.sub(r, g, b, 0));
        } else {
            Color subtracted = convert(vargs.arg(2)).getObject();
            return orNil(color.sub(subtracted));
        }
    }));

    // color:setRGB(color)
    // color:setRGB(r, g, b)
    set("setRGB", asFunction(vargs -> {
        Color color = obj(vargs);
        if (vargs.arg(2).isnumber()) {
            float r = vargs.optint(2, 0) / 255F;
            float g = vargs.optint(3, 0) / 255F;
            float b = vargs.optint(4, 0) / 255F;
            return orNil(color.set(r, g, b, 1));
        } else {
            Color set = convert(vargs.arg(2)).getObject();
            return orNil(color.set(set));
        }
    }));

    // color:clone()
    set("clone", asFunction(vargs -> {
        return orNil(obj(vargs).cpy());
    }));

    // color:toHex()
    set("toHex", asFunction(vargs -> {
        return valueOf(obj(vargs).toString());
    }));
}