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 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, processing 1 item (10 for small volume) at once. Making paperclips. - SmithingSpeed + GeneralLaborSpeed Drill Recipe_Machining 60 @@ -42,7 +42,7 @@ 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, processing 75 items (750 for small volume) at once. Making paperclips. - SmithingSpeed + GeneralLaborSpeed Drill Recipe_Machining 1200 @@ -116,7 +116,7 @@ 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 a vanometric power cell. Making vanometric power cell. - SmithingSpeed + GeneralLaborSpeed Cook Recipe_Machining 10000 @@ -306,7 +306,7 @@ Make an infinite chemreactor. Making infinite chemreactor. - SmithingSpeed + GeneralLaborSpeed Cook Recipe_Machining 10000 @@ -358,7 +358,7 @@ 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 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