Mindustry/콘텐츠/로직

최근 수정 시각:  (5년 전)
분류
목차
1. 개요2. 상세3. 목록
3.1. 메모 블록3.2. 스위치3.3. 마이크로 프로세서3.4. 로직 프로세서3.5. 하이퍼 프로세서3.6. 메모리 셀3.7. 메모리 보관소3.8. 로직 디스플레이3.9. 대형 로직 디스플레이
4. 로직 언어
4.1. 로직 블록
4.1.1. read4.1.2. write4.1.3. draw4.1.4. print4.1.5. drawflush4.1.6. printflush4.1.7. getlink4.1.8. control4.1.9. radar4.1.10. sensor4.1.11. set4.1.12. op4.1.13. end4.1.14. jump4.1.15. ubind4.1.16. ucontrol4.1.17. uradar4.1.18. ulocate
4.2. 사용예
4.2.1. 자동 차단기

1. 개요 [편집]

  • 이 문서는 6.0 정식 버전 기준으로 작성되었습니다.

Mindustry의 콘텐츠 중 로직 계열의 콘텐츠를 분류한 문서이다.

컨베이어 몇줄과 수개의 매스드라이버를 할것을 단 한 블럭과 유닛 몇마리로 압축하는 자동화와 공간절약의 종결자다. 코딩 전공 한정

2. 상세 [편집]

파일:mindustry_items-logic2.png

기본적으로 마이크로 프로세서를 클릭한 뒤 필요한 인근 블록들을 지정하고, 로직을 작성하는 식으로 이용된다.
로직은 jump 등이 없다면 위에서부터 차례대로 아래로 실행하며, 이를 무한히 반복한다.

로직의 작성은 게임 내에서 직접 로직 블록을 추가, 값을 변경하거나 하는 식으로 할 수 있지만, 숙달된다면 외부에서 문법을 작성하고 이를 복사해 붙여넣는 식으로[1] 효율적으로 작성할 수도 있다.
외부에서 작성하는 경우 문법만 맞으면 메모장을 이용해도 상관없으나, vscode를 이용한다면 'masm' 플러그인을 받아 하이라이팅 기능[2]의 도움을 받을 수도 있다.


위키가 부실하다면 빌드 107 버전 기준 로직 위키 설계도를 참고해도 된다.

3. 목록 [편집]

3.1. 메모 블록 [편집]

메모 블록 (Message)
기능 / 목적
아군 간의 소통을 위한 메시지를 저장합니다.
일반
40
1×1
파일:icon-arrow.png 건설 시간
0.08초
5개

블록 위에 커서를 올리면 저장해둔 문구가 띄워지는 블록이다.
같은 구역에서 작업하는 다른 사람들이 참고하거나 주의해야될 정보를 적는 용도로 쓰인다.
다만, 매 판이 며칠씩 걸리는 게임도 아니고, 채팅 기능 또한 존재하기에 잘 쓰이진 않는다.

3.2. 스위치 [편집]

스위치 (Switch)
기능 / 목적
on/off 가능한 스위치입니다.
스위치 상태는 프로세서에 의해 읽히거나 제어될 수 있습니다.
일반
40
1×1
파일:icon-arrow.png 건설 시간
0.08초
5개

블록을 클릭하는것으로 키고 끌 수 있다.
자체적으로는 그것밖에 기능이 없지만, 프로세서에서 sensor 블록을 통해 on/off 상태를 감지할 수 있기 때문에 유용히 쓰인다.
참고로 'switch'의 'on/off' 상태를 표시하는 속성은 enabled 이다. 해당 값을 이용해 분기를 해도 되지만 단순히 다른 블록을 활성화, 비활성화 하는 경우에는 enabled 값만 받아와 직접 집어넣어줘도 된다.

3.3. 마이크로 프로세서 [편집]

마이크로 프로세서 (Micro Processor)
기능 / 목적
로직 실행문을 순서대로 무한히 실행합니다.
유닛 또는 건물을 제어하는 데 쓰일 수 있습니다.
일반
40
1×1
파일:icon-arrow.png 건설 시간
1.64초
80개
50개
30개
입력/출력
10블록
연산 속도
120/초

로직의 핵심 블록이다.
여기서 작성된 로직은 순서대로 무한히 수행되며, 작성하기에 따라 복잡한 블록으로 처리해야 될 까다로운 동작이나 감지 등을 자동화 할 수 있다.
이하 프로세서 종류들은 감지 길이와 연산 속도만 더 좋을 뿐, 기본적인 기능은 다르지 않다.

3.4. 로직 프로세서 [편집]

로직 프로세서 (Logic Processor)
기능 / 목적
로직 실행문을 순서대로 무한히 실행합니다.
유닛 또는 건물을 제어하는 데 쓰일 수 있습니다.
마이크로 프로세서보다 실행 속도가 더 빠릅니다.
일반
160
2×2
파일:icon-arrow.png 건설 시간
6.44초
320개
60개
50개
60개
입력/출력
22블록
연산 속도
480/초

