[팩토리오 계산기] 베타 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://www.virustotal.com/gui/file/3f325663c99039cd4adfd39199650ec7a119e9ec564616ec9eb7412b32ad0952/detection