Mindustry/콘텐츠/로직
최근 수정 시각: (5년 전)
1. 개요 [편집]
- 이 문서는 6.0 정식 버전 기준으로 작성되었습니다.
Mindustry의 콘텐츠 중 로직 계열의 콘텐츠를 분류한 문서이다.
컨베이어 몇줄과 수개의 매스드라이버를 할것을 단 한 블럭과 유닛 몇마리로 압축하는 자동화와 공간절약의 종결자다.
2. 상세 [편집]
파일:mindustry_items-logic2.png
기본적으로 마이크로 프로세서를 클릭한 뒤 필요한 인근 블록들을 지정하고, 로직을 작성하는 식으로 이용된다.
로직은 jump 등이 없다면 위에서부터 차례대로 아래로 실행하며, 이를 무한히 반복한다.
로직의 작성은 게임 내에서 직접 로직 블록을 추가, 값을 변경하거나 하는 식으로 할 수 있지만, 숙달된다면 외부에서 문법을 작성하고 이를 복사해 붙여넣는 식으로[1] 효율적으로 작성할 수도 있다.
외부에서 작성하는 경우 문법만 맞으면 메모장을 이용해도 상관없으나, vscode를 이용한다면 'masm' 플러그인을 받아 하이라이팅 기능[2]의 도움을 받을 수도 있다.
위키가 부실하다면 빌드 107 버전 기준 로직 위키 설계도를 참고해도 된다.
기본적으로 마이크로 프로세서를 클릭한 뒤 필요한 인근 블록들을 지정하고, 로직을 작성하는 식으로 이용된다.
로직은 jump 등이 없다면 위에서부터 차례대로 아래로 실행하며, 이를 무한히 반복한다.
로직의 작성은 게임 내에서 직접 로직 블록을 추가, 값을 변경하거나 하는 식으로 할 수 있지만, 숙달된다면 외부에서 문법을 작성하고 이를 복사해 붙여넣는 식으로[1] 효율적으로 작성할 수도 있다.
외부에서 작성하는 경우 문법만 맞으면 메모장을 이용해도 상관없으나, vscode를 이용한다면 'masm' 플러그인을 받아 하이라이팅 기능[2]의 도움을 받을 수도 있다.
위키가 부실하다면 빌드 107 버전 기준 로직 위키 설계도를 참고해도 된다.
3. 목록 [편집]
3.1. 메모 블록 [편집]
메모 블록 (Message) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
아군 간의 소통을 위한 메시지를 저장합니다. | |||
일반 | |||
40 | |||
1×1 | |||
파일:icon-arrow.png 건설 시간 | 0.08초 | ||
파일:icon-crafting.png 건설 비용 | 5개 | ||
블록 위에 커서를 올리면 저장해둔 문구가 띄워지는 블록이다.
같은 구역에서 작업하는 다른 사람들이 참고하거나 주의해야될 정보를 적는 용도로 쓰인다.
다만, 매 판이 며칠씩 걸리는 게임도 아니고, 채팅 기능 또한 존재하기에 잘 쓰이진 않는다.
3.2. 스위치 [편집]
스위치 (Switch) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
on/off 가능한 스위치입니다. 스위치 상태는 프로세서에 의해 읽히거나 제어될 수 있습니다. | |||
일반 | |||
40 | |||
1×1 | |||
파일:icon-arrow.png 건설 시간 | 0.08초 | ||
파일:icon-crafting.png 건설 비용 | 5개 | ||
블록을 클릭하는것으로 키고 끌 수 있다.
자체적으로는 그것밖에 기능이 없지만, 프로세서에서 sensor 블록을 통해 on/off 상태를 감지할 수 있기 때문에 유용히 쓰인다.
참고로 'switch'의 'on/off' 상태를 표시하는 속성은 enabled 이다. 해당 값을 이용해 분기를 해도 되지만 단순히 다른 블록을 활성화, 비활성화 하는 경우에는 enabled 값만 받아와 직접 집어넣어줘도 된다.
3.3. 마이크로 프로세서 [편집]
마이크로 프로세서 (Micro Processor) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
로직 실행문을 순서대로 무한히 실행합니다. 유닛 또는 건물을 제어하는 데 쓰일 수 있습니다. | |||
일반 | |||
40 | |||
1×1 | |||
파일:icon-arrow.png 건설 시간 | 1.64초 | ||
파일:icon-crafting.png 건설 비용 | 80개 | ||
50개 | |||
30개 | |||
입력/출력 | |||
파일:icon-effect.png 감지 길이 | 10블록 | ||
연산 속도 | 120/초 | ||
로직의 핵심 블록이다.
여기서 작성된 로직은 순서대로 무한히 수행되며, 작성하기에 따라 복잡한 블록으로 처리해야 될 까다로운 동작이나 감지 등을 자동화 할 수 있다.
이하 프로세서 종류들은 감지 길이와 연산 속도만 더 좋을 뿐, 기본적인 기능은 다르지 않다.
3.4. 로직 프로세서 [편집]
로직 프로세서 (Logic Processor) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
로직 실행문을 순서대로 무한히 실행합니다. 유닛 또는 건물을 제어하는 데 쓰일 수 있습니다. 마이크로 프로세서보다 실행 속도가 더 빠릅니다. | |||
일반 | |||
160 | |||
2×2 | |||
파일:icon-arrow.png 건설 시간 | 6.44초 | ||
파일:icon-crafting.png 건설 비용 | 320개 | ||
60개 | |||
50개 | |||
60개 | |||
입력/출력 | |||
파일:icon-effect.png 감지 길이 | 22블록 | ||
연산 속도 | 480/초 | ||
3.5. 하이퍼 프로세서 [편집]
하이퍼 프로세서 (Hyper Processor) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
로직 실행문을 순서대로 무한히 실행합니다. 유닛 또는 건물을 제어하는 데 쓰일 수 있습니다. 로직 프로세서보다 실행 속도가 더 빠릅니다. | |||
일반 | |||
360 | |||
3×3 | |||
파일:icon-arrow.png 건설 시간 | 9.35초 | ||
파일:icon-crafting.png 건설 비용 | 450개 | ||
75개 | |||
130개 | |||
50개 | |||
액체 | |||
액체 수용량 | 10 | ||
입력/출력 | |||
소모 자원 | 4.7 | ||
파일:icon-effect.png 감지 길이 | 42블록 | ||
연산 속도 | 1500/초 | ||
냉각수를 쓰기 때문에 아주 넓은 범위가 필요한 경우가 아니라면 그다지 쓰이지는 않는다.
3.6. 메모리 셀 [편집]
메모리 셀 (Memory Cell) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
프로세서를 위한 데이터를 저장합니다. | |||
일반 | |||
40 | |||
1×1 | |||
파일:icon-arrow.png 건설 시간 | 0.8초 | ||
파일:icon-crafting.png 건설 비용 | 30개 | ||
30개 | |||
파일:icon-item.png 최대 변수 개수 | 64 | ||
매 반복마다 초기화되는 프로세서 동작 내 변수 값을 유지시키고 싶을 때 사용한다.
이를 이용하면 카운터도 만들 수 있다.
3.7. 메모리 보관소 [편집]
메모리 보관소 (Memory Bank) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
프로세서를 위한 데이터를 저장합니다. 저장공간이 셀보다 큽니다. | |||
일반 | |||
160 | |||
2×2 | |||
파일:icon-arrow.png 건설 시간 | 3.04초 | ||
파일:icon-crafting.png 건설 비용 | 80개 | ||
80개 | |||
30개 | |||
파일:icon-item.png 최대 변수 개수 | 512 | ||
3.8. 로직 디스플레이 [편집]
로직 디스플레이 (Logic Display) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
프로세서를 이용해 그래픽을 출력할 수 있습니다. | |||
일반 | |||
360 | |||
3×3 | |||
파일:icon-resize.png 화면 크기 | 80×80 | ||
파일:icon-arrow.png 건설 시간 | 3.08초 | ||
파일:icon-crafting.png 건설 비용 | 100개 | ||
50개 | |||
50개 | |||
3.9. 대형 로직 디스플레이 [편집]
대형 로직 디스플레이 (Large Logic Display) | |||
파일:icon-map.png 이미지 | |||
기능 / 목적 | |||
프로세서를 이용해 그래픽을 출력할 수 있습니다. | |||
일반 | |||
1440 | |||
6×6 | |||
파일:icon-resize.png 화면 크기 | 176×176 | ||
파일:icon-arrow.png 건설 시간 | 8.45초 | ||
파일:icon-crafting.png 건설 비용 | 200개 | ||
100개 | |||
150개 | |||
75개 | |||
4. 로직 언어 [편집]
프로세서에서 사용되어 복잡한 동작을 구현할 때 쓰이는 언어이다.
122.1 버전 기준으로 총 18개의 명령어 블록이 존재한다.
아이템 등 내부적으로 지정된 상수를 이용할 땐 앞에 @를 붙여 적으면 된다. 예를 들어 @titanium 은 티타늄 아이템을 의미한다.
122.1 버전 기준으로 총 18개의 명령어 블록이 존재한다.
아이템 등 내부적으로 지정된 상수를 이용할 땐 앞에 @를 붙여 적으면 된다. 예를 들어 @titanium 은 티타늄 아이템을 의미한다.
4.1. 로직 블록 [편집]
4.1.1. read [편집]
read 변수 대상_메모리 번지
지정한 '메모리 셀'이나 '메모리 뱅크'에서 지정한 위치의 값을 읽어온다.
4.1.2. write [편집]
write 변수 대상_메모리 번지
지정한 '메모리 셀'이나 '메모리 뱅크'의 지정한 위치에 값을 기록한다.
4.1.3. draw [편집]
4.1.4. print [편집]
4.1.5. drawflush [편집]
4.1.6. printflush [편집]
4.1.7. getlink [편집]
4.1.8. control [편집]
control 옵션 블록 인수1 인수2 인수3 인수4
4.1.9. radar [편집]
4.1.10. sensor [편집]
sensor 변수 블록 감지_대상
블록의 상태를 감지한다.
'감지 대상'에는 보유하고 있는 아이템의 개수부터 활성화 여부 등 정말 다양한 정보가 포함된다.
예를 들어 sensor s switch1 @enabled라고 작성된다면 해당 블록은 'switch1'의 활성화 여부를 감지해 's'라는 변수에 집어넣는다.
'감지 대상'에는 보유하고 있는 아이템의 개수부터 활성화 여부 등 정말 다양한 정보가 포함된다.
예를 들어 sensor s switch1 @enabled라고 작성된다면 해당 블록은 'switch1'의 활성화 여부를 감지해 's'라는 변수에 집어넣는다.
4.1.11. set [편집]
4.1.12. op [편집]
op 연산 변수 좌항 우항
'좌항'과 '우항'을 '연산'한 결과를 '변수'에 집어넣는다.
'연산'의 종류에는 사칙연산, 비교연산, 논리연산, 삼각함수 등이 있다.
'연산'의 종류에는 사칙연산, 비교연산, 논리연산, 삼각함수 등이 있다.
4.1.13. end [편집]
end
해당 반복 주기를 끝낸다.
아래에 아직 실행하지 않은 블록이 있더라도 'end'블록을 만나면 바로 중단하고 다음 타이밍에 다시 처음부터 반복한다.
아래에 아직 실행하지 않은 블록이 있더라도 'end'블록을 만나면 바로 중단하고 다음 타이밍에 다시 처음부터 반복한다.
4.1.14. jump [편집]
jump 대상_블록 조건 변수 값
변수와 값이 조건에 부합한다면 다음 블록 대신 지정한 로직 블록으로 바로 건너뛴다.
대상 로직 블록을 지정하는 방법은 해당 블록의 순서 번호로, 0부터 센다.
조건에는 'equal, notEqual, lessThan, lessThanEq, greaterThan, greaterThanEq, always'가 있다. 차례대로 '같음, 다름, 보다 작음, 보다 큼, 보다 작거나 같음, 보다 크거나 같음, 무조건'을 의미한다.
예를 들어 jump 3 lessThan x 10은 'x'가 10보다 작으면 다음블록 대신 4번째 블록을 실행하라는 의미이다.
게임 내에서는 로직 블록의 오른쪽에 보이는 세모를 클릭, 드래그 하여 대상 로직블록을 지정할 수 있다.
대상 로직 블록을 지정하는 방법은 해당 블록의 순서 번호로, 0부터 센다.
조건에는 'equal, notEqual, lessThan, lessThanEq, greaterThan, greaterThanEq, always'가 있다. 차례대로 '같음, 다름, 보다 작음, 보다 큼, 보다 작거나 같음, 보다 크거나 같음, 무조건'을 의미한다.
예를 들어 jump 3 lessThan x 10은 'x'가 10보다 작으면 다음블록 대신 4번째 블록을 실행하라는 의미이다.
게임 내에서는 로직 블록의 오른쪽에 보이는 세모를 클릭, 드래그 하여 대상 로직블록을 지정할 수 있다.
4.1.15. ubind [편집]
4.1.16. ucontrol [편집]
4.1.17. uradar [편집]
4.1.18. ulocate [편집]
4.2. 사용예 [편집]
4.2.1. 자동 차단기 [편집]
sensor t vault1 @titanium
jump 4 lessThan t 300
jump 6 greaterThan t 300
end
control enabled unloader1 0 0 0 0
end
control enabled unloader1 1 0 0 0
end
위 로직은 'vault1'의 티타늄 보유량을 감지하고, 그것이 300개보다 작으면 'unloader1'을 비활성화, 크면 활성화 한다.
이를 응용하면 코어에서 자원 뽑아 설금을 제작하는 경우 실리콘이 동나도록 빨아먹지 못하게 막을 수 있다.
이를 응용하면 코어에서 자원 뽑아 설금을 제작하는 경우 실리콘이 동나도록 빨아먹지 못하게 막을 수 있다.
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.