diff --git a/PRF_Core/About/About.xml b/PRF_Core/About/About.xml
index 5e16b5c..a0bf9bc 100644
--- a/PRF_Core/About/About.xml
+++ b/PRF_Core/About/About.xml
@@ -2,7 +2,10 @@
Project RimFactory - Core
Spdskatr
- 1.0.0
+
+ 1.1
+
+ com.spdskatr.projectrimfactory
https://ludeon.com/forums/index.php?topic=30813.0
Credits:
@@ -11,6 +14,20 @@ Wood crate texture by Chicken Plucker
Robotic arm texture by Shotgunfrenzy
Drone texture by Xen
X/Y/Z-Composite and drone station texture by Scythe
-Chinese translation by Dango998
-Russian translation by Natsu_Zirok]]>
+Update 1.1 .ver by AbnerChen
+Chinese Traditional translation by AbnerChen
+Chinese Simplified translation by Dango998
+Russian translation by Natsu_Zirok]]>
+
+
+
+ brrainz.harmony
+ Harmony
+ steam://url/CommunityFilePage/2009463077
+ https://github.com/pardeike/HarmonyRimWorld/releases/latest
+
+
+
+ brrainz.harmony
+
diff --git a/PRF_Core/Assemblies/0Harmony.dll b/PRF_Core/Assemblies/0Harmony.dll
index 6c0dd94..106a81a 100644
Binary files a/PRF_Core/Assemblies/0Harmony.dll and b/PRF_Core/Assemblies/0Harmony.dll differ
diff --git a/PRF_Core/Assemblies/0NoMessySpawns.dll b/PRF_Core/Assemblies/0NoMessySpawns.dll
index ba802b9..4b58c79 100644
Binary files a/PRF_Core/Assemblies/0NoMessySpawns.dll and b/PRF_Core/Assemblies/0NoMessySpawns.dll differ
diff --git a/PRF_Core/Assemblies/ProjectRimFactory.dll b/PRF_Core/Assemblies/ProjectRimFactory.dll
index ecba7f0..824fe3a 100644
Binary files a/PRF_Core/Assemblies/ProjectRimFactory.dll and b/PRF_Core/Assemblies/ProjectRimFactory.dll differ
diff --git a/PRF_Core/Defs/RecipeDefs/Recipes_Items.xml b/PRF_Core/Defs/RecipeDefs/Recipes_Items.xml
index 543933e..33bb935 100644
--- a/PRF_Core/Defs/RecipeDefs/Recipes_Items.xml
+++ b/PRF_Core/Defs/RecipeDefs/Recipes_Items.xml
@@ -5,7 +5,7 @@
make data disk
Make a roll of magnetic data tape.
Making data disk.
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
5000
diff --git a/PRF_Core/Defs/ThingDefs_Buildings/Buildings_Bases.xml b/PRF_Core/Defs/ThingDefs_Buildings/Buildings_Bases.xml
index 7dfb2fc..74819f0 100644
--- a/PRF_Core/Defs/ThingDefs_Buildings/Buildings_Bases.xml
+++ b/PRF_Core/Defs/ThingDefs_Buildings/Buildings_Bases.xml
@@ -18,10 +18,6 @@
true
0.20
false
-
- true
- true
-
CompReportWorkSpeed
diff --git a/PRF_Core/Defs/ThingDefs_Items/Things_Common.xml b/PRF_Core/Defs/ThingDefs_Items/Things_Common.xml
index f182e40..77fb518 100644
--- a/PRF_Core/Defs/ThingDefs_Items/Things_Common.xml
+++ b/PRF_Core/Defs/ThingDefs_Items/Things_Common.xml
@@ -22,7 +22,7 @@
2
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
@@ -58,7 +58,7 @@
4
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
@@ -98,7 +98,7 @@
3
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
@@ -135,7 +135,7 @@
2
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
@@ -169,7 +169,7 @@
4
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
@@ -205,7 +205,7 @@
30
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyDefs/Bodies_Drone.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyDefs/Bodies_Drone.xml
new file mode 100644
index 0000000..3a1b94e
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyDefs/Bodies_Drone.xml
@@ -0,0 +1,23 @@
+
+
+
+無人機
+
+ 左視圖傳感器
+ 右視傳感器
+ 左聽力傳感器
+ 右耳傳感器
+
+ 左肩
+ 左手
+ 左爪
+
+ 右肩
+ 右手
+ 右爪
+
+ 左螺旋槳
+ 左螺旋槳葉片
+ 右螺旋槳
+ 右螺旋槳葉片
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyPartDefs/Bodies_Drone.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyPartDefs/Bodies_Drone.xml
new file mode 100644
index 0000000..6438569
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/BodyPartDefs/Bodies_Drone.xml
@@ -0,0 +1,7 @@
+
+
+
+ 螺旋槳
+ 葉片
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/DesignationCategoryDef/DesignationCategories.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/DesignationCategoryDef/DesignationCategories.xml
new file mode 100644
index 0000000..a6194d5
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/DesignationCategoryDef/DesignationCategories.xml
@@ -0,0 +1,7 @@
+
+
+
+ 自動化
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/JobDefs/JobDefs_Drones.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/JobDefs/JobDefs_Drones.xml
new file mode 100644
index 0000000..709a77b
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/JobDefs/JobDefs_Drones.xml
@@ -0,0 +1,7 @@
+
+
+
+ 返回機站.
+ 自行停止.
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/KeyBindingCategoryDef/KeyBindingCategories_Add_Architect.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/KeyBindingCategoryDef/KeyBindingCategories_Add_Architect.xml
new file mode 100644
index 0000000..cc5f63d
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/KeyBindingCategoryDef/KeyBindingCategories_Add_Architect.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ 自动化 标签
+ Key bindings for the "Automation" section of the Architect menu
+
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/PawnKindDefs/PawnKindDefs_AssemblerPawns.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/PawnKindDefs/PawnKindDefs_AssemblerPawns.xml
new file mode 100644
index 0000000..53fc400
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/PawnKindDefs/PawnKindDefs_AssemblerPawns.xml
@@ -0,0 +1,6 @@
+
+
+
+ 屬於
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Archo.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Archo.xml
new file mode 100644
index 0000000..51b99e2
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Archo.xml
@@ -0,0 +1,44 @@
+
+
+
+ 製作精神狂暴槍
+ 製作一把精神狂暴槍.
+ 正在製作精神狂暴槍...
+
+ 製作心靈衝擊槍
+ 製作一把心靈衝擊槍.
+ 正在製作心靈衝擊槍...
+
+ 製作動物心靈脈衝器
+ 製作一個動物心靈脈衝器.
+ 正在製作動物心靈脈衝器...
+
+ 製作撫慰電波脈衝器
+ 製作一個撫慰電波脈衝器.
+ 正在製作撫慰電波脈衝器...
+
+ 製作撫慰電波發送器
+ 製作一個撫慰電波發送器.
+ 正在製作撫慰電波發送器...
+
+ 製作治療者機器劑
+ 製作一個治療者機器劑.
+ 正在製作治療者機器劑...
+
+ 製作重生者機器劑
+ 製作一個重生者機器劑.
+ 正在製作重生者機器劑...
+
+ 製作虛量發電器
+ 製作一個虛量發電器.
+ 正在製作虛量發電器...
+
+ 製作無限化璇反應爐
+ 製作一個無限化璇反應爐.
+ 正在製作無限化璇反應爐
+
+ 融化 X- 和Y-複合材料
+ 融化40個 Z-複合材料, 再加上10個X-複合材料及10個Y-複合材料.
+ 正在融化 X- 和Y-複合材料...
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_ButcheryDrone.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_ButcheryDrone.xml
new file mode 100644
index 0000000..67ed0a5
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_ButcheryDrone.xml
@@ -0,0 +1,8 @@
+
+
+
+ 保存無人機的屍體
+ 從一架破損的無人機中回收材料.
+ 保存無人機的屍體.
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_DataDisk.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_DataDisk.xml
new file mode 100644
index 0000000..129dcdf
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_DataDisk.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Items.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Items.xml
new file mode 100644
index 0000000..62cfffb
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Items.xml
@@ -0,0 +1,21 @@
+
+
+
+ 製作資料磁帶
+ 製作一卷資料磁帶。
+ 正在製作資料磁帶。
+
+ 生產迴紋針 (1個)
+ 生產1個迴紋針。
+ 正在生產迴紋針(1個)。
+
+ 生產迴紋針 (10個)
+ 生產10個迴紋針。
+ 正在生產迴紋針(10個)。
+
+ 生產迴紋針 (75個)
+ 生產75個迴紋針。
+ 正在生產迴紋針(75個)。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs.xml
new file mode 100644
index 0000000..d7e3e57
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_AnimalStations.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_AnimalStations.xml
new file mode 100644
index 0000000..bd6ffc0
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_AnimalStations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ PRF:自動飼養站
+ 動物飼養站科技允許自動從動物身上獲取資源。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Assemblers.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Assemblers.xml
new file mode 100644
index 0000000..4967d9a
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Assemblers.xml
@@ -0,0 +1,17 @@
+
+
+
+ PRF:自動化烹飪
+ 可以建造自動烹飪機,它就像是你的私人廚師,但不會因為各種奇葩理由而精神失常。
+
+ PRF:磁帶
+ 學習如何製作和使用舊式磁帶來存儲指令。 你可以在加工臺上製作資料磁片。
+
+ PRF:通用自動化製造
+ 可以建造自動化製造設施,它就像是你的私人工匠,但不會因為各種奇葩理由而精神失常。
+
+ 自校正彙編器
+ 學習如何製作一種新型的彙編程序,以緩慢提高創建速度.
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Common.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Common.xml
new file mode 100644
index 0000000..6aca4c8
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Common.xml
@@ -0,0 +1,57 @@
+
+
+
+ PRF:基礎自動化
+ 學習自動化機械的基礎知識,邁向通往工業化殖民地的大門。
+
+ PRF:機械學習
+ 讓工作站通過機械學習提高工作效率。
+
+ 哥德巴赫假說
+ "可以從兩個素數之和形成任何等於或大於4的整數。"\n\解鎖一系列新的研究項目.
+
+ 量子計算
+ 解如何創建量子計算機來幫助研究項目.
+
+ 原子重建
+ 允許殖民者將迴紋針變成原材料.
+
+ 奈米材料
+ 允許原子設計人員創建X-複合和Y-複合.
+
+ 物質合成
+ 通過操縱迴紋針的分子結構來創建物品.
+
+ 技術生產
+ 允許殖民者還將迴紋針轉換為“生產”類別中的物品.
+
+ AI核心生產
+ 允許殖民者製作低階AI芯片以構成AI核心.
+
+ Ordo雜亂訊號
+ AI研究人員發現了一個擾亂的無線電信號,該信號源於地球上廣播《鄂爾多史》的記錄的深度。 擴展信號並蒐索記錄,以發現更多技術.
+
+ 黎曼假設
+ ζ(0.5±1/g +π(g)* i)= 0,其中g是Graham數,而π是簡單的計數函數\n\nOrdo歷史記錄{fb640e1a-1021-474b -b4ba-5ffe61bd2649},最後與1208YYtp之前的銀河核同步.
+
+ P與NP
+ 為了破壞RSA加密,您所需要的就是治愈癌症。\n\nOrdo歷史記錄{490c3481-b420-4cf9-aa6d-88bcfe651cb0},最後同步到銀河系核心1208YYtp 返回.
+
+ 費米悖論
+ 外星人? 什麼是外星人?\n-完全無辜的機械人\n\nHisto Ordo,記錄{43039413-a9ad-436d-99e1-63ec2cd944e5},首次發佈於<i>Euterpe Musings</i> (4256CE).\n\n最後一次與銀河系核心1208YYtp同步.
+
+ Vanometrics
+ 用於生產容積式動力電池,環形化學反應器以及其他建築和建築。還能解鎖原子反應器中Z-複合物的產生.
+
+ 考古技術
+ 了解如何創建計算設備以改善現有AI核心的智能.
+
+ 心理學
+ 解鎖心理物品的生產.
+
+ 一切理論
+ 通過破解來了解此模擬的真正工作原理.
+ 一種奇怪的感覺正在洗腦你的殖民者。他們認為,心理信號可能來自您自己的AI研究實驗室。也許他正試圖告訴你一些事情...
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Cultivation.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Cultivation.xml
new file mode 100644
index 0000000..73853ed
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Cultivation.xml
@@ -0,0 +1,11 @@
+
+
+
+ PRF:灑水器
+ 學習如何製作灑水器,幫助植物更快(輕微的)生長。
+
+ PRF:自動化農場
+ 學習如何建造耕作機用於維護中等大小的農田。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Drones.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Drones.xml
new file mode 100644
index 0000000..87eb745
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Drones.xml
@@ -0,0 +1,13 @@
+
+
+
+ 守衛無人機站
+ 允許您的殖民地建立守衛無人機站。守衛無人機可以自動工作,主要做清潔和滅火。
+
+ 建築無人機站
+ 允許您的殖民地建立建築無人機站。建築無人機可以建造和挖掘。
+
+ 農業無人機
+ 許您的殖民地建立農業無人機站。農業無人機可以播種,收穫和切割植物。不同於收耕機,農業無人機沒有範圍。
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Industrial.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Industrial.xml
new file mode 100644
index 0000000..dd3d6ac
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Industrial.xml
@@ -0,0 +1,20 @@
+
+
+
+ PRF: 自動採礦
+ 可以建造從地底深處挖掘隨機礦物和岩石的建築。
+
+ 迴紋針生產
+ 允許殖民者建立一個工廠,該工廠可以用任何材料創建迴紋針,並可以使用一台機器從迴紋針中產生能量.
+
+ 迴紋針生產器:自我改進
+ 除非切斷燃料供應,否則迴紋針生產器會緩慢增加迴紋針的功率(最多500%)。.
+
+ 迴紋針生產器:自我改進
+ 將迴紋針生產器的最大效率提高到1000%.
+
+ 迴紋針生產器:量子操作
+ 將迴紋針生產器的最大效率已提高到1000%.
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Storage.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Storage.xml
new file mode 100644
index 0000000..b383778
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchProjectDef/ResearchProjectDefs_Storage.xml
@@ -0,0 +1,14 @@
+
+
+
+ PRF: 儲存箱
+ 允許殖民者建造大儲存箱以獲得更緊湊的存儲空間。
+
+ PRF: 高效存儲
+ 允許殖民者使用更好的存儲方案。
+
+ PRF: 物品轉移
+ 運行殖民者建造可以從工業儲存單元中轉移物品的機器。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs.xml
new file mode 100644
index 0000000..e1d1102
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs_Cultivation.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs_Cultivation.xml
new file mode 100644
index 0000000..e1d1102
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchProjectDefs_Cultivation.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchTabDefs.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchTabDefs.xml
new file mode 100644
index 0000000..a6194d5
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ResearchTabDef/ResearchTabDefs.xml
@@ -0,0 +1,7 @@
+
+
+
+ 自動化
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/TerrainDefs/Terrain_Floors.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/TerrainDefs/Terrain_Floors.xml
new file mode 100644
index 0000000..e864a49
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/TerrainDefs/Terrain_Floors.xml
@@ -0,0 +1,16 @@
+
+
+
+ X-複合磚
+ X-複合磚 瓷磚上刻有復雜的圖案。它們非常漂亮。理想的炫耀為紅色銀色光澤
+
+ Y-複合磚
+ Y-複合磚 比X-複合磚的外觀漂亮得多,但更易於構建,並為清潔提供了極好的動力。
+
+ Z-複合磚
+ Z-複合磚,刻有3D全息圖的Z-複合磚。它可笑的美麗,並提供中等的清潔度。
+
+ AI性別
+ 地板上嵌入了可怕的閃爍燈。極其昂貴。提供適度的美麗。有趣的是,它們甚至被用於...
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingCategoryDefs/ThingCategories_Buildings.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingCategoryDefs/ThingCategories_Buildings.xml
new file mode 100644
index 0000000..051513b
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingCategoryDefs/ThingCategories_Buildings.xml
@@ -0,0 +1,7 @@
+
+
+
+ 自動化
+ 無人機屍體
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_AnimalStations.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_AnimalStations.xml
new file mode 100644
index 0000000..bdcf224
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_AnimalStations.xml
@@ -0,0 +1,23 @@
+
+
+
+ 自動剪毛站
+ 自動剪毛站是一個2x2的飼養箱,但在箱子下方是一套機器臂和剪刀用於剪毛,並將毛料放在動物站立的地方。 適用於任何已被馴服的動物。
+ 自動剪毛站(藍圖)
+ 自動剪毛站(建造中)
+ 自動剪毛站是一個2x2的飼養箱,但在箱子下方是一套機器臂和剪刀用於剪毛,並將毛料放在動物站立的地方。 適用於任何已被馴服的動物。
+
+ 自動擠奶站
+ 自動擠奶站是一個2x2的飼養箱,在箱子下面是一組複雜的機器臂和收集結構,用於採集動物的奶。 適用於任何已被馴服的動物。
+ 自動擠奶站(藍圖)
+ 自動擠奶站(建造中)
+ 自動擠奶站是一個2x2的飼養箱,在箱子下面是一組複雜的機器臂和收集結構,用於獲動物的奶。 適用於任何已被馴服的動物。
+
+ 通用動物飼養站
+ 可以從動物身上擠奶/剪毛的高級版本自動飼養站。
+ 通用動物飼養站(藍圖)
+ 通用動物飼養站(建造中)
+ 可以從動物身上擠奶/剪毛的高級版本自動飼養站。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Assemblers.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Assemblers.xml
new file mode 100644
index 0000000..519b065
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Assemblers.xml
@@ -0,0 +1,35 @@
+
+
+
+ 機械學習工作站
+ 一個由電腦控制的自動工作站。剛獲得配方時工作效率較低,隨著工作時間增長逐漸提高效率。
+ 機械學習工作站(藍圖)
+ 機械學習工作站(藍圖)
+ 機械學習工作站(建造中)
+ 一個由電腦控制的自動工作站。剛獲得配方時工作效率較低,隨著工作時間增長逐漸提高效率。
+
+ 通用工作站
+ 一個由電腦控制的工作站。從配方資料庫中讀取配方指令。
+ 通用工作站(藍圖)
+ 通用工作站(藍圖)
+ 通用工作站(建造中)
+ 一個由電腦控制的工作站。從配方資料庫中讀取配方指令。
+
+ 自動烹飪機
+ 一個會自己做飯的自動烹飪機,你只需要看著它做飯就行了。
+ 自動烹飪機(藍圖)
+ 自動烹飪機(藍圖)
+ 自動烹飪機(建造中)
+ 一個會自己做飯的自動烹飪機,你只需要看著它做飯就行了。
+
+
+
+ 配方資料庫
+ 存儲配方供智慧工作站使用,並從相鄰的工作臺中匯出配方。 我不知道這麼多按鈕幹...
+ 配方資料庫(藍圖)
+ 配方資料庫(藍圖)
+ 配方資料庫(建造中)
+ 存儲配方供智慧工作站使用,並從相鄰的工作臺中匯出配方。 我不知道這麼多按鈕幹...
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Common.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Common.xml
new file mode 100644
index 0000000..3463c11
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Common.xml
@@ -0,0 +1,11 @@
+
+
+
+ AI研究台
+ 已安裝AI的研究台。是2級自動化研究所必需的,不能替代高科技研究台。需要能量。
+ AI研究台(藍圖)
+ AI研究台(建造中)
+ 已安裝AI的研究台。是2級自動化研究所必需的,不能替代高科技研究台。需要能量。
+
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Cultivators.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Cultivators.xml
new file mode 100644
index 0000000..ae829b6
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Cultivators.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ 耕作機
+ 耕種機可以在周圍11個方格內自動種植和收穫作物。 它不會受到任何屬性修正的影響。
+ 耕作機(藍圖)
+ 耕作機(建造中)
+ 耕種機可以在周圍11個方格內自動種植和收穫作物。 它不會受到任何屬性修正的影響。
+
+ 太陽燈耕作機
+ 自帶太陽燈的耕種機,可以在周圍11個方格內自動種植和收穫作物。 它不會受到任何屬性修正的影響。
+ 太陽燈耕作機(藍圖)
+ 太陽燈耕作機(建造中)
+ 自帶太陽燈的耕種機,可以在周圍11個方格內自動種植和收穫作物。 它不會受到任何屬性修正的影響。
+
+
+
+ 灑水器
+ 一個大範圍的灑水器,每次灑水增加植物生長一小時。 效果是可堆迭的,即使植物休息也可以起作用。
+ 灑水器(藍圖)
+ 灑水器(建造中)
+ 一個大範圍的灑水器,每次灑水增加植物生長一小時。 效果是可堆迭的,即使植物休息也可以起作用。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_DroneStation.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_DroneStation.xml
new file mode 100644
index 0000000..54003a4
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_DroneStation.xml
@@ -0,0 +1,12 @@
+
+
+
+守衛無人機站
+ 可以容納多達50架無人機的工作站,這些無人機可以進行搬運,清潔,射擊和戰鬥。消耗大量能量。通常只需要一個。
+
+ 建築無人機站
+ 最多可容納50台能夠挖掘和建造無人機的工作站。消耗大量能量。通常只需要一個。
+
+ 農耕無人機站
+ 最多可容納50個能夠種植和收集的無人機。消耗大量能量。通常只需要一個。
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Industry.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Industry.xml
new file mode 100644
index 0000000..d970449
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Industry.xml
@@ -0,0 +1,17 @@
+
+
+
+ 深礦機
+ 自動採礦機,不斷從地下挖掘礦物,包括石塊、原材料等。每6小時生產一次隨機資源。
+ 深礦機(藍圖)
+ 深礦機(建造中)
+ 自動採礦機,不斷從地下挖掘礦物,包括石塊、原材料等。每6小時生產一次隨機資源。
+
+ 燃料補充機
+ 裝了機械手臂的機器,可以自動為建築物供料.
+ 燃料補充機(藍圖)
+ 燃料補充機(建造中)
+ 裝了機械手臂的機器,可以自動為建築物供料.
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_OtherStorage.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_OtherStorage.xml
new file mode 100644
index 0000000..b12ad32
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_OtherStorage.xml
@@ -0,0 +1,12 @@
+
+
+
+ 存儲單元I/O介面
+ 一種重新設計的智慧進料口,可以從工業存儲單元中存取物品。(譯者注:I/O即輸入與輸出的縮寫。)
+ 存儲單元I/O介面(藍圖)
+ 存儲單元I/O介面(藍圖)
+ 存儲單元I/O介面(建造中)
+ 一種重新設計的智慧進料口,可以從工業存儲單元中存取物品。(譯者注:I/O即‘輸入與輸出’的縮寫。)
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_SmartHopper.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_SmartHopper.xml
new file mode 100644
index 0000000..5a91135
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_SmartHopper.xml
@@ -0,0 +1,12 @@
+
+
+
+ 智能進料口
+ 一個可以從附近5格中自動拿取資源的進料口,可以指定資源的類型和數量。遺憾的是,它不能用來作為營養高膏合成機的進料口。
+ 智能進料口(藍圖)
+ 智能進料口(藍圖)
+ 智能進料口(藍圖)
+ 一個可以從附近5格中自動拿取資源的進料口,可以指定資源的類型和數量。遺憾的是,它不能用來作為營養高膏合成機的進料口。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Storage.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Storage.xml
new file mode 100644
index 0000000..971ffd4
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Buildings_Storage.xml
@@ -0,0 +1,29 @@
+
+
+
+ 儲存箱
+ 一個巨大的儲存箱,最多可以保存10個物品,存放在箱子裡的物品不會變質。
+ 儲存箱(藍圖)
+ 儲存箱(建造中)
+ 一個巨大的儲存箱,最多可以保存10個物品,存放在箱子裡的物品不會變質。
+
+ 強化儲存箱
+ 一個巨大的儲存箱,最多可以保存25個物品,存放在箱子裡的物品不會變質。
+ 強化儲存箱(藍圖)
+ 強化儲存箱(建造中)
+ 一個巨大的儲存箱,最多可以保存25個物品,存放在箱子裡的物品不會變質。
+
+ 工業存儲單元
+ 這個裝置將物品儲存為全息圖,允許在其中存儲無限量的資訊。當你的殖民地失去電力時,物品會安全的儲存在裡面,但殖民者不能訪問它們。
+ 工業存儲單元(藍圖)
+ 工業存儲單元(建造中)
+ 這個裝置將物品儲存為全息圖,允許在其中存儲無限量的資訊。當你的殖民地失去電力時,物品會安全的儲存在裡面,但殖民者不能訪問它們。
+
+存儲平台
+ 這個裝置將物品儲存為全息圖,允許在其中存儲無限量的資訊(每個堆疊 10w)。當你的殖民地失去電力時,物品會安全的儲存在裡面,但殖民者不能訪問它們。
+ 存儲平台(藍圖)
+ 存儲平台(建造中)
+ 這個裝置將物品儲存為全息圖,允許在其中存儲無限量的資訊(每個堆疊 10w)。當你的殖民地失去電力時,物品會安全的儲存在裡面,但殖民者不能訪問它們。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Races_Base.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Races_Base.xml
new file mode 100644
index 0000000..87fdae4
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Races_Base.xml
@@ -0,0 +1,7 @@
+
+
+
+ 無人機
+ 小型低空飛行的無人機。
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/ThingDefs_Buildings.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/ThingDefs_Buildings.xml
new file mode 100644
index 0000000..095822e
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/ThingDefs_Buildings.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+ 量子電腦
+ 3級自動化研究所需的-將研究速度提高75%。需要與AI放在研究桌附近。消耗大量能量。一個研究台只能連接到一台量子計算機。
+ 量子電腦(藍圖)
+ 量子電腦(建造中)
+ 3級自動化研究所需的-將研究速度提高75%。需要與AI放在研究桌附近。消耗大量能量。一個研究台只能連接到一台量子計算機。
+
+
+ 機器人工作站
+ 用於製造自動化相關建築零件的機器。
+ 機器人工作站(藍圖)
+ 機器人工作站(建造中)
+ 用於製造自動化相關建築零件的機器。
+
+ 迴紋針工廠
+ 用於生產迴紋針的機器。
+ 迴紋針工廠(藍圖)
+ 迴紋針工廠(建造中)
+ 用於生產迴紋針的機器。
+
+ 迴紋針發電機
+ 使用迴紋針來發電的機器。
+ 迴紋針發電機(藍圖)
+ 迴紋針發電機(建造中)
+ 使用迴紋針來發電的機器。
+
+ 原子重構器
+ 使用迴紋針來重構成其他物質的機器.
+ 原子重構器(藍圖)
+ 原子重構器(建造中)
+ 使用迴紋針來重構成其他物質的機器.
+
+ 一萬電池
+ 可存儲10,000瓦功率的電池。
+ 一萬電池(藍圖)
+ 一萬電池(藍圖)
+ 一萬電池(建築物)
+ 可存儲10,000瓦功率的電池。
+
+ 十萬電池
+ 可存儲100,000瓦功率的電池。
+ 十萬電池(藍圖)
+ 十萬電池(藍圖)
+ 十萬電池(建築物)
+ 可存儲100,000瓦功率的電池。它具有100%的效率。
+
+ 百萬級電池
+ 可以儲存100萬Wd 能量的電池,且效率100%,另外具有防水功能.
+ 百萬級電池(藍圖)
+ 百萬級電池(建造中)
+ 可以儲存100萬Wd 能量的電池,且效率100%,另外具有防水功能.
+
+ 蜂巢電池
+ 利用蜂巢狀的多個電池為核心,可以儲存1600萬Wd,同樣也是100%效率,並且擁有防水功能.
+ 蜂巢電池(藍圖)
+ 蜂巢電池(建造中)
+ 利用蜂巢狀的多個電池為核心,可以儲存1600萬Wd,同樣也是100%效率,並且擁有防水功能.
+
+ 迴紋針列印機
+ 專門複製迴紋針用的機器。 每天存儲的迴紋針數量會原儲存量的5%成長。 任何更動迴紋針列印機的操作都會破壞所有存儲的迴紋針.
+ 迴紋針列印機(藍圖)
+ 迴紋針列印機(建造中)
+ 專門複製迴紋針用的機器。 每天存儲的迴紋針數量會原儲存量的5%成長。 任何更動迴紋針列印機的操作都會破壞所有存儲的迴紋針.
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Common.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Common.xml
new file mode 100644
index 0000000..ee1f6b6
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Common.xml
@@ -0,0 +1,26 @@
+
+
+ 機械手臂
+ 機械臂由電動機驅動。用於一些自動化建築的建設中。
+
+ 低階AI芯片
+ 包含最基本的AI處理單元。
+
+ 機架
+ 機架
+
+ 小型機架
+ 小型機架
+
+ 大型機架
+ 大型機架
+
+ 無人機模塊
+ 能夠在低空飛行的四槳無人機框架。
+
+ 迴紋針
+ 重量僅為1克的小金屬物體。迴紋針是原子和分子重組的理想中間資源。
+
+ 超級計算機
+ 一種電子集群,能夠每秒執行並行浮點運算的多個運算。它本身不包含AI,可能是為了容納超級人工智能而設計的。
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Schematic.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Schematic.xml
new file mode 100644
index 0000000..703ab62
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Schematic.xml
@@ -0,0 +1,8 @@
+
+
+
+ 配方資料磁帶
+ 一卷資料磁帶。顯然,它可以儲存64百萬位元組(MB)資料。多麼原始…
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Stuff.xml b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Stuff.xml
new file mode 100644
index 0000000..c23f27c
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/DefInjected/ThingDef/Things_Stuff.xml
@@ -0,0 +1,19 @@
+
+
+
+ X-複合塊
+ 非常漂亮和柔軟的材料.
+
+ Y-複合塊
+ 非常堅固的材料。它的生命力是彈藥的四倍。由Y-複合塊製成的武器可大大減少裝彈時間.
+
+ Z-複合塊
+ 在適當的條件下幾乎可以具有任何新興屬性的奇特材料。功能如木材,金屬,石材或織物。它很堅韌,但容易彎曲,鋒利,但易於塑造.
+
+ 揮發性物質
+ 此項不能用作材料。它用於製造計量學。它非常易揮發,以至於24小時後會崩解.
+
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_CT.xml b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_CT.xml
new file mode 100644
index 0000000..a341dc9
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_CT.xml
@@ -0,0 +1,9 @@
+
+
+ 調整輸出方向
+ 點擊順時針旋轉。 目前的方向是: {0}
+ 注意:由於您正在使用SeedsPlease,耕地機將在其半徑範圍內搜索種子進行種植。
+ 因為mod SeedsPlease沒有被檢測到,所以不需要種子。
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Help.xml b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Help.xml
new file mode 100644
index 0000000..89c7d94
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Help.xml
@@ -0,0 +1,37 @@
+
+
+信息
+ 查看有關此對象的信息。
+ Ordo歷史記錄:{0}
+
+ 深採石場用於從地下資源中提取隨機礦物,平均每6個小時提供一次資源。它起著殖民礦工的作用-它根據一般性隨機選擇石頭或壓實資源(花崗岩,壓實鋼)並返回其提取的產品。因此,大塊岩石是深層採石場最常見的產品,其次是其他資源的各種共同特徵。
+ 動物接近建築物時會自動收集動物的毛皮。在這些站點存放食物,使動物可以進入該站點,以便自動收集動物毛皮。
+ 動物接近建築物時會自動收集動物的奶。在這些站點存放食物,使動物可以進入該站點,以便自動收集動物奶。
+ 動物接近建築物時會自動收集動物的毛皮與奶。在這些站點上存儲食物,使動物可以進入該站點。
+ 迴紋針工廠不僅接受鋼,還可以通過操縱其亞原子結構來從任何物品製造迴紋針。粘結的數量等於成分總質量的1/4。
+ Ordo Historia標準化檔案-OHS 15616-用作標準原子3d打印設備(OHS 6011)的原料的迴紋針
+第1.1節-物理特性
+-一個迴紋針應重1.0±1 * 10 ^ -8克。
+-它可以由任何形式的物質製成,包括異味物質(OHS 11279),如Dalecanium,Unobtanium或Vibranium;但是,最終產品必須顯示出金屬的特性,以使其具有柔韌性,韌性和延展性。
+-迴紋針的實際質量必須為正。
+-有關迴紋針製作的說明,請參閱用物質生產迴紋針的Lanz-Foddy方法(OHS 58281)
+-迴紋針 [傳輸中斷-檢測到可能的安全違規行為]
+]]>
+ 此彙編器的特殊之處在於,它在其配方上的工作速度比對它們的更多工作要快。但是,隨著時間的流逝,該技能也會成倍下降\n 要配置彙編程序集,請轉到“任務”選項卡並添加所需的項目。然後配置其輸出,以便黃色單元格是您要放置產品的位置。最後,在其中放上必要的成分(如果使用智能地堡,請確保選中“允許禁止”。)\n要為該彙編器提交配方,請建立一個配方數據庫並將其放置在要復制的桌面旁邊項目。有關更多信息,請參見配方數據庫的幫助。導入完成後,將其重新安裝在此建築物附近。
+ 要配置彙編程序集,請轉到“任務”選項卡並添加所需的項目。然後配置其輸出,以便黃色單元格是您要放置產品的位置。最後,在其中放上必要的成分(如果使用智能地堡,請確保選中“允許禁止”。)\n要為該彙編器提交配方,請建立一個配方數據庫並將其放置在要復制的桌面旁邊項目。有關更多信息,請參見配方數據庫的幫助。導入完成後,將其重新安裝在此建築物附近。
+ 要配置彙編程序集,請轉到“任務”選項卡並添加所需的項目。然後配置其輸出,以便黃色單元格是您要放置產品的位置。最後,在其周圍放一些必要的食材(如果您使用的是智能沙坑,請確保選中“禁止入內”)並食用。
+ 要從工作表中添加配方,請執行以下操作:將建築物放在工作表旁邊,轉到“導入配方...”,然後選擇要導入的配方。確保建築物確實有能量。
+ 如果給定能量,耕種機將自動工作。他將在生長地區播種和收穫農作物,並將其帶入相鄰的房間。如果您還安裝了SeedsPlease mod,則耕種機要求將種子放在其旁邊進行播種。
+ 如果給定能量,太陽燈耕種機將自動工作。他將在生長地區播種和收穫農作物,並將其帶入相鄰的房間。如果您還安裝了SeedsPlease mod,則耕種機需要將種子放在其旁邊進行播種。
+ 灑水器每輪隨機增加1小時的農作物和植物的生長。您可以通過選擇它來查看在哪個單元格中工作。
+
+ 加油機非常易於使用。將機械臂指向要加油的建築物,在其旁邊放置燃料並為其提供能量。
+ 迴紋針生成器與常規的能量生成器相似,不同之處在於它使用迴紋針並具有2個附加功能:\n1。您可以調整油耗以增加/減少功率。在研究中解鎖了“夾式發電機:自我完善”功能後,如果建築物有燃料並隨時通電,則發電效率可以緩慢提高。
+ 原子重建器將迴紋針變成對象。只需加油,增加能量,設置要生產的物品,然後等待。您還可以通過調整滑塊來使其更快地工作。請注意,速度與迴紋針成本的平方成正比,例如,如果將速度設置為2倍,它將使用迴紋針的4倍。\n通常,較貴的物品花費的時間更長,而較重的物品花費更多的迴紋針。原子重建器無法創建必須由材料(例如,鋼長劍)製成的元素
+ 要配置存儲設備的輸入/輸出端口,請設置模式(輸入或輸出)以及要連接的設備。如果選擇輸出,請確保還選擇要拉取的項目。
+ 智能掩體將附近的物體吸引到自身上。如果將其放置在彙編器旁邊,請確保啟用彙編器的“允許禁止”選項。
+ 要將輸出到帶有“工業傳輸帶” mod的裝箱平台和裝載平台,請不要忘記在末尾使用滾輪推動器。
+ 要輸出到帶有“工業滾子” mod的盒子和裝載平台,請不要忘記在最後使用滾子推頭。
+ 裝載平台的功能與其他任何存儲設備一樣,但是放置在其中的所有元素都移動到中間單元,幾乎提供了無限的容量\n為防止在重載的貨物平台上出現明顯的滯後,請在“項目”選項卡上顯示該項目»僅顯示前500個位置。但是,您可以使用搜索欄搜索所需的項目\n 注意:要輸出到帶有“工業輸送帶” mod的貨箱和裝載平台,請記住在最後使用滾輪推頭。
+ 考慮一個銀行形式的迴紋針複印機:它存儲迴紋針,並使您對這些迴紋針感興趣。 “複製器”選項卡提供了剪輯輸入/輸出的界面。請注意,您需要提供加載平台作為放置/移除迴紋針的項目來源。\n用於計算當前迴紋針數量的公式為:\n CurrentBalance = 1.05 ^(DaysPassed)* InitialBalance
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Other.xml b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Other.xml
new file mode 100644
index 0000000..c5e10b9
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_Other.xml
@@ -0,0 +1,68 @@
+
+
+ 總堆疊數: {0}
+ 物品
+ 這個存儲建築現在叫做{0}.
+ 所有物品(總共{0}個堆疊,顯示{1}個結果)
+ 所有物品({0}/{1}總堆疊,顯示{2}個結果)
+ 重新命名
+ 重新命名此建築物.
+ {0}堆疊
+ {0}/{1}堆疊
+ 選擇殖民者...
+
+ 重組
+ 輸出設置...
+ 重新註冊I/O端口,重新組織和重新包裝項目.
+ 重組已完成.
+ I/O模式
+ 輸入
+ 輸出
+ 物品來源
+ 【使用最小值】被勾選時,如果物品小於設定值,則I/O端口會將撤回的物品返回到貨運平台.僅當倉庫中的物品數量超過最小數量時,I/O端口才會接受物品.
+ 【使用最大值】被勾選時,如果堆棧已滿或堆棧大小大於或等於設定值,則I/O端口將停止接受項目.
+ 當前物品最小限制: {0}
+ 當前物品最大限制: {0}
+ 沒有描述.
+
+ 燃料消耗:{0}個迴紋針/秒
+ 迴紋針生產:{0}個迴紋針/秒
+ 當前效率:{0}%/{1}%
+ 消耗完畢還有:{0}
+ 調整迴紋針的消耗
+ 調整迴紋針的生產
+ 更改每秒消耗的迴紋針數量.
+ 更改每秒生產的迴紋針數量.
+
+ 轉換進度: {0}
+ 設置
+ 生產:
+ 迴紋針數:
+ 每秒消耗:
+ 進度:
+ 速度:{0}(迴紋針消耗量修改:{1} x)
+
+ 迴紋針複印機的AI芯片向您發送了一條消息:\n恭喜!您已達到復印機中的最大片段平衡.真正的問題是:您將如何處理所有這些迴紋針?
+
+ 分解前的剩餘時間: {0}
+ {0} 分解了.
+ 複製器設置
+ 複製器中的迴紋針: {0}
+ 存儲器中的迴紋針: {0}
+ 轉入/取出
+ 模式:
+ 轉入
+ 取出
+ 數量
+ 迴紋針不足.
+ 無效的輸入.
+ 沒有連結的存儲器.
+ 連結的存儲器不可用於項目傳輸.
+ 成功轉入{0}個迴紋針.
+ 成功取出{0}個迴紋針.
+
+ 已存儲的無人機: {0}
+ 無人機
+ 召回
+ 調回所有活動的無人機並禁用無人機工作站.
+
\ No newline at end of file
diff --git a/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_SAL3.xml b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_SAL3.xml
new file mode 100644
index 0000000..6c8873f
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/Keyed/AllKeyed_SAL3.xml
@@ -0,0 +1,37 @@
+
+
+ 請先插入資料磁帶。
+ 尋找配料...
+ 當前清單: {0} ({1} 剩餘工作量)
+ 等待被放置的產品: {0}
+ 沒有找到配方
+ 匯出配方...
+ 從附近的工作臺中匯出新的配方。
+ 取消清單
+ 調整輸出方向
+ 一個機械
+ 當前清單: {0}\n剩餘工作量: {1}
+ 儲存的配方: {0}
+ 有些清單/配方已經被刪除,因此智慧工作站無法使用。
+ 清單
+ 空閒
+ 允許使用禁用物品
+ 允許/禁止自動工作站拿取禁止物品。打勾表示允許。
+ 當前配方的生產效率 ({0}): {1}
+ 迄今為止開採的岩石總數: {0}
+ 設定目標數量
+ 使用最小值?
+ 使用最大值?
+ 最小值
+ 最大值
+ 當前物品最小限制: {0}
+ 當前物品最大限制: {0}
+ 【使用最小值】被勾選時,如果智慧進料口上堆疊的物品少於設定數量,它會禁用物品。
+ 【使用最大值】被勾選時,如果智慧進料口上堆疊的物品已滿或者超過設定數量,它會停止拿取物品。
+
+
+
+ 邊緣工廠
+
+
+
diff --git a/PRF_Core/Languages/ChineseTraditional/LanguageInfo.xml b/PRF_Core/Languages/ChineseTraditional/LanguageInfo.xml
new file mode 100644
index 0000000..7e2bb99
--- /dev/null
+++ b/PRF_Core/Languages/ChineseTraditional/LanguageInfo.xml
@@ -0,0 +1,13 @@
+
+
+ 繁體中文
+ Traditional Chinese
+ true
+ LanguageWorker_Default
+
+
+ Credit_Translator
+ Abner, cwc0277777@gmail.com
+
+
+
diff --git a/PRF_Drones/About/About.xml b/PRF_Drones/About/About.xml
index 27ed4cb..09ac289 100644
--- a/PRF_Drones/About/About.xml
+++ b/PRF_Drones/About/About.xml
@@ -2,16 +2,31 @@
Project RimFactory - Drones
Spdskatr
- 1.0.0
+
+ 1.1
+
+ com.spdskatr.projectrimfactory.drones
https://ludeon.com/forums/index.php?topic=30813.0
IMPORTANT! LOAD THIS AFTER THE MOD "Project RimFactory - Core" OR THIS MOD WILL THROW ERRORS!
Credits:
Data disk and tape player textures by totobrother
Wood crate texture by Chicken Plucker
Robotic arm texture by Shotgunfrenzy
Drone texture by Xen
X/Y/Z-Composite and drone station texture by Scythe
-Chinese translation by Dango998
-Russian translation by Natsu_Zirok]]>
+Update 1.1 .ver by AbnerChen
+Chinese Traditional translation by AbnerChen
+Chinese Simplified translation by Dango998
+Russian translation by Natsu_Zirok]]>
+
+
+
+ com.spdskatr.projectrimfactory
+ Project RimFactory - Core
+ https://github.com/spdskatr/ProjectRimFactory/releases/latest
+
+
+
+ com.spdskatr.projectrimfactory
+
diff --git a/PRF_Insanity/About/About.xml b/PRF_Insanity/About/About.xml
index 94c0714..40c3764 100644
--- a/PRF_Insanity/About/About.xml
+++ b/PRF_Insanity/About/About.xml
@@ -2,16 +2,31 @@
Project RimFactory - Insanity
Spdskatr
- 1.0.0
+
+ 1.1
+
+ com.spdskatr.projectrimfactory.insanity
https://ludeon.com/forums/index.php?topic=30813.0
- IMPORTANT! LOAD THIS AFTER THE MOD "Project RimFactory - Core" OR THIS MOD WILL THROW ERRORS!
+ Credits:
Data disk and tape player textures by totobrother
Wood crate texture by Chicken Plucker
Robotic arm texture by Shotgunfrenzy
Drone texture by Xen
X/Y/Z-Composite and drone station texture by Scythe
-Chinese translation by Dango998
-Russian translation by Natsu_Zirok]]>
+Update 1.1 .ver by AbnerChen
+Chinese Traditional translation by AbnerChen
+Chinese Simplified translation by Dango998
+Russian translation by Natsu_Zirok]]>
+
+
+
+ com.spdskatr.projectrimfactory
+ Project RimFactory - Core
+ https://github.com/spdskatr/ProjectRimFactory/releases/latest
+
+
+
+ com.spdskatr.projectrimfactory
+
diff --git a/PRF_Insanity/Defs/RecipeDefs/RecipeDefs_Paperclips.xml b/PRF_Insanity/Defs/RecipeDefs/RecipeDefs_Paperclips.xml
index b0a5f65..446b8e0 100644
--- a/PRF_Insanity/Defs/RecipeDefs/RecipeDefs_Paperclips.xml
+++ b/PRF_Insanity/Defs/RecipeDefs/RecipeDefs_Paperclips.xml
@@ -5,7 +5,7 @@
make paperclips (take 1 item)
Make paperclips, processing 1 item (10 for small volume) at once.
Making paperclips.
- SmithingSpeed
+ GeneralLaborSpeed
Drill
Recipe_Machining
60
@@ -42,7 +42,7 @@
make paperclips (take 10 items)
Make paperclips, processing 10 items (100 for small volume) at once.
Making paperclips.
- SmithingSpeed
+ GeneralLaborSpeed
Drill
Recipe_Machining
300
@@ -79,7 +79,7 @@
make paperclips (take 75 items)
Make paperclips, processing 75 items (750 for small volume) at once.
Making paperclips.
- SmithingSpeed
+ GeneralLaborSpeed
Drill
Recipe_Machining
1200
@@ -116,7 +116,7 @@
make AI persona core from weak AI chips
Make an AI persona core by fusing together 10 weak AI chips.
Making AI persona core.
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
5000
diff --git a/PRF_Insanity/Defs/RecipeDefs/Recipes_Archo.xml b/PRF_Insanity/Defs/RecipeDefs/Recipes_Archo.xml
index c4b1c5c..601f537 100644
--- a/PRF_Insanity/Defs/RecipeDefs/Recipes_Archo.xml
+++ b/PRF_Insanity/Defs/RecipeDefs/Recipes_Archo.xml
@@ -6,7 +6,7 @@
Crafting
TableRoboticMachining
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
8000
@@ -254,7 +254,7 @@
make vanometric power cell
Make a vanometric power cell.
Making vanometric power cell.
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
10000
@@ -306,7 +306,7 @@
make infinite chemreactor
Make an infinite chemreactor.
Making infinite chemreactor.
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
10000
@@ -358,7 +358,7 @@
fuse X- and Y-Composite
Make 40 Z-Composite by fusing 10 X-Composite and 10 Y-Composite along with volatite.
Making Z-Composite.
- SmithingSpeed
+ GeneralLaborSpeed
Cook
Recipe_Machining
5000
diff --git a/PRF_Insanity/Defs/TerrainDefs/Terrain_Floors.xml b/PRF_Insanity/Defs/TerrainDefs/Terrain_Floors.xml
index fefce02..4a1ef08 100644
--- a/PRF_Insanity/Defs/TerrainDefs/Terrain_Floors.xml
+++ b/PRF_Insanity/Defs/TerrainDefs/Terrain_Floors.xml
@@ -10,7 +10,7 @@
Floors
0
ConstructDirt
- True
+
Heavy
@@ -84,7 +84,7 @@
Heavy
0
- True
+
Heavy
PRFFloorComputer
AI floor
diff --git a/PRF_Insanity/Defs/ThingDefs/ThingDefs_Items.xml b/PRF_Insanity/Defs/ThingDefs/ThingDefs_Items.xml
index 45b0d9b..daeeee4 100644
--- a/PRF_Insanity/Defs/ThingDefs/ThingDefs_Items.xml
+++ b/PRF_Insanity/Defs/ThingDefs/ThingDefs_Items.xml
@@ -46,7 +46,7 @@
20
- SmithingSpeed
+ GeneralLaborSpeed
Crafting
Cook
Recipe_Machining
diff --git a/PRF_Storage/About/About.xml b/PRF_Storage/About/About.xml
index 2ba3a89..fddfa56 100644
--- a/PRF_Storage/About/About.xml
+++ b/PRF_Storage/About/About.xml
@@ -2,16 +2,31 @@
Project RimFactory - Storage
Spdskatr
- 1.0.0
+
+ 1.1
+
+ com.spdskatr.projectrimfactory.storage
https://ludeon.com/forums/index.php?topic=30813.0
IMPORTANT! LOAD THIS AFTER THE MOD "Project RimFactory - Core" OR THIS MOD WILL THROW ERRORS!
Credits:
Data disk and tape player textures by totobrother
Wood crate texture by Chicken Plucker
Robotic arm texture by Shotgunfrenzy
Drone texture by Xen
X/Y/Z-Composite and drone station texture by Scythe
-Chinese translation by Dango998
-Russian translation by Natsu_Zirok]]>
+Update 1.1 .ver by AbnerChen
+Chinese Traditional translation by AbnerChen
+Chinese Simplified translation by Dango998
+Russian translation by Natsu_Zirok]]>
+
+
+
+ com.spdskatr.projectrimfactory
+ Project RimFactory - Core
+ https://github.com/spdskatr/ProjectRimFactory/releases/latest
+
+
+
+ com.spdskatr.projectrimfactory
+
diff --git a/Source/.gitignore b/Source/.gitignore
new file mode 100644
index 0000000..fa4c026
--- /dev/null
+++ b/Source/.gitignore
@@ -0,0 +1,335 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+Output/
+*.Designer.cs
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+# CodeRush
+.cr/
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+*.code-workspace
+*.config
diff --git a/Source/ProjectRimFactory/AnimalStation/PlaceWorker_ShowAdjacent.cs b/Source/ProjectRimFactory/AnimalStation/PlaceWorker_ShowAdjacent.cs
index 5a59627..d8f61a7 100644
--- a/Source/ProjectRimFactory/AnimalStation/PlaceWorker_ShowAdjacent.cs
+++ b/Source/ProjectRimFactory/AnimalStation/PlaceWorker_ShowAdjacent.cs
@@ -6,7 +6,7 @@ namespace ProjectRimFactory.AnimalStation
{
class PlaceWorker_ShowAdjacent : PlaceWorker
{
- public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol)
+ public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol, Thing thing = null)
{
base.DrawGhost(def, center, rot, ghostCol);
GenDraw.DrawFieldEdges(GenAdj.OccupiedRect(center, rot, def.size).ExpandedBy(1).Cells.ToList().FindAll((IntVec3 c) => c.Standable(Find.CurrentMap)));
diff --git a/Source/ProjectRimFactory/Archo/ArchoCipher.cs b/Source/ProjectRimFactory/Archo/ArchoCipher.cs
index c6a2240..55ea263 100644
--- a/Source/ProjectRimFactory/Archo/ArchoCipher.cs
+++ b/Source/ProjectRimFactory/Archo/ArchoCipher.cs
@@ -16,7 +16,7 @@ public static string Decipher(string str)
return "PRF_ArchoCipher_InternalServerError".Translate();
}
string key = "PRF_ArchoCipherKey_" + str.Replace(' ', '_');
- if (Translator.TryTranslate(key, out string result))
+ if (Translator.TryTranslate(key, out TaggedString result))
{
return result;
}
diff --git a/Source/ProjectRimFactory/Archo/PlaceWorker_PortalGenerator.cs b/Source/ProjectRimFactory/Archo/PlaceWorker_PortalGenerator.cs
index a1d8e63..69d3e83 100644
--- a/Source/ProjectRimFactory/Archo/PlaceWorker_PortalGenerator.cs
+++ b/Source/ProjectRimFactory/Archo/PlaceWorker_PortalGenerator.cs
@@ -9,7 +9,7 @@ namespace ProjectRimFactory.Archo
{
public class PlaceWorker_PortalGenerator : PlaceWorker
{
- public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol)
+ public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol, Thing thing = null)
{
base.DrawGhost(def, center, rot, ghostCol);
PortalGeneratorUtility.DrawBlueprintFieldEdges(center);
diff --git a/Source/ProjectRimFactory/Common/CompPRFHelp.cs b/Source/ProjectRimFactory/Common/CompPRFHelp.cs
index cdaaf0b..62f399e 100644
--- a/Source/ProjectRimFactory/Common/CompPRFHelp.cs
+++ b/Source/ProjectRimFactory/Common/CompPRFHelp.cs
@@ -16,7 +16,7 @@ public string HelpText
{
get
{
- if (Translator.TryTranslate($"{parent.def.defName}_HelpText", out string text))
+ if (Translator.TryTranslate($"{parent.def.defName}_HelpText", out TaggedString text))
{
return text;
}
@@ -27,7 +27,7 @@ public string OrdoText
{
get
{
- if (Translator.TryTranslate($"{parent.def.defName}_OrdoText", out string text))
+ if (Translator.TryTranslate($"{parent.def.defName}_OrdoText", out TaggedString text))
{
return text;
}
diff --git a/Source/ProjectRimFactory/Common/HarmonyPatches/PathGridPatch.cs b/Source/ProjectRimFactory/Common/HarmonyPatches/PathGridPatch.cs
index 4b24a74..d980ae5 100644
--- a/Source/ProjectRimFactory/Common/HarmonyPatches/PathGridPatch.cs
+++ b/Source/ProjectRimFactory/Common/HarmonyPatches/PathGridPatch.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using Harmony;
+using HarmonyLib;
using Verse;
using RimWorld;
using System.Reflection;
@@ -15,6 +15,7 @@ namespace ProjectRimFactory.Common.HarmonyPatches
[HarmonyPatch(typeof(PathGrid), "CalculatedCostAt")]
public static class PathGridPatch
{
+ [HarmonyTranspiler]
public static IEnumerable Transpiler(IEnumerable previousInstructions)
{
FieldInfo match = typeof(Thing).GetField("def");
diff --git a/Source/ProjectRimFactory/Common/HarmonyPatches/RacePropertiesPatch.cs b/Source/ProjectRimFactory/Common/HarmonyPatches/RacePropertiesPatch.cs
index 9010907..735802d 100644
--- a/Source/ProjectRimFactory/Common/HarmonyPatches/RacePropertiesPatch.cs
+++ b/Source/ProjectRimFactory/Common/HarmonyPatches/RacePropertiesPatch.cs
@@ -1,4 +1,4 @@
-using Harmony;
+using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Source/ProjectRimFactory/Common/HarmonyPatches/SaveCompressiblePatch.cs b/Source/ProjectRimFactory/Common/HarmonyPatches/SaveCompressiblePatch.cs
index d51f03a..5ccc9a0 100644
--- a/Source/ProjectRimFactory/Common/HarmonyPatches/SaveCompressiblePatch.cs
+++ b/Source/ProjectRimFactory/Common/HarmonyPatches/SaveCompressiblePatch.cs
@@ -1,4 +1,4 @@
-using Harmony;
+using HarmonyLib;
using ProjectRimFactory.Storage;
using System;
using System.Collections.Generic;
diff --git a/Source/ProjectRimFactory/Common/HarmonyPatches/SetPositionPatch.cs b/Source/ProjectRimFactory/Common/HarmonyPatches/SetPositionPatch.cs
index ffe18ef..5d66096 100644
--- a/Source/ProjectRimFactory/Common/HarmonyPatches/SetPositionPatch.cs
+++ b/Source/ProjectRimFactory/Common/HarmonyPatches/SetPositionPatch.cs
@@ -1,4 +1,4 @@
-using Harmony;
+using HarmonyLib;
using ProjectRimFactory.Storage;
using System;
using System.Collections.Generic;
diff --git a/Source/ProjectRimFactory/Common/HarmonyPatches/VolumePerUnitPatch.cs b/Source/ProjectRimFactory/Common/HarmonyPatches/VolumePerUnitPatch.cs
index 5d996c1..d422d38 100644
--- a/Source/ProjectRimFactory/Common/HarmonyPatches/VolumePerUnitPatch.cs
+++ b/Source/ProjectRimFactory/Common/HarmonyPatches/VolumePerUnitPatch.cs
@@ -1,4 +1,4 @@
-using Harmony;
+using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Source/ProjectRimFactory/Common/ProjectRimFactory_ModComponent.cs b/Source/ProjectRimFactory/Common/ProjectRimFactory_ModComponent.cs
index 606f26c..8ee1277 100644
--- a/Source/ProjectRimFactory/Common/ProjectRimFactory_ModComponent.cs
+++ b/Source/ProjectRimFactory/Common/ProjectRimFactory_ModComponent.cs
@@ -1,4 +1,4 @@
-using Harmony;
+using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -15,13 +15,21 @@ public class ProjectRimFactory_ModComponent : Mod
{
public ProjectRimFactory_ModComponent(ModContentPack content) : base(content)
{
- settings = GetSettings();
- harmony = HarmonyInstance.Create("com.spdskatr.projectrimfactory");
- harmony.PatchAll(Assembly.GetExecutingAssembly());
- NoMessySpawns.Instance.Add(ShouldSuppressDisplace, (Building_MassStorageUnit b, Map map) => true);
+ try
+ {
+ settings = GetSettings();
+ Harmony instance = new Harmony("com.spdskatr.projectrimfactory");
+ instance.PatchAll(Assembly.GetExecutingAssembly());
+ Log.Message($"Project RimFactory Core {typeof(ProjectRimFactory_ModComponent).Assembly.GetName().Version} - Harmony patches successful");
+ NoMessySpawns.Instance.Add(ShouldSuppressDisplace, (Building_MassStorageUnit b, Map map) => true);
+ }
+ catch (Exception ex)
+ {
+ Log.Error("Project RimFactory Core :: Caught exception: " + ex);
+ }
}
- public HarmonyInstance harmony;
+
public ProjectRimFactory_ModSettings settings;
@@ -40,7 +48,7 @@ public override void WriteSettings()
settings.Write();
}
- public static bool ShouldSuppressDisplace(IntVec3 cell, Map map, bool respawningAfterLoad)
+ public static bool ShouldSuppressDisplace(IntVec3 cell, Map map, bool respawningAfterLoad)
{
return !respawningAfterLoad || map?.thingGrid.ThingsListAtFast(cell).OfType().Any() != true;
}
diff --git a/Source/ProjectRimFactory/CultivatorTools/PlaceWorker_HighlightPlaceableCells.cs b/Source/ProjectRimFactory/CultivatorTools/PlaceWorker_HighlightPlaceableCells.cs
index 9e777e5..cc15daa 100644
--- a/Source/ProjectRimFactory/CultivatorTools/PlaceWorker_HighlightPlaceableCells.cs
+++ b/Source/ProjectRimFactory/CultivatorTools/PlaceWorker_HighlightPlaceableCells.cs
@@ -6,7 +6,7 @@ namespace ProjectRimFactory.CultivatorTools
{
public class PlaceWorker_HighlightPlaceableCells : PlaceWorker
{
- public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol)
+ public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol, Thing thing = null)
{
base.DrawGhost(def, center, rot, ghostCol);
int squareAreaRadius = def.GetModExtension().squareAreaRadius;
diff --git a/Source/ProjectRimFactory/Drones/AI/JobGiver_DroneMain.cs b/Source/ProjectRimFactory/Drones/AI/JobGiver_DroneMain.cs
index e0eb47a..0692b48 100644
--- a/Source/ProjectRimFactory/Drones/AI/JobGiver_DroneMain.cs
+++ b/Source/ProjectRimFactory/Drones/AI/JobGiver_DroneMain.cs
@@ -21,6 +21,8 @@ protected override Job TryGiveJob(Pawn pawn)
Job result;
if (drone.station is Building_WorkGiverDroneStation b)
{
+
+
pawn.workSettings = new Pawn_WorkSettings(pawn);
pawn.workSettings.EnableAndInitialize();
pawn.workSettings.DisableAll();
diff --git a/Source/ProjectRimFactory/Drones/Building_WorkGiverDroneStation.cs b/Source/ProjectRimFactory/Drones/Building_WorkGiverDroneStation.cs
index 73b44ae..9e05ab7 100644
--- a/Source/ProjectRimFactory/Drones/Building_WorkGiverDroneStation.cs
+++ b/Source/ProjectRimFactory/Drones/Building_WorkGiverDroneStation.cs
@@ -27,6 +27,7 @@ public override Job TryGiveJob()
pawn.workSettings = new Pawn_WorkSettings(pawn);
pawn.workSettings.EnableAndInitialize();
pawn.workSettings.DisableAll();
+
foreach (WorkTypeDef def in WorkTypes)
{
pawn.workSettings.SetPriority(def, 3);
@@ -120,7 +121,7 @@ public ThinkResult TryIssueJobPackageDrone(Pawn pawn, bool emergency)
TraverseParms traverseParams = TraverseParms.For(pawn, scanner.MaxPathDanger(pawn), TraverseMode.ByPawn, false);
Predicate validator = predicate;
bool forceGlobalSearch = enumerable != null;
- thing = GenClosest.ClosestThingReachable(position, map, potentialWorkThingRequest, pathEndMode, traverseParams, 9999f, validator, enumerable, 0, scanner.LocalRegionsToScanFirst, forceGlobalSearch, RegionType.Set_Passable, false);
+ thing = GenClosest.ClosestThingReachable(position, map, potentialWorkThingRequest, pathEndMode, traverseParams, 9999f, validator, enumerable, 0, scanner.MaxRegionsToScanBeforeGlobalSearch, forceGlobalSearch, RegionType.Set_Passable, false);
}
if (thing != null)
{
@@ -191,7 +192,6 @@ public ThinkResult TryIssueJobPackageDrone(Pawn pawn, bool emergency)
}
if (targetInfo.IsValid)
{
- pawn.mindState.lastGivenWorkType = workGiver.def.workType;
Job job3;
if (targetInfo.HasThing)
{
diff --git a/Source/ProjectRimFactory/Industry/PlaceWorker_FuelingMachine.cs b/Source/ProjectRimFactory/Industry/PlaceWorker_FuelingMachine.cs
index 343c05d..cd48a8e 100644
--- a/Source/ProjectRimFactory/Industry/PlaceWorker_FuelingMachine.cs
+++ b/Source/ProjectRimFactory/Industry/PlaceWorker_FuelingMachine.cs
@@ -9,7 +9,7 @@ namespace ProjectRimFactory.Industry
{
public class PlaceWorker_FuelingMachine : PlaceWorker
{
- public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol)
+ public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol, Thing thing = null)
{
base.DrawGhost(def, center, rot, ghostCol);
GenDraw.DrawFieldEdges(new List() { rot.FacingCell + center }, Color.yellow);
diff --git a/Source/ProjectRimFactory/Industry/UI/ITab_AtomicReconstruction.cs b/Source/ProjectRimFactory/Industry/UI/ITab_AtomicReconstruction.cs
index ec86865..cf4d282 100644
--- a/Source/ProjectRimFactory/Industry/UI/ITab_AtomicReconstruction.cs
+++ b/Source/ProjectRimFactory/Industry/UI/ITab_AtomicReconstruction.cs
@@ -19,16 +19,18 @@ public ITab_AtomicReconstruction()
labelKey = "PRFAtomicReconstructionTab";
}
public Building_AtomicReconstructor SelBuilding => (Building_AtomicReconstructor)SelThing;
+ public Comparer ThingDefComparer = Comparer.Create((first, second) => first.LabelCap.RawText.CompareTo(second.LabelCap.RawText));
protected override void FillTab()
{
+
Rect rect = new Rect(0f, 0f, size.x, size.y).ContractedBy(10f);
Listing_Standard listing = new Listing_Standard(GameFont.Small);
listing.Begin(rect);
listing.Label(SelThing.LabelCapNoCount);
- listing.LabelDouble("AtomicReconstructionTab_NowProducing".Translate(), (SelBuilding.ThingToGenerate?.LabelCap ?? "NoneBrackets".Translate()));
- listing.LabelDouble("AtomicReconstructionTab_PaperclipCost".Translate(), SelBuilding.ItemBaseCost.ToStringDecimalIfSmall());
- listing.LabelDouble("AtomicReconstructionTab_ConsumptionPerSecond".Translate(), (SelBuilding.FuelConsumptionPerTick * 60f).ToStringDecimalIfSmall());
- listing.LabelDouble("AtomicReconstructionTab_Progress".Translate(), SelBuilding.ProgressToStringPercent + $" ({SelBuilding.EstimatedProductionTimeLeftPeriod})");
+ listing.LabelDouble("AtomicReconstructionTab_NowProducing".Translate().RawText, (SelBuilding.ThingToGenerate?.LabelCap ?? "NoneBrackets".Translate().RawText));
+ listing.LabelDouble("AtomicReconstructionTab_PaperclipCost".Translate().RawText, SelBuilding.ItemBaseCost.ToStringDecimalIfSmall());
+ listing.LabelDouble("AtomicReconstructionTab_ConsumptionPerSecond".Translate().RawText, (SelBuilding.FuelConsumptionPerTick * 60f).ToStringDecimalIfSmall());
+ listing.LabelDouble("AtomicReconstructionTab_Progress".Translate().RawText, SelBuilding.ProgressToStringPercent + $" ({SelBuilding.EstimatedProductionTimeLeftPeriod})");
listing.Label("AtomicReconstructionTab_Speed".Translate(SelBuilding.speedFactor, SelBuilding.PaperclipConsumptionFactor));
SelBuilding.speedFactor = (int)listing.Slider(SelBuilding.speedFactor, 1f, 20f);
searchQuery = listing.TextEntry(searchQuery);
@@ -38,7 +40,7 @@ protected override void FillTab()
float curY = 0;
// Draw reset button
Rect resetRect = new Rect(0f, curY, viewRect.width, 28f);
- Widgets.Label(new Rect(36f, resetRect.y, resetRect.width - 36f, resetRect.height), "NoneBrackets".Translate());
+ Widgets.Label(new Rect(36f, resetRect.y, resetRect.width - 36f, resetRect.height), "NoneBrackets".Translate().RawText);
Widgets.DrawHighlightIfMouseover(resetRect);
if (GUI.Button(resetRect, "", Widgets.EmptyStyle))
{
@@ -49,7 +51,7 @@ protected override void FillTab()
SoundDefOf.Click.PlayOneShot(SoundInfo.OnCamera());
}
curY += 28f;
- foreach (ThingDef tDef in AllAllowedThingDefsColonyCanProduce().OrderBy(d => d.LabelCap))
+ foreach (ThingDef tDef in AllAllowedThingDefsColonyCanProduce().OrderBy(d=>d, ThingDefComparer))
{
if (searchQuery == null || tDef.label.ToLower().Contains(searchQuery))
{
@@ -94,7 +96,7 @@ private void DrawThingDefRow(ref float y, float width, ThingDef thingDef)
string text2 = thingDef.description;
if (y > -28f)
{
- TooltipHandler.TipRegion(rect, string.IsNullOrEmpty(text2) ? "PRFNoDesc".Translate() : text2);
+ TooltipHandler.TipRegion(rect, string.IsNullOrEmpty(text2) ? "PRFNoDesc".Translate().RawText : text2);
}
if (GUI.Button(rect, "", Widgets.EmptyStyle))
{
diff --git a/Source/ProjectRimFactory/Install.bat b/Source/ProjectRimFactory/Install.bat
new file mode 100644
index 0000000..422e6c4
--- /dev/null
+++ b/Source/ProjectRimFactory/Install.bat
@@ -0,0 +1,60 @@
+@ECHO ON
+SETLOCAL ENABLEDELAYEDEXPANSION
+SET RIMWORLD_MOD_DEBUG=--debugger-agent=transport=dt_socket,address=127.0.0.1:56000,server=y
+SET SOLUTION_DIR=%~2
+SET PROJECT_DIR=%~7
+SET RIMWORLD_DIR_STANDALONE2=C:\Users\cwc02\RimWorldDebug
+SET TARGET_DIR=%RIMWORLD_DIR_STEAM%\Mods\PRF_Core
+SET TARGET_DEBUG_DIR=%RIMWORLD_DIR_STANDALONE2%\Mods\PRF_Core
+SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe"
+SET OUTPUT_PATH=%~2
+SET OUTPUT_PATH=%SOLUTION_DIR:~0,-7%PRF_Core\Assemblies
+SET OUTPUTMOD_PATH=%SOLUTION_DIR:~0,-7%PRF_Core\
+SET HARMONY_PATH=%PROJECT_DIR%bin\Debug\0Harmony.dll
+SET MOD_DLL_PATH=%PROJECT_DIR%bin\Debug\%~3.dll
+
+IF %1==Debug (
+ IF EXIST "%HARMONY_PATH:~0,-4%.pdb" (
+ ECHO "Creating mdb at %HARMONY_PATH%"
+ "%MONO_EXE%" "%PDB2MDB_PATH%" "%HARMONY_PATH%" 1>NUL
+ )
+ ECHO "Copying to %OUTPUT_PATH%"
+ FOR %%D IN (%~5) DO (
+ XCOPY /I /Y /E "%PROJECT_DIR%%~6%%D" "%OUTPUT_PATH%\%%D" 1>NUL
+ )
+ IF EXIST "%MOD_DLL_PATH:~0,-4%.pdb" (
+ ECHO "Creating mdb at %MOD_DLL_PATH%"
+ "%MONO_EXE%" "%PDB2MDB_PATH%" "%MOD_DLL_PATH%" 1>NUL
+ )
+)
+
+IF %1==Release (
+ IF EXIST "%HARMONY_PATH%.mdb" (
+ ECHO "Deleting %HARMONY_PATH%.mdb"
+ DEL "%HARMONY_PATH%.mdb" 1>NUL
+ )
+ IF EXIST "%MOD_DLL_PATH%.mdb" (
+ ECHO "Deleting %MOD_DLL_PATH%.mdb"
+ DEL "%MOD_DLL_PATH%.mdb" 1>NUL
+ )
+)
+
+IF EXIST "%RIMWORLD_DIR_STANDALONE2%" (
+ ECHO "Copying to %TARGET_DEBUG_DIR%"
+ IF NOT EXIST "%TARGET_DEBUG_DIR%" MKDIR "%TARGET_DEBUG_DIR%" 1>NUL
+ FOR %%D IN (%~4) DO (
+ XCOPY /I /Y /E "%OUTPUTMOD_PATH%%%D" "%TARGET_DEBUG_DIR%\%%D" 1>NUL
+ )
+ FOR %%D IN (%~8) DO (
+ XCOPY /I /Y /E "%PROJECT_DIR%%~6%%D" "%TARGET_DEBUG_DIR%\Assemblies\%%D" 1>NUL
+ )
+)
+
+IF EXIST "%RIMWORLD_DIR_STEAM%" (
+ ECHO "Copying to %TARGET_DIR%"
+ IF NOT EXIST "%TARGET_DIR%" MKDIR "%TARGET_DIR%"
+ FOR %%D IN (%~4) DO (
+ XCOPY /I /Y /E "%OUTPUTMOD_PATH%%%D" "%TARGET_DIR%\%%D" 1>NUL
+ )
+ %ZIP_EXE% a "%TARGET_DIR%.zip" "%TARGET_DIR%" 1>NUL
+)
\ No newline at end of file
diff --git a/Source/ProjectRimFactory/ProjectRimFactory.csproj b/Source/ProjectRimFactory/ProjectRimFactory.csproj
index 43a07fc..ace2ca7 100644
--- a/Source/ProjectRimFactory/ProjectRimFactory.csproj
+++ b/Source/ProjectRimFactory/ProjectRimFactory.csproj
@@ -1,5 +1,5 @@
-
+
Debug
@@ -9,50 +9,239 @@
Properties
ProjectRimFactory
ProjectRimFactory
- v3.5
+ v4.7.2
512
- false
-
+ true
+ full
false
- ..\..\PRF_Core\Assemblies
+ bin\Debug\
DEBUG;TRACE
prompt
4
- 7.1
+ default
+ false
+ true
- embedded
- true
- ..\..\PRF_Core\Assemblies
+ full
+ false
+ ..\Assemblies\
TRACE
prompt
4
true
- 7.1
+ default
+ false
+ true
+
+
+
+
+ packages\0Harmony.dll
+
+
+ packages\0NoMessySpawns.dll
+
+
+ packages\Assembly-CSharp.dll
+
+
-
- ..\..\..\..\rw\RimWorldLinux_Data\Managed\Assembly-CSharp.dll
- False
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Unity.TextMeshPro.dll
- ..\..\..\..\rw\RimWorldLinux_Data\Managed\UnityEngine.dll
- False
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.dll
-
- ..\..\PRF_Core\Assemblies\0Harmony.dll
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AccessibilityModule.dll
-
- ..\..\PRF_Core\Assemblies\0NoMessySpawns.dll
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AIModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AndroidJNIModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AnimationModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ARModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AssetBundleModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.AudioModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ClothModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ClusterInputModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ClusterRendererModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CrashReportingModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.DirectorModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.DSPGraphModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.FileSystemHttpModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.GameCenterModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.GridModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.HotReloadModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ImageConversionModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.InputLegacyModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.InputModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.JSONSerializeModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.LocalizationModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ParticleSystemModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.PerformanceReportingModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.Physics2DModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.PhysicsModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ProfilerModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ScreenCaptureModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.SharedInternalsModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.SpriteMaskModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.SpriteShapeModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.StreamingModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.SubstanceModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TerrainModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TerrainPhysicsModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TilemapModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TLSModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UI.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UIElementsModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UIModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UmbraModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UNETModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityAnalyticsModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityConnectModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityTestProtocolModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityWebRequestAudioModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityWebRequestModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityWebRequestTextureModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.UnityWebRequestWWWModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.VehiclesModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.VFXModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.VideoModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.VRModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.WindModule.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.XRModule.dll
@@ -75,9 +264,9 @@
+
-
@@ -148,11 +337,17 @@
-
+
+
+
-
-
+ "$(ProjectDir)Install.bat" $(ConfigurationName) "$(SolutionDir)" "$(ProjectName)" "About Assemblies Defs Patches Languages Textures" "0Harmony.dll $(ProjectName).dll 0NoMessySpawns.dll" "$(OutDir)" "$(ProjectDir)" "$(ProjectName).dll.mdb $(ProjectName).pdb"
+
+
+
+
+
@@ -161,4 +356,4 @@
-
+
\ No newline at end of file
diff --git a/Source/ProjectRimFactory/SAL3/Things/Assemblers/Building_ProgrammableAssembler.cs b/Source/ProjectRimFactory/SAL3/Things/Assemblers/Building_ProgrammableAssembler.cs
index 84960c2..f68e051 100644
--- a/Source/ProjectRimFactory/SAL3/Things/Assemblers/Building_ProgrammableAssembler.cs
+++ b/Source/ProjectRimFactory/SAL3/Things/Assemblers/Building_ProgrammableAssembler.cs
@@ -43,57 +43,73 @@ public void ExposeData()
public virtual void DoPawn()
{
- Pawn p = PawnGenerator.GeneratePawn(PRFDefOf.PRFSlavePawn, Faction.OfPlayer);
- p.Name = new NameTriple("...", "SAL_Name".Translate(), "...");
- //Assign skills
- foreach (var s in p.skills.skills)
+ try
{
- s.levelInt = s.def == SkillDefOf.Artistic ? 0 : 10;
+
+ Pawn p = PawnGenerator.GeneratePawn(PRFDefOf.PRFSlavePawn, Faction.OfPlayer);
+ p.Name = new NameTriple("...", "SAL_Name".Translate(), "...");
+ //Assign skills
+ foreach (var s in p.skills.skills)
+ {
+ s.levelInt = s.def == SkillDefOf.Artistic ? 0 : 10;
+ }
+ //Assign Pawn's mapIndexOrState to building's mapIndexOrState
+ ReflectionUtility.mapIndexOrState.SetValue(p, ReflectionUtility.mapIndexOrState.GetValue(this));
+
+ //Assign Pawn's position without nasty errors
+ p.SetPositionDirect(PositionHeld);
+
+ //Clear pawn relations
+ p.relations.ClearAllRelations();
+
+ //Set backstories
+ SetBackstoryAndSkills(p);
+
+ //Pawn work-related stuffs
+ for (int i = 0; i < 24; i++)
+ {
+ p.timetable.SetAssignment(i, TimeAssignmentDefOf.Work);
+ }
+ buildingPawn = p;
}
- //Assign Pawn's mapIndexOrState to building's mapIndexOrState
- ReflectionUtility.mapIndexOrState.SetValue(p, ReflectionUtility.mapIndexOrState.GetValue(this));
- //Assign Pawn's position without nasty errors
- p.SetPositionDirect(PositionHeld);
- //Clear pawn relations
- p.relations.ClearAllRelations();
- //Set backstories
- SetBackstoryAndSkills(p);
- //Pawn work-related stuffs
- for (int i = 0; i < 24; i++)
- {
- p.timetable.SetAssignment(i, TimeAssignmentDefOf.Work);
+ catch (Exception ex) {
+ Log.Error("ERROR=: "+ex.ToString());
}
-
- buildingPawn = p;
}
private static void SetBackstoryAndSkills(Pawn p)
{
- if (BackstoryDatabase.TryGetWithIdentifier("ChildSpy53", out Backstory bs))
+ if (BackstoryDatabase.TryGetWithIdentifier("ChildSpy47", out Backstory bs))
{
p.story.childhood = bs;
}
else
{
- Log.Error("Tried to assign child backstory ChildSpy53, but not found");
+ Log.Error("Tried to assign child backstory ChildSpy47, but not found");
}
if (BackstoryDatabase.TryGetWithIdentifier("ColonySettler53", out Backstory bstory))
{
+
p.story.adulthood = bstory;
}
else
{
+
Log.Error("Tried to assign child backstory ColonySettler53, but not found");
}
//Clear traits
+
p.story.traits.allTraits = new List();
//Reset cache
- ReflectionUtility.cachedDisabledWorkTypes.SetValue(p.story, null);
+
+ //ReflectionUtility.cachedDisabledWorkTypes.SetValue(p.story, null);
//Reset cache for each skill
+
for (int i = 0; i < p.skills.skills.Count; i++)
{
ReflectionUtility.cachedTotallyDisabled.SetValue(p.skills.skills[i], BoolUnknown.Unknown);
}
+
}
// Misc
@@ -113,7 +129,7 @@ public override void ExposeData()
Scribe_Deep.Look(ref buildingPawn, "buildingPawn");
if (buildingPawn == null)
DoPawn();
- }
+ }
public override IEnumerable GetGizmos()
{
foreach (Gizmo g in base.GetGizmos())
@@ -194,6 +210,7 @@ public override void Tick()
base.Tick();
if (this.IsHashIntervalTick(10) && Active)
{
+
if (thingQueue.Count > 0 && OutputComp.CurrentCell.Walkable(Map) &&
(OutputComp.CurrentCell.GetFirstItem(Map)?.TryAbsorbStack(thingQueue[0], true) ?? GenPlace.TryPlaceThing(thingQueue[0], OutputComp.CurrentCell, Map, ThingPlaceMode.Direct)))
{
@@ -237,6 +254,7 @@ protected virtual BillReport CheckBills()
List chosen = new List();
if (TryFindBestBillIngredientsInSet(AllAccessibleThings.ToList(), b, chosen))
{
+
return new BillReport(b, (from ta in chosen select ta.Thing.SplitOff(ta.Count)).ToList());
}
}
@@ -246,7 +264,7 @@ protected virtual BillReport CheckBills()
bool TryFindBestBillIngredientsInSet(List accessibleThings, Bill b, List chosen)
{
ReflectionUtility.MakeIngredientsListInProcessingOrder.Invoke(null, new object[] { ReflectionUtility.ingredientsOrdered.GetValue(null), b });
- return (bool)ReflectionUtility.TryFindBestBillIngredientsInSet.Invoke(null, new object[] { accessibleThings, b, chosen });
+ return (bool)ReflectionUtility.TryFindBestBillIngredientsInSet.Invoke(null, new object[] { accessibleThings, b, chosen, new IntVec3(), false });
}
protected virtual void ProduceItems()
@@ -309,7 +327,7 @@ public override void DrawGUIOverlay()
base.DrawGUIOverlay();
if (Find.CameraDriver.CurrentZoom < CameraZoomRange.Middle)
{
- GenMapUI.DrawThingLabel(GenMapUI.LabelDrawPosFor(this, 0f), currentBillReport == null ? "AssemblerIdle".Translate() : currentBillReport.bill.LabelCap, Color.white);
+ GenMapUI.DrawThingLabel(GenMapUI.LabelDrawPosFor(this, 0f), currentBillReport == null ? "AssemblerIdle".Translate().RawText : currentBillReport.bill.LabelCap, Color.white);
}
}
diff --git a/Source/ProjectRimFactory/SAL3/Tools/ReflectionUtility.cs b/Source/ProjectRimFactory/SAL3/Tools/ReflectionUtility.cs
index ee0129e..0804433 100644
--- a/Source/ProjectRimFactory/SAL3/Tools/ReflectionUtility.cs
+++ b/Source/ProjectRimFactory/SAL3/Tools/ReflectionUtility.cs
@@ -11,7 +11,7 @@ namespace ProjectRimFactory.SAL3
public static class ReflectionUtility
{
public static readonly FieldInfo mapIndexOrState = typeof(Thing).GetField("mapIndexOrState", BindingFlags.NonPublic | BindingFlags.Instance);
- public static readonly FieldInfo cachedDisabledWorkTypes = typeof(Pawn_StoryTracker).GetField("cachedDisabledWorkTypes", BindingFlags.Instance | BindingFlags.NonPublic);
+ //public static readonly FieldInfo cachedDisabledWorkTypes = typeof(Pawn_StoryTracker).GetField("cachedDisabledWorkTypes", BindingFlags.Instance | BindingFlags.NonPublic);
public static readonly FieldInfo cachedTotallyDisabled = typeof(SkillRecord).GetField("cachedTotallyDisabled", BindingFlags.NonPublic | BindingFlags.Instance);
public static readonly FieldInfo ingredientsOrdered = typeof(WorkGiver_DoBill).GetField("ingredientsOrdered", BindingFlags.NonPublic | BindingFlags.Static);
diff --git a/Source/ProjectRimFactory/Storage/Building_MassStorageUnit.cs b/Source/ProjectRimFactory/Storage/Building_MassStorageUnit.cs
index 064aa4f..f744b0b 100644
--- a/Source/ProjectRimFactory/Storage/Building_MassStorageUnit.cs
+++ b/Source/ProjectRimFactory/Storage/Building_MassStorageUnit.cs
@@ -103,7 +103,9 @@ public virtual void RegisterNewItem(Thing newItem)
items.Add(newItem);
if (CanStoreMoreItems)
{
+
newItem.Position = Position;
+
}
}
}
@@ -150,6 +152,7 @@ public override void Notify_LostThing(Thing newItem)
public override void SpawnSetup(Map map, bool respawningAfterLoad)
{
+
base.SpawnSetup(map, respawningAfterLoad);
RefreshStorage();
}
diff --git a/Source/ProjectRimFactory/Storage/Building_StorageUnitIOPort.cs b/Source/ProjectRimFactory/Storage/Building_StorageUnitIOPort.cs
index 02b8855..6b33f1b 100644
--- a/Source/ProjectRimFactory/Storage/Building_StorageUnitIOPort.cs
+++ b/Source/ProjectRimFactory/Storage/Building_StorageUnitIOPort.cs
@@ -77,6 +77,14 @@ public override void ExposeData()
Scribe_Deep.Look(ref outputStoreSettings, "outputStoreSettings", this);
Scribe_Deep.Look(ref outputSettings, "outputSettings", "IOPort_Minimum_UseTooltip", "IOPort_Maximum_UseTooltip");
}
+ public override string GetInspectString()
+ {
+ if (OutputSettings.useMin && OutputSettings.useMax) return base.GetInspectString() + "\n" + "IOPort_Minimum".Translate(OutputSettings.min) + "\n" + "IOPort_Maximum".Translate(OutputSettings.max);
+ else if (OutputSettings.useMin && !OutputSettings.useMax) return base.GetInspectString() + "\n" + "IOPort_Minimum".Translate(OutputSettings.min);
+ else if (!OutputSettings.useMin && OutputSettings.useMax) return base.GetInspectString() + "\n" + "IOPort_Maximum".Translate(OutputSettings.max);
+ else return base.GetInspectString();
+ }
+
public override void PostMake()
{
diff --git a/Source/ProjectRimFactory/Storage/OutputSettings.cs b/Source/ProjectRimFactory/Storage/OutputSettings.cs
index 89d8aad..14a2921 100644
--- a/Source/ProjectRimFactory/Storage/OutputSettings.cs
+++ b/Source/ProjectRimFactory/Storage/OutputSettings.cs
@@ -17,6 +17,7 @@ public OutputSettings(string minTooltip, string maxTooltip)
min = 0;
max = 75;
}
+
public void ExposeData()
{
Scribe_Values.Look(ref minTooltip, "minTooltip");
diff --git a/Source/ProjectRimFactory/Storage/UI/ITab_Items.cs b/Source/ProjectRimFactory/Storage/UI/ITab_Items.cs
index 689cfbb..7f9ccf2 100644
--- a/Source/ProjectRimFactory/Storage/UI/ITab_Items.cs
+++ b/Source/ProjectRimFactory/Storage/UI/ITab_Items.cs
@@ -167,7 +167,7 @@ public static List ChoicesForThing(Thing thing, Pawn pawn)
{
string labelShort = equipment.LabelShort;
FloatMenuOption item4;
- if (equipment.def.IsWeapon && pawn.story.WorkTagIsDisabled(WorkTags.Violent))
+ if (equipment.def.IsWeapon && pawn.WorkTagIsDisabled(WorkTags.Violent))
{
item4 = new FloatMenuOption("CannotEquip".Translate(new NamedArgument[]
{
diff --git a/Source/Source.sln b/Source/Source.sln
index d43f2e1..68b3d38 100644
--- a/Source/Source.sln
+++ b/Source/Source.sln
@@ -1,23 +1,18 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.16
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29806.167
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectRimFactory", "ProjectRimFactory\ProjectRimFactory.csproj", "{49284A95-A0E6-45F6-B7C8-20A4372C90E5}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A1843E80-FA8C-45EC-B325-192C1059B803}"
- ProjectSection(SolutionItems) = preProject
- ..\ToDoList.md = ..\ToDoList.md
- EndProjectSection
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49284A95-A0E6-45F6-B7C8-20A4372C90E5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection