Skip to content

Commit

Permalink
Merge pull request #93 from mamoniot/beta
Browse files Browse the repository at this point in the history
1.2.16
  • Loading branch information
mamoniot authored May 14, 2023
2 parents 53e67ed + 524b67c commit 67a611c
Show file tree
Hide file tree
Showing 8 changed files with 183 additions and 32 deletions.
11 changes: 10 additions & 1 deletion cybersyn/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
---------------------------------------------------------------------------------------------------
Version: 1.2.16
Date: 2023-5-14
Bugfixes:
- Fixed Nullius recipe being broken again
- Reran manager migrations to fix some people's worlds that used the beta branch
Translation:
- Chinese language update contributed by luaotix
- Russian language correction contributed by Eldrinn-Elantey
- Korean language contributed by manmen-mi
---------------------------------------------------------------------------------------------------
Version: 1.2.15
Date: 2023-4-30
Bugfixes:
Expand All @@ -12,7 +22,6 @@ Date: 2023-4-30
Features:
- Added opt-in WIP trains, inventory, and station manager gui (highly experimental, use at your own risk)
Changes:
- Improved the recipe derivation logic for the cybernetic combinator, in all modpacks it should now consistently be about as difficult to craft as an arthmetic combinator. Vanilla recipe is unchanged, but several overhaul mods will receive new recipes.
- The automatic allow list now consistently looks 3 tiles down the first curved rail it finds along a station for inserters or pumps. Previously it would conditionally look only 1 tile down. This should lead to more intuitive allow list behaviour for stations with trains that park slightly on curved rails.
Bugfixes:
- Provider override thresholds now correctly override the required train capacity as well; fix contributed by shopt
Expand Down
20 changes: 1 addition & 19 deletions cybersyn/data-final-fixes.lua
Original file line number Diff line number Diff line change
@@ -1,30 +1,12 @@
flib = require("__flib__.table")
require('scripts.constants')

--Credit to modo-lv for submitting the following code
if mods["nullius"] then
-- Credit to modo-lv for submitting the following code
-- Place combinator in the same subgroup as the regular train stop
data.raw["recipe"][COMBINATOR_NAME].subgroup = data.raw["train-stop"]["train-stop"].subgroup
data.raw["item"][COMBINATOR_NAME].subgroup = data.raw["item"]["train-stop"].subgroup
-- Nullius makes modded technologies part of its research tree
-- Place combinator in the same place on the research tree as LTN
table.insert(data.raw.technology["nullius-broadcasting-1"].prerequisites, "cybersyn-train-network")
end

-- Reset the combinator recipe back to arithmetic combinator recipe in case a mod has changed it
local recipe = flib.deep_copy(data.raw["recipe"]["arithmetic-combinator"].ingredients)
for k, _ in pairs(recipe) do
local mult = 2
for i, _ in pairs(recipe) do
if recipe[k][i] == "copper-cable" then
mult = 4
break;
end
end
for i, _ in pairs(recipe) do
if type(recipe[k][i]) == "number" then
recipe[k][i] = mult*recipe[k][i]
end
end
end
data.raw["recipe"][COMBINATOR_NAME].ingredients = recipe
2 changes: 1 addition & 1 deletion cybersyn/info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cybersyn",
"version": "1.2.15",
"version": "1.2.16",
"title": "Project Cybersyn",
"author": "Mami",
"factorio_version": "1.1",
Expand Down
100 changes: 100 additions & 0 deletions cybersyn/locale/ko/base.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
[mod-setting-name]
cybersyn-enable-planner=중앙 계획 활성화
cybersyn-ticks-per-second=중앙 계획 초당 새로고침 횟수
cybersyn-update-rate=중앙 계획 갱신율
cybersyn-request-threshold=기본 요청 임계값
cybersyn-priority=기본 우선도
cybersyn-locked-slots=화물차의 잠긴 슬롯 기본값
cybersyn-network-flag=기본 네트워크 마스크
cybersyn-fuel-threshold=연료 임계값
cybersyn-depot-bypass-enabled=대기역 지나치기 활성화
cybersyn-warmup-time=정류장 준비시간 (초)
cybersyn-stuck-train-time=막힌 기차의 정지시간 (초)
cybersyn-allow-cargo-in-depot=대기역 화물 허용
cybersyn-invert-sign=조합기 출력 신호 반전 (사용 중지)
cybersyn-manager-enabled=개발 중인 Cybersyn 관리자 미리보기
cybersyn-manager-updates-per-second=관리자 초당 새로고침 횟수
cybersyn-manager-result-limit=GUI 페이지에서 표시되는 최대 엔티티 갯수

