Skip to content

Lua API

Mily_0 edited this page Apr 26, 2026 · 15 revisions

As coisa de lua da engine legal!!! :]

Por conveniencia:

API da Psych original

API da PsychWiki

Changelog da Psych Mint

Pule para alguma sessão da wiki: Variáveis | Callbacks | Funções


Variáveis

  • stageUI: Retorna o nome da UI atual. Retorna normal por padrão.
  • mechanics: Retorna true ou false se a opção Mechanics estiver ativada ou não.
  • modchart: Retorna true ou false se a opção Modchart estiver ativada ou não.
  • pixelRender: Retorna true ou false se a opção Week 6 Pixel Rendering estiver ativada ou não.
  • allowMiku: Retorna true ou false se a opção no Miku D-sides estiver ativada ou não.
  • extra: Retorna true ou false se a opção extra estiver ativada ou não.

Callbacks

makeLuaBox(tag:String, abas:Array<String>, abaPadrão:String, largura:Int, altura:Int, x:Float, y:Float)

Cria uma caixa com as abas fornecidadas. Adicione coisas nele com add_ToBox.

  • tag: Tag da sua caixa.
  • abas: As abas que a caixa irá ter.
  • abaPadrão: A aba que estará selecionada por padrão quando a caixa for criada.
  • largura: A largura/tamanho horizontal da caixa. (não use Float!!!)
  • altura: A altura/tamanho vertical da caixa. (não use Float!!!)
  • x: A posição horizontal da caixa.
  • y: A posição vertical da caixa.

Adicione usando addLuaBox.

Exemplo:

makeLuaBox('funnyBox', {'Aba 1', 'Aba 2', 'Aba 3'}, 'Aba 2', 300, 280, 0, 0)

image Uma caixa de 300x280 com a tag "funnyBox" na posição 0, 0 com 3 abas, a aba "Aba 2" é selecionada por padrão.


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"

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

Funções de Shader

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

Clone this wiki locally