Skip to content

Commit 63066cf

Browse files
authored
Merge pull request #697 from qsb-dev/dev
1.2.1
2 parents b2e55d6 + bb3b0dc commit 63066cf

File tree

11 files changed

+155
-9
lines changed

11 files changed

+155
-9
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- uses: actions/setup-dotnet@v1
1717
- run: dotnet build -c Debug
1818

19-
- uses: actions/upload-artifact@v2
19+
- uses: actions/upload-artifact@v4
2020
with:
2121
name: Raicuparta.QuantumSpaceBuddies
2222
path: .\QSB-NH\Bin\Debug

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
run: dotnet build -c Release
6767

6868
- name: Upload Artifact
69-
uses: "actions/upload-artifact@v3"
69+
uses: "actions/upload-artifact@v4"
7070
with:
7171
name: "${{ env.PROJ_USERNAME }}.${{ env.PROJ_NAME }}"
7272
path: "QSB-NH/bin/Release"

QSB.sln

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2569F98D-F671-42AA-82DE-505B05CDCEF2}"
99
ProjectSection(SolutionItems) = preProject
1010
.gitignore = .gitignore
11+
.github\workflows\build.yaml = .github\workflows\build.yaml
1112
DEVELOPMENT.md = DEVELOPMENT.md
1213
.github\FUNDING.yml = .github\FUNDING.yml
1314
LICENSE = LICENSE
1415
README.md = README.md
16+
.github\workflows\release.yml = .github\workflows\release.yml
1517
TRANSLATING.md = TRANSLATING.md
1618
EndProjectSection
1719
EndProject
@@ -34,7 +36,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "APITestMod", "APITestMod\AP
3436
EndProject
3537
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QSBPatcher", "QSBPatcher\QSBPatcher.csproj", "{CA4CBA2B-54D5-4C4B-9B51-957BC6D77D6B}"
3638
EndProject
37-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QSB-NH", "QSB-NH\QSB-NH.csproj", "{74F84A39-1C9D-4EF7-889A-485D33B7B324}"
39+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QSB-NH", "QSB-NH\QSB-NH.csproj", "{74F84A39-1C9D-4EF7-889A-485D33B7B324}"
3840
EndProject
3941
Global
4042
GlobalSection(SolutionConfigurationPlatforms) = preSolution

QSB/QSB.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
</ItemGroup>
7676
<ItemGroup>
7777
<PackageReference Include="OuterWildsGameLibs" Version="1.1.15.1018" IncludeAssets="compile" />
78-
<PackageReference Include="OWML" Version="2.13.0" IncludeAssets="compile" />
78+
<PackageReference Include="OWML" Version="2.14.0" IncludeAssets="compile" />
7979
<Reference Include="..\Lib\*.dll" />
8080
<ProjectReference Include="..\FizzySteamworks\FizzySteamworks.csproj" />
8181
<ProjectReference Include="..\SteamRerouter\SteamRerouter.csproj" />

QSB/QSBCore.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public class QSBCore : ModBehaviour
6666
Application.version.Split('.').Take(3).Join(delimiter: ".");
6767
public static bool DLCInstalled => EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned;
6868
public static bool UseKcpTransport { get; private set; }
69+
public static ushort KcpPort { get; private set; } = 7777;
6970
public static bool ShowPlayerNames { get; private set; }
7071
public static bool ShipDamage { get; private set; }
7172
public static bool ShowExtraHUDElements { get; private set; }
@@ -406,6 +407,8 @@ static void Init(Assembly assembly)
406407
public override void Configure(IModConfig config)
407408
{
408409
UseKcpTransport = config.GetSettingsValue<bool>("useKcpTransport") || DebugSettings.AutoStart;
410+
var foundValue = config.GetSettingsValue<int>("kcpPort");
411+
KcpPort = (ushort)Mathf.Clamp(foundValue, ushort.MinValue, ushort.MaxValue);
409412
QSBNetworkManager.UpdateTransport();
410413

411414
DefaultServerIP = config.GetSettingsValue<string>("defaultServerIP");

QSB/QSBNetworkManager.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public override void Awake()
8080
_kcpTransport = gameObject.AddComponent<kcp2k.KcpTransport>();
8181
// KCP uses milliseconds
8282
_kcpTransport.Timeout = QSBCore.DebugSettings.Timeout * 1000;
83+
_kcpTransport.Port = QSBCore.KcpPort;
8384
}
8485