[mod-setting-description]
cybersyn-enable-planner=중앙 계획 알고리즘을 활성화 또는 비활성화합니다. 비활성화시 새로운 기차가 출발하지 않습니다.
cybersyn-ticks-per-second=중앙 계획기가 네트워크 상태를 새로고침하고 배달을 예약하는 초당 횟수입니다. 이 값은 60의 제수로 반올림됩니다. 이 값을 0으로 설정하면, 모든 배차가 중지됩니다.
cybersyn-update-rate=한 번에 상태를 확인하거나 배달 일정을 잡을 수 있는 틱당 정류장의 수. 숫자가 크면 중앙 계획기가 네트워크의 현재 상태를 최신 상태로 유지할 수 있지만 성능이 저하됩니다.
cybersyn-request-threshold=요청 임계값 신호가 정류장에 제공되지 않을 때의 기본 요청 임계값입니다. 정류장이 요청 임계값을 초과하는 음수 신호를 수신하면, 요청 임계값보다 큰 양수 신호를 가진 정류장에서 해당 아이템의 두 정류장 간의 배달이 예약됩니다.
cybersyn-priority=정류장, 대기역, 연료 공급역에 우선 순위 신호가 제공되지 않을 때의 기본 우선 순위입니다. 높은 우선 순위의 정류장이 낮은 우선 순위의 정류장보다 먼저 배달을 받습니다.
cybersyn-locked-slots="각 화물차의 잠긴 슬롯" 신호가 정류장에 제공되지 않을 때의 기본 잠금 슬롯입니다. 각 화물차에 잠긴 슬롯 신호가 있으면, 이 곳에서 배달하는 모든 기차는 화물차 마다 X개의 슬롯이 비어있게 됩니다. 이는 여러 아이템을 공급하는 정류장이 올바르게 작동하는 데 필요합니다.
cybersyn-network-flag=정류장에 네트워크 신호가 제공되지 않을 때의 기본 네트워크입니다. 이 정수는 비트 단위로 해석되어 선택할 수 있는 32개의 하위 네트워크를 제공합니다.
cybersyn-fuel-threshold=연료 공급을 건너뛰는 연료량 비율입니다. 1로 설정하면 기차는 배달을 완료한 후 항상 연료 공급역을 방문합니다.
cybersyn-depot-bypass-enabled=체크 할 경우, 기차가 배달 및 연료 공급을 완료하고 대기역으로 돌아가기 전에 새 명령을 받을 수 있습니다.
cybersyn-warmup-time=Cybernetic 조합기가 Cybersyn 네트워크에 연결하기 전에 대기하는 시간(초)입니다. 새로 설계한 역으로 배차를 시작하기 전에 회로 네트워크를 수정하기 위한 유예기간을 설정할 수 있니다.
cybersyn-stuck-train-time=기차가 배차된 후 설정된 시간이 지나면 기차가 막혔고 배달이 완료되지 않았음을 알리는 경고가 전송됩니다. 플레이어는 기차가 막히지 않도록 네트워크를 수정해야 할 것입니다.
cybersyn-allow-cargo-in-depot=체크 할 경우, 기차가 화물을 가지고 대기역으로 돌아가는 것을 허용합니다. 경고가 생성되지 않고 기차가 대기역에 정차하지 않습니다. 또한, "활동 없음 조건 추가"가 체크되어 있는 요청역에서, 화물 인벤토리를 비우는 대신 활동 없음 상태를 기다립니다. 대기역에서 초과 화물을 처리하는 기차 시스템을 만드는데 유용합니다. 고급 사용자 전용
cybersyn-invert-sign=cybernetic 조합기의 출력 신호를 LTN 또는 이전 버전의 프로젝트 Cybersyn과 같아지도록 뒤집습니다.
cybersyn-manager-enabled=Cybersyn 네트워크에 연결된 모든 기차와 역을 볼 수 있습니다. GUI는 현재 개발 중이며 불안정할 수 있습니다.
cybersyn-manager-updates-per-second=Cybersyn 관리자 GUI가 새로고침하는 빈도를 제어합니다. 이 설정이 적용되려면 Cybersyn 관리자를 활성화 해야 합니다.
cybersyn-manager-result-limit=역, 기차 등 일치하는 최대 엔티티의 수를 제한하여 목록을 새로고침할 때 소비되는 업데이트 시간을 제한합니다.\n-1 으로 모든 결과를 표시합니다.

[item-name]
cybersyn-combinator=Cybernetic 조합기

[item-description]
cybersyn-combinator=기차 정류장 옆에 설치하여 Cybersyn 기차 네트워크에 정류장을 추가합니다. 이 정류장은 회로 신호에 의해 보고된 아이템을 요청 또는 공급할 수 있게 되었습니다.

