Lua API - 0mily/ViroViroIce-Engine GitHub Wiki

Lua API (legal e bacana) (WIP)

Warning

Poppup_attack_infected_ad

This page is incomplete!!!!!!

This page will list all the new variables, callbacks, functions and changes ViroViroIce adds to lua scripting. Check out the links below for help with og Psych Engine stuff and the new things Psych Engine Mint adds (since VVIE is a Psych Mint fork!!).

Psych Engine's Lua API | PsychWiki | Psych Engine Mint Changelog


Variables

  • stageUI: Returns the current UI name.
  • sustainAlpha: Returns the opacity of long notes.
  • opaqueStrums: Returns true if the strums are opaque.
  • mechanics: Returns true if mechanics are enabled.
  • modchart: Returns true if modcharts are enabled.
  • pixelRender: Returns true if pixel stages are using pixel perfect rendering.
  • allowMiku: Returns true if the Miku D-Sides easter egg is allowed.
  • allowNeatRating: Returns true if the "Neat!!!" rating is allowed.
  • extra: Returns true if... extra? idk

Callbacks And Functions

Box Callbacks/Functions

makeLuaBox(tag:String, tabs:Array<String>, defaultTab:String, width:Int, height:Int, x:Float, y:Float)

Creates a "box" (the window thing you see in the editors) with the tabs provided. Add stuff inside of it with addToBox.

  • tag: Your box tag.
  • tabs: The tabs the box will have.
  • defaultTab: The tab that will be selected by default
  • width: The box width.
  • height: The box height.
  • x: The box horizontal position.
  • y: The box vertical position.

Example:

makeLuaBox('funnyBox', {'Tab 1', 'Tab 2', 'Tab 3'}, 'Tab 2', 300, 280, 0, 0)
setObjectCamera('funnyBox', 'other')
addLuaSprite('funnyBox', true) -- yeah you add it with addLuaSprite lol

makeLuaButton(tag:String, nome:String, largura:Int, altura:Int, x:Float, y:Float)

Cria um botão com o nome fornecido. Chama onButtonPressed quando pressionado.

  • tag: Tag do seu botão.
  • nome: O texto que terá no centro do botão.
  • largura: A largura/tamanho horizontal do botão. (não use Float!!!)
  • altura: A altura/tamanho vertical do botão. (não use Float!!!)
  • x: A posição horizontal do botão.
  • y: A posição vertical do botão.

Adicione usando addLuaButton.

Exemplo:

makeLuaButton('funnyButton', 'Botão', 100, 40, 0, 0)

image Um botão com a tag "funnyButton" de 100x40 com o nome de "Botão" na posição 0, 0.


makeLuaInputText(tag:String, textoPadrão:String, tamanho:Int, largura:Int, x:Float, y:Float)

Cria uma caixa de texto, pode ter um textoPadrão se quiser.

  • tag: Tag da sua caixa de texto.
  • textoPadrão: Um texto pré determinado da caixa de texto. (OPCIONAL)
  • tamanho: O tamanho geral da caixa de texto. (isso funciona tipo setTextSize)
  • largura: O quão largo a caixa de texto deve ser.
  • x: A posição horizontal da caixa de texto.
  • y: A posição vertical da caixa de texto.

Adicione usando addLuaInputText.

Exemplo:

makeLuaInputText('funnyInputText', 'blah blah texto padrão', 8, 200, 0, 0)

image Uma caixa de texto com a tag "funnyInputText" com 8 de tamanho, 200 de largura, com o texto padrão "blah blah texto padrão" na posição 0, 0.


makeLuaSlider(tag:String, nome:String, minimo:Float, máximo:Float, padrão:Float, largura:Int, x:Float, y:Float)

Cria um slider com o nome e um valor minimo e máximo fornecido. Chama onSliderChanged quando o valor é mudado.

  • tag: Tag do seu slider.
  • nome: O texto que terá em cima do slider.
  • minimo: O valor minimo que o slider deve ter.
  • máximo: O valor máximo que o slider deve ter.
  • padrão: O valor que o slider terá por padrão quando criado.
  • largura: A quão largo o slider deve ser. (não use Float!!!)
  • x: A posição horizontal do slider.
  • y: A posição vertical do slider.

Adicione usando addLuaSlider.

Exemplo:

makeLuaSlider('funnySlider', 'Slider', 0, 1, 0.5, 200, 0, 0)

image Um slider com a tag "funnySlider" com 200 de largura, com o nome "Slider", valor minimo de 0 e máximo de 1 na posição 0, 0, 0.5 é o valor padrão.


makeLuaCheckBox(tag:String, nome:String, padrão:Bool, tamanho:Int, x:Float, y:Float)

Cria uma check box com o nome fornecido. Chama onCheckBoxChecked quando marcado/desmarcado.

  • tag: Tag da seu check box.
  • nome: O texto que terá do lado da check box.
  • padrão: Se a check box virá marcada ou não por padrão.
  • tamanho: O tamanho da check box.
  • x: A posição horizontal da check box.
  • y: A posição vertical da check box.

Adicione usando addLuaCheckBox.

Exemplo:

makeLuaCheckBox('funnyCheckBox', 'Check Box', true, 100, 0, 0)

image Uma check box com a tag "funnyCheckBox" com o nome "Check Box", tamanho de 100 na posição 0, 0 que é checado por padrão.


makeLuaNumericStepper(tag:String, step:Float, decimal:Int, minimo:Float, máximo:Float, padrão:Float, tamanho:Int, x:Float, y:Float, usarPorcentagem:Bool)

