개인적으론 LTN 별로 안배우는걸 추천하는데


알고 있어야하는게 많고

이해안하면 고장나기 쉽고

왠만해선 바닐라 기차만으로 해결되기 때문임


LTN이 편한게 기차마다 스케줄 등록 안해도 되서 편한건데

LTN 이해하는데 걸렸던 시간동안 기차 만들었으면 오히려 시간 덜 걸렸을거같음






이 회로 결과가 왜 -100인지 모르면 아직 LTN배우기 이른걸 수 있음


설명은 좀 해놨는데 자세히는 안했기도 하고 이거 모르면 LTN이 필요한 수준이 아닐 확률이 높음




공략 쓰는 이유는 원리 이해 못하면 좀 어려워서 스탭 바이 스탭으로 원리를 최대한 익힐 수 있도록 써보고 싶었음


그래서 원활하게 동작하는 구조는 후반부에 나올 예정

초반부는 동작 안하거나 오류가 좀 있음


사용 모드는 기본 LTN이랑 LTN Manager인데 LTN Manager사용 안하는 느낌임...




처음 LTN 을 공부할 때 모드설정에서 메시지 필터 타임아웃 줄여두는걸 추천함


0하나만 빼도 충분할듯



0. LTN이란


LTN은 기차를 물류 로봇처럼 동작하도록 하는건데


바닐라 기차는 스케줄대로 움직이지만


LTN은 따로 스케줄을 정해주지 않아도 요청역에서 물품을 요청하고 

공급역에서 물품을 공급하고

일을 마친 열차는 대기역에서 다음 요청을 기다리게 해줌


공급역 = 공급 상자

요청역 = 요청 상자

대기역 = 로봇포트


라고 생각하면 됨 


1. 기본적인 LTN의 구조


전체적인 기찻길 구조는




이런 구조이고 지금은 LTN정류장만 깐 상황



LTN 정류장은 자세히보면 3개가 하나로 합쳐져있는 형태인데




기차 정류장(이름 : 대기역)과




Input과



Output


각각의 역활은 사용하게 될 때 이야기 하겠고 이제 이 구조가 동작하도록 만들어볼꺼임



1-1 대기역


대기역은 화물 요청이 없어서 기차가 일을 마치고 대기하는 장소면서 출발하는 곳임


크게 두가지 역활이 있는데


1. 연료보급

2. 운행가능한 기차 판단


기차가 운행을 마친 뒤 오면서 쉬는 장소라 보통 대기역에서 연료 공급을 해주고

LTN이 운행 스케줄을 만들 때 명령을 내리기 위한 기차를 탐색하는 장소 이기도 함




LTN역에게 `이 역은 대기역이다` 를 알려주기 위해서는 신호를 보내줘야하고


신호를 보내주기 위해선 일정신호조합기에서 신호를 선택한 후 LTN역의 Input에 회로를 연결해주면 됨



대기역으로 설정하기 위해선 `Stop is Depot` 을 입력으로 보내주면 됨


이것만 해주면 설정 완료



1-2. 요청역


요청역은 필요한 물품을 요청하는 장소임


필요한 물품의 종류와 갯수를 지정해주면 공급역을 확인한 후 요청 갯수 이상 있으면 대기역 - 공급역 - 요청역 으로 기차 스케줄을 만들어줌



요청역에서 설정해줄건 두가지인데


1. 필요한 자원 종류 및 갯수

2. 요청역 표시 및 조건


필요한 자원은 원하는 자원을 선택해서 신호를 보내면 되고

원하는 갯수는 음수로 표시해주면 됨



요청역을 표시하는 방법은 요청상자 그림이 있는걸 표시해주면 되고


지금 Request Threshold를 50으로 설정해놨는데 이 뜻은


`이 정류장에서 가지고 있는 물품이 50개보다 적어졌을 때 자원을 요청한다` 임



표시한 자원(철 판 -300)과 연결짓어 생각해보면


`이 정류장에서 가지고 있는 철 판이 50개보다 적어졌을 때 철 판 300개를 요청한다`


가 됨 



1-3 공급역


공급역은 필요한 자원을 공급하는 장소임




표시해 줄 신호는 Provide Threshold 하나임


지금은 100개로 설정해놨는데


`이 정류장에 있는 자원이 100개가 넘어가면 공급을 하겠다`


라는 뜻이고


공급역에서 자원을 선택하지 않는 이유는 다른방법으로 신호를 넣어줘야하기 때문임



일단은 이렇게 3개의 LTN역을 세팅해주면




이러한 오류가 뜨게 될거임


왜 뜨는지 알기 위해 LTN의 동작을 정리해보면



1. 요청역에서 필요한 물품이 있는지 확인한다

  - 현재 요청역의 철 판은 0개가 있으며, 요청역의 Threshold는 50 이기 때문에 0 < 50 이 되서 철 판의 요청이 발생

2. 공급역에서 공급할 물품이 있는지 확인한다

  - 현재 공급역은 아무 자원이 없는 상태


공급할 수 있는 철 판이 없기 때문에 오류를 띄우는 상황임




임시로 이 상황을 해결하기 위해서 공급역에 철 판이 있는 것 처럼 보이게 하기 위해 일정신호조합기로 신호를 만들어보면




LTN이 인식하기로는 이제 공급역에 철 판이 있으니 스케줄을 만드려고 하는데


대기역에 기차가 하나도 없어서 기차 스케줄을 못만드는 상황이 되어버림




그걸 위해 기차를 대기역에 놓아주기만 하면 똑같은 에러를 띄우니까



이런식으로 대기역에 목적지를 찍어서 자동 + 대기를 시켜놔야됨



일정 시간이 지나면 이런식으로 LTN이 자동으로 경로를 짜줌


스케줄을 대충 보면 공급역에선 철 판 300개 이상을 확보하고

요청역에선 모든 철판을 내리는 스케줄이 짜짐


물론 공급역에는 실제 철 판이 없으니 600초동안 대기하다가 요청역 갔다가 600초 대기 후 대기역으로 갈꺼임



정리하면



대기역은 `Stop is depot` 설정



요청역은 `Request Threshold` 및 `요청하고자 하는 자원` 설정




공급역은 `Provide Threshold` 설정







2. 액체 화물 이송


여태것 철 판으로 설명해놓고 왜 액체냐??? 하면 액체 LTN 구조가 더 간단해서 그럼


이번 목표는 물을 이송하는거임



2-1. 대기역



은 1-1이랑 똑같음


2-2. 요청역



이번엔 물을 이송하기 위함 이니까 물 요청을 해줄거고






역쪽에 추가적으로 탱크를 만들어서 신호를 Input에 넣어줄꺼임


왜냐면 요청역에 물 저장할 공간이 있어야 추가 요청을 안할꺼니까...


주의해야할 점은 Input에 연결한 전선 색과 탱크에 연결한 색이 같아야 한다는 것


추가로 주의 해야 할 점 같은건 펌프 방향?



2-3. 공급역





공급역도 신호 자체는 똑같음(스샷도 재활용)


기왕이면 요청역에서 물 10k를 요청하니까 공급역의 Provide Threshold를 10k이상으로 맞춰주면 좋겠지



역 주변은 요청역처럼 탱크 - LTN Input 으로 이어지는 회로를 만들어주면 됨


잡설좀 하면 선 색은 다른거랑 같은 색일 필요는 없음(탱크 - 인풋 선을 초록으로 해도 잘 작동함)

굳이 할필요는 없고


이렇게 세팅을 해주고 대기역에 기차를 가져다 두면



공급역에 들어가서 물을 채우고



요청역에 물을 내리고



대기역으로 다시 와있음




주의해야할 점이 있다면 




이 부분인데


잘 보면 공급역에서 떠나는 조건이


`물 10k 이상 및 2초 지남`



근데 생각해보면 펌프가 기차 신호를 읽어서 물이 10k 넘어가면 공급을 멈출까???


절대 아니지



그러니까 공급역에선 물탱크에 있는만큼 채우고

요청역가서는 화물탱크가 다 빌때까지 내린다는 문제점이 있음



(크탐모 사진)


액체야 대충 이런식으로 서브 탱크를 두면 되는 문제라 간단한데


고체 물품들은 아니기 때문에 좀 더 복잡해지게됨


일단 액체는 서브탱크를 잘 만들고 요청량만 신경쓰면 되는 문제임



3. 하자있는 고체 물품 이송


왜 하자가있냐 하면 방금 액체에서 말한 문제점을 해결 안한 기차역을 만들 예정임




3-1. 대기역




ㅇㅇ


3-2 요청역




철 판을 요청할꺼기 때문에 철 판 으로 설정하고 요청할 갯수는 200개


요청하기 위한 조건은 철 판이 50개 이하




역 주변은 액체때 탱크 만들었던거 처럼 상자에 회로를 연결해서 현재 요청역에 몇개의 철 판이 있는지 알려줘야됨


모든 상자에 선을 연결해서 인풋으로 넣자



3-3. 공급역




공급역도 똑같이 상자와 인풋을 연결해서 현재 공급역에 얼마나 철 판이 있는지 알 수 있도록 하고


Provide Threshold는 요청역에서 200개를 요청하니 300개가 있을 때 부터 공급할 수 있도록 300으로 설정했음



이제 상자에 철 판 300개를 넣어주면




자동으로 열차가 세팅 되고


공급역을 가서 화물을 채우고


요청역에서 화물을 내리겠지?



근데 말했듯이 하자가 있는 설계라 철 판이 요청한 200개가 넘어가도 계속 화물을 싣게됨



이유는 설명했듯이 화물을 200개 이상 + 2초동안 활동 없음 인데


투입기는 다 넣을때까지 쉬지 않기 때문임



그래서 요청역에 가선 화물 300개를 다 내릴때까지 있을거고



실제로도 철판 300개가 요청역에 있는 상황임


상자에 300개


+


