[팩토리오 계산기] 베타 ver0.1
예전에 계산기 만든다고 한 사람임
지금은 Factorio Caculator(https://kirkmcdonald.github.io/calc.htm) 보다 한참 떨어지는 기능을 가지고 있지만
우선 진행상황 확인하고, 내부 구현 갈아엎기 전에 공개 한번 해야할거 같아서 글씀
미완성인데도 글을 써서 좀 민망하지만… 글을 안쓰면 만들던거 때려치고 찍 싸고 그만둘거 같아서 써봄
기능이 부족하기 때문에 굳이 쓸 필요는 없고, 관심있는 분들만 테스트 해보고 피드백 주면 좋겠음
왜 남들 잘 쓰고 있는 helmod나 factorio calculator 안고 새로 만들었냐 하면, 다음과 같은 이유임
1. helmod의 경우 본인이 쓸 때 불편하고 게임이 자꾸 터져서 타이틀로 나가짐
2. 듀얼 모니터 쓰는 중인데 굳이 인게임에서 공간 잡아먹기 싫었음
3. 그렇다고 다른 외부 프로그램들 쓰면 모드가 안먹힘. 나는 씨블럭 계산기가 필요했음
그러므로 모드 로드해서 계산하는 기능 까지는 구현 할 생각임
현재 몇 가지 문제가 있어서 기능을 잠궈놨음
1. 프로그램 경로에 한글이 있으면 실행 안됨
2. 무한 루프 문제
a. 우라늄 탄창 제작시, 우라늄의 레시피로 코바렉스를 선택하고 코바렉스 재료로 우라늄이 들어가고… 반복하다 터짐
3. 모듈 문제
a. 처음 모듈을 선택한 다음 아이템 제작 경로를 만들면 문제가 없음
b. 아이템 제작 경로 중간에 생산성 모듈을 박으면 그 아래 재료들의 숫자가 바뀌어야 하는데, 구현 방식때문에 오류남
대충 이정도 문제가 있음
파일 링크 :
https://drive.google.com/open?id=1uKr--jA3Ld0CDDYa1f0KC-yeZg5NfUkQ
사용 방법
- 한글 경로에서 실행하면 오류나니까 영어 경로에서만 쓰시오
- 옵션 설명
옵션들은 다음과 같음
아래 옵션들은 config.ini 에 있으며 해당 파일이 없으면 자동으로 생성함
[template]
; 팩토리오 경로
path_factorio = C:Program Files (x86)SteamsteamappscommonFactorio
; 모드 경로. 현재 사용하지 않음. %읽는데 문제가 있어서 %%처럼 2개 써야함. %Appdata% = C:Users[유저명]AppDataRoaming
path_mods = %%AppData%%Factorio
; 루아 읽은 후 필요한 정보만 저장할 폴더
path_template_dir = fmc_temp
; 프로그램 실행 시 저장한 폴더에서 자동으로 읽을 지 여부
auto_load_from_json = yes
; 프로그램 실행 시 팩토리오 데이터에서 자동으로 읽을 지 여부
auto_load_from_data = yes
; 표기할 언어. Locale 폴더 내부 이름을 따름. Main 언어가 없다면 sub 언어, 그것도 없다면 루아 변수명을 표기
; 한글/영어/일본어/러시아어 까지는 확인했는데 한글/영어 이외에는 오래 테스트 안했음
language_main = ko
language_sub = en
; 이 아래는 아직 사용하지 않음
[factories_save]
path_save = fmc_facto.json
auto_load = no
auto_save = yes
- 기능 설명
로드 창
다음의 경우에 표시됨
auto_load_from_json = no / auto_load_from_data = no 일떄
auto_load_from_json = yes 이지만 미리 로드된 폴더가 없거나 경로가 잘못됬을 떄
auto_load_from_data = yes 이지만 팩토리오 경로가 틀렸을 때
"Load Template by original file" 선택 후 Open을 누르면, 위 경로에서 팩토리오 파일을 찾아서 로드함
모드는 아직 로드 안한다…
"Load Template by JSON, Directory" 선택 후 Open을 누르면, 위 경로에서 전용 세이브 폴더를 찾아서 로드함
전용 세이브 폴더는 lua 스크립트에서 필요한 부분 + icon을 복사해서 사용함
세이브 폴더에는 버전을 따로 저장하기 때문에, 세이브 버전이 올라갈 경우 새로 세이브를 만들어야함
ex) 지금은 전력, 화력을 무시했는데 나중에 추가할 경우, 세이브를 새로 만들어야함
밑에 비활성화된 부분은 작성한 내용을 저장했다가 나중에 로드하려고 만듬
일단은 작동이 안됨.
프로그램 기능
우상단 - 전역 설정
Expensive : 마라톤 모드(맵 만들 때 '더 많은 자원을 소모함' 선택 시) 설정
- 다만 체크하는 동시에 적용되고 현재 상황을 새로고침하지 않기 때문에, 체크한 후부터 적용됨
- 처음에 체크할지 말지 결정하고 손대지 않길 바람
Items/min 콤보 박스 : 표시할 시간 단위. 초, 분, 시 설정 가능
상단 - 제작 목록을 생성할 상위 아이템 선택
좌상단 콤보박스 3개 : 생성할 아이템 선택
- 그룹/서브 그룹을 선택하면 범위가 더 좁아지니까 선택이 편함
- 서브 그룹의 경우 인게임에서 표현이 안되서 번역이 없는 경우가 있음
Amount : 생산량. 우상단 콤보 박스에 따라서 초당/분당/시간당 생산량을 설정
Beacon : 신호기 설정
- 백분율 그대로 적용하기 때문에 신호기의 옵션인 모듈 효과 절반을 미리 계산하고 넣어야함
- 우선 속도모듈만 작동한다고 가정
Default factory : 사용할 조립기계/용광로 종류.
- 1번부터 사용 가능한 것을 선택
- 예를 들어, 전기용광로 / 조립기계 3 / None 으로 선택할 경우 조립기계를 쓰는 레시피는 조립기계3, 용광로를 쓸때는 전기용광로를 사용
- 프로그램 편의를 위해 아이템을 생산하는 것들(드릴, 해저펌프)나 생산 불가 물품(나무, 물고기 등)도 여기 포함됨
Default Module : 사용할 모듈 종류
- Default factory와 마찬가지로, 1번부터 사용 가능한 것을 선택
Apply : 선택한 설정으로 아이템 제작 목록 설정
좌하단 - 제작 목록
- 미완성임
- 이름, ID, 생산, 재료, 필요 공장 수를 표시
- 생산, 재료의 경우 소수점 3째자리까지 올림함
- 그룹의 경우, 하위 공장/그룹들의 전체 생산/재료 수를 합쳐서 표시
- 컴퓨터 나눗셈 문제로 오류가 날수 있음
- 예시 그림은 철판 생산이 0.0/m 표시가 되어있는데 나눗셈 문제로 분당 0.001을 생산한다는 표시이고, 실제로는 0임
우하단 - 공장/그룹의 정보 수정
- 미완성임
- 원래 공장 종류, 모듈 종류, 공장 수 등을 조절하거나 생산 아이템, 레시피 등을 변경할 수 있게 만들 예정이었음
- 위에서 말한 여러가지 오류로 일단 아무 기능도 작동하지 않음
앞으로 계획
1. 아이템 콤보박스를 Factorio Calculator 스타일의 클릭&팝업으로 변경
a. 내가 만들었지만 공간 너무 많이 차지해서 빡침
2. 아이템 제작 목록 수동 제작
a. Factorio Caculator 처럼 자동으로 하려니까 문제인거 같아서 그냥 직접 만들게 하려고 함
b. 계층 구조로 만들거임(Group을 생성한 다음 그 안에 Factory나 Group을 넣어서 화면 안에 필요한 만큼만 표시할 수 있도록)
c. Group 혹은 Factory 끼리 연결해서, 목표 제작량이 바뀌면 재료 생산량도 바뀌게 설정
3. 모드 읽기
a. 일단 최초 목적이 씨블럭 전용 계산기 만들기 였으니, 씨블럭/앤밥 모드 인식하게 할 예정
b. 갤 보다보니 산업모드는 업데이트 더 안하는거 같아서 포기
c. 그 외에 제작식이 많이 추가되는 대형 단일 모드 추천해주면 고려해봄
4. 아이템 제작 목록 자동 제작
a. 지금 문제되는 부분 고치기
b. 버튼 누르면 원하는 그룹으로, 완성된 목록을 추가
5. 그래프 뷰(?) 제작
a. 파워포인트 도식처럼 사각형과 화살표로 구성된 뷰 생성
6. 전력/화력 소비/생산
7. 기타 등등…
다음 버전은 1~2번을 해결해서 가져올 생각임
그 외에… 원하는 변경사항 있으면 말하십쇼… 가능한 사항은 적극 반영 하겠읍니다…
우선은 멘탈 관리를 위해서 팩토리오 한판하든가 다른 겜 좀 하고옴...
------------------------------------------------------------------------------------
ps. 엌ㅋㅋㅋㅋㅋ 바이러스 검사에 걸림 ㅋㅋㅋㅋ
진짜 바이러스가 포함된건 아니고 빌드 도와주는 프로그램(pyinstaller) 최신버전에 문제가 있다고 함
프로그램을 구버전으로 변경해서 다시 빌드한 다음 다시 업로드함. 위 링크는 고쳐져 있습니다.
업로드한 파일을 VirusTotal 에서 검사 후 바이러스가 없다는 증거는 아래 링크
일단 추천
내일 아침에 함 써봐야지
위험해서 크롬에서 다운 차단함
이라고 뜸
https://support.google.com/chrome/answer/6261569?visit_id=637173589289772704-1508803477&p=ib_download_blocked&hl=ko&rd=1
실행파일이라 그런가; 일단 내컴에서는 안뜨고 직접 만든거라 문제는 없을건데 올려준 링크 보고 최대한 문제 없애겠음
씨벌쎾쓰 성공함 글 수정할테니 다시 받으세요
와 확실히 듀얼스크린으로 헬모드 따로 돌리는거 필요하긴 했었는데
https://www.reddit.com/r/factorio/comments/d0u4qm/i_have_always_wanted_to_reimplement_helmod/
구글링 해보니 이런게 있긴하네 뭔가 조잡하지만 ㅋㅋ
무한루프 helmod 보면 matrix solver라고 버튼 있던데 그거 함 뜯어봐서 참고하는것도 괜찮을거같음
ㄳㄳ 참고해보겠음
모드같은 경우는 대형모드만 지원하고 그외의 모드들은 지원 안하는거임? 또한 대형모드 내에서도 모드옵션에 따라 제작식이 바뀌거나 하는데 이런부분까지 지원이 되는 구조임?
스크립트 파일을 직접 읽어버릴 생각이고 모드 옵션은 가능하면 손대기 싫은데... 나중에 생각할거임 대형모드의 경우 전부 테스트할수 없으니 우선은 씨블럭만 확실히 지원할거고 문제되는거 모드랑 제작식 말해주면 시간되는데로 처리함 물론 이 모든건 아직 구현중이라 안됨...
나도 모바일 어플로 비슷한거 만들어 볼려했는데 아무리 생각해도 이 부분이 막혀서 어케 해야할지 감이 잘 안잡히네
고려하는 것 중에 하나가 일단 게임을 키고 나면 현재 옵션 상태에 따라 레시피는 확정이 되니까 그 레시피들을 json이든 뭐든 파일로 추출하고 그걸 프로그램에서 불러와 활용하면 되지 않을까 고민하고 있음
일단 게임 세이브나 인게임 콘솔에서 데이터 추출까진 하고싶지 않은데... 그냥 루아에서 옵션 찾아다가 프로그램 안에서 설정하게 하고싶음... 그런 옵션 있는 모드 알려주면 나중에 시도해볼게
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=13403
예전에 밥스모드 정리했던 글인데 옵션에 따라 레시피가 달라짐. 씨블럭을 내가 해보진 않았지만 엔밥 기반인거면 거기에도 있는 옵션 아님?
게임 안키고도 모드 설정 알아내려면 mods/mod-setting.dat 이걸 봐야할 것 같은데 텍스트파일이 아니고 바이너리 파일이라 읽기가 힘드네
로드 전에 설정 물어보고 해야겠네;; ㄳㄳ
나 씨블럭 할땐 아무것도 안건드리고 해서 만능모듈도 없이했음 저런거 있는줄도 몰랐네