원유처리 파이프한줄에서 한개의 탱크로 받고 그탱크 자원을 읽어서 세개의 펌프를 각각 작동시켜 나머지 세개의 탱크로 옮겨주면
짜잔!
더이상 지하파이프로 지랄같이 각자 연결하는 노가다를 안해도 된다는 결론이 나왔다
혹시 더 테스트해보고 막히거나 문제생기면 알려줘
이렇게만 봐서는 한가지 탱크 가득차면 기존에 막히듯이 막히는거만 아니면 잘돌아갈듯?
추가 중요
결론은 정유공장 한개에 위에 사진처럼하면 완벽히 돌아가지만
여러개의 정유공장이 걸리고 파이프가 한개라도 중간에 더들어가면 에러가떠서 병신이된다
아래 글보면서 누군가 이거 간단히 뚫는게 나오겠지 했는데 그게 나였다니 ㅋㅋㅋ
원유정제공장 쭈욱 세워도 문제없어?
입력량이 많으면 스위칭 되는 시간이 늘어나서 병목 생길 거 같은데, 공장 + 신호기 디자인으로 몇 개까지 커버되?
아 그냥 이렇게 하면 되는구나 탱크에 회로 걸리는거 생각을 못했네
여러개 연결해서 첫탱크에 0.1이 남으면 펌프작동이 멈추면서 에러난다 이게 뭔 좆같은경우인지 전혀 이해가 안된다 ㅋㅋㅋㅋㅋ
심지어 첫탱크에 경유 0.0으로 표시되는데 이래도 경유쪽빼는 펌프가 작동을 안하네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이게 뭔 병신같은 코딩을 해놨길래 이지랄이야 ㅋㅋㅋㅋ
컴공) 소수점오차 문제로 생기는 것 같은데 이 버그 고치면 유체 연산 속도가 기존보다 최소 2배 이상 더 걸림 이거 외에도 잡다한 버그가 있어서 유체 안 섞이게 한 걸텐데 안 섞이게 하는데도 문제가 많으니.. 노답인듯
소수점을 없애면 문제가 없을텐데 뭐하는짓인지 모르겠다 그냥 float 말고 전부 int로 쓰면 되자나
유체 변화가 선형인데 선형 보간은 int로 하기 힘듬
int로 유체를 계산하게 되면 길이 1000짜리 파이프에 유체가 1 들어있을 경우 파이프 하나에만 유체가 1이고 나머지 999개에는 유체가 0이 되는 기현상이 벌어짐
이쯤되면 소수점 몇째짜리 아래까지 연산되는지 궁금해진다 0.0000001 있는것도 있는거라고 인식이 되니까 0.0인데도 작동멈추고 그러는건가?레알?
맞어 플로트연산 좆같음
얼마전까지도 가득 찬 유체탱크 두 개 내용물 합이 50000이 아니라 49999가 되는 버그 있었고 지금도 가득 찬 유체탱크 하나 내용물을 한 25개로 옮기면 25000에서 24985정도로 줄어드는 버그가 있다. 제일 신기한거는 회로로 내용물을 읽어서 나오는 숫자랑 탱크를 클릭해서 내용물을 볼 때 나오는 숫자가 다르다는 거다. 도당체 이해할 수가 없음
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=19623
유체연산
코딩을 더럽게 해놓으니깐 이렇게 되는거아냐
정유공장 한개일때는 정상작동하는데 여러개세우면 에러나서 멈춘다 좆병신 프로그래머새끼들 ㅋㅋㅋㅋ 0보다 크면 펌프작동 하는 조건식인데 0.1이라고 작동을 안해 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
값을 곱으로 증폭시켜서 비교해봐
부동소수점 비교 연산할 때 두 값 차이가 엡실론보다 작으면 같다고 간주해서 그런듯
값을 곱으로 증폭이 되면 좋은데 신호 조합 뭐 이런건 소수점연산이 안됨 0.9 값에서도 펌프가 멈추는 이유가 그거임
소수점 이하 값자체를 신호네트워크시스템에서 숫자값으로 인식못함
개인적으로는 이 트릭 쓰면 나중가서 문제 생길 것 같음 유체연산이 자주 변경되서 이런 exploit들은 마이너 패치로 꼬여버릴 수 있음
2의 제곱은 대충 3.9999 언저리인 것이와요
0.1+0.2=0.30000000000000004
0.9일때도 펌프는 멈춘다 개발자 씨발년들
요약하자면 회로 신호int값만 처리하고 유체탱크같은건 float 값을 사용한다는건데 진짜 대가리가 제정신이면 이따구로 코딩하냐????????? 둘다 int로 어떻게든 떡치던가 한가지로 통일하지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
코러면 렉이 심해지잖아