세팅해둔 -200개 by 일정신호조합기


= 100 철 판 적신호






4. 3번 문제를 해결한 화물 이송


이제 3번의 문제를 해결하면 되는데 요청한 만큼만 넣어주는 방식으로 해결할 예정

다른 공략들에 나와있는 형태임


4-1. 대기역


이젠 패스하자


4-2. 요청역




변함 없음


4-3. 공급역






아까의 형태에서 변경된점은


1. 투입기가 선별 투입기로 변경됨

2. 산술 연산 조합기의 추가

  - 입력 : LTN의 기차역 부분

  - 출력 : LTN의 Output



먼저 투입기 설정을 `활성화/비활성화` 에서 `필터 설정` 으로 바꿔주자


연결된 회로가 없으면 안뜨니 주의



이제 산술 연산 조합기에 대해서 알아볼건데


먼저 여태것 설명 안한 LTN의 Output과 기차역에 대해 잠시 알아볼 시간임



LTN의 Output은 평소에는 아무 신호도 주지 않지만

기차가 역에 도착하면 여러 신호를 내보냄




중요한건 철 판 200개 이니까 그것만 보면


200개인 이유 : 요청역에서 요청한 물품이 200개라


500개를 요청했으면 500이 표시됐을꺼임



이제 기차역을 보면?


만약 기차에 철판이 100개 들어가있다?



그럼 기차역에서도 철 판 100개가 표시됨


기차역은 정차한 기차에 실린 화물 갯수를 출력해줌



요청 수 = 화물 수 를 맞추면 3번의 문제는 해결되는거니까


산술 연산 조합기를 위 스샷처럼 세팅해주면


((현재 화물 수) * -1) + 요청 갯수


가 되고



위의 식은 항상 양수가 될거고



양수인 신호는 투입기로 전달되고


`필터 설정` 으로 되어있는 투입기는 양수 신호가 들어오면 해당 신호를 `허용 목록`에 추가함


그러면 투입기는 작동함




((현재 화물 수) * -1) + 요청 갯수 = 0 이 되면


신호가 아무것도 안나가게 되고


투입기의 `허용 목록`에 있던 철 판은 신호가 0이 되었기 때문에 `허용 목록`에서 빠지게 되고


`허용 목록`아무것도 없기 때문에 투입기는 작동을 멈춤



요청한 만큼 화물을 채웠기 때문에 2초 후에 기차는 출발할꺼임



그래서 다른 공략글보면 LTN 공급역이 이런식으로 생긴거임


이정도만 이해하면 LTN굴릴 수는 있다고 생각함



5. 기타 LTN 정보


문제는 4까지만 하면 또 고장남




대충 만들긴 했는데 대기역에 열차가 2개가 있다고 해보자


Q. 이 때 요청역에서 철판 요구가 오면? 



A. 지랄난다


요청역에서 요구할 때 기차 1대만 요구하는게 아니라 여러대한테 한번에 요구해서 그럼




이런걸 막기 위해 필요한게 Limit Trains임


요청역에 1로 설정해주면 한번에 열차 한대만 요청해서 저런일 안일어남


물론 공급역에도 설정 해줘야만 저런일 안일어남


열차 신호로 해결 될 것 같지만 안되니까 요청역이랑 공급역에 설정해주면 됨



처음 부분에서 대기역은 열차의 연료 공급 역활도 한다고 했는데


(크탐모 + 우주 열차 모드)


이런식으로 연료 요청역에 대기역을 여러개 짓고 연료를 보급하는 방법을 사용함


스샷 보면 제일 아래에 기차 없는 부분이 연료 요청역이고


그 위로 쌓인건 다 대기역임



이런식으로 만들었을 때 기차의 길이가 4가 아니라 3,5 같은 기차가 들어오면


연료 공급이 안되거나 화물칸에 연료가 들어갈 수 있는 문제가 있음


이런 상황을 막기 위한 신호가 Limit Trains옆에 있는 기차 길이 관련 신호들임


아니면 나처럼 편하게 모든 기차를 머리2 화물2로 맞추면 문제 없고





Request나 Provider에 그냥 부등호 말고 다른건 물품 스택 수로 계산하는거임


 

마지막으로 LTN Input의 색을 설명하면



초록색은 현재 사용가능한 역임을 알려줌



파란색은 기차가 현재 역에서 대기하고 있다는 것을 알려주고



노란색은 현재 역이 상호작용 중 임을 알려줌

열차 스케줄에 해당 역이 포함되어있다고 생각하면 될듯




붉은색은 역이 고장남을 알려주는데


지금 고장난 이유는 LTN역 과 Input이 같은 회로로 연결되어서 고장난것


역 - 전신주를 잇는 선을 없애거나 붉은색으로 연결하면 정상작동 하게 될꺼임




설명도 대부분 한거같고 스샷 50장 다 채워서 그만씀


이거 보고 다른 공략글 볼 때 이해하기 좀 더 쉬워졌으면 좋겠다


잘못된거 있으면 태클 환영