Cria um numeric stepper com o valor minimo e máximo fornecido. Um dia vai chamar onNumericStepperChange quando o valor é mudado. (se eu descobrir como, use getProperty('tag.value') por enquanto xd)

  • tag: Tag do seu numeric stepper.
  • step: Quanto o número vai adicionar ou subtrair quando clicado.
  • decimal: Sinceramente num tenho ideia kkkkkk eu uso 1 sempre.
  • minimo: O valor minimo que o numeric stepper vai ter.
  • máximo: O valor máximo que o numeric stepper vai ter.
  • padrão: O valor que o numeric stepper terá por padrão quando for criado.
  • tamanho: Tamanho do numeric stepper.
  • x: A posição horizontal do numeric stepper.
  • y: A posição vertical do numeric stepper.
  • usarPorcentagem: Se for true o número será mostrado em forma de porcentagem. (OPCIONAL)

Adicione usando addLuaNumericStepper.

Exemplo:

makeLuaNumericStepper('funnyNumStepper', 0.1, 1, 0, 1, 1, 60, 0, 0, false)

image Um numeric stepper com a tag "funnyNumStepper" com o tamanho de 60, step de 0.1, minimo de 0, máximo de 1 com valor padrão de 1 na posição 0, 0.


addLua_(tag:String, colocarNaFrente:Bool)

Substitui o "_" pelo nome de qualquer um dos callbacks já listados a cima, funciona exatamente igual ao addLuaSprite.

  • tag: Tag da coisa que cê quer adicionar.
  • colocarNaFrente: Se o que cê quer adicionar deve ser adicionado na frente de tudo ou não.

Exemplo:

addLuaBox('funnyBox', true)
addLuaButton('funnyButton')
addLuaInputText('funnyInputText')
addLuaSlider('funnySlider')
addLuaCheckBox('funnyCheckBox')
addLuaNumericStepper('funnyNumStepper')
-- adiciona a porra toda kkkkkkk

add_ToBox(tag:String, caixa:String, aba:String)

Substitui o "_" pelo nome de qualquer um dos callbacks já listados a cima. Adiciona a tag a uma caixa na aba fornecida.

(Não deve ser usado se a tag já tiver sido usada com addLua_!! use um ou outro por favor!!)

  • tag: Tag da coisa que cê quer adicionar.
  • caixa: Em qual caixa cê quer adicionar.
  • aba: Em qual aba da caixa cê quer adicionar.

Exemplo:

addButtonToBox('funnyButton', 'funnyBox', 'Aba 1')
addInputTextToBox('funnyInputText', 'funnyBox', 'Aba 2')
addSliderToBox('funnySlider', 'funnyBox', 'Aba 3')
addCheckBoxToBox('funnyCheckBox', 'funnyBox', 'Aba 1')
addNumericStepperToBox('funnyNumStepper', 'funnyBox', 'Aba 69')

getInputTextString(tag:String)

Retorna o texto da caixa de texto da tag fornecida.

  • tag: Tag da caixa de texto.

Exemplo:

debugPrint('getInputTextString('funnyInputText')) -- vai printar o texto que estiver escrito na caixa de texto com a tag de "funnyInputText"

isInputTextOnFocus(tag:String)

Retorna se a caixa de texto está selecionada ou não.

  • tag: Tag da caixa de texto.

Exemplo:

setProperty('cpuControlled', isInputTextOnFocus('funnyInputText')) -- botplay é ativado caso esteja escrevendo algo na caixa de texto com a tag de "funnyInputText"
Shader Callbacks

as funções de shader foram completamente alteradas. Ainda possibilita o uso do modo antigo da Psych Engine, porém agora teve uma total repaginação de tudo e como funciona.

setCameraShader(camera:String, shader:String)

Aplica um shader na câmera específica.

Exemplo:

initLuaShader("blur"); -- Shader engraçado

setCameraShader("camGame", "blur"); -- Câmera engraçada

removeCameraShader(camera:String)

Remove o shader em uma câmera específica.

Exemplo:

removeCameraShader("camGame", "blur"); -- tchau Câmera engraçada

doTweenShader(tag:String, obj:String, shader:String, prop:String, value:Float, duration:Float, ease:String = "linear")

Faz o tween de um shader.

Exemplo:

doTweenShader('seios', 'camGame', 'intensity', 1, 0.5, "cubeOut"); -- legal

Funções

onButtonPressed(tag:String)

Quando um botão é apertado está função é chamada usando a tag desse botão.

Exemplo:

function onButtonPressed(tag)
    if tag == 'funnyButton' then
        setProperty('boyfriend.visible', not getProperty('boyfriend.visible')) -- se o botão com a tag "funnyButton" for pressionado a visibilidade do boyfriend é mudada
    end
end

onSliderChanged(tag:String, value:Float)

Quando o valor de um slider é mudado está função é chamada usando a tag desse slider pegue o valor atual dele com value.

Exemplo:

function onSliderChanged(tag, value)
    if tag == 'funnySlider' then
        setProperty('playbackRate', value) -- muda a velocidade do jogo para o valor do slider com a tag "funnySlider"
    end
end

onCheckBoxChecked(tag:String)

Quando um check box é marcada ou desmarcado está função é chamada usando a tag desse check box.

Exemplo:

local minhaVar = false

function onCheckBoxChecked(tag)
    if tag == 'funnyCheckBox' then
        minhaVar = getProperty('funnyCheckBox.checked') -- quando o check box com a tag de "funnyCheckBox" é macado/desmarcado "minhaVar" muda de valor (sim usar getProperty é meio paia mas tô vendo um jeito melhor de fazer isso!!)
    end
end
⚠️ **GitHub.com Fallback** ⚠️