8586
{
@@ -161,6 +162,13 @@ public override void Awake()
161162

162163
public static void UpdateTransport()
163164
{
165+
if (_kcpTransport == null)
166+
{
167+
return;
168+
}
169+
170+
_kcpTransport.Port = QSBCore.KcpPort;
171+
164172
if (QSBCore.IsInMultiplayer)
165173
{
166174
return;

QSB/Translations/kr.json

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"Language": "KOREAN",
3+
"MainMenuHost": "멀티플레이어 생성",
4+
"MainMenuConnect": "멀티플레이어 참가",
5+
"PauseMenuDisconnect": "연결 끊기",
6+
"PauseMenuStopHosting": "호스트 중단",
7+
"PublicIPAddress": "공용 IP 주소\n\n(!당신의 기존 멀티플레이어 세이브 데이터는 삭제될 것입니다!)",
8+
"SteamID": "Steam ID\n\n(!당신의 기존 멀티플레이어 세이브 데이터는 삭제될 것입니다!)",
9+
"Connect": "연결",
10+
"Cancel": "취소",
11+
"HostExistingOrNewOrCopy": "기존 멀티플레이어 탐험대를 호스트하시겠습니까, 새로운 탐험대를 호스트하시겠습니까, 아니면 기존 싱글플레이어 탐험대를 멀티플레이어로 복사하시겠습니까?",
12+
"HostNewOrCopy": "새로운 탐험대를 호스트하시겠습니까, 아니면 기존 싱글플레이어 탐험대를 멀티플레이어로 복사하시겠습니까?",
13+
"HostExistingOrNew": "기존 멀티플레이어 탐험대를 호스트하시겠습니까, 아니면 새로운 탐험대를 호스트하시겠습니까?",
14+
"ExistingSave": "기존 세이브",
15+
"NewSave": "새 세이브",
16+
"CopySave": "복사된 세이브",
17+
"DisconnectAreYouSure": "정말 연결을 끊으시겠습니까?\n이렇게 하면 메인 메뉴로 돌아갑니다.",
18+
"Yes": "",
19+
"No": "아니오",
20+
"StopHostingAreYouSure": "호스트를 중단하시겠습니까?\n이렇게 하면 모든 클라이언트가 연결이 끊어지고 모든 클라이언트가 메인 메뉴로 돌아갑니다.",
21+
"CopySteamIDToClipboard": "호스트 서버.\n클라이언트는 다음 Steam ID를 사용하여 연결됩니다:\n{0}\n클립보드에 복사하시겠습니까?",
22+
"Connecting": "연결 중...",
23+
"OK": "OK",
24+
"ServerRefusedConnection": "서버가 연결을 거부했습니다.\n{0}",
25+
"ClientDisconnectWithError": "클라이언트가 오류로 연결이 끊어졌습니다!\n{0}",
26+
"QSBVersionMismatch": "QSB 버전이 일치하지 않습니다. (클라이언트: {0}, 서버: {1})",
27+
"OWVersionMismatch": "Outer Wilds 버전이 일치하지 않습니다. (Client:{0}, Server:{1})",
28+
"DLCMismatch": "DLC 설치 상태가 일치하지 않습니다. (클라이언트: {0}, 서버: {1})",
29+
"GameProgressLimit": "게임이 너무 많이 진행되었습니다.",
30+
"AddonMismatch": "애드온 불일치. (클라이언트: {0} 애드온, 서버: {1} 애드온)",
31+
"PlayerJoinedTheGame": "{0} 님이 접속했습니다!",
32+
"PlayerLeftTheGame": "{0} 님이 퇴장했습니다!",
33+
"PlayerWasKicked": "{0} 님이 추방되었습니다.",
34+
"KickedFromServer": "서버에서 추방당했습니다. 사유 : {0}",
35+
"RespawnPlayer": "리스폰 플레이어",
36+
"TimeSyncTooFarBehind": "{0}\n서버 시간에 동기화하기 위해 가속하는 중...",
37+
"TimeSyncWaitingForStartOfServer": "서버가 시작되기를 기다리는 중...",
38+
"TimeSyncTooFarAhead": "{0}\n서버 시간에 동기화하기 위해 기다리는 중...",
39+
"TimeSyncWaitForAllToReady": "루프가 시작되기를 기다리는 중...",
40+
"TimeSyncWaitForAllToDie": "루프가 끝나기를 기다리는 중...",
41+
"GalaxyMapEveryoneNotPresent": "아직 때가 되지 않았습니다. 모두가 이 장면을 목격해야 합니다.",
42+
"YouAreDead": "사망했습니다.",
43+
"WaitingForRespawn": "누군가가 당신을 살려주기를 기다리는 중...",
44+
"WaitingForAllToDie": "{0}명의 플레이어가 죽기를 기다리는 중...",
45+
"AttachToShip": "우주선에 부착",
46+
"DetachFromShip": "우주선과 탈착",
47+
"DeathMessages": {
48+
"Default": [
49+
"{0} (이)가 사망했습니다",
50+
"{0} (이)가 죽었습니다"
51+
],
52+
"Impact": [
53+
"{0} (은)는 역추진 로켓 사용을 잊어버렸습니다",
54+
"{0} (은)는 운동 에너지를 경험했습니다",
55+
"{0} (은)는 땅에 너무 세게 충돌했습니다",
56+
"{0} (은)는 철푸덕하고 떨어졌습니다",
57+
"{0} (은)는 충격으로 인해 사망했습니다",
58+
"{0} (은)는 땅에 너무 강하게 부딪혔습니다"
59+
],
60+
"Asphyxiation": [
61+
"{0} (은)는 숨 쉬는 것을 잊어버렸습니다",
62+
"{0} (은)는 질식사했습니다",
63+
"{0} (은)는 질식으로 인해 사망했습니다",
64+
"{0} (은)는 숨쉬는 법을 잊었습니다",
65+
"{0} (은)는 산소를 확인하는 것을 깜빡했습니다",
66+
"{0} (은)는 공기가 부족했습니다",
67+
"{0} (은)는 산소가 다 떨어졌습니다",
68+
"{0} (은)는 어차피 공기가 필요 없었습니다"
69+
],
70+
"Energy": [
71+
"{0} (은)는 구워졌습니다"
72+
],
73+
"Supernova": [
74+
"{0} 의 시간이 다 됐습니다",
75+
"{0} (은)는 불타버렸습니다",
76+
"{0} (은)는 타버렸습니다",
77+
"{0} (은)는 증발해버렸습니다",
78+
"{0} (은)는 시간을 놓쳤습니다"
79+
],
80+
"Digestion": [
81+
"{0} (은)는 한 끼 식사가 되어버렸습니다",
82+
"{0} (은)는 물고기를 발견했습니다",
83+
"{0} (은)는 사악한 생물체를 마주쳤습니다",
84+
"{0} (은)는 잘못된 물고기를 건드렸습니다",
85+
"{0} (은)는 소화되었습니다",
86+
"{0} (은)는 소화로 인해 사망했습니다"
87+
],
88+
"Crushed": [
89+
"{0} (은)는 눌려 찌부러졌습니다",
90+
"{0} (은)는 으깨졌습니다",
91+
"{0} (은)는 묻혀버렸습니다",
92+
"{0} (은)는 제때 빠져나오지 못했습니다",
93+
"{0} (은)는 모래 속에서 수영했습니다",
94+
"{0} (은)는 모래를 과소평가했습니다",
95+
"{0} (은)는 모래 속에 갇혔습니다"
96+
],
97+
"Lava": [
98+
"{0} (은)는 용암 속에서 죽었습니다",
99+
"{0} (은)는 녹아버렸습니다",
100+
"{0} (은)는 용암에서 수영하려 했습니다",
101+
"{0} (은)는 용암 속으로 떨어졌습니다",
102+
"{0} (은)는 용암 때문에 죽었습니다",
103+
"{0} (은)는 용암에서 수영을 즐겼습니다",
104+
"{0} (은)는 용암에 타버렸습니다"
105+
],
106+
"BlackHole": [
107+
"{0} (은)는 그들의 기억을 쫓았습니다"
108+
],
109+
"DreamExplosion": [
110+
"{0} (은)는 폭파당했습니다",
111+
"{0} (은)는 얼리어답터였습니다",
112+
"{0} (은)는 펑 하고 터졌습니다",
113+
"{0} (은)는 [의도적 게임 설계] 때문에 죽었습니다",
114+
"{0} (은)는 폭발사산했습니다",
115+
"{0} (은)는 잘못된 유물을 사용했습니다"
116+
],
117+
"CrushedByElevator": [
118+
"{0} (은)는 눌려 찌부러졌습니다",
119+
"{0} (은)는 으깨졌습니다",
120+
"{0} (은)는 엘리베이터에 눌려 찌부러졌습니다",
121+
"{0} (은)는 엘리베이터 아래에 서 있었습니다",
122+
"{0} (은)는 납작한 화로인이 되었습니다",
123+
"{0} (은)는 엘리베이터에 으깨졌습니다"
124+
]
125+
}
126+
}

QSB/default-config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@
2020
"title": "Use KCP Transport",
2121
"type": "toggle",
2222
"value": false,
23-
"tooltip": "Use alternative transport that requires port forwarding but seems to be more reliable. The port to forward is 7777 as TCP/UDP. Use this if you are having trouble connecting. ALL PLAYERS MUST HAVE THIS AS THE SAME VALUE."
23+
"tooltip": "Use alternative transport that requires port forwarding but seems to be more reliable. Use this if you are having trouble connecting. ALL PLAYERS MUST HAVE THIS AS THE SAME VALUE."
24+
},
25+
"kcpPort": {
26+
"title": "KCP Transport Port",
27+
"type": "number",
28+
"value": 7777,
29+
"tooltip": "The port to use for the KCP transport, if it is enabled. Must be port forwarded as TCP/UDP. ALL PLAYERS MUST HAVE THIS AS THE SAME VALUE."
2430
},
2531
"defaultServerIP": {
2632
"title": "Last Entered IP/ID",

QSB/manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"author": "Nebula, John, Alek, & Rai",
55
"name": "Quantum Space Buddies",
66
"uniqueName": "Raicuparta.QuantumSpaceBuddies",
7-
"version": "1.2.0",
8-
"owmlVersion": "2.13.0",
7+
"version": "1.2.1",
8+
"owmlVersion": "2.14.0",
99
"dependencies": [ "_nebula.MenuFramework", "JohnCorby.VanillaFix" ],
1010
"pathsToPreserve": [ "debugsettings.json" ],
1111
"conflicts": [

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Spoilers within!
4040
## Frequently Asked Questions
4141

4242
### I keep timing out when trying to connect!
43-
Check the mod settings for "Use KCP Transport". You have to forward port 7777 as TCP/UDP, or use Hamachi. ***All players must either be using KCP, or not using KCP.***
43+
Check the mod settings for "Use KCP Transport". You have to forward port 7777 as TCP/UDP (or a custom port number, which can be set in the mod settings), or use Hamachi. ***All players must either be using KCP, or not using KCP.***
4444

4545
### Why does SpaceWar show up in my Steam library?
4646
This is for players who own the game on Epic or Xbox. Steam networking only works if you own the game on Steam, so we have to pretend to be SpaceWar (which every Steam user owns) so everyone can play.
@@ -128,6 +128,7 @@ See [DEVELOPMENT.md](DEVELOPMENT.md)
128128
- [SakuradaYuki](https://github.com/SakuradaYuki) and [isrecalpear](https://github.com/isrecalpear) - Chinese translation.
129129
- [poleshe](https://github.com/poleshe) - Spanish translation.
130130
- [Deniz](https://github.com/dumbdeniz) - Turkish translation.
131+
- [Akasha0513](https://github.com/Akasha0513) - Korean translation.
131132

132133
### Special Thanks
133134
- Thanks to Logan Ver Hoef for help with the game code, and for helping make the damn game in the first place.

0 commit comments

Comments
 (0)