https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=96620&page=1

아 기차 할라니까 머리 쪼개지네역에 기차 1개만들어오게 하는거랑건설+굴삭기+무기 세팅해놓고 멀리가서 역 호출하면 본진에서 세팅해둔 기차가 출발해서 자동으로 건물 지어주는거 만들고싶은데내 머리로 하질 못하겠어..ㅠㅠgall.dcinside.com


기차에 미리 채굴기와 방어시설을 실어놓고 멀리 나가서 기차 호출 딸깍으로 광산을 짓고 싶다는 글

내가 방어시설 보충할때 쓰는 기차에서 그냥 화물 종류만 바꾸면 될것 같아 만들어왔다



1. 우선 본진에서 자재를 싣는 역이다.




회로를 이용해서 여러 종류의 물건을, 어느 한 종류만 넘치게 담지 않고 정해진 수량만큼 담게 만들었다.




일정 신호 조합기에서 내는 신호가 바로 기차에 싣고 싶은 물건의 종류와 수량이다. 광산 건설을 하고 싶다면 채굴기,벨트,전봇대 같은 물건들을 리스트에 올리면 된다.

물류 그룹을 설정해놓은 건 보급을 받을 지점의 신호와 일치시키기 위함이다. 이 방법은 양쪽의 일정 신호 조합기가 내는 신호가 다르면 제대로 작동하지 않아서 그렇다.





첫번째 산술 연산 조합기는 위의 일정 신호 조합기에서 나온 신호를 3배 해준다.

사실 이건 없어도 돼는데, 나는 보급열차가 물자를 넉넉히 싣고 있길 원해서 그냥 3배로 늘려놨다.
원하지 않으면 1배로 낮추거나 아예 철거하고 바로 다음 조합기에 연결하면 된다.





두번째 산술 연산 조합기다.

이 조합기는 첫번째 산술 연산 조합기에서 받은 값에서 역에서 받아온 화물 내용값을 뺀다.

이러면 화물칸에 무엇이 얼마나 비었는지 알수 있다.
내가 열차에 임의로 관통탄 10개, 기관포탑 5개, 레이저포탑 35개를 넣어놨다.
출력 신호에서 레이저 포탑은 음수가 된 게 보인다.




이를 위해 기차역에서 기차 내용물 읽기에 체크해야 한다.





그리고, 반드시 이전 조합기의 신호를 읽어오는 전선과 역의 신호를 읽어오는 전선은 다른 색을 써야한다.

그렇지 않으면 신호가 합쳐져버리기 때문.





그렇게 뺄셈을 한 출력신호를 투입기에 연결해서 필터 설정에 체크하면, 팩토리오의 필터 설정은 그 신호값이 양수일때만 작동하므로 레이저 포탑은 필터에 안 들어간다.

따라서 이 투입기는 눈앞의 상자에 레이저포탑이 있더라도 집지 않고 부족한 다른 물건만 집게 된다.

그리고 다른 물건을 집다가도 화물칸이 충분히 차면 그 물건의 신호값이 음수로 변할 것이므로 즉시 멈추고 또 다른 물건을 집는다.





그리고 투입기 앞의 요청 상자에는, 첫번째 산술 연산 조합기의 출력신호(안 쓴다면 일정 신호 조합기)를 연결하고 회로 연결의 요청 설정에 체크한다.

이러면 물류 로봇이 자동으로 기차 한 대를 꽉 채울만큼의 보급물자를 상자에 채워줄 것이다.





2. 기차는 채웠으니, 받는 역을 만들자


앞서 말했듯이 나는 이 기차를 외부 시설에 방어 물자를 보충하는데 쓰고 있다.

새로운 광산을 짓는데 쓸 생각이라면 그냥 호출만 하고 화물은 손으로 꺼내도 되겠지만, 하역과 호출까지 자동화하려면 받는 역에도 회로 세팅이 필요하다.


