일단 2.0 되고 기차 쓰기시작하기부터 차고지 인터럽트, 주유소 인터럽트로 꿀빨고 있다가


https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=71130&s_type=search_name&s_keyword=%ED%86%A0%EB%A3%A8&page=1

기차 인터럽트 공?략먼저 이 글은 나름대로 외국 유튭이랑 레딧이랑 디코랑 돌아다니면서 얻은 아이디어 적당히 버무린거임나도 인터럽트 관련은 건드린지 하루밖에 안돼서 정답이 아닐 수 있음을 분명히 하고 시작하겟슴그리고 LTN이랑은 다름 각gall.dcinside.com


이 글을 보고 인터럽트 정리하면서 혼자 4시간동안 짱구 굴려서 상차도 알아서, 하차도 알아서 하는 인터럽트를 만들어 보았읍니다.


해당 글 작성해주신분은 너무나 감사합니다




일단 위에 있는 글을 이해할 수 있다는 전제에 글을 쓸게요




기본적으로 역 명칭은 위 글과 같이 [생산물 아이콘 + 정형화된 이름]으로 해두어야 인터럽트에서 매개변수 활용이 가능합니다



일단 열차는 차고지에 대기하는걸 기본으로 하고 상차, 하차의 인터럽트를 가집니다.





이 인터럽트의 중요한 점은 레이더로 전역 신호를 보낼 수 있다는 점과, 기차역이 입력받은 신호를 기차에게 쏴줌으로써 출발 조건을 만들어줄 수 있다는점 입니다






상/하차 역에 붙어있는 신호입니다.


역 ON/OFF시키는 방법은 알아서 하시고 조건에서 ON이면 1을 출력하게 하되,





상황에 따라 기차 수 읽기를 통해 기차 수를 제한시켜 AND조건으로 레이더에 기차역의 취급 아이템 신호를 1로 출력합니다

(레이더로 전송하는건 꼭 아이템 1)





그리고 상차역은 빨간 와이어, 하차역은 초록 와이어로 분리하여 철도 대기역에서 받는 신호조합기로 상,하차역이 모두 켜져있는 아이템을 선별하여 기차에 신호를 전송합니다.


- 상차역만 켜져있을 때 출발해서 화물 가득채워 대기하는 방법으로 하면 첫번째 신호에 열차가 몰려서 한 아이템만 열대씩 채워놓고 하차역이 안열려서 기다리는 경우가 있어 이렇게 설정함




그러면 차고지에 대기중이던 기차는 해당 신호를 받고 회로 신호 매개변수를 통해 전달받은 아이템 역으로 이동합니다.




예아 섹스출발!



그리고 이 방식의 단점은

1. 차고지에서 출발하여 상차-하차 후 꼭 차고지로 돌아와야만 다음 일을 받는다는 것이지만 열차 수를 늘리면 되니까 문제 없을 것 같음

2. 기존 상차는 정해져있는 방식과 달리 미리 화물 채우고 대기하지 못함

3. 아이템기차 차고지와 유체기차 차고지를 별도로 만들어줘야 됨

- 이유는 신호네트워크에서 유체/아이템을 구분할 수 없어서 자칫하면 아이템 열차가 유체역에 가버리는 문제가 예상되서 진짜 대가리 깨지는줄 알았는데






아까 상/하차 역에서 신호 보낼때 아이템은 양수로, 유체는 음수로 해놓고 대기역 회로 조합에서 유체는 >0일때 신호 출력하면 걸러짐 내 머리로는 이방법밖에 없더라



지금은 상,하차역이 1개밖에 없는 상태라 저기 숫자가 1로 표시되는데 역이 많으면 신호가 합쳐져서 열려있는 역 만큼 나올거임

매칭 식으로 기차 출발하는대로 숫자 줄어드는 방식


그래서 갯수 많은 상차역은 한대만 와도 신호 없어지게 기차역에 오는 신호 1로 제한하고, 하나밖에 없는 하차역은 여러대가 대기해도 되게 하던지 하면 됨






마지막으로 차고지로 돌아가는거랑 하차 인터럽트인데 상차 인터럽트에 하차까지 다 포함해서 만들어버려도 되려나?



회로나 열차로 머리쓰는건 처음이고 LTN인가 안써봐서 거긴 더 좋은 방식이 있는지 모르겠다


이런방식으로 하니까 되더라~ 하는 글이니까 적당히 잘 적용하고 잘 응용해서 더 발전시켜줘



///추가


한 아이템이 상차역은 몇개씩 있는데 하차역은 하나밖에 없는 경우에 대기중인 열차들이 상차역 갯수만큼 출발해버리는 문제가 있음 (하차역이 더 많으면 문제안됨)

사실 이정도까지 온 경우면 기차도 엄청 많을거고 오버된 상차역 갯수만큼 기차가 짐들고 대기중인 리스크밖에 없긴 하지만





이런식으로 준비된 상차역 갯수 신호를 레이더로 받아서 몇대 이상 출발하면 더 출발 못하게 수작업해주는 방법이 있을듯