Lua API:Elements/ko
| Language: | English • 한국어 |
|---|
elements API에는 요소를 생성하고 수정하는 데 사용되는 메서드와 상수가 포함되어 있다. Lua API에서 제공된다.
더 짧은 별칭인 elem도 사용할 수 있다.
별도로 명시되지 않는 한, 모든 함수는 설명과 일치하지 않는 매개변수가 전달될 경우 오류를 발생시킨다.
메서드
elements.allocate
새 요소를 생성한다.
elemNumber = elements.allocate(group, iname)
group: 밑줄(_)이 포함되지 않은 문자열로, 요소가 속한 그룹을 나타내며, 이 함수에 의하여 대문자로 변환된다.iname: 밑줄(_)이 포함되지 않은 문자열로, 요소의 내부 이름이다. 이 함수에 의하여 대문자로 변환된다.elemNumber: 생성된 요소에 할당된 양의 요소 번호이다. 사용 가능한 요소 번호가 남아 있지 않아 오류가 발생한 경우-1이 반환된다.
group은 스크립트 내에서 고유하여야 하며, 스크립트 전체에서 동일하여야 한다. 일반적으로 사용자 이름이나 스크립트 이름을 간략하게 변형하여 사용한다. 예를 들어, 스크립트 이름이 Ultimate Chemistry Pack v3인 경우, 그룹 이름으로 "CHEMPACK3"을 사용할 수 있다.
iname은 스크립트 내 해당 요소에 대해 고유하여야 하며, 궁극적으로는 요소의 Name 속성과 유사하여야 한다. 예를 들어, 요소의 이름이 C-6인 경우 내부 이름으로 C6을 사용하여야 한다.
결과적으로 생성된 요소 식별자는 언제든지 사용 중인 모든 스크립트에서 고유하여야 한다. 내장 요소처럼 보이는 요소, 즉 DEFAULT 그룹에 속한 요소는 생성할 수 없다. 위에서 언급한 바와 같이, group과 iname 모두 대문자로 변환되므로, elements.allocate("CheMpaCk3", "c6")는 elements.allocate("CHEMPACK3", "C6")와 동일하다. 두 경우 모두 elem.CHEMPACK3_PT_C6 요소를 할당한다.
elements.[group]_PT_[iname] 상수를 통해 요소를 참조하기 편리한 방식으로 선택하라. elem["Ultimate Chemistry Pack v3_PT_C-6"]과 같이 입력하는 것도 물론 가능하지만, elem.CHEMPACK3_PT_C6과 같이 입력하는 것이 훨씬 편리하다.
elements.free
이전에 할당된 요소를 해제한다.
elements.free(elemNumber)
elemNumber: 해제할 요소의 번호
해당 요소 번호는 해제되며, 나중에 다른 스크립트에서 사용할 수 있다. 내장 요소, 즉 DEFAULT 그룹에 속한 요소는 해제할 수 없다.
elements.property
요소의 속성을 조회하거나 수정한다.
propValue = elements.property(elemNumber, propName) -- 조회용 변형 elements.property(elemNumber, propName, propValue) -- 업데이트용 변형 elements.property(elemNumber, "Update", propValue, [runWhen]) -- Update 속성을 위한 특수 업데이트용 변형
elemNumber: 속성을 조회하거나 업데이트할 요소의 번호propName: 문자열, 조회하거나 업데이트할 속성의 이름propValue: 다양한 유형, 조회하거나 업데이트할 속성의 값runWhen: 숫자, 업데이트 함수가 실행되어야 할 시점을 지정하며, 다음 중 하나이다:elements.UPDATE_AFTER: 내장 업데이트 함수 실행 전에 실행, 기본값elements.UPDATE_REPLACE: 내장 업데이트 함수 대신 실행elements.UPDATE_BEFORE: 내장 업데이트 함수 실행 후에 실행
elements.property에서 사용할 수 있는 속성과 그 사용 방법에 대한 자세한 내용은 다음 페이지를 참조하라: 요소 속성.
'MenuSection' 또는 'Properties' 속성을 사용할 때는 제공된 상수 중 하나를 사용하라.
'Identifier' 속성은 읽기 전용이므로 설정할 수 없다.
'Update' 및 'Graphics'와 같은 여러 이벤트 콜백 함수가 구현되어 있다. 이를 설정하려면 propValue 형식의 함수를 사용하라. 이 속성들은 elements.element로 생성된 테이블에 포함되지 않으며, elements.property를 통해 반환할 수도 없다. 즉, elements.element를 사용하여 요소의 모든 속성을 복사하더라도 새 요소에 이벤트 콜백이 설정되지 않는다. 이러한 함수를 만드는 방법에 대한 도움말은 요소 속성 문서의 콜백 함수 문단을 참조하라.
elements.element
요소의 모든 속성을 조회하거나 여러 속성을 업데이트한다.
elemProps = elements.element(elemNumber) -- 조회용 변형 elements.element(elemNumber, elemProps) -- 업데이트용 변형
elemNumber: 속성을 조회하거나 업데이트할 요소의 번호elemProps: 속성 이름과 속성 값을 매핑하는 테이블
elemProps의 키와 값은 elements.property의 propName 및 propValue 매개변수와 동일하다. 쿼리용 변형은 elements.property와 동일한 주의 사항을 적용하여 elemProps에 포함된 요소의 모든 속성을 반환한다. 업데이트용 변형은 속성의 임의의 하위 집합을 허용하며, elements.property와 동일한 검사를 적용하여 테이블에 존재하는 속성만 업데이트한다.
이 함수는 일반적으로 소스 요소의 모든 속성을 먼저 복사하여 새 요소에 적용한 다음, 그 후에 새 요소를 약간 수정함으로써 한 요소를 다른 요소 기반으로 만드는 데 사용된다:
local purpleGold = elem.allocate("EXAMPLE", "PGLD")
assert(purpleGold ~= -1, "ran out of element numbers")
elem.element(purpleGold, elem.element(elem.DEFAULT_PT_GOLD))
elem.property(purpleGold, "Name", "PGLD")
elem.property(purpleGold, "Color", 0x8040FF)
elements.exists
주어진 숫자가 실제 요소 번호인지, 즉 특정 요소를 가리키는지 확인한다.
exists = elements.exists(elemNumber)
elemNumber: 확인할 요소의 번호exists: 논리형,elemNumber가 특정 요소를 가리킬 경우true
요소가 존재하면, 이에 상응하는 elements.[group]_PT_[iname] 상수가 존재하며, 반대로 그러한 상수가 존재하면 이에 상응하는 요소가 존재한다.
elements.getByName
이름, 즉 Name 속성을 기준으로 요소를 찾는다.
elementNumber = elements.getByName(name)
name: 문자열, 요소를 찾을 때 사용할 이름elemNumber:name이 가리키는 요소의 양수, 또는 해당 요소가 존재하지 않을 경우 오류 발생 시-1
이 함수는 사람이 읽기 쉬운 요소 이름을 요소 번호로 변환하며, 이는 기본적으로 PROP 도구나 콘솔이 작동하는 방식과 동일하다.
elements.loadDefault
시작 시 요소 집합을 초기 상태로 복원한다.
elements.loadDefault()
이 함수는 생성된 모든 요소를 해제하고, 모든 내장 요소의 속성을 기본값으로 초기화한다.
상수
elements.[group]_PT_[iname]
watrNumber = elements.DEFAULT_PT_WATR
요소를 참조하는 방법에는 두 가지가 있다: 요소 번호와 요소 식별자이다. 요소 식별자는 "[group]_PT_[iname]" 형식의 문자열이다. [group]과 [iname] 모두 밑줄(_)을 제외한 임의의 문자열일 수 있다. 모든 내장 요소는 DEFAULT 그룹에 속한다. 이를테면, WATR의 식별자는 "DEFAULT_PT_WATR"이다. 이는 WATR가 DEFAULT 그룹에 속하고 내부 이름이 WATR이기 때문이다. 이는 Name 속성과는 다르다.
이 상수들은 요소 식별자를 요소 번호로 매핑한다. WATR의 요소 번호는 2이므로, elements.DEFAULT_PT_WATR 역시 2이다.
속성
이 상수들은 '속성'을 설정할 때 사용하여야 한다. 속성에 관한 자세한 내용은 다음에서 확인할 수 있다: 요소 속성의 .Property 상수
- TYPE_PART
- TYPE_LIQUID
- TYPE_GAS
- TYPE_SOLID
- TYPE_ENERGY
- PROP_CONDUCTS
- PROP_PHOTPASS
- PROP_NEUTPENETRATE
- PROP_NEUTABSORB
- PROP_NEUTPASS
- PROP_DEADLY
- PROP_HOT_GLOW
- PROP_LIFE
- PROP_RADIOACTIVE
- PROP_LIFE_DEC
- PROP_LIFE_KILL
- PROP_LIFE_KILL_DEC
- PROP_SPARKSETTLE
- PROP_NOAMBHEAT
- PROP_NOCTYPEDRAW
메뉴 섹션
이들은 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
- NUM_MENUSECTIONS