기차역 on/off 를 이용한 원거리 신호 전달 컨셉
아이디어:
기차 스케쥴에 있던 역이 비활성화 되면
기차는 그 스케쥴을 무시하고 다음 스케쥴로 간다
기차의 패스파인더를 이용하므로 전선 연결, 회로 연결 없이 장거리 신호 전달 수단으로 사용 가능해 보인다.
왜 필요한가? :
본진이랑 먼 거리에 자원 멀티를 폈는데
자원 차는 속도가 느려서 멀티에 자원 차원이 꽉 찼을때만 기차를 보내고 싶다면 사용해볼수 있다
또 다른 예로 본진이랑 먼 거리에 바이터 방어를 위한 대포역을 세웠는데, 포탄이랑 탄창이 다 떨어졌을때만 보급 열차가 보충하게 하고 싶으면 써볼 수 있다
이런식으로 스케쥴이 2개뿐인 기차의 목적지 기차역을 비활성화로 해뒀다가, 필요할때만 활성화 하는 식으로 많이 쓴다
문제는 여기서 시작된다
기지는 계속 커지고, 공급 기차 한대로는 맵 전역 커버가 어려워질 때가 올텐데
같은 스케쥴 기차를 2대로 늘렸더니 두대가 역 하나로 맨날 동시에 출발해서 한대는 다시 유턴해서 돌아오게 된다.
또 두개 이상의 역이 같이 켜져 있을 경우 모든 기차가 동시에 출발해 가까운 쪽으로만 가려고 해서 교통체증이 심해진다.
이걸 막으려면 어떻게 해야할까?
구현 방법:
1.일단 역이 켜지면 여러대중에 한대만 출발시키고 다른 열차는 회로로 역 바로앞의 신호에서 대기시킨다.
2.첫번째로 출발한 기차가 목적지에 도착하면 목적지 역을 끄고 Signal 이라는 이름의 신호 전달 역할을 할 새로운 역을 잠깐동안 켠다. 1tick 동안만 껐다 켜도 문제없다. 어짜피 기차 패스파인더는 역이 켜지자마자 동작한다.
3.dummy 역에 정차한 더미 열차가 signal 역을 향해 출발하지만 신호와 회로를 이용해 탈출할 수 없는 루프 트랙에 갇혀 있기 때문에 실제로 signal 역에는 도착할 수 없다.
4.더미 열차가 출발하면 dummy 에서 열차가 출발했다는 정보를 회로 네트워크 신호로 받는다.
원거리 신호 전달에 성공했다!
4-1.다른 방법으로는 dummy 열차가 있는 선로를 아무데도 연결하지 않아서 출발 신호는 받지만 '경로 없음' 메시지를 띄우는 방법이 있다.
5.도착 신호를 받으면 1번에서 강제로 닫아둔 신호를 열어서 두번째 열차를 출발시킨다.
6.아직 활성화된 목적지가 있다면 다음 열차가 새로운 목적지를 향해 출발한다.
장점: 기찻길 따라서 전신주에 빨간전선 녹색전선 도배 안해도 된다. 역이 꺼지고 켜지는건 맵에서도 보여서 보기에 직관적이다.
단점: 첫번째 열차가 목적지에 도착하기 전까지 다른 기차가 출발할 수 없어서 반응이 느리다. 따라서 광석 공급 기차 처럼 많은 왕복이 필요한 경우에는 효율적이지 못하다.
이 단점은 열차 패스파인더가 찾은 목적지를 도착전에 신호로 받아올 방법이 없는 이상 해결 불가능이라고 본다.
이거 해결하는게 오랜 숙원이었는데 이번엔 될거같은 느낌이 왔음. 나중에 테스트 해봐야지.
- dc official App
논문 ㄷㄷ - dc App
언젠가 봤던거같은 기분이 들어서 찾아봤는데
http://gall.dcinside.com/factorio/6220
이랑
http://gall.dcinside.com/factorio/6235
글이 비슷한거같네
오 누가 이미 했었네
저기선 2대만 보낼 수 있다고 했는데 목적지 도착 신호를 펄스로 하면 카운팅 되니까 여러대 보낼 수 있을듯