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

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

Introduction

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

Prototype

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

Source Link

Document

Subtracts the given values from this Color's component 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)));
    }));//from ww  w.  j  a  va 2  s . c  o 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());
    }));
}