아까 썼던 글을 시행착오를 거치며 구체화해봤음.
LTN에 대한 자세한 설명은 여기에 잘 설명되어 있음. 나도 이거 보고 배웠어
먼저 컨트롤 센터임. 대충 설명은 사진에 적혀있지만 여기서 설정값을 주면 대충 이리저리 연산을 통해 LTN 관련 변수를 전역 회로 네트워크에 전달함.
이 짓거리를 도대체 왜 하느냐...면
화물차 업그레이드 시 편성 당 수송량이 늘어나지만
각 역의 공급/요청 한계량은 그대로 유지되고 있어 화물차에 아이템을 꽉 안 채우고 다니는 문제점을 발견했음.
예를 들어, 총 50스택을 실을 수 있는 열차(화물차 MK1 x 2)를 업그레이드해서, 100스택을 실을 수 있게 했다고 치자.
하지만 LTN 상에서의 한계치는 50스택으로 설정되어 있어서, 100스택을 꽉 안 채우고 50스택만 채워지면 열차가 바로바로 출발해버림.
업그레이드를 한 의미가 없어지는 거지. 수송량을 늘려야 하는데...
그렇다고 수백개에 달하는 모든 역의 신호 값을 고치자니 이건 정말 너무 힘들더라고.
여기서 변하는 건 화물차의 수송량(스택 수)밖에 없으니까, 이걸 변수로 잡고 나머지를 회로를 이용해 자동으로 연산해서
각 역에 뿌려주면 아주 간편하게 해결할 수 있겠다는 생각이 들어 만들어 본 시스템임.
자세한 설명 시작할게.
우선 우측에 있는 일정 신호 조합기의 역할은 앞서 말한 "열차의 수송량" 을 설정할 수 있는 곳임.
이제부터는 유체가 아닌 일반 아이템을 고체라고 할게.
먼저, SOLID에서는 고체 수송용 열차의 총 수송량을 스택 단위로 설정함. (신호 종류는 겹치지만 않으면 상관없음)
예를 들어, 나는 1-2 구성을 사용할 예정임.(기관차-화물차 순)
그리고, 내가 사용할 제련용 화물차 MK1은 량당 64개의 슬롯을 가지고 있음.
따라서 총 수송량은 128스택이 되고, 그 값을 저기에 적어줄 거임.
LIQUID도 마찬가지로 유체 수송용 열차의 총 수송량을 설정할 건데,
고체처럼 묶음 단위가 지멋대로가 아니라서 굳이 스택을 쓸 이유도 없고, 신호도 겹쳐서 그냥 저건 유체 단위로 설정할 거임.
일단은 아직 유체 가려면 멀어서, 기본 유체 화물차 25k x 2 = 50k 로 대충 설정해 뒀음.
이제 변하는 값은 여기서 끝이라고 봐도 됨.
최종적으로는 열차를 업그레이드할 때마다 이 두 개의 조합기에서 값만 변경해 주면 맵 전체의 LTN 역에 변경된 설정이 업데이트될 것임.
(사실 조합기를 하나로 써도 아무 상관 없지만... 가독성을 위해서 두 개로 나눴음.)
이제 이 두 개의 변수(고체 수송량, 유체 수송량)을 가지고 이리저리 변형해서
이 컨트롤 센터에서 역으로 쏴주는 정보는 크게 2가지임.
(나중에 나오겠지만, 반대로 생각하면 LTN 역을 만들 때 이 네 개의 정보는 따로 설정하지 말아야 함.)
1. 요청/공급 한계값
간단함. 아까 그 값에 1을 곱한 뒤 최대 스택을 나타내는 신호로 내보내면 됨. (고체/유체 동일, 유체는 생략)
저게 의미하는 것은, 공급역에서 128스택 이상 아이템이 쌓였을 때 열차를 배차시키겠다는 의미임.
2. 요청량
2-1. 고체
아까에 비해서 조금 복잡한 연산을 하게 되지만, 차근차근 뜯어보면 어렵지 않음.
먼저, STACK이라는 조합기에서는 위와 같이 각 묶음 단위별로 하나씩 값을 정해줄 거임
다들 알다시피 팩토리오에서는 아이템마다 묶음 단위가 다름. 철 판은 200개, 실리콘 웨이퍼는 500개 같은 식으로.
LTN에서 요청은 스택 단위로는 불가능하고 무조건 개수로 해야 하기 때문에, 우선 가능한 묶음 단위를 저기에 다 넣어줬음.
생각나는 건 다 넣었는데, 나중에 또 이상한 묶음 단위 나오면 또 넣으면 OK
1번 연산기
그리고, 맨 처음의 고체 수송량(빨간 전선)과 묶음 단위값(초록 전선)이 같이 연결된 조합기에서는 이 두 값을 곱해줄 거임.
그런데 팩토리오 시스템 상에서는 한번에 이게 안 되더라고(내가 모르는 방법이 있을지도 모르지만)
그래서, 우선 전체 입력값(노란 별)과 수송량(톱니바튀)를 곱해줄 거임.
그러면 출력에는 (묶음 단위) X (스택 수) 니까, 지금 상황에서는 묶음 별로 128스택에 들어가는 총 아이템 총량이 나오겠지.
그런데 여기서 쓸데없는 값이 하나 튀어나옴. 바로 톱니바퀴를 제곱한 값인데(16k)
사실 이걸 전역 네트워크에 뿌려도 별 상관은 없을 것 같은데, 그래도 혹시 몰라서 저걸 없애주기로 함.
2번 연산기
그래서 바로 아래에 있는 2번 연산기에 1번 연산기의 출력을 그대로 먹여준 뒤(빨간 전선)
여기서 톱니바퀴 값에 -1을 곱한 뒤 출력은 톱니바퀴만 출력되게 했음. 그러면 2번 연산기의 출력은 -16k가 되지.
3번 연산기
그리고 여기서 1번 연산기의 출력(초록 전선)과 2번 연산기의 출력 단자를 연결하면
16k + (-16k)로, 톱니바퀴 값은 0이 되어 사라짐.
그리고 톱니바퀴가 사라진 아이템 총량에 -3을 곱해 그 값을 전역에 뿌려줄 거임. 여기까지가 고체 연산 부분임.
왜 -3을 곱하는지는 나도 정확힌 설명할 수 없지만, 제일 위 글에서도 일단 그렇게 하라고 설명되어 있더라.
원래는 요청역에서 (수송량) x (-3) 을 직접 설정해줘야 하지만, 여기서는 단위별로 그 값을 뿌려줄 거임.
즉, 3번 연산기의 출력을 보면 500묶음짜리 아이템은 -192k, 200묶음짜리 아이템은 -76k 등으로 표시된 걸 볼 수 있는데
원래대로라면 저 값을 그대로 요청역의 조합기에 넣었어야 한다는 말임.
유체는... 사실 까먹어서 못 만들었음. 너무 피곤해서 지금은 만들 자신이 없다.
그래도 고체보다는 훨씬 쉬울 것 같고 해서 따로 설명은 안 하겠음.
그냥 (수송량) x -3 만 해서 대충 유체를 대표하는 아무 값이나 잡아서 뿌리면 될듯.
그럼 여기까지 따라왔으면, 지금 전역 네트워크에 떠다니는 값은 다음과 같음.
그럼 이걸 이제 어떻게 요리해 먹을 것이냐가 중요하겠지?
요청역, 공급역 순으로 차례대로 알아보자.
1. 요청역
요청역의 경우, 네트워크에서 받아와야 하는 값이 2가지임.
① 요청 한계량
네트워크의 공급 한계량을 가져와서, 출력만 요청 한계량으로 바꿔서 바로 내보내주면 됨.
아니면 컨트롤 센터에서 그냥 전역 네트워크에 요청 한계량을 올려버리고 그걸 받아서 그대로 가져와도 될 듯.
글 쓰면서 생각해 보니 이게 더 편할 것 같다. 나중에 수정해서 올림
② 요청량
두번째는 조금 복잡함.
우선, 이 역에서 요청할 아이템을 아래 출력 칸에 넣음.
그리고 해당 아이템의 묶음 수를 확인해서, 해당하는 값을 입력에 넣고 1을 곱해주면 됨.
사피라이트 광석의 경우 1 묶음이 200개이므로, 아까 설정한 대로 2를 넣어주면 됨
당연하게도 요청역의 조합기에는 요청 물품에 대한 정보가 전혀 없지만
회로 연산을 통해 LTN 매니저에도 잘 반영되어 있는 모습을 확인할 수 있음.
2. 공급역
공급역에서 받아와야 하는 정보는 공급 한계량 하나 뿐이고, 그렇기에 이렇게 간단하게 회로를 구성하면 끝남
엄청 복잡하지만, 한번 구축해 두면 역을 지을 때 딱 세 칸만 확인해서 값을 채워넣으면 되고
본 목적인 열차 수송량이 바뀌었을 때도 바로바로 대응이 가능함.
질문, 지적 언제나 환영!
읽어줘서 고마워.
그냥 컴비네이터 써서 이런건 생각도 안해봤네 굳 - dc App
근데 초치는 소리 하자면 1티어 기차 기준으로 만든 그리드는 냅두고, 2티어 기차로 업그레이드하면 아예 그리드 새로 만드는게 맞지.. 기차만 바뀌면 뭐해 생산량이 똑같은데 - dc App
그건 로봇이 업그레이드 해줄거라 ㄱㅊ ㅋㅋ
이렇게 어려운 LTN이 편의모드 엌ㅋㅋ