Exemplo n.º 1
0
bool PlayerCreateState::_traitToggle(unsigned int num)
{
    auto player = Game::getInstance()->player();
    if (player->trait(num))
    {
        player->setTrait(num, 0);
        return true;
    }
    else
    {
        unsigned int selectedTraits = 0;
        for (unsigned int i = 0; i != 16; ++i) if (player->trait(i)) selectedTraits++;
        if (selectedTraits < 2)
        {
            player->setTrait(num, 1);
            return true;
        }
    }
    return false;
}
Exemplo n.º 2
0
void Quadmesh::valueChanged(Value &value)
{
    if (getTrait("renderAsWireframe").refersToSameSourceAs(value)) {
        if (getTrait("renderAsWireframe").getValue()) {
            lastSolidColorName = getTrait("solidColor").getValue();
            setTrait("solidColor", lastWiredColorName);
            shaderController->loadFromGlsl(BinaryData::QuadmeshWireframeShader_glsl);
            shaderController->compileShader();
        }
        else {
            lastWiredColorName = getTrait("solidColor").getValue();
            setTrait("solidColor", lastSolidColorName);
            shaderController->loadFromGlsl(BinaryData::QuadmeshSurfaceShader_glsl);
            shaderController->compileShader();
        }
    }
    else if (getTrait("resolution").refersToSameSourceAs(value)) {
        if (vertexPositionsFunction) {
            Nu = Nv = int(getTrait("resolution").getValue());
            evaluateVertexData();
        }
    }
}