[entity-name]
cybersyn-combinator=Cybernetic 조합기
cybersyn-combinator-output=Cybernetic 조합기 출력

[entity-description]
cybersyn-combinator=5가지의 모드가 있습니다. 정류장 모드와 대기역 모드만 있으면 시작할 수 있습니다.

[technology-name]
cybersyn-train-network=Cybersyn 기차 네트워크

[technology-description]
cybersyn-train-network=전체 자원 관리의 입출력을 조정할 수 있는 정류장 컨트롤러.

[virtual-signal-name]
cybersyn-priority=정류장 우선 순위
cybersyn-request-threshold=요청 임계값
cybersyn-locked-slots=각 화물차의 잠긴 슬롯

[cybersyn-messages]
nonempty-train=기차가 화물을 가지고 있어 대기역에 정차 중입니다
unexpected-train=기차가 배달을 완료하기 전에 예기치 않게 창고로 돌아왔습니다
stuck-train=기차가 막혔습니다
cannot-path-between-surfaces=기차가 연결되지 않은 두 표면 사이에서 배달을 시도하고 있습니다. 두 표면을 별도의 네트워크에 배치하는게 좋을 수 있습니다
depot-broken=대기역이 사라져 기차가 길을 찾을 수 없습니다
refueler-broken=연료 공급역이 사라져 기차가 길을 찾을 수 없습니다
station-broken=배달 정류장이 사라져 기차가 길을 찾을 수 없습니다
train-at-incorrect=기차가 배달 예정이 아닌 역에 주차되었습니다
missing-train=__2__ 에서 __1__ 까지 배달할 수 있는 기차를 찾을 수 없습니다
no-train-has-capacity=__2__ 에서 __1__ 까지 배달하기에 충분한 화물 적재량이 있는 기차를 찾을 수 없습니다
no-train-matches-r-layout=__1__ 의 허용 목록에서 배달을 위한 기차를 찾을 수 없습니다
no-train-matches-p-layout=__2__ 의 허용 목록에서 __1__ 에 배달할 기차를 찾을 수 없습니다

[cybersyn-gui]
combinator-title=Cybernetic 조합기
operation=모드
comb1=정류장
depot=대기역
refueler=연료 공급역
comb2=정류장 조절
wagon-manifest=화물차 조절
switch-provide=공급 전용
switch-request=요청 전용
switch-provide-tooltip=이 역을 공급 전용으로 설정합니다. 공급과 요청이 기본값입니다.
switch-request-tooltip=이 역을 요청 전용으로 설정합니다. 공급과 요청이 기본값입니다.
network=네트워크
network-tooltip=이 조합기가 속한 네트워크를 식별하는 데 사용됩니다. 같은 네트워크 안에 대기역, 공급역, 요청역이 식별되어야 기차가 출발합니다.
allow-list-description=허용 목록 자동화
allow-list-tooltip=일반적으로 배달이 요청되면 충분한 화물 수용량을 갖춘 모든 기차가 배달을 처리할 수 있습니다. 체크 할 경우, 이 역의 "허용 목록"을 만들어, 이 역의 투입기 또는 펌프 등에 알맞은 화물차가 있는 기차를 허용 목록에 등록합니다.
is-stack-description=스택 임계값
is-stack-tooltip=체크 할 경우, 모든 요청 임계값을 총 아이템 갯수가 아닌 아이템 칸의 갯수로 계산합니다. 유체 임계값에는 영향을 주지 않습니다.
enable-inactive-description=활동 없음 조건 추가
enable-inactive-tooltip=체크 할 경우, 기차에 화물적재를 완료하더라도 활동 없음 조건을 만족해야 출발하게 됩니다. 종종 투입기가 아이템을 손에 들고 멈추는 것을 방지할 수 있습니다.
use-same-depot-description=같은 대기역으로 복귀
use-same-depot-tooltip=체크 할 경우, 기차는 항상 이 역으로 복귀할 것입니다. 체크하지 않을 경우, 이 역과 같은 이름의 다른 역으로 기차가 갈 수 있습니다.
depot-bypass-description=대기역 지나치기
depot-bypass-tooltip=체크 할 경우, 기차가 현재 명령을 끝낸 후 대기역으로 돌아오지 않고 새로운 명령을 받을 수 있습니다. 연료가 부족하고 연료를 공급해 줄 역이 없다면 다시 대기역으로 돌아옵니다.
enable-slot-barring-description=필터가 없는 슬롯 잠금
enable-slot-barring-tooltip=체크 할 경우, 필터가 없는 슬롯에 다른 아이템이 적재되지 않도록, 아이템 필터가 설정되지 않은 모든 슬롯을 잠급니다.
57 changes: 57 additions & 0 deletions cybersyn/locale/ko/manager.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
[mod-name]
cybersyn=프로젝트 Cybersyn