원글 작성자처럼 외부 광산을 새로 짓는데 쓸 기차라면 여기부턴 필요없다. 그냥 철도 깔고 수동으로 부르면 된다.





정해진 수량만큼 싣기만 하는 상차역과 달리

정해진 수량만큼 하차하는 것에 더해 물건이 부족할때만 기차를 불러내는 기능이 더해져야 해서 회로가 늘었다.

사진은 회로 연결을 보기 쉽게 펼쳐놨다.




일정 신호 조합기는 상차역의 것과 같다.





그리고 오른쪽 중앙의 산술 연산 조합기도 상차역의 것과 같다. 다만 이번엔 기차 화물칸 대신 투입기 앞의 상자 내용물을 읽어오게 만들었을 뿐이다.

일정 신호 조합기(원하는 보급품의 양)에서 상자 내용물(가지고 있는 보급품의 양)을 빼므로 출력신호는 부족한 보급품의 양이 된다.





그리고 마찬가지로 투입기에 그 출력신호를 연결하면 부족한 보급품만 골라서 집게 만들 수 있다.

이렇게 꺼낸 보급품을 공급 상자 또는 완충 상자에 담으면 물류 로봇들이 알아서 집어간다.




이 다음부터는 보급품이 부족할 때 기차를 호출하는 회로다.

그냥 보급품이 꽉 차있지 않을 때 부르는 식으로 만들면 탄창 하나 썼다고 기차를 불러대는 일이 발생하기 때문에, 나는 부족한 보급품의 양을 백분율로 읽어서 그 값이 일정 이하로 떨어지면 기차를 부르게 만들었다.





이를 위해 중앙 아래의 조합기는 부족한 보급품의 양에 100을 곱해준다.





그리고 왼쪽 아래의 조합기는 그렇게 100배 한 신호를, 일정 신호 조합기에서 받은 신호로 나눠준다.

그러면 출력신호는 부족한 보급품의 양이 백분율로 표시된다.

상자엔 탄창100개, 레이저포탑 10개와 기관포탑 5개가 들어있다.

벽은 100개중 100개가 모자라니 100%, 기관포탑은 10개중 5개가 모자라니 50%가 출력되는게 보인다.





이렇게 출력된 신호를 왼쪽 위의 수량 비교 조합기에서 받아서 일정값을 넘으면 신호를 출력하도록 한다.

사진의 경우엔 50인데, 이러면 어떤 보급품이든 51% 이상 빈게 있다면 호출한다.

벽이 100% 모자라니 신호가 출력되는게 보인다.





그리고 그 신호를 받아서 역이 활성화된다.

비교 조합기가 신호를 보내지 않으면(보급품이 충분하면) 역이 활성화되지 않으므로 어떤 기차도 여기로 오지 않는다.




3. 그리고 그 역을 돌아다닐 기차 스케쥴을 짜자





5초간 활동 없음은 투입기가 아직 물건을 상하차하는 도중에 출발해버리는걸 막는 조치다.

그리고 보급하차 가득 차지 않음이라는 조건은 보급품이 필요한 역이 있을 때만 출발하도록 막는다.

이렇게 하지 않으면 (보급하차 역은 보급품이 필요하지 않을 때는 불활성화=기차가 정차할수 없음 상태가 되므로) 목적지 역이 없어서 정차는 풀었지만 출발은 안 하는 괴상한 상태로 멍때리게 된다.

더 많은 회로를 써서 보급품이 충분히 상하차 되었는지 체크할 수도 있지만, 그걸 체크해야 하는 경우엔 그냥 보급품의 생산량이 부족하다는 뜻이니까 그냥 공장을 늘리는게 맞다고 생각해 체크하지 않았다.






이렇게 보급품을 자동으로 상하차하는 기차를 만들었다.

솔직히 원글 작성자처럼 쓸거면 기차가 아니라 그냥 인벤에 바리바리 싸들고 나가는게 낫지않나 싶기도 한데, 아무튼 도움이 됐으면 좋겠다.