Lua API/ko:Renderer

From The Powder Toy
Revision as of 14:11, 18 November 2019 by seven2965 (talk | contribs) (ne il hae ya gi)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Renderer는 TPT의 렌더링 설정을 조작합니다. 당신은 이 기능들을 사용하여 렌더링/디스플레이 모드를 설정할 수 있으며 HUD/격자 설정의 몇가지를 바꿀 수 있습니다. 몇가기의 렌더링 함수들은 옛 버전인 tpt.* 에 있습니다.

이 카테고리 내의 기능들에는 무조건 renderer. 이나 ren. 이라는 접두사가 붙어야 합니다.

메소드

renderer.renderModes

table ren.renderModes()
ren.renderModes(table newModes)

만약 아무런 인수 없이 사용하게 된다면, 현재 적용되고 있는 렌더링 모드들을 반환합니다. 만약 렌더링 모드들을 인수로 넣게 된다면, 인수로 넣은 렌더링 모드들을 적용하게 됩니다.

예제

이 예제에서 사용되는 값이 궁금하다면 렌더링 모드를 참조하세요.

사용되는 렌더링 모드 확인하기

for k,v in pairs(ren.renderModes()) do
    print(k,"0x"..bit.tohex(v))
end
>>1, 0x00fff380; 2, 0xff00f270; 3, 0x0400f381

흐림 모드와 이펙트 모드를 같이 키기

ren.renderModes({ren.RENDER_BLOB, ren.RENDER_EFFE})

renderer.displayModes

table ren.displayModes()
ren.displayModes(table newModes)

renderer.renderModes와 비슷하게 작동합니다. 만약 아무런 인수 없이 사용하게 된다면, 현재 적용되고 있는 디스플레이 모드들을 반환합니다. 만약 디스플레이 모드들을 인수로 넣게 된다면, 인수로 넣은 디스플레이 모드들을 적용하게 됩니다.

예제

이 예제에서 사용되는 값이 궁금하다면 디스플레이 모드를 참조하세요.

사용되는 디스플레이 모드 확인하기

for k,v in pairs(ren.displayModes()) do
    print(k,"0x"..bit.tohex(v))
end
>>1, 0x00000002; 2, 0x00000010

잔상 모드와 압력 모드를 같이 키기

ren.displayModes({ren.DISPLAY_AIR, ren.DISPLAY_PERS})

renderer.colourMode

number ren.colourMode()
ren.colourMode(number colourMode)
number ren.colorMode
ren.colorMode(number colourMode)

색깔 모드는 오직 하나만 적용할 수 있기에, 이 함수는 이전의 함수들과 다릅니다. 만약 아무런 인수 없이 사용하게 된다면, 현재 사용하고 있는 색깔 모드를 반환합니다. 만약 색깔 모드를 인수로 넣으면, 그 색깔 모드를 적용하게 됩니다.

예제

이 예제에서 사용되는 값이 궁금하다면 색깔 모드를 참조하세요.

사용되는 색깔 모드 확인하기

print("0x"..bit.tohex(ren.colourMode()))
>> 0x00000001

열기 모드 적용하기

ren.colourMode(COLOUR_HEAT)

renderer.decoration

number ren.decorations()
ren.decorations(number decoSetting)

만약 아무런 인수 없이 사용하게 된다면, 데코레이션 설정 유무를 0이나 1로 반환합니다. 만약 0이나 1을 인수로 넣으면, 0이라면 데코레이션 설정이 꺼지고, 1이라면 켜집니다.

renderer.grid

number ren.grid()
ren.grid(number gridSize)

만약 아무런 인수 없이 사용하게 된다면, 격자의 크기를 반환합니다. 매 사이즈마다 격자의 크기는 4픽셀씩 오르게 됩니다. 만약 인수를 넣으면, 격자의 크기를 설정하게 됩니다. 범위의 제한은 없지만, -(음수)의 수치를 넣게 된다면 이상한 일이 벌어질 수 있습니다.

