https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=96536&page=1
기차역 하나가 여러 종류의 기차를 받게 만들수 없을까예를들면 우라늄 광산이 있을때채굴된 우라늄을 가져갈 화물열차, 황산을 보충할 유체열차, 그리고 방어시설이 소모됐을때 보충할 보급열차를 하나의 역에 정차시키고 싶은데특히 방어시설의 경우 우라늄이 가득 차있고 황산이 모자gall.dcinside.com해당 질문글의 대한 답변으로 글을 작성함
이전에도 비슷한 질문글이 있었던게 떠올라 이참에 한번 테스트해볼겸 함써봄
해당 질문글은 우라늄 상차역으로 상차/황산/보급 이 세개의 열차가 우선순위를 가지고 도착하게 만드는 거였음
간단한 회로와 인터럽트를 사용해 한번 해결해보자
되게 허접해 보이긴 하는데 설명을 위해 간략하게 만들어봄
왼쪽 역 세개는 위쪽부터 황산상차/보급상차/우라늄광석하차 이렇게 세개의 역이고,
중간에 붙힌 역 세개는 서로다른 열차를 불러오기위한 중간지점이자, 다른곳에서도 같이 쓸수있게 만든역
오른쪽은 당연히 우라늄광석 상차역임
아이콘이 붙어서 좀 잘 안보이긴하는데 아이콘으로 이렇게 설정했음
하차역들은 인터럽트를 사용하기 때문에 아이콘으로 반드시 설정해야함
가장 먼저 역의 우선순위를 정해보자
방어시설을 위한 보급열차라고 했으니까 수리키트와 탄창을 모두 보급하게 설정해봄
둘중하나라도 모자라면 A 신호를 내보내게함
두번째는 황산
A신호가 없고 황산이 모자라면 불러오게함. 자연스럽게 두번째 우선순위가 되겠지?
세번째 C 신호는 A,B가 0일때 신호를 출력하게함
보급과 황산이 모자라지 않을때 C를 출력하게 되는것
왼쪽역부터 A,B,C가 출력중일때 하나씩 역을 활성화 시킴.
그리고 기차에 신호보냄 <<< 이거 체크해야 아래 인터럽트를 굴릴수있으니 반드시 체크할것
역이름을 보면 알겠지만, 차례대로 보급,황산,상차임
자, 그럼 우선순위로 불러올 역을 정했으니, 열차를 설정해서 우라늄 광산으로 보낼수 있도록 해보자
첫번째 보급열차임
1. 상차역에서 보급물품을 가득채움
2. 하차역에서 둘중하나를 비우거나 활동없으면 빠짐. 활동없음은 일반적으로 없어도 되지만, 아래 인터럽트를 사용하기위해선 필요함
3. 다만 역에서 A신호를 받을경우에 우라늄 상차역으로 가서 해당 역할을 수행함
아까 우선순위로 A신호를 출력했던걸 이용해서 그냥 보급역인지, 우라늄상차역을 위한 중간역인지 구분할수있게 하는 인터럽트임
추가로 활동없음 말고 A > 0 회로조건을 사용하면 즉시 출발해서 좀더 좋은데, 여러역에 사용한다고 하면 활동없음으로 하는게 편할거임
탄창이 부족해지자, 중간역을 거친후 신호를 받아 상차역으로 향하는 모습
두번째 황산 열차
유체 인터럽트를 사용해서 다른 유체열차들과 통일해서 사용할수 있게 설정함
얘는 활동없음을 뺴고 회로조건을 사용했는데, 보급열차와 다르게 다른 유체역에서도 머물러야하기 때문임
다른 유체 하차역에서 넉넉하게 버퍼를 사용해서 역을 활성화하거나 하면... 뭐 회로조건 안써도 되겠지만 그렇게 설정하는게 더 귀찮아서 이렇게함
위의 보급열차처럼 특정신호를 받으면 우라늄 상차역으로 향하게함.
황산이 부족해지자 황산열차가 즉시 출발하고, 황산이 차오르니 다시 광석상차 열차가 출발하는 모습.
활동없음이 아니라 회로조건이다보니 위와 다르게 중간역에서 바로 출발함
더 디테일한 움직임을 원하면 회로를 사용해서 역 온오프를 더 잘 조절해보자
마지막 상차열차
위 황산열차와 사실상 같음
이제 알지?
정리하자면
1. 중간역을 배치해서 회로 신호로 여러종류의 기차를 불러옴
2. 회로신호와 인터럽트를 사용해 중간역인지 구분후, 최종역으로 보냄
요약하니까 왜 두줄밖에 안나오냐
아무튼 마지막으로 하나더 말하자면 우라늄상차역을 만약 2개를 굴린다, 그러면 신호를 D E F 이런식으로 역 두개를 구분할수있게 설정하면 이상한데로 안튀고 따로 가능할거임.
귀찮아서 역두개는 실험 안해봤는데 아마 될거임 ㅇㅇ
그냥 역을 여러개 쓰면 되는거 알면서도 하나로 해볼려고 고민한 거였는데, 결국 역을 3개나 더 써버린거네 이렇게 역을 여러개 써서 광산 상차역 자체가 아닌 다른 역이 기차를 불러오게 만들고, 그동안 상차역은 꺼버리는 식의 아이디어는 나도 있었는데 역의 물리적 개수 자체를 줄여보고 싶었던거라 완벽한 답이 아니라고 생각해서 폐기했었음 내가 지금 쓰는 방식은 본문의 중간역 역할을 하는 역을 그냥 본역이랑 나란히 다닥다닥 지어놓고 거기서 바로 상하차하는 식인데, 이게 안이뻐서 그랬던거거든
만들다보니 그게 제일 편하긴 한데 나도 안이뻐서 아니다 싶었음
아아... 아름다움은 중대사안이 맞지.....
근데 중간역에서 다른 상차역 안가고 바로 눈앞의 상차역으로 가게 만드는건 신호를 분리하지 않고도 됄거같다 활동없음 말고 그냥 바로 출발하게 세팅한 상태에서 상차역의 기차 수 제한을 자기자신의 기차수읽기+중간역에 정차한 기차가 있으면 +1 하면, 중간역에 기차가 도착한 그 한순간에만 딱 한대만 추가로 받을수있고 다른 역은 만원일테니 바로 눈앞으로 가지 않을까
중간역은 저기뿐만아니라 외부의 같은역할을 하는역들도 있다는 가정하에 만든거라 바로 출발로 하면 좀 힘들거같은디. 그리고 추가로 받을수있다는건 상차역에 총 두대가 출발해야하는건가? 상황이 따라줘야할거같아서 어떨지 나는 잘 모르겟슴