Element Properties/ko

From The Powder Toy
(Redirected from Gravity/ko)
Jump to navigation Jump to search
Language: English  • 한국어

TPT의 각 요소에는 화면상의 해당 유형 입자 전체에 적용되는 속성이 연관되어 있다. 다음은 해당 속성 전체 목록이다(C++ 및 Lua 모두에서 사용 가능).

속성

Identifier 식별자 문자열, Lua 및 내부 작업에 사용된다. DEFAULT_PT_XXXX 형식으로 구성된다.
Name 이름, 4글자 이하로 사용하는 것이 좋다. 5글자 이상이면 단추에 표시되지 않을 수 있다. (SPWN2는 이전에는 'S...'로 표시되었으나, 현재는 이름이 단추 밖으로 넘친다)
Color 기본 색상. 16진수(RRGGBB)로 표기된 숫자이다. 도색 편집기에서는 색상을 16진수로 표시하며, 16진수 리터럴을 추가하고, 앞의 FF는 무시하며, 그 뒤의 6자리 숫자를 사용한다. 앞의 FF는 32비트 색상의 알파(투명도) 부분을 나타낸다.
MenuVisible 메뉴에 표시 여부, 0이면 숨겨진다. 기본값은 0이다.
MenuSection 포함될 메뉴 섹션. 가능한 값 목록은 아래를 참조하라.
Enabled 활성화 여부. 0인 경우, 어떤 방식으로도 생성되거나 볼 수 없으며 Lua에서도 마찬가지이다. 생성되더라도 그냥 사라진다. 제거된 요소에 사용되며, 이 값은 1로 유지해야 한다.
Advection 이류. 입자가 공기 흐름에 의해 가속되는 정도이다. 일반적으로 고체는 0이며, 다른 요소들은 최대 1까지 가능하다. 음수 값도 가능하며, ANARDEST은 압력 방향으로 이동하기 위해 음수 값을 가진다.
AirDrag 입자가 진행 방향으로 생성하는 공기의 양. 일반적으로 매우 작으며, 0.04f는 많은 양의 양압을 생성한다(-는 음압을 생성함).
AirLoss 입자가 공기 흐름을 늦추는 정도(벽만큼 큰 효과는 아님). 1 = 영향 없음, 0 = 최대 영향이다. 고체는 일반적으로 0.90f 이상이며, 대부분의 다른 요소들도 마찬가지다.
Loss 입자가 매 프레임마다 잃는 속도의 양. 1 = 손실 없음, 0.5 = 절반 손실이다. 고체는 0으로 설정된다. 에너지 입자나 예전 움직이는 스펀지처럼 1로 설정된 경우는 극소수이다.
Collision 입자가 무언가와 충돌할 때 속도에 곱해지는 값. 일반적으로 -0.01f 또는 0.0f로 설정되며, 에너지 입자에는 영향을 미치지 않는다.
Gravity 입자가 떨어지는 속도. 음수 값은 입자가 떠오름을 의미한다. 일반적으로 매우 작으며, 대부분의 기체는 음수이고, 그 외 모든 것은 보통 0.04f 미만이다.
Diffusion 입자가 얼마나 '흔들리는지'(GAS 또는 HYGN을 생각해 보자). 기체를 제외하고는 0으로 설정되며, 기체는 양수이다. 흔들림이 클수록 최대 3(또는 그 이상)까지 설정된다. GAS는 0.75f, HYGN은 3.00f이다.
HotAir 입자가 압력을 증가시키는 양. 주로 기체에 사용되지만, VENT/VACU는 (-)0.010f이며, 특정 고온/저온 소재(예: DRIC)는 약간의 양수/음수 값을 가진다. 보통 극히 작은 수치이며, 때로는 0.000001f만큼 작을 수도 있다.
Falldown 입자가 움직이는 방식. 0 = 고체, 기체 또는 에너지 입자, 1 = 가루, 2 = 액체이다.
Flammable 가연성. 0 = 없음, 숫자가 높을수록 '타는 정도'가 높다. 20 정도면 나무 수준이고, C-4는 1000이다. 거의 즉시 연소하는 것들은 수천에 달하기도 한다.
Explosive 폭발성. 0 = 없음, 1 = 불에 닿을 때, 2 = 불에 닿을 때 또는 압력 > 2.5일 때이다. 그렇다, 이것이 유일한 옵션이다. 동작 방식을 수정하려면 FIRE.cpp 또는 Simulation.cpp 어딘가를 참조하라. 효과를 보려면 반드시 가연성 속성도 설정하여야 한다.
Meltable 녹는 여부. 1 또는 그 이상 = 그렇다, 0 = 아니다. 이는 실제로 열 시뮬레이션이 꺼져 있을 때만 사용되며, 실제로 녹게 하려면 요소 변환을 사용하여야 한다.
Hardness 산이 영향을 미치는 정도. 0 = 영향 없음, 숫자가 높을수록 영향이 크다. 일반적으로 약 50까지 올라가 있다.
PhotonReflectWavelengths 광자가 요소에 충돌할 때 광자 파장이 이 값과 AND 연산된다. 즉, 반사된 광자에는 이 값과 원래 광자 모두에 존재하는 파장만 남게 된다.
Weight 무거운 요소는 가벼운 요소 아래로 가라앉는다. 1 = 기체. 2 = 가벼움, 98 = 무거움(액체 0-49, 가루 50-99)이다. 100 = 고체이다. -1은 에너지이다(NEUT, PHOT 등).
Temperature 생성 시 온도. 온도는 켈빈 단위이다(켈빈 = 섭씨 + 273.15). R_TEMP+273.15f는 실온을 반환한다.
HeatConduct 0 - 열 전달 없음, 255 - 최대 열 전달 속도이다.
Description 게임 내에서 해당 요소에 마우스를 올렸을 때 표시되는, 한두 문장으로 된 간단한 설명이다.
Properties 요소가 특별한 속성을 가지는지 여부. 이건 물체가 전기를 전도하도록 만드는 등의 작업을 수행하는 데 사용된다. 다음과 같이 구현된다: elem.property(elem.property(elem.NAMESPACE_PT_ELEM, "Properties", elem.PROP1 + elem.PROP2)
CarriesTypeIn 요소가 .type 속성 외에 다른 속성에도 입자 유형을 포함하는지 여부. 이를테면 STOR는 .ctype과 .tmp 모두에 유형을 포함한다. 이는 비트 플래그로, C++에서는 (1U << FIELD_CTYPE), Lua에서는 bit.lshift(1, sim.FIELD_CTYPE)로 설정된다.
LowPressure 요소가 이 압력 아래로 떨어지면 전환된다(IPL로 설정 시 전환되지 않음).
LowPressureTransition 압력이 임계값 미만일 때 전환할 요소(NT로 설정 시 절대 전환되지 않음).
HighPressure 해당 요소가 이 압력을 초과하면 전환된다(IPH로 설정 시 전환되지 않음).
HighPressureTransition 압력이 임계값을 초과할 때 전환할 요소(NT로 설정 시 절대 전환되지 않음).
LowTemperature 해당 요소가 이 온도 아래로 떨어지면 전환된다(ITL로 설정하면 절대 전환되지 않음).
LowTemperatureTransition 온도가 임계값 미만일 때 전환할 요소(NT로 설정 시 절대 전환되지 않음).
HighTemperature 해당 요소가 이 온도를 초과하면 전환된다(ITH로 설정 시 전환되지 않음).
HighTemperatureTransition 온도가 임계값 이상일 때 전환할 요소(NT로 설정 시 절대 전환하지 않음).
Update 업데이트 함수. 이 함수는 요소가 다른 요소들과 어떻게 상호작용하는지를 제어한다.
Graphics 그래픽스 함수. 모든 화려한 효과를 제어한다. 요소가 단일한 단색일 경우 이 기능은 필요하지 않다.
Create 생성 함수. 요소가 배치/다른 요소에 의해 생성될 때 한 번만 실행되는 함수이다.
ChangeType 입자 변경/소멸 함수. 해당 요소의 입자가 유형이 변경되거나 소멸할 때(예: 해당 입자가 NONE으로 전환될 때) 실행된다. 또한 입자가 생성될 때 한 번 실행된다.

콜백 함수

Update

number Update(number index, number x, number y, number surround_space, number nt)

요소의 업데이트 함수를 대체할 수 있게 한다. 이 함수는 할당된 요소의 각 입자에 대해 매 프레임마다 한 번씩 호출된다. 요소의 동작, 상호작용, 반응 및 동적 속성을 정의하는 데 사용된다. 함수 매개변수는 다음과 같다:

index 현재 업데이트 중인 입자의 인덱스이다. 이는 각 입자에 대한 고유 식별자이다.
x, y 현재 업데이트 중인 입자의 좌표로, 필드 좌측 상단을 기준으로 측정된다. 이는 HUD 우측 상단에 표시되는 좌표와 동일하다.
surround_space 이 입자를 둘러싼 8개의 셀에 존재하는 빈 위치의 수이다.
nt '유형 없음', 입자 주변 8개 셀에 존재하는 서로 다른 유형의 입자 수와 빈 공간의 합계입니다.

Update 함수는 입자가 지속될 경우 아무것도 반환하지 않아야 하며, 입자가 파괴/제거된 경우 -1을 반환하여야 한다.

Graphics

tuple<number> Graphics(number index, number colr, number colg, number colb)

요소의 그래픽스 함수를 대체할 수 있게 한다. 이 함수는 입자에 부여되는 시각적 효과 및 특수 효과를 결정하기 위해 호출된다. 반환 값에 따라, 할당된 요소의 각 입자에 대해 매 프레임마다 한 번씩 호출되거나 할당된 요소의 각 입자가 생성될 때 단 한 번만 호출될 수 있다.

함수 매개변수:

index 현재 업데이트 중인 입자의 인덱스이다. 이는 각 입자에 대한 고유 식별자이다.
colr/g/b (매개변수 3개) 요소의 빨강, 초록, 파랑 색상 구성 요소. 도색 색상은 포함되지 않는다.

반환값:

cache 이 함수가 다시 호출되지 않도록 하려면 이 값을 1로 설정하여야 한다. 성능이 향상되지만, 요소의 속성에 따라 외관이 바뀌어야 하는 경우에는 이 설정을 사용하지 말라.
pixel_mode 요소에 특별한 표시 속성을 추가하는 데 사용되는 이진 플래그 세트이다. 사용할 수 있는 값과 그 기능은 아래 표를 참조하라.
cola/r/g/b (값 4개) 이 값들은 입자의 ARGB 디스플레이 색상을 설정한다. 그리고 대부분의 경우 도색 색상을 재정의하지 않는다. 0부터 255까지의 정수 값을 가질 수 있다.
firea/r/g/b (4 values) 이 설정은 불 색상을 지정하지만, 작동하려면 pixel_mode를 0x00022000으로 설정하여야 한다. 0부터 255까지의 정수 값을 가질 수 있다.

사용할 수 있는 ren의 픽셀 모드 값은 다음과 같다:

PMODE_NONE  0x00000000 -- 아무것도 그려지지 않도록 방지한다.
PMODE_FLAT  0x00000001 -- 기본 픽셀을 그려 아래 색상을 덮어쓴다. cola를 지원하지 않는다.
PMODE_BLOB  0x00000002 -- 얼룩(5) 디스플레이 모드를 사용하는 것처럼 얼룩진 효과를 추가한다.
PMODE_BLUR  0x00000004 -- 화려한 디스플레이 모드에서 액체에 사용된다.
PMODE_GLOW  0x00000008 -- 화려한 디스플레이 모드에서 DEUT 및 TRON과 같은 요소에 사용되는 빛나는 효과이다.
PMODE_SPARK	0x00000010 -- 초기 GBMB 등에 사용되며, 다른 모드보다 어둡게 표현된다.
PMODE_FLARE 0x00000020 -- BOMB 및 유사 요소에서, PMODE_SPARK보다 밝게 표현된다.
PMODE_LFLARE    0x00000040 -- 가장 밝은 불꽃 모드로, DEST가 무언가에 충돌할 때 사용한다.
PMODE_ADD   0x00000080 -- PMODE_FLAT과 유사하지만, 픽셀을 덮어쓰는 대신 색상을 더한다.
PMODE_BLEND 0x00000100 -- 기본적으로 PMODE_ADD와 동일하지만, OpenGL 지원이 더 우수하다.
PSPEC_STICKMAN	0x00000200 -- 아무 작업도 수행하지 않는다. 스틱맨은 실제 스틱맨일 때만 그려지기 때문이다.

NO_DECO		0x00001000 -- 요소에 도색 표시를 방지한다(LCRY에서 사용됨).
DECO_FIRE	0x00002000 -- 불 효과에서 도색을 그릴 수 있도록 허용한다(기체 요소에 설정됨).

FIRE_ADD	0x00010000 -- 요소 주변에 약한 불 효과를 추가한다(예: 용암/불꽃).
FIRE_BLEND	0x00020000 -- 요소 주변에 더 강한 불 효과를 추가합니다. 기체의 기본값이다.

EFFECT_GRAVIN	0x01000000 -- PRTI 효과를 추가한다. 제대로 작동하려면 업데이트 함수에서 코딩이 필요할 수 있다. PRTI는 수명과 부유형을 사용하여 효과를 생성한다.
EFFECT_GRAVOUT	0x02000000 -- PRTO 효과를 추가한다. 제대로 작동하려면 업데이트 함수에서 코딩이 필요할 수 있다. PRTO는 수명과 부유형을 사용하여 효과를 생성한다.

원하는 방식으로 조합할 수 있으며, 어차피 하나 이상이 필요할 것이다. 방사성 요소는 기본값으로 PMODE_FLAT+PMODE_GLOW, 액체는 PMODE_FLAT+PMODE_BLUR, 기체는 FIRE_BLEND+DECO_FIRE를 사용하며, firea 값은 125, firer/g/b 값은 colr/g/b를 2로 나눈 값이다.

어떻게 생겼는지 보려면 여기를 참조하라: https://powdertoy.co.uk/Wiki/W/File:Particle_Drawing_Modes.png.html

Create

none Create(number index, number x, number y, number type, number v)

요소의 생성 함수를 대체할 수 있게 한다. 이 함수는 요소의 입자가 배치될 때마다 호출된다.

함수 매개변수:

index 현재 업데이트 중인 입자의 인덱스이다. 이는 각 입자에 대한 고유 식별자이다.
x, y 현재 업데이트 중인 입자의 좌표로, 필드 좌측 상단을 기준으로 측정된다. 이는 HUD 우측 상단에 표시되는 좌표와 동일하다.
type 배치되는 입자의 유형 속성. 이 속성은 함수가 여러 요소를 처리할 때만 필요하다.
v 이것은 sim.partCreate에서 ID 번호의 일부로 전달되는 추가 숫자 속성이다(현재 0부터 계산하여 9비트 이상). 이는 Create 함수가 원하는 방식으로 처리할 수 있는 다목적 추가 매개변수 역할을 한다.

ChangeType

none ChangeType(number index, number x, number y, number type, number new_type)

요소의 변화에 대한 반응을 대체할 수 있게 한다. 이 함수는 요소의 입자가 생성되거나, 다른 유형(예: GLAS -> BGLA)으로 변경되거나, 파괴될 때마다 호출된다. 요소가 다른 유형으로 변경될 경우 입자는 해당 함수를 한 번 호출한 후, 그 시점부터는 새 유형이 제공하는 함수를 사용한다는 점에 유의하라.

함수 매개변수는 다음과 같다:

index 현재 업데이트 중인 입자의 인덱스이다. 이는 각 입자에 대한 고유 식별자이다.
x, y 현재 업데이트 중인 입자의 좌표로, 필드 좌측 상단을 기준으로 측정된다. 이는 HUD 우측 상단에 표시되는 좌표와 동일하다.
type 요소의 이전 유형이다. 새로운 입자의 경우, 이는 0 즉 NONE이다.
new_type 요소의 새로운 유형이다. 입자가 파괴된 경우, 이 값은 0 즉 NONE이다.

메뉴 섹션

이들은 MenuSection 속성에 사용된다.

SC_WALL
SC_ELEC
SC_POWERED
SC_SENSOR
SC_FORCE
SC_EXPLOSIVE
SC_GAS
SC_LIQUID
SC_POWDERS
SC_SOLIDS
SC_NUCLEAR
SC_SPECIAL
SC_LIFE
SC_TOOL
SC_DECO

.Property 상수

이들은 Properties 속성에 사용된다.

TYPE_PART
가루에 사용된다.
TYPE_LIQUID
액체에 사용된다.
TYPE_SOLID
고체/기타 요소에 사용된다.
TYPE_GAS
기체에 사용된다.
TYPE_ENERGY
에너지 입자에 사용된다.
PROP_CONDUCTS
요소가 자동으로 SPRK를 전도하도록 허용하며, PROP_LIFE_DEC가 필요하다.
PROP_PHOTPASS
광자가 이 요소를 통과하도록 허용한다.
PROP_NEUTPENETRATE
요소가 중성자에 의해 움직일 수 있다(중성자와 나무의 상호작용을 관찰하여 확인하라).
PROP_NEUTABSORB
요소가 중성자를 흡수한다.
PROP_NEUTPASS
요소가 중성자의 통과를 허용한다.
PROP_DEADLY
요소가 스틱맨과 파이터를 죽인다.
PROP_HOT_GLOW
요소가 녹는점에 가까워졌을 때 붉게 빛난다.
PROP_LIFE
사용되지 않는다.
PROP_RADIOACTIVE
요소가 URAN이나 PLUT처럼 방사성 빛을 낸다. 또한 스틱맨에게 치명적이다.
PROP_LIFE_DEC
입자의 '수명' 속성이 매 프레임마다 1씩 감소한다.
PROP_LIFE_KILL
입자의 '수명' 속성이 0 이하가 되면 파괴된다.
PROP_LIFE_KILL_DEC
PROP_LIFE_DEC와 함께 사용할 경우, '수명' 속성이 0으로 감소할 때 입자가 파괴된다. 이미 0인 경우 상관 없다.
PROP_SPARKSETTLE
전류/불꽃이 접촉해도 파괴되지 않도록 한다.
PROP_NOAMBHEAT
환경 열이 활성화된 상태에서 입자가 공기와 열 교환을 하지 못하게 한다.
PROP_NOCTYPEDRAW
이 요소가 다른 요소 위에 그려질 때 부유형을 설정하지 않습니다(예: STKM과 CLNE).