(역은 화물차 내용물 읽어오려는 목적으로만 둔거지 실제로 운행x)

스샷은 과학팩 스시지만 당연히 약간 고치면 다른 물건으로도 운영 가능



맨날 적재기랑 창고 쓰다가 바닐라로 해보니 너무 어려운거같다

일단 목적은 두가지로 뒀어

1. 최대한 소형화하고 싶었고

2. 비율의 조절을 원했음 (중요)

스시 한줄로 LDS같이 비율이 극단적인(20:2:5) 공정도 괜찮은 효율로 처리하고 싶다는 뜻임


일단 돌아가긴 돌아가는데 지금 문제가 뭐냐면 계산속도가(4틱) 투입기 회전속도를 못따라가서 애들이 가끔 같은 품목을 집어서 벨트에 올리고

진짜 올렸어야 하는 물건은 못올리고 스킵하는 현상이 생김

그렇다보니 비율 맞춰서 올리게 조절하는 기능이 돌아가긴 하는데 잘 안돌아가

이걸 어떻게 해결할지 모르겠어

그래서 목표는 어느정도 이뤘어도 실패작임

투입기별로 회로를 따로 두자니 안그래도 이미 덩치 큰거 한 두배 사이즈가 될테고

다른 구현 방법으로는 비교 조합기랑 일정신호 조합기로 롬을 만들어버려서 거기서 읽으면 2틱수준으로 계산속도가 짧아질텐데 이것도 너무 큼




32비트중에서 부호부분 1비트 제외한 나머지 31비트에다가 벨트에 올리고 싶은 물건을 작성하는데

예를 들어서

철판 (0)101 0101 0101 0101 0101 0101 0101 0101 (=1,431,655,765)

구리 (0)010 1010 1010 1010 1010 1010 1010 1010 (=715,827,882)

이런 식으로 일정신호 조합기에 기입하고 신호를 꽂으면 철 구리 철 구리 하면서 번갈아가면서 올리게되고


철판 (0)111 0111 0111 0111 0111 0111 0111 0111 (=2,004,318,071)

구리 (0)000 1000 1000 1000 1000 1000 1000 1000 (=143,165,576)

이렇게 기입하면 철철철 구리 철철철 구리 하면서 3:1의 비율로 올리게 되는 회로를 작성한거임


투입기에서 쏜 펄스를 받으면 점 신호를 1 출력하는 조합기

점 신호를 받아서 저장하는 메모리(점 mod 31)

이렇게 두개의 조합기가 있고

메모리에서 읽어서 1을 점만큼 왼쪽으로 시프트하고 일정신호 조합기랑 bitwise AND 연산을 해서 무슨 물건을 올릴지 특정지은 다음

그걸 투입기 전체에 꽂아준게 실제 구현


https://factoriobin.com/post/eSsRxxhz