[controls]
cybersyn-toggle-gui=Cybersyn 관리자 토글

[cybersyn-gui]
alerts=알림
all-paren=(모두)
control-signals=조절 신호
;history=히스토리
in-transit=운송중
inventory=인벤토리
layout=기차 레이아웃
name=이름
network-name-label=네트워크 필터:
network-id-label=네트워크 ID:
network-id=네트워크 ID
no-alerts=[img=warning-white] 알림 없음
;no-history=[img=warning-white] 히스토리 없음
no-stations=[img=warning-white] 역 없음
;not-available=Not available
no-trains=[img=warning-white] 기차 없음
open-station-gui=기차 정류장 GUI 열기\n[font=default-semibold][color=128,206,240]Shift:[/color][/font] 정류장을 미니맵에서 열기\n[font=default-semibold][color=128,206,240]Control:[/color][/font] 정류장의 Cybernetic 조합기 열기\n[font=default-semibold][color=128,206,240]Alt:[/color][/font] 역 조절 Cybernetic 조합기 열기
open-train-gui=기차 메뉴 열기
provided=공급
;provided-requested-description=녹색 = 공급\n적색 = 요청
provided-requested=공급 / 요청
;refresh-tooltip=새로고침\n[font=default-semibold][color=128,206,240]Shift:[/color][/font] 자동 새로고침 토글
requested=요청
search-label=정류장 이름:
search-item-label=아이템 필터:
shipment=배송품목
shipments=배송품목
stations=정류장
status=네트워크 신호
surface-label=표면:
time=시간
train-id=기차 ID
trains=기차

[cybersyn-message]
error-cybernetic-combinator-not-found=이 정류장에서 cybernetic 조합기를 찾을 수 없습니다.
error-station-control-combinator-not-found=이 정류장에서 역 조절 cybernetic 조합기를 찾을 수 없습니다.
error-station-is-invalid=역이 올바르지 않습니다. GUI를 새로고침 해주세요.
error-train-is-invalid=기차가 올바르지 않습니다. GUI를 새로고침 해주세요.
error-cross-surface-camera-invalid=카메라를 다른 표면의 엔티티로 이동할 수 없습니다!

[cybersyn-mod-setting-description]
iterations-per-tick=성능 문제가 있는 경우 이 숫자를 줄이세요.

[cybersyn-mod-setting-name]
history-length=히스토리 길이
iterations-per-tick=틱당 반복 [img=info]

[shortcut-name]
cybersyn-toggle-gui=Cybersyn 관리자 토글
2 changes: 1 addition & 1 deletion cybersyn/scripts/factorio-api.lua
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function se_get_space_elevator_name(cache, surface)
end

if not entity or not entity.valid then
--Chaching failed, default to expensive lookup
--Caching failed, default to expensive lookup
entity = surface.find_entities_filtered({
name = SE_ELEVATOR_STOP_PROTO_NAME,
type = "train-stop",
Expand Down
2 changes: 1 addition & 1 deletion cybersyn/scripts/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ local function register_tick()
script.on_nth_tick(nil)
--edge case catch to register both main and manager tick if they're scheduled to run on the same ticks
if mod_settings.manager_enabled and mod_settings.manager_ups == mod_settings.tps and mod_settings.tps > DELTA then
local nth_tick = ceil(60/mod_settings.tps)
local nth_tick = ceil(60/mod_settings.tps)--[[@as uint]]
script.on_nth_tick(nth_tick, function()
tick(global, mod_settings)
manager.tick(global)
Expand Down
21 changes: 12 additions & 9 deletions cybersyn/scripts/migrations.lua
Original file line number Diff line number Diff line change
Expand Up @@ -300,15 +300,6 @@ local migrations_table = {
---@type MapData
local map_data = global

if not global.manager then
global.manager = {
players = {},
}
for i, v in pairs(game.players) do
manager_gui.on_player_created({player_index = i})
end
end

for _, e in pairs(map_data.refuelers) do
if e.network_flag then
e.network_mask = e.network_flag
Expand All @@ -328,6 +319,18 @@ local migrations_table = {
end
end
end,
["1.2.16"] = function()
---@type MapData
local map_data = global
if not map_data.manager then
map_data.manager = {
players = {},
}
for i, v in pairs(game.players) do
manager_gui.on_player_created({player_index = i})
end
end
end
}
--STATUS_R_TO_D = 5
---@param data ConfigurationChangedData
Expand Down

0 comments on commit 67a611c

Please sign in to comment.