3.5. 하이퍼 프로세서 [편집]

하이퍼 프로세서 (Hyper Processor)
기능 / 목적
로직 실행문을 순서대로 무한히 실행합니다.
유닛 또는 건물을 제어하는 데 쓰일 수 있습니다.
로직 프로세서보다 실행 속도가 더 빠릅니다.
일반
360
3×3
파일:icon-arrow.png 건설 시간
9.35초
450개
75개
130개
50개
액체
액체 수용량
10
입력/출력
소모 자원
4.7
42블록
연산 속도
1500/초

냉각수를 쓰기 때문에 아주 넓은 범위가 필요한 경우가 아니라면 그다지 쓰이지는 않는다.

3.6. 메모리 셀 [편집]

메모리 셀 (Memory Cell)
기능 / 목적
프로세서를 위한 데이터를 저장합니다.
일반
40
1×1
파일:icon-arrow.png 건설 시간
0.8초
30개
30개
파일:icon-item.png 최대 변수 개수
64

매 반복마다 초기화되는 프로세서 동작 내 변수 값을 유지시키고 싶을 때 사용한다.
이를 이용하면 카운터도 만들 수 있다.

3.7. 메모리 보관소 [편집]

메모리 보관소 (Memory Bank)
기능 / 목적
프로세서를 위한 데이터를 저장합니다. 저장공간이 셀보다 큽니다.
일반
160
2×2
파일:icon-arrow.png 건설 시간
3.04초
80개
80개
30개
파일:icon-item.png 최대 변수 개수
512

3.8. 로직 디스플레이 [편집]

로직 디스플레이 (Logic Display)
기능 / 목적
프로세서를 이용해 그래픽을 출력할 수 있습니다.
일반
360
3×3
80×80
파일:icon-arrow.png 건설 시간
3.08초
100개
50개
50개

3.9. 대형 로직 디스플레이 [편집]

대형 로직 디스플레이 (Large Logic Display)
기능 / 목적
프로세서를 이용해 그래픽을 출력할 수 있습니다.
일반
1440
6×6
176×176
파일:icon-arrow.png 건설 시간
8.45초
200개
100개
150개
75개

4. 로직 언어 [편집]

프로세서에서 사용되어 복잡한 동작을 구현할 때 쓰이는 언어이다.
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
블록의 상태를 변경한다.
옵션에는 enabled, shoot, shootp, configure 가 있다.
'enabled'는 블록의 활성화 여부를 지정한다. 인수로 0을 넣으면 작동이 중지되고[3] 1을 넣으면 다시 작동한다. [4]
'configure'는 설정이 가능한 블록의 설정을 바꾼다. 가령 control configure unloader @titanium은 지정된 언로더[5]의 배출 아이템을 티타늄으로 바꾼다.

4.1.9. radar [편집]

4.1.10. sensor [편집]

sensor 변수 블록 감지_대상
블록의 상태를 감지한다.
'감지 대상'에는 보유하고 있는 아이템의 개수부터 활성화 여부 등 정말 다양한 정보가 포함된다.
예를 들어 sensor s switch1 @enabled라고 작성된다면 해당 블록은 'switch1'의 활성화 여부를 감지해 's'라는 변수에 집어넣는다.

4.1.11. set [편집]

4.1.12. op [편집]

op 연산 변수 좌항 우항
'좌항'과 '우항'을 '연산'한 결과를 '변수'에 집어넣는다.
'연산'의 종류에는 사칙연산, 비교연산, 논리연산, 삼각함수 등이 있다.

4.1.13. end [편집]

end
해당 반복 주기를 끝낸다.
아래에 아직 실행하지 않은 블록이 있더라도 'end'블록을 만나면 바로 중단하고 다음 타이밍에 다시 처음부터 반복한다.

4.1.14. jump [편집]

jump 대상_블록 조건 변수 값
변수와 값이 조건에 부합한다면 다음 블록 대신 지정한 로직 블록으로 바로 건너뛴다.
대상 로직 블록을 지정하는 방법은 해당 블록의 순서 번호로, 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'을 비활성화, 크면 활성화 한다.
이를 응용하면 코어에서 자원 뽑아 설금을 제작하는 경우 실리콘이 동나도록 빨아먹지 못하게 막을 수 있다.

[1] 게임 내 클립보드에서 가져오기 기능을 이용하면 된다.[2] 구문의 의미에 따라 자동으로 색을 달리 입혀주는 기능이다[3] 작동이 중지된 블록은 커서를 위에 올려보면 x 표시가 뜬다.[4] 스위치 등 특별한 경우를 제외하고 비활성화 된 블록은 약간의 시간이 지나면 다시 자동으로 활성화된다. 따라서 계속 비활성화 시키고 싶다면 매 반복마다 다시 비활성화를 시켜줘야 한다.[5] 실제 블록 이름은 다를 수 있다.

라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.