renderer.debugHUD

number ren.debugHUD()
ren.debugHUD(number debugSetting)

만약 아무런 인수 없이 사용하게 된다면, 디버그 HUD의 유무를 0이나 1로 반환합니다. 만약 0이나 1을 인수로 넣으면, 0이라면 디버그 HUD가 꺼지고, 1이라면 켜집니다. (디버그 HUD란, D키를 눌렀을 때 나오는 HUD입니다.)

상수

입자 그래픽 모드들

이름 설명
PMODE 0x00000FFF 아무 PMODE 설정이라도 설정되어있는지 확인하는 비트마스크입니다.
PMODE_NONE 0x00000000 아무 입자들도 그리지 않습니다. 미사용.
PMODE_FLAT 0x00000001 기본적인 입자들을 색을 덮어씌워 그립니다. 기본적으로는 모든 입자들에 적용됩니다.
PMODE_BLOB 0x00000002 흐림 모드와 같이 모든 입자에 흐림 효과를 적용합니다.
PMODE_BLUR 0x00000004 fancy 모드에 적용되는 블러입니다. 그래픽 함수가 사용되지 않는 모든 액체가 적용됩니다.
PMODE_GLOW 0x00000008 fancy 모드에서의 DEUT와 TRON같은 발광 효과를 적용합니다. 대부분 몇몇 방사성의 입자들에게 적용됩니다.
PMODE_SPARK 0x00000010 전기 등의 입자에 광원 효과를 줍니다.
PMODE_FLARE 0x00000020 BOMB같은 몇몇 입자들에 플레어 효과를 줍니다.
PMODE_LFLARE 0x00000040 DEST가 다른 입자에 충돌할 때처럼, 몇몇 입자들에 매우 크고 아름다운 플레어 효과를 줍니다
PMODE_ADD 0x00000080 PMODE_FLAT과 비슷하지만, 색을 덮어씌우지 않고 색을 추가합니다.
PMODE_BLEND 0x00000100 PMODE_ADD와 기본적으론 같지만, 더 나은 OpenGL 지원을 안겨다줍니다.
PSPEC_STICKMAN 0x00000200 스틱맨에게 쓰이고, 그 외의 것들은 건드리지 않습니다.
OPTIONS 0x0000F000 입자에 데코 설정이 되어있는지 확인하는 비트마스크입니다.
NO_DECO 0x00001000 입자들에게 데코레이션이 사용되지 않습니다.
DECO_FIRE 0x00002000 불같은 입자들에 데코를 적용합니다. 일단은 모든 가스들에게 적용되어 있습니다.
FIREMODE 0x00FF0000 아무 화염 효과라도 선택되어 있는지 확인하는 비트마스크입니다.
FIRE_ADD 0x00010000 약한 화염 효과를 적용합니다. FIRE_BLEND가 지원하는 많은 색들을 지원하지 않습니다.
FIRE_BLEND 0x00020000 더 힘세고 강한 화염 효과를 적용합니다. 모든 가스들은 기본으로 적용되어 있습니다.
EFFECT 0xFF000000 아무 특수효과라도 적용되어 있는지 확인하는 비트마스크입니다.
EFFECT_GRAVIN 0x01000000 PRTI 효과를 적용합니다. life와 ctype이 업데이트 합수에서 제대로 설정되어 있지 않으면 작동하지 않습니다.
EFFECT_GRAVOUT 0x02000000 PRTO 효과를 적용합니다. life와 ctype이 업데이트 합수에서 제대로 설정되어 있지 않으면 작동하지 않습니다.
EFFECT_LINES 0x04000000 SOAP와 같이 연결된 입자 사이에 선을 그립니다. 다른 특수효과들에 모두 무시당합니다.
EFFECT_DBGLINES 0x08000000 WIFI의 디버그 HUD 때와 같이 비슷한 온도의 같은 입자에 선을 그립니다.